From 8076718d040c48784bdff928ce01eb92504f1a43 Mon Sep 17 00:00:00 2001 From: Guava Date: Mon, 3 Jul 2023 11:08:25 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=8F=91=E9=80=81=E6=A1=88?= =?UTF-8?q?=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../CasesRecommendPushRecordServiceImpl.java | 60 ++++++++++++++++--- 1 file changed, 53 insertions(+), 7 deletions(-) diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesRecommendPushRecordServiceImpl.java b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesRecommendPushRecordServiceImpl.java index 5cdd8e46..6e132754 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesRecommendPushRecordServiceImpl.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesRecommendPushRecordServiceImpl.java @@ -187,7 +187,59 @@ public class CasesRecommendPushRecordServiceImpl implements ICasesRecommendPushR } //修改为推送中 updateProcessStatus(casesRecommend.getId(), CasesPushStatusEnum.PUSH_ING.getStatus()); + List caseIds = casesRecommendPushRecords.stream().map(CasesRecommendPushRecord::getCaseId).collect(Collectors.toList()); + if (caseIds.size() > 1) { + sendMixCaseRecommend(casesRecommendPushRecords); + } else { + sendSingleCaseRecommend(casesRecommendPushRecords); + } + //修改为推送完成 --- 无数据 无需推送 + updateProcessStatus(casesRecommend.getId(), CasesPushStatusEnum.PUSH_SUCCESS.getStatus()); + } + + private void sendMixCaseRecommend(List casesRecommendPushRecords) { + Map> caseMap = casesRecommendPushRecords.stream().collect(Collectors.groupingBy(CasesRecommendPushRecord::getPushUserId)); + Map userMap = casesRecommendPushRecords.stream().collect(Collectors.toMap(CasesRecommendPushRecord::getPushUserId, CasesRecommendPushRecord::getPushUserName)); + for (String userId : caseMap.keySet()) { + List pushRecords = caseMap.get(userId); + try { + Message message = new Message(); + message.setMsgType(1); + message.setAcceptId(userId); + message.setAcceptName(userMap.get(userId)); + message.setContent("案例推荐-《" + pushRecords.get(0).getCaseTitle() + "》等" + pushRecords.size() + "个案例"); + message.setIsRead(false); + message.setMsgTime(LocalDateTime.now()); + message.setRefId(null); + message.setRefType("99"); + message.setSendName(pushRecords.get(0).getSysCreateBy()); + message.setSendType(1); + message.setTitle("案例推荐"); + message.setSendAid(pushRecords.get(0).getSysCreateAid()); + message.setSource(1); +// message.setPageUrl(domain + "/pc/case/detail?id=" + casesRecommendPushRecord.getCaseId()); +// message.setPageParams(casesRecommendPushRecord.getCaseId()); + message.setPageType(3); + messageDao.save(message); + updatePushStatus(casesRecommendPushRecords, CasesPushStatusEnum.PUSH_SUCCESS.getStatus()); + } catch (Exception e) { + log.error("推荐案例失败", e); + updatePushStatus(casesRecommendPushRecords, CasesPushStatusEnum.PUSH_SUCCESS.getStatus()); + } + } + + + } + + private void updatePushStatus(List pushRecords, Integer pushStatus) { + for (CasesRecommendPushRecord pushRecord : pushRecords) { + casesRecommendPushRecordDao.updateMultiFieldById(pushRecord.getId(), UpdateBuilder.create("pushStatus", pushStatus), UpdateBuilder.create("pushTime", new Date())); + } + } + + + private void sendSingleCaseRecommend(List casesRecommendPushRecords) { for (CasesRecommendPushRecord casesRecommendPushRecord : casesRecommendPushRecords) { Integer pushStatus; @@ -197,7 +249,7 @@ public class CasesRecommendPushRecordServiceImpl implements ICasesRecommendPushR message.setMsgType(1); message.setAcceptId(casesRecommendPushRecord.getPushUserId()); message.setAcceptName(casesRecommendPushRecord.getPushUserName()); - message.setContent("案例推荐《" + casesRecommendPushRecord.getCaseTitle() + "》"); + message.setContent("案例推荐-《" + casesRecommendPushRecord.getCaseTitle() + "》"); message.setIsRead(false); message.setMsgTime(LocalDateTime.now()); message.setRefId(casesRecommendPushRecord.getId()); @@ -211,10 +263,6 @@ public class CasesRecommendPushRecordServiceImpl implements ICasesRecommendPushR message.setPageParams(casesRecommendPushRecord.getCaseId()); message.setPageType(3); messageDao.save(message); -// eventDataSender.send("案例推荐", "recommendCases", "案例推荐【" + casesRecommendPushRecord.getCaseTitle() + "】", -// casesRecommendPushRecord.getCaseId(), "99", casesRecommendPushRecord.getCaseTitle(), -// casesRecommendPushRecord.getSysCreateAid(), casesRecommendPushRecord.getSysCreateBy(), ""); - pushStatus = CasesPushStatusEnum.PUSH_SUCCESS.getStatus(); } catch (Exception e) { log.error("推荐案例失败", e); @@ -222,8 +270,6 @@ public class CasesRecommendPushRecordServiceImpl implements ICasesRecommendPushR } casesRecommendPushRecordDao.updateMultiFieldById(casesRecommendPushRecord.getId(), UpdateBuilder.create("pushStatus", pushStatus), UpdateBuilder.create("pushTime", new Date())); } - //修改为推送完成 --- 无数据 无需推送 - updateProcessStatus(casesRecommend.getId(), CasesPushStatusEnum.PUSH_SUCCESS.getStatus()); }