|  | @@ -524,25 +524,77 @@ public class ArticleAuditService {
 | 
	
		
			
				|  |  |                      // 获取token
 | 
	
		
			
				|  |  |                      String token = wxAccessTokenRemoteService.getAccessToken(entry.getKey());
 | 
	
		
			
				|  |  |                      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()) {
 | 
	
		
			
				|  |  | -                                    delete.setStatus(ArticleDeleteStatusEnum.SUCCESS.getCode());
 | 
	
		
			
				|  |  | +                                    errMsg = null;
 | 
	
		
			
				|  |  | +                                    status = ArticleDeleteStatusEnum.SUCCESS.getCode();
 | 
	
		
			
				|  |  |                                  } 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 {
 | 
	
		
			
				|  |  | +                                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());
 | 
	
		
			
				|  |  |                                  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 {
 |