Commit 7812e91ec9f0673dcbd658ce1c9109f908bca8c5
1 parent
82eb0e6690
Exists in
master
update
Showing 2 changed files with 107 additions and 98 deletions
talkonlineweb/src/main/java/com/lyms/talkonlineweb/task/PushArticleTask.java
View file @
7812e91
... | ... | @@ -41,9 +41,9 @@ |
41 | 41 | private LymsDictService lymsDictService; |
42 | 42 | |
43 | 43 | /** |
44 | - * 每天上午9点执行文章推送 | |
44 | + * 每天18点执行文章推送 | |
45 | 45 | */ |
46 | - @Scheduled(cron = "0 0 9 * * ?") | |
46 | + @Scheduled(cron = "0 0 18 * * ?") | |
47 | 47 | public void pushArtcle(){ |
48 | 48 | String token= AccessTokenServlet.accessToken; |
49 | 49 | Map<String,Object> param=new HashMap<>(); |
... | ... | @@ -53,7 +53,7 @@ |
53 | 53 | log.debug("开始给患者推送文章>>>>>>"); |
54 | 54 | //从LymsPushMessages记录表查询今天0点筛选出要推送的文章 |
55 | 55 | QueryWrapper<LymsPushMessages> queryWrapper = new QueryWrapper<>(); |
56 | - queryWrapper.apply("TO_DAYS(created_time) = TO_DAYS(NOW()) and state=0"); | |
56 | + queryWrapper.apply("TO_DAYS(created_time) = TO_DAYS(NOW()) and state=0");//防止重复 | |
57 | 57 | List<LymsPushMessages> lymsPushMessages=lymsPushMessagesService.list(queryWrapper); |
58 | 58 | for (LymsPushMessages lymsPushMessage : lymsPushMessages) { |
59 | 59 | try { |
60 | 60 | |
61 | 61 | |
62 | 62 | |
63 | 63 | |
64 | 64 | |
65 | 65 | |
66 | 66 | |
67 | 67 | |
... | ... | @@ -63,96 +63,98 @@ |
63 | 63 | pushedart.setAid(lymsPushMessage.getAid()); |
64 | 64 | pushedart.setCreatedtime(new Date()); |
65 | 65 | pushedart.setIsread((byte) 0); |
66 | - //PushedartId(如果null表示需要推送文章,否则需要推送短消息) | |
67 | - if(null!=lymsPushMessage.getPushedartId()){ | |
66 | + //获取token失败 | |
67 | + if(StringUtil.isEmpty(token)){ | |
68 | + //更新到LymsPushMessages记录 | |
69 | + lymsPushMessage.setState(2);//推送状态:0待推送 1成功 2失败。(在备注写失败原因) | |
70 | + lymsPushMessage.setRemark("推送短消息"+(lymsPushMessage.getIsweixinOne()==1?"1":"2")+",获取token失败!"); | |
71 | + lymsPushMessage.setPushTime(new Date()); | |
72 | + lymsPushMessagesService.updateById(lymsPushMessage); | |
73 | + //更新到LymsPushedart记录 | |
74 | + if(null==lymsPushMessage.getPushedartId()){ | |
75 | + pushedart.setIsweixinone(2);//是否推送短消息1(0否,1是 2推送失败) | |
76 | + }else { | |
77 | + pushedart.setIsweixintwo(2);//是否推送短消息2(0否,1是 2推送失败) | |
78 | + } | |
68 | 79 | //LymsPushedart的主键id赋值,表示修改。找到以前的推送记录,修改短文字的推送状态 |
69 | 80 | pushedart.setId(lymsPushMessage.getPushedartId()); |
70 | - //获取token失败 | |
71 | - if(StringUtil.isEmpty(token)){ | |
81 | + lymsPushedartService.saveOrUpdate(pushedart); | |
82 | + log.info("推送短消息"+(lymsPushMessage.getIsweixinOne()==1?"1":"2")+",获取token失败!"); | |
83 | + continue; | |
84 | + } | |
85 | + //公众号openId为空 | |
86 | + if(StringUtil.isEmpty(lymsPushMessage.getGzopenid())){ | |
87 | + //更新到LymsPushMessages记录 | |
88 | + lymsPushMessage.setState(2);//推送状态:0待推送 1成功 2失败。(在备注写失败原因) | |
89 | + lymsPushMessage.setRemark(lymsPushMessage.getPname()+":公众号openId为空!"); | |
90 | + lymsPushMessage.setPushTime(new Date()); | |
91 | + lymsPushMessagesService.updateById(lymsPushMessage); | |
92 | + //更新到LymsPushedart记录 | |
93 | + if(null==lymsPushMessage.getPushedartId()){ | |
94 | + pushedart.setIsweixinone(2);//是否推送短消息1(0否,1是 2推送失败) | |
95 | + }else { | |
96 | + pushedart.setIsweixintwo(2);//是否推送短消息2(0否,1是 2推送失败) | |
97 | + } | |
98 | + //LymsPushedart的主键id赋值,表示修改。找到以前的推送记录,修改短文字的推送状态 | |
99 | + pushedart.setId(lymsPushMessage.getPushedartId()); | |
100 | + lymsPushedartService.saveOrUpdate(pushedart); | |
101 | + log.info(lymsPushMessage.getPname()+":公众号openId为空!"); | |
102 | + continue; | |
103 | + } | |
104 | + if(lymsPushMessage.getIsweixinOne()==1&&null==lymsPushMessage.getPushedartId()){ | |
105 | + //推送微信消息1 | |
106 | + Map<String,Object> map=new HashMap<>(); | |
107 | + map.put("first",new DataEntity(lymsPushMessage.getWeixTextOne(),"#173177")); | |
108 | + map.put("keyword1",new DataEntity(lymsPushMessage.getPname(),"#173177")); | |
109 | + map.put("keyword2",new DataEntity(lymsPushMessage.getHname(),"#173177")); | |
110 | + map.put("keyword3",new DataEntity(lymsPushMessage.getDname(),"#173177")); | |
111 | + map.put("remark",new DataEntity("预祝您早日康复","#173177")); | |
112 | + Integer code= WeiXinUtil.SendWeChatMsg(token,lymsPushMessage.getGzopenid(), Constant.GZ_TEMPLATE_ID,map); | |
113 | + if(null==code||code!=0){ | |
72 | 114 | //更新到LymsPushMessages记录 |
73 | - lymsPushMessage.setState(2);//推送状态:0待推送(9点开始推送) 1成功 2失败。(在备注写失败原因) | |
74 | - lymsPushMessage.setRemark("推送短消息"+(lymsPushMessage.getIsweixinOne()==1?"1":"2")+",获取token失败!"); | |
115 | + lymsPushMessage.setState(2);//推送状态:0待推送 1成功 2失败。(在备注写失败原因) | |
116 | + lymsPushMessage.setRemark("推送短消息1失败。。。"+lymsPushMessage.getPname()+"; code:"+code); | |
75 | 117 | lymsPushMessage.setPushTime(new Date()); |
76 | 118 | lymsPushMessagesService.updateById(lymsPushMessage); |
77 | 119 | //更新到LymsPushedart记录 |
78 | - if(lymsPushMessage.getIsweixinOne()==1){ | |
79 | - pushedart.setIsweixinone(2);//是否推送短消息1(0否,1是 2推送失败) | |
80 | - }else { | |
81 | - pushedart.setIsweixintwo(2);//是否推送短消息2(0否,1是 2推送失败) | |
82 | - } | |
83 | - lymsPushedartService.updateById(pushedart); | |
84 | - log.info("推送短消息"+(lymsPushMessage.getIsweixinOne()==1?"1":"2")+",获取token失败!"); | |
85 | - continue; | |
120 | + pushedart.setIsweixinone(2);//是否推送短消息1(0否,1是 2推送失败) | |
121 | + //LymsPushedart的主键id赋值,表示修改。找到以前的推送记录,修改短文字的推送状态 | |
122 | + pushedart.setId(lymsPushMessage.getPushedartId()); | |
123 | + lymsPushedartService.saveOrUpdate(pushedart); | |
124 | + log.info("推送短消息1失败!"+lymsPushMessage.getPname()+"; code:"+code); | |
86 | 125 | } |
87 | - //公众号openId为空 | |
88 | - if(StringUtil.isEmpty(lymsPushMessage.getGzopenid())){ | |
126 | + //成功标记记录1 | |
127 | + pushedart.setIsweixinone(1);//是否推送短消息1(0否,1是 2推送失败) | |
128 | + }else if(lymsPushMessage.getIsweixinTwo()==1){ | |
129 | + //LymsPushedart的主键id赋值,表示修改。找到以前的推送记录,修改短文字的推送状态 | |
130 | + pushedart.setId(lymsPushMessage.getPushedartId()); | |
131 | + //推送微信消息2 | |
132 | + Map<String,Object> map=new HashMap<>(); | |
133 | + map.put("first",new DataEntity(lymsPushMessage.getWeixTextTwo(),"#173177")); | |
134 | + map.put("keyword1",new DataEntity(lymsPushMessage.getPname(),"#173177")); | |
135 | + map.put("keyword2",new DataEntity(lymsPushMessage.getHname(),"#173177")); | |
136 | + map.put("keyword3",new DataEntity(lymsPushMessage.getDname(),"#173177")); | |
137 | + map.put("remark",new DataEntity("预祝您早日康复","#173177")); | |
138 | + Integer code= WeiXinUtil.SendWeChatMsg(token,lymsPushMessage.getGzopenid(),Constant.GZ_TEMPLATE_ID,map); | |
139 | + if(null==code||code!=0){ | |
89 | 140 | //更新到LymsPushMessages记录 |
90 | - lymsPushMessage.setState(2);//推送状态:0待推送(9点开始推送) 1成功 2失败。(在备注写失败原因) | |
91 | - lymsPushMessage.setRemark(lymsPushMessage.getPname()+":公众号openId为空!"); | |
141 | + lymsPushMessage.setState(2);//推送状态:0待推送 1成功 2失败。(在备注写失败原因) | |
142 | + lymsPushMessage.setRemark("推送短消息2失败!"+lymsPushMessage.getPname()+"; code:"+code); | |
92 | 143 | lymsPushMessage.setPushTime(new Date()); |
93 | 144 | lymsPushMessagesService.updateById(lymsPushMessage); |
94 | 145 | //更新到LymsPushedart记录 |
95 | - if(lymsPushMessage.getIsweixinOne()==1){ | |
96 | - pushedart.setIsweixinone(2);//是否推送短消息1(0否,1是 2推送失败) | |
97 | - }else { | |
98 | - pushedart.setIsweixintwo(2);//是否推送短消息2(0否,1是 2推送失败) | |
99 | - } | |
100 | - lymsPushedartService.updateById(pushedart); | |
101 | - log.info(lymsPushMessage.getPname()+":公众号openId为空!"); | |
146 | + pushedart.setIsweixintwo(2);//是否推送短消息2(0否,1是 2推送失败) | |
147 | + lymsPushedartService.saveOrUpdate(pushedart); | |
148 | + log.info("推送短消息2失败!"+lymsPushMessage.getPname()+"; code:"+code); | |
102 | 149 | continue; |
103 | 150 | } |
104 | - if(lymsPushMessage.getIsweixinOne()==1){ | |
105 | - //推送微信消息1 | |
106 | - Map<String,Object> map=new HashMap<>(); | |
107 | - map.put("first",new DataEntity(lymsPushMessage.getWeixTextOne(),"#173177")); | |
108 | - map.put("keyword1",new DataEntity(lymsPushMessage.getPname(),"#173177")); | |
109 | - map.put("keyword2",new DataEntity(lymsPushMessage.getHname(),"#173177")); | |
110 | - map.put("keyword3",new DataEntity(lymsPushMessage.getDname(),"#173177")); | |
111 | - map.put("remark",new DataEntity("预祝您早日康复","#173177")); | |
112 | - Integer code= WeiXinUtil.SendWeChatMsg(token,lymsPushMessage.getGzopenid(), Constant.GZ_TEMPLATE_ID,map); | |
113 | - if(null==code||code!=0){ | |
114 | - //更新到LymsPushMessages记录 | |
115 | - lymsPushMessage.setState(2);//推送状态:0待推送(9点开始推送) 1成功 2失败。(在备注写失败原因) | |
116 | - lymsPushMessage.setRemark("推送短消息1失败。。。"+lymsPushMessage.getPname()+"; code:"+code); | |
117 | - lymsPushMessage.setPushTime(new Date()); | |
118 | - lymsPushMessagesService.updateById(lymsPushMessage); | |
119 | - //更新到LymsPushedart记录 | |
120 | - pushedart.setIsweixinone(2);//是否推送短消息1(0否,1是 2推送失败) | |
121 | - lymsPushedartService.updateById(pushedart); | |
122 | - log.info("推送短消息1失败!"+lymsPushMessage.getPname()+"; code:"+code); | |
123 | - continue; | |
124 | - } | |
125 | - //成功标记记录1 | |
126 | - pushedart.setIsweixinone(1);//是否推送短消息1(0否,1是 2推送失败) | |
127 | - }else if(lymsPushMessage.getIsweixinTwo()==1){ | |
128 | - //推送微信消息2 | |
129 | - Map<String,Object> map=new HashMap<>(); | |
130 | - map.put("first",new DataEntity(lymsPushMessage.getWeixTextTwo(),"#173177")); | |
131 | - map.put("keyword1",new DataEntity(lymsPushMessage.getPname(),"#173177")); | |
132 | - map.put("keyword2",new DataEntity(lymsPushMessage.getHname(),"#173177")); | |
133 | - map.put("keyword3",new DataEntity(lymsPushMessage.getDname(),"#173177")); | |
134 | - map.put("remark",new DataEntity("预祝您早日康复","#173177")); | |
135 | - Integer code= WeiXinUtil.SendWeChatMsg(token,lymsPushMessage.getGzopenid(),Constant.GZ_TEMPLATE_ID,map); | |
136 | - if(null==code||code!=0){ | |
137 | - //更新到LymsPushMessages记录 | |
138 | - lymsPushMessage.setState(2);//推送状态:0待推送(9点开始推送) 1成功 2失败。(在备注写失败原因) | |
139 | - lymsPushMessage.setRemark("推送短消息2失败!"+lymsPushMessage.getPname()+"; code:"+code); | |
140 | - lymsPushMessage.setPushTime(new Date()); | |
141 | - lymsPushMessagesService.updateById(lymsPushMessage); | |
142 | - //更新到LymsPushedart记录 | |
143 | - pushedart.setIsweixintwo(2);//是否推送短消息2(0否,1是 2推送失败) | |
144 | - lymsPushedartService.updateById(pushedart); | |
145 | - log.info("推送短消息2失败!"+lymsPushMessage.getPname()+"; code:"+code); | |
146 | - continue; | |
147 | - } | |
148 | - //成功标记记录2 | |
149 | - pushedart.setIsweixintwo(1);//是否推送短消息1(0否,1是 2推送失败) | |
150 | - } | |
151 | + //成功标记记录2 | |
152 | + pushedart.setIsweixintwo(1);//是否推送短消息1(0否,1是 2推送失败) | |
151 | 153 | } |
152 | 154 | //插入or更新到LymsPushedart记录 |
153 | 155 | lymsPushedartService.saveOrUpdate(pushedart); |
154 | 156 | //更新到LymsPushMessages记录 |
155 | - lymsPushMessage.setState(1);//推送状态:0待推送(9点开始推送) 1成功 2失败。(在备注写失败原因) | |
157 | + lymsPushMessage.setState(1);//推送状态:0待推送 1成功 2失败。(在备注写失败原因) | |
156 | 158 | lymsPushMessage.setPushTime(new Date()); |
157 | 159 | lymsPushMessagesService.updateById(lymsPushMessage); |
158 | 160 | } catch (Exception e) { |
talkonlineweb/src/main/java/com/lyms/talkonlineweb/task/PushArticleTaskData.java
View file @
7812e91
... | ... | @@ -45,14 +45,22 @@ |
45 | 45 | private LymsDictService lymsDictService; |
46 | 46 | |
47 | 47 | /** |
48 | - * 每天0点执行-要推送的文章存到数据库 | |
48 | + * 每天下17点执行-要推送的文章存到数据库 | |
49 | 49 | */ |
50 | - @Scheduled(cron = "0 0 0 * * ?") | |
50 | + @Scheduled(cron = "0 0 17 * * ?") | |
51 | 51 | public void pushArtcleData(){ |
52 | 52 | Map<String,Object> param=new HashMap<>(); |
53 | 53 | param.put("vtype",999); |
54 | 54 | List<LymsDict> dcLst=lymsDictService.listByMap(param); |
55 | + //防止重复 | |
55 | 56 | if (dcLst.size()>0 && dcLst.get(0).getCode()==1){ |
57 | + QueryWrapper<LymsPushMessages> queryWrapper2 = new QueryWrapper<>(); | |
58 | + queryWrapper2.apply("TO_DAYS(created_time) = TO_DAYS(NOW()) and state in (0,1,2)"); | |
59 | + List<LymsPushMessages> list = lymsPushMessagesService.list(queryWrapper2); | |
60 | + if(!CollectionUtils.isEmpty(list)){ | |
61 | + log.info("要推送的文章已存在不需要再次推送>>>>>>"); | |
62 | + return; | |
63 | + } | |
56 | 64 | log.info("开始筛选"+(DateUtil.getDateTime(new Date(), YYYY_MM_DD))+"要推送的文章存入mysql>>>>>>"); |
57 | 65 | //筛选出需要推送的文章信息-(逻辑详见视图) |
58 | 66 | List<PushArticle> pushArticleList=pushArticleService.list(); |
59 | 67 | |
60 | 68 | |
61 | 69 | |
62 | 70 | |
... | ... | @@ -61,32 +69,31 @@ |
61 | 69 | //需要推送文章的对象 |
62 | 70 | LymsPushMessages lymsPushMessages=new LymsPushMessages(); |
63 | 71 | BeanUtils.copyProperties(article,lymsPushMessages); |
64 | - //查询推已推送的文章(如果null表示需要推送文章,否则需要推送短消息) | |
72 | + //查询推已推送的文章(如果null表示需要推送文章和短消息1,否则需要推送短消息2) | |
65 | 73 | QueryWrapper<LymsPushedart> queryWrapper=new QueryWrapper<>(); |
66 | 74 | queryWrapper.eq("pid", lymsPushMessages.getPid()); |
67 | 75 | queryWrapper.eq("aid", lymsPushMessages.getAid()); |
68 | - LymsPushedart lymsPushedart = lymsPushedartService.getOne(queryWrapper); | |
69 | - if(null!=lymsPushedart){ | |
70 | - //每次只推送一条短消息,判断推送短消息1还是2 | |
71 | - if(lymsPushedart.getIsweixinone()==0){//0未推送1已推送 | |
72 | - //标记要推送的记录需要推送短消息1 | |
73 | - lymsPushMessages.setIsweixinOne(1); | |
74 | - //存入已推送文章列表id | |
75 | - lymsPushMessages.setPushedartId(lymsPushedart.getId()); | |
76 | - }else if (lymsPushedart.getIsweixintwo()==0){//0未推送1已推送 | |
77 | - //标记要推送的记录需要推送短消息2 | |
78 | - lymsPushMessages.setIsweixinTwo(1); | |
79 | - //存入已推送文章列表id | |
80 | - lymsPushMessages.setPushedartId(lymsPushedart.getId()); | |
81 | - } | |
76 | + List<LymsPushedart> lymsPushedartList = lymsPushedartService.list(queryWrapper); | |
77 | + if(!CollectionUtils.isEmpty(lymsPushedartList)&&lymsPushedartList.size()>1){ | |
78 | + log.info("数据不同步,不需要推送>>>>>>"); | |
79 | + return; | |
82 | 80 | } |
83 | - //保存到要推送的表lyms_push_messages | |
84 | - List<LymsPushMessages> list = lymsPushMessagesService.list(new QueryWrapper<>(lymsPushMessages)); | |
85 | - if(!CollectionUtils.isEmpty(list)){ | |
86 | - log.info("要推送的文章已存在不需要再次推送>>>>>>"); | |
87 | - continue; | |
81 | + if(!CollectionUtils.isEmpty(lymsPushedartList)){ | |
82 | + //标记要推送的记录需要推送短消息2 | |
83 | + lymsPushMessages.setIsweixinTwo(1); | |
84 | + //存入已推送文章列表id | |
85 | + lymsPushMessages.setPushedartId(lymsPushedartList.get(0).getId()); | |
86 | + }else { | |
87 | + //标记要推送的记录需要推送短消息1 | |
88 | + lymsPushMessages.setIsweixinOne(1); | |
89 | + //需要推送的短消息1 | |
90 | + lymsPushMessagesService.save(lymsPushMessages); | |
88 | 91 | } |
92 | + //标记要推送的文章-短消息1标记0 | |
93 | + lymsPushMessages.setIsweixinOne(0); | |
94 | + //保存到要推送的表lyms_push_messages需要推送的文章 | |
89 | 95 | lymsPushMessagesService.save(lymsPushMessages); |
96 | + | |
90 | 97 | } catch (BeansException e) { |
91 | 98 | e.printStackTrace(); |
92 | 99 | } |