|
@@ -427,27 +427,51 @@ public class WeComMessageDataJob {
|
|
|
return ReturnT.SUCCESS;
|
|
|
}
|
|
|
for (SendMessage sendMessage : groupList) {
|
|
|
- sendMessage.setIsSend(0);
|
|
|
- sendMessage.setCreateTime(DateUtil.getThatDayDate());
|
|
|
- List<String> sendUserList = sendMessageMapper.selectExternalUserId(sendMessage);
|
|
|
- boolean flag = pushMessage(sendUserList, sendMessage);
|
|
|
- if (flag) {
|
|
|
- SendMessage updateSendMessage = new SendMessage();
|
|
|
- updateSendMessage.setIsSend(1);
|
|
|
- SendMessageExample example = new SendMessageExample();
|
|
|
- example.createCriteria()
|
|
|
- .andVideoId1EqualTo(sendMessage.getVideoId1())
|
|
|
- .andVideoId2EqualTo(sendMessage.getVideoId2())
|
|
|
- .andVideoId3EqualTo(sendMessage.getVideoId3())
|
|
|
- .andStaffIdEqualTo(sendMessage.getStaffId())
|
|
|
- .andCreateTimeGreaterThan(DateUtil.getThatDayDate());
|
|
|
- sendMessageMapper.updateByExampleSelective(updateSendMessage, example);
|
|
|
+ pushAndUpdateMessage(sendMessage);
|
|
|
+ }
|
|
|
+ Map<Long, List<SendMessage>> groupedByStaffId = groupList.stream().collect(Collectors.groupingBy(SendMessage::getStaffId));
|
|
|
+ for (Map.Entry<Long, List<SendMessage>> entry : groupedByStaffId.entrySet()) {
|
|
|
+ SendMessageExample example = new SendMessageExample();
|
|
|
+ example.createCriteria().andStaffIdEqualTo(entry.getKey()).andIsSendEqualTo(0)
|
|
|
+ .andCreateTimeGreaterThan(DateUtil.getThatDayDate());
|
|
|
+ long l = sendMessageMapper.countByExample(example);
|
|
|
+ //增加重试
|
|
|
+ if (l > 0) {
|
|
|
+ List<SendMessage> retryGroupList = sendMessageMapper.getGroupList(DateUtil.getThatDayDate(), 0);
|
|
|
+ retryGroupList = retryGroupList.stream().filter(e -> Objects.equals(e.getStaffId(), entry.getKey()))
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ for (SendMessage sendMessage : retryGroupList) {
|
|
|
+ pushAndUpdateMessage(sendMessage);
|
|
|
+ }
|
|
|
}
|
|
|
-
|
|
|
+ }
|
|
|
+ SendMessageExample example = new SendMessageExample();
|
|
|
+ example.createCriteria().andIsSendEqualTo(0).andCreateTimeGreaterThan(DateUtil.getThatDayDate());
|
|
|
+ long l = sendMessageMapper.countByExample(example);
|
|
|
+ if (l > 0) {
|
|
|
+ LarkRobotUtil.sendMessage("存在发送失败消息,请检查@薛一鸣");
|
|
|
}
|
|
|
return ReturnT.SUCCESS;
|
|
|
}
|
|
|
|
|
|
+ private void pushAndUpdateMessage(SendMessage sendMessage) {
|
|
|
+ sendMessage.setIsSend(0);
|
|
|
+ sendMessage.setCreateTime(DateUtil.getThatDayDate());
|
|
|
+ List<String> sendUserList = sendMessageMapper.selectExternalUserId(sendMessage);
|
|
|
+ boolean flag = pushMessage(sendUserList, sendMessage);
|
|
|
+ if (flag) {
|
|
|
+ SendMessage updateSendMessage = new SendMessage();
|
|
|
+ updateSendMessage.setIsSend(1);
|
|
|
+ SendMessageExample example = new SendMessageExample();
|
|
|
+ example.createCriteria()
|
|
|
+ .andVideoId1EqualTo(sendMessage.getVideoId1())
|
|
|
+ .andVideoId2EqualTo(sendMessage.getVideoId2())
|
|
|
+ .andVideoId3EqualTo(sendMessage.getVideoId3())
|
|
|
+ .andStaffIdEqualTo(sendMessage.getStaffId())
|
|
|
+ .andCreateTimeGreaterThan(DateUtil.getThatDayDate());
|
|
|
+ sendMessageMapper.updateByExampleSelective(updateSendMessage, example);
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
private boolean pushMessage(List<String> sendUserList, SendMessage sendMessage) {
|
|
|
List<JSONObject> pushList = new ArrayList<>();
|
|
@@ -474,7 +498,8 @@ public class WeComMessageDataJob {
|
|
|
example.createCriteria().andMiniprogramVideoIdEqualTo(videoId);
|
|
|
List<MessageAttachment> messageAttachmentList = messageAttachmentMapper.selectByExample(example);
|
|
|
if (CollectionUtils.isEmpty(messageAttachmentList)) {
|
|
|
- throw new RuntimeException("附件信息查询异常");
|
|
|
+ log.error("附件信息查询异常");
|
|
|
+ return false;
|
|
|
}
|
|
|
MessageAttachment messageAttachment = messageAttachmentList.get(0);
|
|
|
JSONObject miniprogram = new JSONObject();
|