Commit d7030105d0e4680ab4b2dfb18a5f0750ba6c6f3c

Authored by 陶汉栋
2 parents fc1b678f 8e0ce284
Exists in master

Merge branch 'master' of http://git.shunzhi.net/taohd/mycloud

cloud/common/src/main/java/com/sincere/common/dto/smartCampus/BindPushDto.java
1 package com.sincere.common.dto.smartCampus; 1 package com.sincere.common.dto.smartCampus;
2 2
  3 +import java.util.Date;
  4 +
3 /** 5 /**
4 * @author chen 6 * @author chen
5 * @version 1.0 7 * @version 1.0
@@ -8,9 +10,10 @@ package com.sincere.common.dto.smartCampus; @@ -8,9 +10,10 @@ package com.sincere.common.dto.smartCampus;
8 public class BindPushDto { 10 public class BindPushDto {
9 11
10 private int schoolId ; 12 private int schoolId ;
  13 + private String schoolName ;
11 private int type ; // 0是企业号,1是钉钉 14 private int type ; // 0是企业号,1是钉钉
12 - private String beginDate ;  
13 - private String endDate ; 15 + private Date beginDate ;
  16 + private Date endDate ;
14 private int intervalDays ; 17 private int intervalDays ;
15 private String pushTime ; 18 private String pushTime ;
16 private String msg ; 19 private String msg ;
@@ -23,6 +26,14 @@ public class BindPushDto { @@ -23,6 +26,14 @@ public class BindPushDto {
23 this.schoolId = schoolId; 26 this.schoolId = schoolId;
24 } 27 }
25 28
  29 + public String getSchoolName() {
  30 + return schoolName;
  31 + }
  32 +
  33 + public void setSchoolName(String schoolName) {
  34 + this.schoolName = schoolName;
  35 + }
  36 +
26 public int getType() { 37 public int getType() {
27 return type; 38 return type;
28 } 39 }
@@ -31,19 +42,19 @@ public class BindPushDto { @@ -31,19 +42,19 @@ public class BindPushDto {
31 this.type = type; 42 this.type = type;
32 } 43 }
33 44
34 - public String getBeginDate() { 45 + public Date getBeginDate() {
35 return beginDate; 46 return beginDate;
36 } 47 }
37 48
38 - public void setBeginDate(String beginDate) { 49 + public void setBeginDate(Date beginDate) {
39 this.beginDate = beginDate; 50 this.beginDate = beginDate;
40 } 51 }
41 52
42 - public String getEndDate() { 53 + public Date getEndDate() {
43 return endDate; 54 return endDate;
44 } 55 }
45 56
46 - public void setEndDate(String endDate) { 57 + public void setEndDate(Date endDate) {
47 this.endDate = endDate; 58 this.endDate = endDate;
48 } 59 }
49 60
cloud/common/src/main/java/com/sincere/common/dto/smartCampus/ParentDto.java
@@ -8,7 +8,6 @@ package com.sincere.common.dto.smartCampus; @@ -8,7 +8,6 @@ package com.sincere.common.dto.smartCampus;
8 public class ParentDto { 8 public class ParentDto {
9 9
10 private int schoolId ; 10 private int schoolId ;
11 - private int parentId ;  
12 private String mobile ; 11 private String mobile ;
13 12
14 public int getSchoolId() { 13 public int getSchoolId() {
@@ -19,14 +18,6 @@ public class ParentDto { @@ -19,14 +18,6 @@ public class ParentDto {
19 this.schoolId = schoolId; 18 this.schoolId = schoolId;
20 } 19 }
21 20
22 - public int getParentId() {  
23 - return parentId;  
24 - }  
25 -  
26 - public void setParentId(int parentId) {  
27 - this.parentId = parentId;  
28 - }  
29 -  
30 public String getMobile() { 21 public String getMobile() {
31 return mobile; 22 return mobile;
32 } 23 }
cloud/quartz/src/main/java/com/sincere/quartz/job/BindPushJob.java
@@ -5,7 +5,11 @@ import com.sincere.common.dto.smartCampus.ParentDto; @@ -5,7 +5,11 @@ import com.sincere.common.dto.smartCampus.ParentDto;
5 import com.sincere.common.enums.PushTypeEnums; 5 import com.sincere.common.enums.PushTypeEnums;
6 import com.sincere.common.util.DateUtils; 6 import com.sincere.common.util.DateUtils;
7 import com.sincere.quartz.feign.ScFeign; 7 import com.sincere.quartz.feign.ScFeign;
  8 +import com.sincere.quartz.mapper.SmsMapper;
  9 +import com.sincere.quartz.model.ShortMsg;
8 import org.apache.commons.lang3.StringUtils; 10 import org.apache.commons.lang3.StringUtils;
  11 +import org.slf4j.Logger;
  12 +import org.slf4j.LoggerFactory;
9 import org.springframework.beans.factory.annotation.Autowired; 13 import org.springframework.beans.factory.annotation.Autowired;
10 import org.springframework.scheduling.annotation.Scheduled; 14 import org.springframework.scheduling.annotation.Scheduled;
11 import org.springframework.stereotype.Service; 15 import org.springframework.stereotype.Service;
@@ -21,26 +25,24 @@ import java.util.*; @@ -21,26 +25,24 @@ import java.util.*;
21 @Service 25 @Service
22 public class BindPushJob { 26 public class BindPushJob {
23 27
  28 + private Logger logger = LoggerFactory.getLogger(KQJob.class);
  29 +
  30 +
24 @Autowired 31 @Autowired
25 ScFeign scFeign; 32 ScFeign scFeign;
26 33
27 - private static String date ;  
28 - private static List<BindPushDto> schoolList = new ArrayList<>();  
29 - private static Map<Integer , String> intervalDaysMap = new HashMap<>(); 34 + @Autowired
  35 + SmsMapper smsMapper;
  36 +
  37 + private static Map<String , String> intervalDaysMap = new HashMap<>(); //redis 持久化 替换 可避免重启导致间隔的错误
30 38
31 @Scheduled(cron = "0 0-59 * * * ? ") 39 @Scheduled(cron = "0 0-59 * * * ? ")
32 public void bindPush(){ 40 public void bindPush(){
33 Date nowDate = new Date(); 41 Date nowDate = new Date();
34 - String now = DateUtils.date2String(nowDate,DateUtils.format1) ;  
35 - if(StringUtils.isBlank(date) || !date.equals(now)){  
36 - initMap(now);  
37 - } 42 + List<BindPushDto> schoolList = scFeign.selectBindPushSchool();
38 for(BindPushDto school : schoolList){ 43 for(BindPushDto school : schoolList){
39 - int i =DateUtils.string2Date(school.getBeginDate(),DateUtils.format1).compareTo(nowDate) ;  
40 - int j = DateUtils.string2Date(school.getEndDate(),DateUtils.format1).compareTo(nowDate) ;  
41 - if(DateUtils.string2Date(school.getBeginDate(),DateUtils.format1).compareTo(nowDate) <= 0  
42 - && DateUtils.string2Date(school.getEndDate(),DateUtils.format1).compareTo(nowDate) >= 0){  
43 - String lastDate = intervalDaysMap.get(school.getSchoolId()); 44 + if(school.getBeginDate().compareTo(nowDate) <= 0 && school.getEndDate().compareTo(nowDate) >= 0){
  45 + String lastDate = intervalDaysMap.get(school.getSchoolId()+"_"+school.getType());
44 if(StringUtils.isBlank(lastDate)){ 46 if(StringUtils.isBlank(lastDate)){
45 //下发推送 47 //下发推送
46 bindPush(school,nowDate); 48 bindPush(school,nowDate);
@@ -57,33 +59,42 @@ public class BindPushJob { @@ -57,33 +59,42 @@ public class BindPushJob {
57 59
58 private void bindPush(BindPushDto bindPushDto , Date nowDate){ 60 private void bindPush(BindPushDto bindPushDto , Date nowDate){
59 if(bindPushDto.getPushTime().equals(DateUtils.date2String(nowDate,DateUtils.format4))){ 61 if(bindPushDto.getPushTime().equals(DateUtils.date2String(nowDate,DateUtils.format4))){
  62 + intervalDaysMap.put(bindPushDto.getSchoolId()+"_"+bindPushDto.getType(),DateUtils.date2String(nowDate,DateUtils.format1));
  63 + //未关注
60 List<ParentDto> unFollowList = scFeign.selectNotFollow(bindPushDto.getSchoolId()); 64 List<ParentDto> unFollowList = scFeign.selectNotFollow(bindPushDto.getSchoolId());
  65 + logger.info(bindPushDto.getSchoolName()+"未关注人数"+unFollowList.size());
  66 + for(ParentDto parentDto : unFollowList){
  67 + sendMessage(parentDto,bindPushDto.getMsg());
  68 + }
  69 + //未绑定
61 List<ParentDto> unBindList =scFeign.selectNotBind(bindPushDto.getSchoolId(),getThirdType(bindPushDto.getType())); 70 List<ParentDto> unBindList =scFeign.selectNotBind(bindPushDto.getSchoolId(),getThirdType(bindPushDto.getType()));
62 -  
63 - intervalDaysMap.put(bindPushDto.getSchoolId(),DateUtils.date2String(nowDate,DateUtils.format1)); 71 + logger.info(bindPushDto.getSchoolName()+"未绑定人数"+unBindList.size());
  72 + for(ParentDto parentDto : unBindList){
  73 + sendMessage(parentDto,bindPushDto.getMsg());
  74 + }
64 } 75 }
65 } 76 }
66 77
67 - private void initMap(String now){  
68 - date = now ;  
69 - //schoolList = scFeign.selectBindPushSchool();  
70 - BindPushDto bindPushDto = new BindPushDto();  
71 - bindPushDto.setSchoolId(16);  
72 - bindPushDto.setBeginDate("2019-12-04");  
73 - bindPushDto.setEndDate("2019-12-30");  
74 - bindPushDto.setIntervalDays(1);  
75 - bindPushDto.setPushTime("11:04");  
76 - bindPushDto.setType(0);  
77 - bindPushDto.setMsg("");  
78 - schoolList = new ArrayList<>();  
79 - schoolList.add(bindPushDto); 78 + private void sendMessage(ParentDto parentDto , String message){
  79 + //手机号为空
  80 + if(StringUtils.isNotBlank(parentDto.getMobile())){
  81 + String tableSuffix = DateUtils.date2String(new Date(), DateUtils.format);
  82 + ShortMsg shortMsg = new ShortMsg();
  83 + shortMsg.setTableName("smsNew"+tableSuffix);
  84 + shortMsg.setSchoolId(parentDto.getSchoolId());
  85 + shortMsg.setMobile(parentDto.getMobile());
  86 + shortMsg.setMsg(message);
  87 + //smsMapper.insertSMS(shortMsg);
  88 + logger.info("----学校Id---"+parentDto.getSchoolId() + "----手机号----"+parentDto.getMobile()+"---"+message);
  89 + }
80 } 90 }
81 91
  92 + // 0是企业号,1是钉钉
82 private int getThirdType(int type){ 93 private int getThirdType(int type){
83 if(type == 0){ 94 if(type == 0){
84 - return PushTypeEnums.DING.getType() ;  
85 - }else {  
86 return PushTypeEnums.QIYEHAO.getType() ; 95 return PushTypeEnums.QIYEHAO.getType() ;
  96 + }else {
  97 + return PushTypeEnums.DING.getType() ;
87 } 98 }
88 } 99 }
89 100
cloud/quartz/src/main/java/com/sincere/quartz/mapper/SmsMapper.java
1 package com.sincere.quartz.mapper; 1 package com.sincere.quartz.mapper;
2 2
3 import com.sincere.quartz.model.DingSms; 3 import com.sincere.quartz.model.DingSms;
  4 +import com.sincere.quartz.model.ShortMsg;
4 import com.sincere.quartz.model.WeChatSms; 5 import com.sincere.quartz.model.WeChatSms;
5 6
6 /** 7 /**
@@ -13,4 +14,6 @@ public interface SmsMapper { @@ -13,4 +14,6 @@ public interface SmsMapper {
13 int insertDing(DingSms dingSms); 14 int insertDing(DingSms dingSms);
14 15
15 int insertWeChat(WeChatSms weChatSms); 16 int insertWeChat(WeChatSms weChatSms);
  17 +
  18 + int insertSMS(ShortMsg shortMsg);
16 } 19 }
cloud/quartz/src/main/java/com/sincere/quartz/model/ShortMsg.java 0 → 100644
@@ -0,0 +1,47 @@ @@ -0,0 +1,47 @@
  1 +package com.sincere.quartz.model;
  2 +
  3 +/**
  4 + * @author chen
  5 + * @version 1.0
  6 + * @date 2019/12/13 0013 13:54
  7 + */
  8 +public class ShortMsg {
  9 +
  10 + private String tableName ;
  11 +
  12 + private int schoolId ;
  13 + private String mobile ;
  14 + private String msg ;
  15 +
  16 + public String getTableName() {
  17 + return tableName;
  18 + }
  19 +
  20 + public void setTableName(String tableName) {
  21 + this.tableName = tableName;
  22 + }
  23 +
  24 + public int getSchoolId() {
  25 + return schoolId;
  26 + }
  27 +
  28 + public void setSchoolId(int schoolId) {
  29 + this.schoolId = schoolId;
  30 + }
  31 +
  32 + public String getMobile() {
  33 + return mobile;
  34 + }
  35 +
  36 + public void setMobile(String mobile) {
  37 + this.mobile = mobile;
  38 + }
  39 +
  40 + public String getMsg() {
  41 + return msg;
  42 + }
  43 +
  44 + public void setMsg(String msg) {
  45 + this.msg = msg;
  46 + }
  47 +}
cloud/quartz/src/main/resources/mapper/SmsMapper.xml
@@ -11,4 +11,9 @@ @@ -11,4 +11,9 @@
11 insert into ${tableName} (SchoolID,MsgID,Guid,WapUrl,Status,intime,sendTime,SendUserName,ReceiveUserID,QiYeHaoUserId,AppID,Secret,tdtype,Remark) 11 insert into ${tableName} (SchoolID,MsgID,Guid,WapUrl,Status,intime,sendTime,SendUserName,ReceiveUserID,QiYeHaoUserId,AppID,Secret,tdtype,Remark)
12 values (#{schoolId},-1,#{msg},#{msgUrl},0,GETDATE(),GETDATE(),'智能校卫',#{receiveUserId},#{qiYeHaoUserId},#{appId},#{secret},#{tdType},#{name}) 12 values (#{schoolId},-1,#{msg},#{msgUrl},0,GETDATE(),GETDATE(),'智能校卫',#{receiveUserId},#{qiYeHaoUserId},#{appId},#{secret},#{tdType},#{name})
13 </insert> 13 </insert>
  14 +
  15 + <insert id="insertSMS" parameterType="com.sincere.quartz.model.ShortMsg">
  16 + insert into ${tableName} (SchoolID,Mobile,Msg,tdtype,Status,IsNeedSend,SendTime,intime)
  17 + values (#{schoolId},#{mobile},#{msg},1,0,1,GETDATE(),GETDATE())
  18 + </insert>
14 </mapper> 19 </mapper>
cloud/search_smartCampus/src/main/java/com/sincere/smartSearch/controller/RegisterPushController.java
@@ -35,11 +35,6 @@ public class RegisterPushController { @@ -35,11 +35,6 @@ public class RegisterPushController {
35 return registerPushService.selectNotFollow(schoolId); 35 return registerPushService.selectNotFollow(schoolId);
36 } 36 }
37 37
38 - @RequestMapping(value = "selectFollow",method = RequestMethod.GET)  
39 - List<ParentDto> selectFollow(@RequestParam("schoolId") int schoolId){  
40 - return registerPushService.selectFollow(schoolId);  
41 - }  
42 -  
43 @RequestMapping(value = "selectNotBind",method = RequestMethod.GET) 38 @RequestMapping(value = "selectNotBind",method = RequestMethod.GET)
44 List<ParentDto> selectNotBind(@RequestParam("schoolId") int schoolId , @RequestParam("type") int type){ 39 List<ParentDto> selectNotBind(@RequestParam("schoolId") int schoolId , @RequestParam("type") int type){
45 Map<String , Integer> map = new HashMap<>(); 40 Map<String , Integer> map = new HashMap<>();
cloud/search_smartCampus/src/main/java/com/sincere/smartSearch/mapper/RegisterPushMapper.java
@@ -17,7 +17,5 @@ public interface RegisterPushMapper { @@ -17,7 +17,5 @@ public interface RegisterPushMapper {
17 17
18 List<ParentDto> selectNotFollow(int schoolId) ; 18 List<ParentDto> selectNotFollow(int schoolId) ;
19 19
20 - List<ParentDto> selectFollow(int schoolId) ;  
21 -  
22 List<ParentDto> selectNotBind(Map<String , Integer> map); 20 List<ParentDto> selectNotBind(Map<String , Integer> map);
23 } 21 }
cloud/search_smartCampus/src/main/java/com/sincere/smartSearch/service/RegisterPushService.java
@@ -17,7 +17,5 @@ public interface RegisterPushService { @@ -17,7 +17,5 @@ public interface RegisterPushService {
17 17
18 List<ParentDto> selectNotFollow(int schoolId) ; 18 List<ParentDto> selectNotFollow(int schoolId) ;
19 19
20 - List<ParentDto> selectFollow(int schoolId) ;  
21 -  
22 List<ParentDto> selectNotBind(Map<String , Integer> map); 20 List<ParentDto> selectNotBind(Map<String , Integer> map);
23 } 21 }
cloud/search_smartCampus/src/main/java/com/sincere/smartSearch/service/impl/RegisterPushServiceImpl.java
@@ -32,11 +32,6 @@ public class RegisterPushServiceImpl implements RegisterPushService { @@ -32,11 +32,6 @@ public class RegisterPushServiceImpl implements RegisterPushService {
32 } 32 }
33 33
34 @Override 34 @Override
35 - public List<ParentDto> selectFollow(int schoolId) {  
36 - return registerPushMapper.selectFollow(schoolId);  
37 - }  
38 -  
39 - @Override  
40 public List<ParentDto> selectNotBind(Map<String, Integer> map) { 35 public List<ParentDto> selectNotBind(Map<String, Integer> map) {
41 return registerPushMapper.selectNotBind(map); 36 return registerPushMapper.selectNotBind(map);
42 } 37 }
cloud/search_smartCampus/src/main/resources/mapper/RegisterPushMapper.xml
@@ -4,6 +4,7 @@ @@ -4,6 +4,7 @@
4 4
5 <resultMap id="BindPushDto" type="com.sincere.common.dto.smartCampus.BindPushDto" > 5 <resultMap id="BindPushDto" type="com.sincere.common.dto.smartCampus.BindPushDto" >
6 <result column="SchoolId" property="schoolId" /> 6 <result column="SchoolId" property="schoolId" />
  7 + <result column="SchoolName" property="schoolName" />
7 <result column="type" property="type" /> 8 <result column="type" property="type" />
8 <result column="BeginDate" property="beginDate" /> 9 <result column="BeginDate" property="beginDate" />
9 <result column="EndDate" property="endDate" /> 10 <result column="EndDate" property="endDate" />
@@ -13,44 +14,32 @@ @@ -13,44 +14,32 @@
13 </resultMap> 14 </resultMap>
14 15
15 <select id="selectBindPushSchool" resultType="java.lang.Integer" resultMap="BindPushDto"> 16 <select id="selectBindPushSchool" resultType="java.lang.Integer" resultMap="BindPushDto">
16 - select SchoolId , type , BeginDate , EndDate , IntervalDays. PushTime , Msg from EM_QYHID where isPush = 1 17 + select SchoolId , SchoolName , type , BeginDate , EndDate , IntervalDays , PushTime , Msg from EM_QYHID where isPush = 1
17 </select> 18 </select>
18 19
19 20
20 <resultMap id="ParentMap" type="com.sincere.common.dto.smartCampus.ParentDto"> 21 <resultMap id="ParentMap" type="com.sincere.common.dto.smartCampus.ParentDto">
21 - <result column="parent_id" property="parentId"/>  
22 <result column="school_id" property="schoolId"/> 22 <result column="school_id" property="schoolId"/>
23 - <result column="mobile" property="mobile"/> 23 + <result column="ParentMobile" property="mobile"/>
24 </resultMap> 24 </resultMap>
25 25
26 <select id="selectNotFollow" parameterType="java.lang.Integer" resultMap="ParentMap"> 26 <select id="selectNotFollow" parameterType="java.lang.Integer" resultMap="ParentMap">
27 - SELECT SZ_V_School_Parent.parent_id , SZ_V_School_Parent.school_id , SZ_V_School_Parent.mobile FROM SZ_V_School_Parent WHERE not EXISTS 27 + SELECT SZ_V_School_Student.school_id , SZ_V_School_Student.ParentMobile FROM SZ_V_School_Student WHERE not EXISTS
28 (SELECT NULL 28 (SELECT NULL
29 - FROM SZ_V_School_Student 29 + FROM SZ_V_School_Parent
30 WHERE SZ_V_School_Parent.class_id = SZ_V_School_Student.class_id 30 WHERE SZ_V_School_Parent.class_id = SZ_V_School_Student.class_id
31 AND SZ_V_School_Parent.parent_mobile = SZ_V_School_Student.ParentMobile 31 AND SZ_V_School_Parent.parent_mobile = SZ_V_School_Student.ParentMobile
32 ) 32 )
33 and school_id = #{schoolId} 33 and school_id = #{schoolId}
34 </select> 34 </select>
35 35
36 - <select id="selectFollow" parameterType="java.lang.Integer" resultMap="ParentMap">  
37 - SELECT SZ_V_School_Parent.parent_id , SZ_V_School_Parent.school_id , SZ_V_School_Parent.mobile FROM SZ_V_School_Parent WHERE EXISTS  
38 - (SELECT NULL  
39 - FROM SZ_V_School_Student  
40 - WHERE SZ_V_School_Parent.class_id = SZ_V_School_Student.class_id  
41 - AND SZ_V_School_Parent.parent_mobile = SZ_V_School_Student.ParentMobile  
42 - )  
43 - and school_id = #{schoolId}  
44 - </select>  
45 -  
46 - <select id="selectNotBind" parameterType="java.util.Map" resultMap="ParentMap">  
47 - SELECT SZ_V_School_Parent.parent_id , SZ_V_School_Parent.school_id , SZ_V_School_Parent.mobile FROM SZ_V_School_Parent WHERE EXISTS  
48 - (SELECT NULL  
49 - FROM SZ_V_School_Student  
50 - WHERE SZ_V_School_Parent.class_id = SZ_V_School_Student.class_id  
51 - AND SZ_V_School_Parent.parent_mobile = SZ_V_School_Student.ParentMobile  
52 - )  
53 - and school_id = #{schoolId} 36 + <resultMap id="ParentMap2" type="com.sincere.common.dto.smartCampus.ParentDto">
  37 + <result column="school_id" property="schoolId"/>
  38 + <result column="mobile" property="mobile"/>
  39 + </resultMap>
  40 + <select id="selectNotBind" parameterType="java.util.Map" resultMap="ParentMap2">
  41 + SELECT SZ_V_School_Parent.school_id , SZ_V_School_Parent.mobile FROM SZ_V_School_Parent
  42 + WHERE school_id = #{schoolId}
54 <if test="type == 4"> 43 <if test="type == 4">
55 and ( DingUserId is null or DingUserId = '' ) 44 and ( DingUserId is null or DingUserId = '' )
56 </if> 45 </if>