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 | } |