|
@@ -524,25 +524,77 @@ public class ArticleAuditService {
|
|
// 获取token
|
|
// 获取token
|
|
String token = wxAccessTokenRemoteService.getAccessToken(entry.getKey());
|
|
String token = wxAccessTokenRemoteService.getAccessToken(entry.getKey());
|
|
List<LongArticleAuditDelete> list = entry.getValue();
|
|
List<LongArticleAuditDelete> list = entry.getValue();
|
|
- for (LongArticleAuditDelete delete : list) {
|
|
|
|
- try {
|
|
|
|
- if (Objects.equals(delete.getPushType(), PushTypeEnum.AUTO_GROUP_PUBLISH.getVal())) {
|
|
|
|
- // 删除文章
|
|
|
|
- RequestResult<String> result = wxArticleDeleteService.deleteArticle(token, delete.getMsgId(), delete.getIndex());
|
|
|
|
|
|
+ Map<String, List<LongArticleAuditDelete>> msgIdMap = list.stream()
|
|
|
|
+ .collect(Collectors.groupingBy(LongArticleAuditDelete::getMsgId));
|
|
|
|
+ List<String> msgIds = new ArrayList<>(msgIdMap.keySet());
|
|
|
|
+ List<LongArticleAuditDelete> accountAllDeleteList = longArticleAuditDeleteRepository.getByGhIdAndMsgIdIn(entry.getKey(), msgIds);
|
|
|
|
+ Map<String, List<LongArticleAuditDelete>> accountAllDeleteMap = accountAllDeleteList.stream()
|
|
|
|
+ .collect(Collectors.groupingBy(LongArticleAuditDelete::getMsgId));
|
|
|
|
+ for (Map.Entry<String, List<LongArticleAuditDelete>> msgIdEntry : msgIdMap.entrySet()) {
|
|
|
|
+ String msgId = msgIdEntry.getKey();
|
|
|
|
+ List<LongArticleAuditDelete> msgIdList = msgIdEntry.getValue();
|
|
|
|
+ Integer pushType = msgIdList.get(0).getPushType();
|
|
|
|
+ List<LongArticleAuditDelete> msgIdDeleteList = accountAllDeleteMap.get(msgId);
|
|
|
|
+ List<LongArticleAuditDelete> deleteAllCount = msgIdDeleteList.stream()
|
|
|
|
+ .filter(o -> Objects.equals(o.getStatus(), ArticleDeleteStatusEnum.SUCCESS.getCode()))
|
|
|
|
+ .filter(o -> o.getDeleteAll() == 1)
|
|
|
|
+ .collect(Collectors.toList());
|
|
|
|
+ int count = msgIdDeleteList.size();
|
|
|
|
+ int status;
|
|
|
|
+ String errMsg;
|
|
|
|
+ // 执行过全部删除,则自动置为历史状态
|
|
|
|
+ if (!deleteAllCount.isEmpty()) {
|
|
|
|
+ LongArticleAuditDelete statusDelete = deleteAllCount.get(0);
|
|
|
|
+ msgIdList.forEach(delete -> {
|
|
|
|
+ delete.setStatus(statusDelete.getStatus());
|
|
|
|
+ delete.setFailReason(statusDelete.getFailReason());
|
|
|
|
+ delete.setFinishTimestamp(System.currentTimeMillis());
|
|
|
|
+ longArticleAuditDeleteRepository.save(delete);
|
|
|
|
+ });
|
|
|
|
+ continue;
|
|
|
|
+ }
|
|
|
|
+ if (Objects.equals(pushType, PushTypeEnum.AUTO_GROUP_PUBLISH.getVal())) {
|
|
|
|
+ // 删除文章
|
|
|
|
+ if (count > 1) {
|
|
|
|
+ RequestResult<String> result = wxArticleDeleteService.deleteArticle(token, msgId, 0);
|
|
if (result.isSuccess()) {
|
|
if (result.isSuccess()) {
|
|
- delete.setStatus(ArticleDeleteStatusEnum.SUCCESS.getCode());
|
|
|
|
|
|
+ errMsg = null;
|
|
|
|
+ status = ArticleDeleteStatusEnum.SUCCESS.getCode();
|
|
} else {
|
|
} else {
|
|
- delete.setStatus(ArticleDeleteStatusEnum.FAIL.getCode());
|
|
|
|
- delete.setFailReason(result.getFailReason());
|
|
|
|
|
|
+ status = ArticleDeleteStatusEnum.FAIL.getCode();
|
|
|
|
+ errMsg = result.getFailReason();
|
|
}
|
|
}
|
|
|
|
+ msgIdList.forEach(delete -> {
|
|
|
|
+ delete.setStatus(status);
|
|
|
|
+ delete.setFailReason(errMsg);
|
|
|
|
+ delete.setDeleteAll(1);
|
|
|
|
+ delete.setFinishTimestamp(System.currentTimeMillis());
|
|
|
|
+ longArticleAuditDeleteRepository.save(delete);
|
|
|
|
+ });
|
|
} else {
|
|
} else {
|
|
|
|
+ LongArticleAuditDelete delete = msgIdList.get(0);
|
|
|
|
+ try {
|
|
|
|
+ RequestResult<String> result = wxArticleDeleteService.deleteArticle(token,
|
|
|
|
+ delete.getMsgId(), delete.getIndex());
|
|
|
|
+ if (result.isSuccess()) {
|
|
|
|
+ delete.setStatus(ArticleDeleteStatusEnum.SUCCESS.getCode());
|
|
|
|
+ } else {
|
|
|
|
+ delete.setStatus(ArticleDeleteStatusEnum.FAIL.getCode());
|
|
|
|
+ delete.setFailReason(result.getFailReason());
|
|
|
|
+ }
|
|
|
|
+ delete.setFinishTimestamp(System.currentTimeMillis());
|
|
|
|
+ longArticleAuditDeleteRepository.save(delete);
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
+ log.error("articleVideoDelete ghId:{} error", delete.getGhId(), e);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ } else {
|
|
|
|
+ msgIdList.forEach(delete -> {
|
|
deleteFailAlarmAdd(alarmList, delete.getPublishContentId(), "非自动群发", delete.getIndex());
|
|
deleteFailAlarmAdd(alarmList, delete.getPublishContentId(), "非自动群发", delete.getIndex());
|
|
delete.setStatus(ArticleDeleteStatusEnum.SUCCESS.getCode());
|
|
delete.setStatus(ArticleDeleteStatusEnum.SUCCESS.getCode());
|
|
- }
|
|
|
|
- delete.setFinishTimestamp(System.currentTimeMillis());
|
|
|
|
- longArticleAuditDeleteRepository.save(delete);
|
|
|
|
- } catch (Exception e) {
|
|
|
|
- log.error("articleVideoDelete ghId:{} error", delete.getGhId(), e);
|
|
|
|
|
|
+ delete.setFinishTimestamp(System.currentTimeMillis());
|
|
|
|
+ longArticleAuditDeleteRepository.save(delete);
|
|
|
|
+ });
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} finally {
|
|
} finally {
|