Commit a0c18b8d by 王祖波

查询群发结果重试

parent 6e1d26f9
...@@ -23,8 +23,6 @@ public class QwSendApiServiceImpl implements QwSendApiService { ...@@ -23,8 +23,6 @@ public class QwSendApiServiceImpl implements QwSendApiService {
@Autowired @Autowired
private QwSendMsgService qwSendMsgService; private QwSendMsgService qwSendMsgService;
@Autowired
private EnterpriseAdaptor enterpriseAdaptor;
@Override @Override
public ServiceResponse<Void> qwSendRefreshByMQ(String message) { public ServiceResponse<Void> qwSendRefreshByMQ(String message) {
...@@ -32,17 +30,13 @@ public class QwSendApiServiceImpl implements QwSendApiService { ...@@ -32,17 +30,13 @@ public class QwSendApiServiceImpl implements QwSendApiService {
return ServiceResponse.success(); return ServiceResponse.success();
} }
DealQwSendDTO dealQwSendDTO = JSONObject.parseObject(message, DealQwSendDTO.class); DealQwSendDTO dealQwSendDTO = JSONObject.parseObject(message, DealQwSendDTO.class);
boolean hasRight = enterpriseAdaptor.checkEnterpriseHasRight(dealQwSendDTO.getEnterpriseId(), EnterpriseServiceEnum.POTENTIAL.getRightMenuCode());
if (!hasRight) {
return ServiceResponse.success();
}
Integer refreshType = dealQwSendDTO.getRefreshType(); Integer refreshType = dealQwSendDTO.getRefreshType();
log.info("刷新企微发送记录:{}", message); log.info("刷新企微发送记录:{}", message);
if (Objects.equals(refreshType,1)) { if (Objects.equals(refreshType,1)) {
qwSendMsgService.finishQwSend(dealQwSendDTO.getFinishQwSend(),dealQwSendDTO.getTryCount()); qwSendMsgService.finishQwSend(dealQwSendDTO.getFinishQwSend(),dealQwSendDTO.getTryCount());
} else if (Objects.equals(refreshType, 2)) { } else if (Objects.equals(refreshType, 2)) {
qwSendMsgService.refreshQwSendLog(dealQwSendDTO.getQwSendMsg()); qwSendMsgService.refreshQwSendLog(dealQwSendDTO);
} }
return ServiceResponse.success(); return ServiceResponse.success();
} }
......
...@@ -20,8 +20,8 @@ public interface QwSendMsgService { ...@@ -20,8 +20,8 @@ public interface QwSendMsgService {
/** /**
* 刷新企微群结果 * 刷新企微群结果
* @param qwSendMsg * @param dealQwSendDTO
*/ */
void refreshQwSendLog(DealQwSendDTO.QwSendMsgBO qwSendMsg); void refreshQwSendLog(DealQwSendDTO dealQwSendDTO);
} }
...@@ -102,11 +102,29 @@ public class QwSendMsgServiceImpl implements QwSendMsgService { ...@@ -102,11 +102,29 @@ public class QwSendMsgServiceImpl implements QwSendMsgService {
} }
@Override @Override
public void refreshQwSendLog(DealQwSendDTO.QwSendMsgBO qwSendMsg) { public void refreshQwSendLog(DealQwSendDTO dealQwSendDTO) {
DealQwSendDTO.QwSendMsgBO qwSendMsg = dealQwSendDTO.getQwSendMsg();
List<GroupSendResultBO> sendResultList = getSendResultList(qwSendMsg); List<GroupSendResultBO> sendResultList = getSendResultList(qwSendMsg);
if (CollectionUtils.isEmpty(sendResultList)) { if (CollectionUtils.isEmpty(sendResultList)) {
return; return;
} }
//判断是否已经发送
List<GroupSendResultBO> noSendList = sendResultList.stream().filter(dto -> Objects.equals(dto.getStatus(), 0))
.collect(Collectors.toList());
if (!CollectionUtils.isEmpty(noSendList)) {
Integer tryCount = dealQwSendDTO.getTryCount();
if (tryCount != null && tryCount >= 10) {
return;
}
if (tryCount == null) {
tryCount = 0;
}
// 重新刷新
dealQwSendDTO.setRefreshType(2);
dealQwSendDTO.setTryCount(++tryCount);
MqUtils.sendMessageToMQ("qwSendRefreshByMQ", JSON.toJSONString(dealQwSendDTO), 60);
return;
}
log.info("刷新企微群发结果:{}", qwSendMsg.getMsgId()); log.info("刷新企微群发结果:{}", qwSendMsg.getMsgId());
List<TabQwSendLog> entities; List<TabQwSendLog> entities;
List<List<GroupSendResultBO>> partition = Lists.partition(sendResultList, 1000); List<List<GroupSendResultBO>> partition = Lists.partition(sendResultList, 1000);
...@@ -163,10 +181,7 @@ public class QwSendMsgServiceImpl implements QwSendMsgService { ...@@ -163,10 +181,7 @@ public class QwSendMsgServiceImpl implements QwSendMsgService {
log.error("未查询到userid"); log.error("未查询到userid");
return Collections.emptyList(); return Collections.emptyList();
} }
List<GroupSendResultBO> sendResultList = getSendResult(qwSendMsg.getWxEnterpriseId(), qwSendMsg.getMsgId(), newWxUserId); return getSendResult(qwSendMsg.getWxEnterpriseId(), qwSendMsg.getMsgId(), newWxUserId);
//判断是否已经发送
return sendResultList.stream().filter(dto -> !Objects.equals(dto.getStatus(), 0))
.collect(Collectors.toList());
} }
public List<GroupSendResultBO> getSendResult(String wxEnterpriseId, String msgId, String userId) { public List<GroupSendResultBO> getSendResult(String wxEnterpriseId, String msgId, String userId) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment