From 4e97cc369d562ce279d4a22610cf90b0404a9d7a Mon Sep 17 00:00:00 2001 From: luofu Date: Mon, 25 Sep 2023 14:43:16 +0800 Subject: [PATCH 01/12] =?UTF-8?q?feat(REQ-1138):=20=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E7=AB=AFApp=E6=94=B9=E7=89=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 背景: https://jira.axzo.cn/browse/REQ-1138?goToView=7 修改: 新增代办分页查询的接口 影响: 无 --- .../PendingMessageStatisticController.java | 7 +++++ .../service/PendingMessageService.java | 10 ++++++ .../impl/PendingMessageServiceImpl.java | 31 ++++++++++++++++++- .../center/api/PendingMessageServiceApi.java | 11 +++++++ .../PendingMessageServiceApiFallBack.java | 8 +++++ .../api/request/PendingMessagePageReq.java | 5 ++- 6 files changed, 70 insertions(+), 2 deletions(-) diff --git a/inside-notices/src/main/java/cn/axzo/msg/center/inside/notices/controller/pending/PendingMessageStatisticController.java b/inside-notices/src/main/java/cn/axzo/msg/center/inside/notices/controller/pending/PendingMessageStatisticController.java index d2963d84..01cb6108 100644 --- a/inside-notices/src/main/java/cn/axzo/msg/center/inside/notices/controller/pending/PendingMessageStatisticController.java +++ b/inside-notices/src/main/java/cn/axzo/msg/center/inside/notices/controller/pending/PendingMessageStatisticController.java @@ -3,12 +3,14 @@ package cn.axzo.msg.center.inside.notices.controller.pending; import cn.axzo.msg.center.api.PendingMessageServiceApi; import cn.axzo.msg.center.api.request.PendingMessagePageReq; import cn.axzo.msg.center.api.request.PendingMessageTemporarilyStatisticReq; +import cn.axzo.msg.center.api.response.PendingMessageBriefRes; import cn.axzo.msg.center.api.response.PendingMessageStatisticRes; import cn.axzo.msg.center.api.response.PendingMessageTemporarilyStatisticRes; import cn.axzo.msg.center.api.response.PendingMessageTemporarilyTypeRes; import cn.axzo.msg.center.inside.notices.config.PendingMessageBizConfig; import cn.axzo.msg.center.inside.notices.service.PendingMessageService; import cn.azxo.framework.common.model.CommonResponse; +import cn.azxo.framework.common.model.Page; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; @@ -48,4 +50,9 @@ public class PendingMessageStatisticController implements PendingMessageServiceA return CommonResponse.success(pendingMessageService.listTemporarilyTypes()); } + @Override + public CommonResponse> pageQuery(PendingMessagePageReq request) { + return CommonResponse.success(pendingMessageService.pageQuery(request)); + } + } diff --git a/inside-notices/src/main/java/cn/axzo/msg/center/inside/notices/service/PendingMessageService.java b/inside-notices/src/main/java/cn/axzo/msg/center/inside/notices/service/PendingMessageService.java index 01c09937..8cf03071 100644 --- a/inside-notices/src/main/java/cn/axzo/msg/center/inside/notices/service/PendingMessageService.java +++ b/inside-notices/src/main/java/cn/axzo/msg/center/inside/notices/service/PendingMessageService.java @@ -2,9 +2,11 @@ package cn.axzo.msg.center.inside.notices.service; import cn.axzo.msg.center.api.request.PendingMessagePageReq; import cn.axzo.msg.center.api.request.PendingMessageTemporarilyStatisticReq; +import cn.axzo.msg.center.api.response.PendingMessageBriefRes; import cn.axzo.msg.center.api.response.PendingMessageStatisticRes; import cn.axzo.msg.center.api.response.PendingMessageTemporarilyStatisticRes; import cn.axzo.msg.center.api.response.PendingMessageTemporarilyTypeRes; +import cn.azxo.framework.common.model.Page; import java.util.List; @@ -40,4 +42,12 @@ public interface PendingMessageService { * @return 待办消息临时分类的列表 */ List listTemporarilyTypes(); + + /** + * 分页查询代办消息 + * + * @param request 查询条件 + * @return 符合条件的代办消息数量 + */ + Page pageQuery(PendingMessagePageReq request); } diff --git a/inside-notices/src/main/java/cn/axzo/msg/center/inside/notices/service/impl/PendingMessageServiceImpl.java b/inside-notices/src/main/java/cn/axzo/msg/center/inside/notices/service/impl/PendingMessageServiceImpl.java index 70d9c23b..3ace25f4 100644 --- a/inside-notices/src/main/java/cn/axzo/msg/center/inside/notices/service/impl/PendingMessageServiceImpl.java +++ b/inside-notices/src/main/java/cn/axzo/msg/center/inside/notices/service/impl/PendingMessageServiceImpl.java @@ -26,9 +26,11 @@ import cn.axzo.msg.center.inside.notices.service.MessageRouterService; import cn.axzo.msg.center.inside.notices.service.PendingMessageService; import cn.axzo.msg.center.notices.common.enums.ReturnCodeEnum; import cn.axzo.msg.center.notices.common.exception.BizException; +import cn.azxo.framework.common.model.Page; import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.metadata.IPage; import com.google.common.collect.Lists; +import com.google.common.collect.Sets; import jodd.util.concurrent.ThreadFactoryBuilder; import lombok.AllArgsConstructor; import lombok.RequiredArgsConstructor; @@ -180,6 +182,31 @@ public class PendingMessageServiceImpl implements PendingMessageService { .collect(Collectors.toList()); } + @Override + public Page pageQuery(PendingMessagePageReq request) { + IPage page = request.toPage(); + // 获取数据冷热隔离的分界 + final LocalDateTime queryFrom = getQueryFromTime(); + Set relationIds = Optional.ofNullable(request.getModuleId()).map(Sets::newHashSet).orElse(null); + // 这里对前端未传入参的情况做一个兜底 + Collection msgStates = CollectionUtils.isEmpty(request.getStates()) ? ALL_WITHOUT_UNSENT : + request.getStates(); + // 分页查询message_record的数据 + page = page(request.getPersonId(), request.getIdentifyId(), request.getIdentifyTypes(), relationIds, + msgStates, queryFrom, page); + if (CollectionUtils.isEmpty(page.getRecords())) { + // 列表为空的场景 + return Page.toPage(page.getCurrent(), page.getSize(), page.getTotal(), Collections.emptyList()); + } + // 查询消息对应的路由集 + Map routerMap = listRouters(page.getRecords(), request.getSystemType()); + // 原始的数据库模型数据转化为页面展示的数据模型 + List msgRecordBriefs = page.getRecords().stream() + .map(e -> convert(e, null, routerMap)) + .collect(Collectors.toList()); + return Page.toPage(page.getCurrent(), page.getSize(), page.getTotal(), msgRecordBriefs); + } + private PendingMessageTemporarilyStatisticRes statisticAndPickFirst(PendingMessageTemporarilyStatisticReq request, MsgTempBizCategoryConfig categoryConfig, Collection identifyTypes, @@ -247,7 +274,9 @@ public class PendingMessageServiceImpl implements PendingMessageService { Map routerMap) { PendingMessageBriefRes msgBrief = BeanConvertUtils.copyBean(record, PendingMessageBriefRes.class); msgBrief.setMsgId(record.getId()); - msgBrief.setTempBizCategory(getTempCategory(record.getRelationId(), categoryConfigs)); + if (CollectionUtils.isNotEmpty(categoryConfigs)) { + msgBrief.setTempBizCategory(getTempCategory(record.getRelationId(), categoryConfigs)); + } msgBrief.setRouter(routerMap.get(record.getId())); msgBrief.setCreateTimestamp(Optional.ofNullable(record.getCreateAt()).map(Date::getTime).orElse(0L)); return msgBrief; diff --git a/msg-center-api/src/main/java/cn/axzo/msg/center/api/PendingMessageServiceApi.java b/msg-center-api/src/main/java/cn/axzo/msg/center/api/PendingMessageServiceApi.java index 1af9d477..6f8e9cc6 100644 --- a/msg-center-api/src/main/java/cn/axzo/msg/center/api/PendingMessageServiceApi.java +++ b/msg-center-api/src/main/java/cn/axzo/msg/center/api/PendingMessageServiceApi.java @@ -3,10 +3,12 @@ package cn.axzo.msg.center.api; import cn.axzo.msg.center.api.fallback.PendingMessageServiceApiFallBack; import cn.axzo.msg.center.api.request.PendingMessagePageReq; import cn.axzo.msg.center.api.request.PendingMessageTemporarilyStatisticReq; +import cn.axzo.msg.center.api.response.PendingMessageBriefRes; import cn.axzo.msg.center.api.response.PendingMessageStatisticRes; import cn.axzo.msg.center.api.response.PendingMessageTemporarilyStatisticRes; import cn.axzo.msg.center.api.response.PendingMessageTemporarilyTypeRes; import cn.azxo.framework.common.model.CommonResponse; +import cn.azxo.framework.common.model.Page; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.stereotype.Component; import org.springframework.web.bind.annotation.PostMapping; @@ -56,4 +58,13 @@ public interface PendingMessageServiceApi { */ @PostMapping("api/message/pending-msg/temporary-type/list") CommonResponse> listTemporarilyTypes(); + + /** + * 分页查询代办消息 + * + * @param request 分页查询的入参 + * @return 符合条件的待办消息 + */ + @PostMapping("api/message/pending-msg/page") + CommonResponse> pageQuery(@RequestBody PendingMessagePageReq request); } diff --git a/msg-center-api/src/main/java/cn/axzo/msg/center/api/fallback/PendingMessageServiceApiFallBack.java b/msg-center-api/src/main/java/cn/axzo/msg/center/api/fallback/PendingMessageServiceApiFallBack.java index a1e1a292..88c4c200 100644 --- a/msg-center-api/src/main/java/cn/axzo/msg/center/api/fallback/PendingMessageServiceApiFallBack.java +++ b/msg-center-api/src/main/java/cn/axzo/msg/center/api/fallback/PendingMessageServiceApiFallBack.java @@ -3,10 +3,12 @@ package cn.axzo.msg.center.api.fallback; import cn.axzo.msg.center.api.PendingMessageServiceApi; import cn.axzo.msg.center.api.request.PendingMessagePageReq; import cn.axzo.msg.center.api.request.PendingMessageTemporarilyStatisticReq; +import cn.axzo.msg.center.api.response.PendingMessageBriefRes; import cn.axzo.msg.center.api.response.PendingMessageStatisticRes; import cn.axzo.msg.center.api.response.PendingMessageTemporarilyStatisticRes; import cn.axzo.msg.center.api.response.PendingMessageTemporarilyTypeRes; import cn.azxo.framework.common.model.CommonResponse; +import cn.azxo.framework.common.model.Page; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; @@ -43,4 +45,10 @@ public class PendingMessageServiceApiFallBack implements PendingMessageServiceAp log.error("调用列表查询待办消息临时分类的接口时发送异常......"); return CommonResponse.error("调用列表查询待办消息临时分类的接口时发送异常"); } + + @Override + public CommonResponse> pageQuery(PendingMessagePageReq request) { + log.error("调用分页查询待办消息接口时发送异常......"); + return CommonResponse.error("调用分页查询待办消息接口时发送异常"); + } } diff --git a/msg-center-api/src/main/java/cn/axzo/msg/center/api/request/PendingMessagePageReq.java b/msg-center-api/src/main/java/cn/axzo/msg/center/api/request/PendingMessagePageReq.java index 5fd9411b..96217b75 100644 --- a/msg-center-api/src/main/java/cn/axzo/msg/center/api/request/PendingMessagePageReq.java +++ b/msg-center-api/src/main/java/cn/axzo/msg/center/api/request/PendingMessagePageReq.java @@ -52,6 +52,9 @@ public class PendingMessagePageReq extends PageRequest implements Serializable { /** * 系统类型 */ - @NotNull(message = "systemType is required") private String systemType; + /** + * 模板id + */ + private Long moduleId; } From 73ad751c4aac8e757ec0d18c8cabd5ae17b95244 Mon Sep 17 00:00:00 2001 From: luofu Date: Wed, 27 Sep 2023 11:02:57 +0800 Subject: [PATCH 02/12] =?UTF-8?q?feat(REQ-1138):=20=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E7=AB=AFApp=E6=94=B9=E7=89=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 背景: https://jira.axzo.cn/browse/REQ-1138?goToView=7 修改: 新增代办分页查询的接口 影响: 无 --- .../impl/PendingMessageServiceImpl.java | 70 ++++++++++++++++++- .../api/response/PendingMessageBriefRes.java | 8 +++ 2 files changed, 77 insertions(+), 1 deletion(-) diff --git a/inside-notices/src/main/java/cn/axzo/msg/center/inside/notices/service/impl/PendingMessageServiceImpl.java b/inside-notices/src/main/java/cn/axzo/msg/center/inside/notices/service/impl/PendingMessageServiceImpl.java index 3ace25f4..d92f2b6f 100644 --- a/inside-notices/src/main/java/cn/axzo/msg/center/inside/notices/service/impl/PendingMessageServiceImpl.java +++ b/inside-notices/src/main/java/cn/axzo/msg/center/inside/notices/service/impl/PendingMessageServiceImpl.java @@ -14,6 +14,7 @@ import cn.axzo.msg.center.api.response.PendingMessageTemporarilyTypeRes; import cn.axzo.msg.center.common.utils.BeanConvertUtils; import cn.axzo.msg.center.common.utils.PlaceholderResolver; import cn.axzo.msg.center.dal.MessageRecordDao; +import cn.axzo.msg.center.domain.dto.MsgModuleDTO; import cn.axzo.msg.center.domain.entity.MessageRecord; import cn.axzo.msg.center.domain.entity.MessageRouter; import cn.axzo.msg.center.domain.enums.MsgRouteTypeEnum; @@ -22,8 +23,10 @@ import cn.axzo.msg.center.domain.enums.YesNoEnum; import cn.axzo.msg.center.inside.notices.config.MessageSystemConfig; import cn.axzo.msg.center.inside.notices.config.PendingMessageBizConfig; import cn.axzo.msg.center.inside.notices.config.PendingMessageBizConfig.MsgTempBizCategoryConfig; +import cn.axzo.msg.center.inside.notices.service.MessageModuleService; import cn.axzo.msg.center.inside.notices.service.MessageRouterService; import cn.axzo.msg.center.inside.notices.service.PendingMessageService; +import cn.axzo.msg.center.inside.notices.utils.MessageRecordHelper; import cn.axzo.msg.center.notices.common.enums.ReturnCodeEnum; import cn.axzo.msg.center.notices.common.exception.BizException; import cn.azxo.framework.common.model.Page; @@ -57,6 +60,7 @@ import java.util.concurrent.ExecutorService; import java.util.concurrent.ThreadFactory; import java.util.concurrent.ThreadPoolExecutor; import java.util.concurrent.TimeUnit; +import java.util.function.Function; import java.util.stream.Collectors; @Slf4j @@ -85,6 +89,7 @@ public class PendingMessageServiceImpl implements PendingMessageService { private final MessageRecordDao messageRecordDao; private final MessageSystemConfig messageSystemConfig; private final MessageRouterService messageRouterService; + private final MessageModuleService messageModuleService; private final PendingMessageBizConfig pendingMessageBizConfig; @Override @@ -200,13 +205,65 @@ public class PendingMessageServiceImpl implements PendingMessageService { } // 查询消息对应的路由集 Map routerMap = listRouters(page.getRecords(), request.getSystemType()); + // 查询消息对应的模块集 + Map moduleMap = listMessageModules(page.getRecords()); // 原始的数据库模型数据转化为页面展示的数据模型 List msgRecordBriefs = page.getRecords().stream() - .map(e -> convert(e, null, routerMap)) + .filter(e -> moduleMap.containsKey(e.getId())) + .map(e -> convert(e, moduleMap.get(e.getId()), routerMap)) .collect(Collectors.toList()); return Page.toPage(page.getCurrent(), page.getSize(), page.getTotal(), msgRecordBriefs); } + private Map listMessageModules(List msgRecords) { + //获取relationId集合 + Set relationIds = msgRecords.stream().map(MessageRecord::getRelationId).collect(Collectors.toSet()); + if (CollectionUtils.isNotEmpty(relationIds)) { + relationIds.remove(null); + relationIds.remove(0L); + } + //获取oldTypeId集合 + Set oldTypeIds = msgRecords.stream().map(MessageRecord::getOldTypeId).collect(Collectors.toSet()); + if (CollectionUtils.isNotEmpty(oldTypeIds)) { + oldTypeIds.remove(null); + oldTypeIds.remove(0); + } + if (CollectionUtils.isEmpty(relationIds) && CollectionUtils.isEmpty(oldTypeIds)) { + return Collections.emptyMap(); + } + //获取模板列表 + List modules = messageModuleService.listModuleByRelationIdsOrTypeIds(oldTypeIds, relationIds); + //新关联键分组 + Map> relationModuleMap = modules.stream() + .filter(e -> Objects.nonNull(e.getRelationId()) && e.getRelationId() != 0) + .collect(Collectors.groupingBy(MsgModuleDTO::getRelationId)); + //老关联键分组 + Map> typeIdModuleMap = modules.stream() + .filter(e -> Objects.nonNull(e.getTypeId()) && e.getTypeId() != 0) + .collect(Collectors.groupingBy(MsgModuleDTO::getTypeId)); + return msgRecords.stream() + .map(e -> selectModule(e, relationModuleMap, typeIdModuleMap)) + .filter(Objects::nonNull) + .collect(Collectors.toMap(MsgModuleDTO::getMsgId, Function.identity(), (pre, cur) -> cur)); + } + + private MsgModuleDTO selectModule(MessageRecord record, Map> relationModuleMap, + Map> typeIdModuleMap) { + MsgModuleDTO module = null; + // 优先使用relation关联的模板 + if (MessageRecordHelper.isRelationIdValid(record.getRelationId())) { + module = relationModuleMap.get(record.getRelationId()).stream() + .findFirst().orElse(null); + } + if (Objects.isNull(module) && MessageRecordHelper.isOldTypeIdValid(record.getOldTypeId())) { + module = typeIdModuleMap.get(record.getOldTypeId()).stream() + .findFirst().orElse(null); + } + Optional.ofNullable(module) + .ifPresent(v -> v.setMsgId(record.getId())); + return module; + } + private PendingMessageTemporarilyStatisticRes statisticAndPickFirst(PendingMessageTemporarilyStatisticReq request, MsgTempBizCategoryConfig categoryConfig, Collection identifyTypes, @@ -282,6 +339,17 @@ public class PendingMessageServiceImpl implements PendingMessageService { return msgBrief; } + private PendingMessageBriefRes convert(MessageRecord record, MsgModuleDTO module, + Map routerMap) { + PendingMessageBriefRes msgBrief = BeanConvertUtils.copyBean(record, PendingMessageBriefRes.class); + msgBrief.setMsgId(record.getId()); + msgBrief.setModuleName(module.getMsgModuleName()); + msgBrief.setModuleIcon(module.getMsgModuleIcon()); + msgBrief.setRouter(routerMap.get(record.getId())); + msgBrief.setCreateTimestamp(Optional.ofNullable(record.getCreateAt()).map(Date::getTime).orElse(0L)); + return msgBrief; + } + private MsgTempBizCategoryEnum getTempCategory(Long relationId, List categoryConfigs) { return categoryConfigs.stream() .filter(e -> e.match(relationId)) diff --git a/msg-center-api/src/main/java/cn/axzo/msg/center/api/response/PendingMessageBriefRes.java b/msg-center-api/src/main/java/cn/axzo/msg/center/api/response/PendingMessageBriefRes.java index 15bf243c..e66e4c65 100644 --- a/msg-center-api/src/main/java/cn/axzo/msg/center/api/response/PendingMessageBriefRes.java +++ b/msg-center-api/src/main/java/cn/axzo/msg/center/api/response/PendingMessageBriefRes.java @@ -66,6 +66,14 @@ public class PendingMessageBriefRes implements Serializable { * 消息路由数据模型 */ private MessageRouterInfoRes router; + /** + * 模块名称 + */ + private String moduleName; + /** + * 模块图标 + */ + private String moduleIcon; @Override public String toString() { From 394f081e3487158d490f3a883d209f937c5bbf39 Mon Sep 17 00:00:00 2001 From: luofu Date: Thu, 5 Oct 2023 15:01:41 +0800 Subject: [PATCH 03/12] =?UTF-8?q?feat(REQ-1138):=20=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E7=AB=AFApp=E6=94=B9=E7=89=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 背景: https://jira.axzo.cn/browse/REQ-1138?goToView=7 修改: 新增代办分页查询的接口 影响: 无 --- .../controller/pending/PendingMessageStatisticController.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/inside-notices/src/main/java/cn/axzo/msg/center/inside/notices/controller/pending/PendingMessageStatisticController.java b/inside-notices/src/main/java/cn/axzo/msg/center/inside/notices/controller/pending/PendingMessageStatisticController.java index 01cb6108..3a100fc7 100644 --- a/inside-notices/src/main/java/cn/axzo/msg/center/inside/notices/controller/pending/PendingMessageStatisticController.java +++ b/inside-notices/src/main/java/cn/axzo/msg/center/inside/notices/controller/pending/PendingMessageStatisticController.java @@ -52,6 +52,8 @@ public class PendingMessageStatisticController implements PendingMessageServiceA @Override public CommonResponse> pageQuery(PendingMessagePageReq request) { + //FIXME:[cold_blade]这里临时处理 企业端不关注身份的场景 + request.setIdentifyId(null); return CommonResponse.success(pendingMessageService.pageQuery(request)); } From bb456d2203f389376f30a33ac2d462cff48d2508 Mon Sep 17 00:00:00 2001 From: luofu Date: Sat, 7 Oct 2023 14:17:48 +0800 Subject: [PATCH 04/12] =?UTF-8?q?feat(REQ-1138):=20=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E7=AB=AFApp=E6=94=B9=E7=89=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 背景: https://jira.axzo.cn/browse/REQ-1138?goToView=7 修改: 新增代办分页查询的接口 影响: 无 --- .../service/MessageRelationService.java | 3 +++ .../impl/MessageRelationServiceImpl.java | 13 +++++++++++ .../impl/PendingMessageServiceImpl.java | 23 +++++++++++++++++-- 3 files changed, 37 insertions(+), 2 deletions(-) diff --git a/inside-notices/src/main/java/cn/axzo/msg/center/inside/notices/service/MessageRelationService.java b/inside-notices/src/main/java/cn/axzo/msg/center/inside/notices/service/MessageRelationService.java index 4b80ceb8..7b302cf2 100644 --- a/inside-notices/src/main/java/cn/axzo/msg/center/inside/notices/service/MessageRelationService.java +++ b/inside-notices/src/main/java/cn/axzo/msg/center/inside/notices/service/MessageRelationService.java @@ -8,6 +8,7 @@ import cn.axzo.msg.center.domain.entity.MessageRelation; import com.baomidou.mybatisplus.core.metadata.IPage; import java.time.LocalDateTime; +import java.util.Collection; import java.util.List; import java.util.Set; @@ -37,4 +38,6 @@ public interface MessageRelationService { void delete(Long id); void syncData(List dtoList); + + List listRelationIds(Collection moduleIds); } diff --git a/inside-notices/src/main/java/cn/axzo/msg/center/inside/notices/service/impl/MessageRelationServiceImpl.java b/inside-notices/src/main/java/cn/axzo/msg/center/inside/notices/service/impl/MessageRelationServiceImpl.java index 18d5b616..9325d114 100644 --- a/inside-notices/src/main/java/cn/axzo/msg/center/inside/notices/service/impl/MessageRelationServiceImpl.java +++ b/inside-notices/src/main/java/cn/axzo/msg/center/inside/notices/service/impl/MessageRelationServiceImpl.java @@ -180,4 +180,17 @@ public class MessageRelationServiceImpl implements MessageRelationService { }); } + + @Override + public List listRelationIds(Collection moduleIds) { + if (CollectionUtils.isEmpty(moduleIds)) { + return Collections.emptyList(); + } + return messageRelationDao.lambdaQuery() + .in(MessageRelation::getModuleId, moduleIds) + .eq(MessageRelation::getIsDelete, 0) + .list().stream() + .map(MessageRelation::getId) + .collect(Collectors.toList()); + } } diff --git a/inside-notices/src/main/java/cn/axzo/msg/center/inside/notices/service/impl/PendingMessageServiceImpl.java b/inside-notices/src/main/java/cn/axzo/msg/center/inside/notices/service/impl/PendingMessageServiceImpl.java index d92f2b6f..afc90291 100644 --- a/inside-notices/src/main/java/cn/axzo/msg/center/inside/notices/service/impl/PendingMessageServiceImpl.java +++ b/inside-notices/src/main/java/cn/axzo/msg/center/inside/notices/service/impl/PendingMessageServiceImpl.java @@ -15,6 +15,7 @@ import cn.axzo.msg.center.common.utils.BeanConvertUtils; import cn.axzo.msg.center.common.utils.PlaceholderResolver; import cn.axzo.msg.center.dal.MessageRecordDao; import cn.axzo.msg.center.domain.dto.MsgModuleDTO; +import cn.axzo.msg.center.domain.entity.MessageModule; import cn.axzo.msg.center.domain.entity.MessageRecord; import cn.axzo.msg.center.domain.entity.MessageRouter; import cn.axzo.msg.center.domain.enums.MsgRouteTypeEnum; @@ -24,6 +25,7 @@ import cn.axzo.msg.center.inside.notices.config.MessageSystemConfig; import cn.axzo.msg.center.inside.notices.config.PendingMessageBizConfig; import cn.axzo.msg.center.inside.notices.config.PendingMessageBizConfig.MsgTempBizCategoryConfig; import cn.axzo.msg.center.inside.notices.service.MessageModuleService; +import cn.axzo.msg.center.inside.notices.service.MessageRelationService; import cn.axzo.msg.center.inside.notices.service.MessageRouterService; import cn.axzo.msg.center.inside.notices.service.PendingMessageService; import cn.axzo.msg.center.inside.notices.utils.MessageRecordHelper; @@ -33,7 +35,6 @@ import cn.azxo.framework.common.model.Page; import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.metadata.IPage; import com.google.common.collect.Lists; -import com.google.common.collect.Sets; import jodd.util.concurrent.ThreadFactoryBuilder; import lombok.AllArgsConstructor; import lombok.RequiredArgsConstructor; @@ -48,6 +49,7 @@ import java.util.Collection; import java.util.Collections; import java.util.Date; import java.util.HashMap; +import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Objects; @@ -90,6 +92,7 @@ public class PendingMessageServiceImpl implements PendingMessageService { private final MessageSystemConfig messageSystemConfig; private final MessageRouterService messageRouterService; private final MessageModuleService messageModuleService; + private final MessageRelationService messageRelationService; private final PendingMessageBizConfig pendingMessageBizConfig; @Override @@ -190,9 +193,17 @@ public class PendingMessageServiceImpl implements PendingMessageService { @Override public Page pageQuery(PendingMessagePageReq request) { IPage page = request.toPage(); + Set relationIds = null; + if (Objects.nonNull(request.getModuleId())) { + List relationIdList = listRelationIds(request.getModuleId()); + if (CollectionUtils.isEmpty(relationIdList)) { + // 对应模块及其关联的模板删除的场景 + return Page.toPage(page.getCurrent(), page.getSize(), page.getTotal(), Collections.emptyList()); + } + relationIds = new HashSet<>(relationIdList); + } // 获取数据冷热隔离的分界 final LocalDateTime queryFrom = getQueryFromTime(); - Set relationIds = Optional.ofNullable(request.getModuleId()).map(Sets::newHashSet).orElse(null); // 这里对前端未传入参的情况做一个兜底 Collection msgStates = CollectionUtils.isEmpty(request.getStates()) ? ALL_WITHOUT_UNSENT : request.getStates(); @@ -215,6 +226,14 @@ public class PendingMessageServiceImpl implements PendingMessageService { return Page.toPage(page.getCurrent(), page.getSize(), page.getTotal(), msgRecordBriefs); } + private List listRelationIds(Long moduleId) { + MessageModule module = messageModuleService.getModuleById(moduleId); + if (Objects.isNull(module)) { + return Collections.emptyList(); + } + return messageRelationService.listRelationIds(Lists.newArrayList(moduleId)); + } + private Map listMessageModules(List msgRecords) { //获取relationId集合 Set relationIds = msgRecords.stream().map(MessageRecord::getRelationId).collect(Collectors.toSet()); From 61dcb6176a49e4e6247b861357080a4d934a63ce Mon Sep 17 00:00:00 2001 From: luofu Date: Sat, 7 Oct 2023 18:33:46 +0800 Subject: [PATCH 05/12] =?UTF-8?q?feat(REQ-1138):=20=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E7=AB=AFApp=E6=94=B9=E7=89=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 背景: https://jira.axzo.cn/browse/REQ-1138?goToView=7 修改: 新增代办分页查询的接口 影响: 无 --- .../controller/pending/PendingMessageStatisticController.java | 1 + 1 file changed, 1 insertion(+) diff --git a/inside-notices/src/main/java/cn/axzo/msg/center/inside/notices/controller/pending/PendingMessageStatisticController.java b/inside-notices/src/main/java/cn/axzo/msg/center/inside/notices/controller/pending/PendingMessageStatisticController.java index 3a100fc7..d44acd5c 100644 --- a/inside-notices/src/main/java/cn/axzo/msg/center/inside/notices/controller/pending/PendingMessageStatisticController.java +++ b/inside-notices/src/main/java/cn/axzo/msg/center/inside/notices/controller/pending/PendingMessageStatisticController.java @@ -54,6 +54,7 @@ public class PendingMessageStatisticController implements PendingMessageServiceA public CommonResponse> pageQuery(PendingMessagePageReq request) { //FIXME:[cold_blade]这里临时处理 企业端不关注身份的场景 request.setIdentifyId(null); + request.setIdentifyTypes(null); return CommonResponse.success(pendingMessageService.pageQuery(request)); } From 3b07603ef1fd120cc0d232d7a8162e88be92864c Mon Sep 17 00:00:00 2001 From: luofu Date: Mon, 9 Oct 2023 14:33:15 +0800 Subject: [PATCH 06/12] =?UTF-8?q?feat(REQ-1138):=20=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E7=AB=AFApp=E6=94=B9=E7=89=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 背景: https://jira.axzo.cn/browse/REQ-1138?goToView=7 修改: 新增代办分页查询的接口 影响: 无 --- .../impl/InsideMessageModuleApiImpl.java | 40 +++++++++++++++++-- .../impl/PendingMessageServiceImpl.java | 13 +++--- .../center/api/InsideMessageModuleApi.java | 16 +++++++- .../InsideMessageModuleApiFallBack.java | 6 +++ .../api/request/PendingMessagePageReq.java | 5 +++ .../response/ModuleGroupByNameResponse.java | 40 +++++++++++++++++++ 6 files changed, 108 insertions(+), 12 deletions(-) create mode 100644 msg-center-api/src/main/java/cn/axzo/msg/center/api/response/ModuleGroupByNameResponse.java diff --git a/inside-notices/src/main/java/cn/axzo/msg/center/inside/notices/service/impl/InsideMessageModuleApiImpl.java b/inside-notices/src/main/java/cn/axzo/msg/center/inside/notices/service/impl/InsideMessageModuleApiImpl.java index 1f71d1f5..1d7dbf76 100644 --- a/inside-notices/src/main/java/cn/axzo/msg/center/inside/notices/service/impl/InsideMessageModuleApiImpl.java +++ b/inside-notices/src/main/java/cn/axzo/msg/center/inside/notices/service/impl/InsideMessageModuleApiImpl.java @@ -6,7 +6,12 @@ import cn.axzo.msg.center.api.request.CreateModuleReq; import cn.axzo.msg.center.api.request.SearchModuleReq; import cn.axzo.msg.center.api.request.SyncModuleDataReq; import cn.axzo.msg.center.api.request.UpdateModuleReq; -import cn.axzo.msg.center.api.response.*; +import cn.axzo.msg.center.api.response.CommonPlatManagerRes; +import cn.axzo.msg.center.api.response.MessageModuleRes; +import cn.axzo.msg.center.api.response.ModuleGroupByNameResponse; +import cn.axzo.msg.center.api.response.SyncModuleDataRes; +import cn.axzo.msg.center.api.response.SyncRouterDataRes; +import cn.axzo.msg.center.api.response.SyncTemplateDataRes; import cn.axzo.msg.center.common.utils.BeanConvertUtils; import cn.axzo.msg.center.domain.dto.CreateModuleDTO; import cn.axzo.msg.center.domain.dto.SearchModuleDTO; @@ -32,7 +37,14 @@ import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; -import java.util.*; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Objects; import java.util.function.Function; import java.util.stream.Collectors; @@ -40,7 +52,6 @@ import java.util.stream.Collectors; @RestController public class InsideMessageModuleApiImpl implements InsideMessageModuleApi { - @Resource private MessageModuleService moduleService; @Resource @@ -52,7 +63,6 @@ public class InsideMessageModuleApiImpl implements InsideMessageModuleApi { @Resource private MessageRouterService routerService; - @Override public CommonResponse> getModules(@PathVariable Integer identityType) { Map moduleMap = new HashMap<>(); @@ -201,4 +211,26 @@ public class InsideMessageModuleApiImpl implements InsideMessageModuleApi { moduleService.syncData(syncModuleDataDTOS); return CommonResponse.success(); } + + @Override + public CommonResponse> listModulesGroupByName() { + Map> resultList = groupByField(MessageModule::getModuleName); + List responses = resultList.entrySet().stream() + .map(e -> ModuleGroupByNameResponse.builder() + .moduleName(e.getKey()) + .ids(e.getValue()) + .build()) + .collect(Collectors.toList()); + return CommonResponse.success(responses); + } + + private Map> groupByField(Function groupByField) { + if (Objects.isNull(groupByField)) { + log.warn("groupByField is null..."); + return Collections.emptyMap(); + } + return moduleService.getAllModules().stream() + .collect(Collectors.groupingBy(groupByField, + Collectors.mapping(MessageModule::getId, Collectors.toList()))); + } } diff --git a/inside-notices/src/main/java/cn/axzo/msg/center/inside/notices/service/impl/PendingMessageServiceImpl.java b/inside-notices/src/main/java/cn/axzo/msg/center/inside/notices/service/impl/PendingMessageServiceImpl.java index afc90291..5db361a0 100644 --- a/inside-notices/src/main/java/cn/axzo/msg/center/inside/notices/service/impl/PendingMessageServiceImpl.java +++ b/inside-notices/src/main/java/cn/axzo/msg/center/inside/notices/service/impl/PendingMessageServiceImpl.java @@ -194,8 +194,8 @@ public class PendingMessageServiceImpl implements PendingMessageService { public Page pageQuery(PendingMessagePageReq request) { IPage page = request.toPage(); Set relationIds = null; - if (Objects.nonNull(request.getModuleId())) { - List relationIdList = listRelationIds(request.getModuleId()); + if (CollectionUtils.isNotEmpty(request.getModuleIds())) { + List relationIdList = listRelationIds(request.getModuleIds()); if (CollectionUtils.isEmpty(relationIdList)) { // 对应模块及其关联的模板删除的场景 return Page.toPage(page.getCurrent(), page.getSize(), page.getTotal(), Collections.emptyList()); @@ -226,12 +226,13 @@ public class PendingMessageServiceImpl implements PendingMessageService { return Page.toPage(page.getCurrent(), page.getSize(), page.getTotal(), msgRecordBriefs); } - private List listRelationIds(Long moduleId) { - MessageModule module = messageModuleService.getModuleById(moduleId); - if (Objects.isNull(module)) { + private List listRelationIds(List moduleIds) { + List modules = messageModuleService.getModuleByIds(moduleIds); + if (CollectionUtils.isEmpty(modules)) { return Collections.emptyList(); } - return messageRelationService.listRelationIds(Lists.newArrayList(moduleId)); + moduleIds = modules.stream().map(MessageModule::getId).collect(Collectors.toList()); + return messageRelationService.listRelationIds(moduleIds); } private Map listMessageModules(List msgRecords) { diff --git a/msg-center-api/src/main/java/cn/axzo/msg/center/api/InsideMessageModuleApi.java b/msg-center-api/src/main/java/cn/axzo/msg/center/api/InsideMessageModuleApi.java index 249b146a..867392eb 100644 --- a/msg-center-api/src/main/java/cn/axzo/msg/center/api/InsideMessageModuleApi.java +++ b/msg-center-api/src/main/java/cn/axzo/msg/center/api/InsideMessageModuleApi.java @@ -7,11 +7,17 @@ import cn.axzo.msg.center.api.request.SyncModuleDataReq; import cn.axzo.msg.center.api.request.UpdateModuleReq; import cn.axzo.msg.center.api.response.CommonPlatManagerRes; import cn.axzo.msg.center.api.response.MessageModuleRes; +import cn.axzo.msg.center.api.response.ModuleGroupByNameResponse; import cn.axzo.msg.center.api.response.SyncModuleDataRes; import cn.azxo.framework.common.model.CommonResponse; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.stereotype.Component; -import org.springframework.web.bind.annotation.*; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestParam; import java.util.List; import java.util.Map; @@ -82,5 +88,11 @@ public interface InsideMessageModuleApi { @PostMapping ("/sync/module/data") CommonResponse syncData(@RequestBody List dtoList); - + /** + * 查询模块列表并分组 + * + * @return 分组后的模块列表 + */ + @GetMapping("/module/group-by-name") + CommonResponse> listModulesGroupByName(); } diff --git a/msg-center-api/src/main/java/cn/axzo/msg/center/api/fallback/InsideMessageModuleApiFallBack.java b/msg-center-api/src/main/java/cn/axzo/msg/center/api/fallback/InsideMessageModuleApiFallBack.java index 281d49d5..a87b29ba 100644 --- a/msg-center-api/src/main/java/cn/axzo/msg/center/api/fallback/InsideMessageModuleApiFallBack.java +++ b/msg-center-api/src/main/java/cn/axzo/msg/center/api/fallback/InsideMessageModuleApiFallBack.java @@ -7,6 +7,7 @@ import cn.axzo.msg.center.api.request.SyncModuleDataReq; import cn.axzo.msg.center.api.request.UpdateModuleReq; import cn.axzo.msg.center.api.response.CommonPlatManagerRes; import cn.axzo.msg.center.api.response.MessageModuleRes; +import cn.axzo.msg.center.api.response.ModuleGroupByNameResponse; import cn.axzo.msg.center.api.response.SyncModuleDataRes; import cn.azxo.framework.common.model.CommonResponse; import lombok.extern.slf4j.Slf4j; @@ -63,4 +64,9 @@ public class InsideMessageModuleApiFallBack implements InsideMessageModuleApi { public CommonResponse syncData(List dtoList) { return null; } + + @Override + public CommonResponse> listModulesGroupByName() { + return null; + } } diff --git a/msg-center-api/src/main/java/cn/axzo/msg/center/api/request/PendingMessagePageReq.java b/msg-center-api/src/main/java/cn/axzo/msg/center/api/request/PendingMessagePageReq.java index 96217b75..034190cb 100644 --- a/msg-center-api/src/main/java/cn/axzo/msg/center/api/request/PendingMessagePageReq.java +++ b/msg-center-api/src/main/java/cn/axzo/msg/center/api/request/PendingMessagePageReq.java @@ -10,6 +10,7 @@ import lombok.Setter; import javax.validation.constraints.NotNull; import java.io.Serializable; import java.util.Collection; +import java.util.List; /** * @description @@ -57,4 +58,8 @@ public class PendingMessagePageReq extends PageRequest implements Serializable { * 模板id */ private Long moduleId; + /** + * 模块id列表 + */ + private List moduleIds; } diff --git a/msg-center-api/src/main/java/cn/axzo/msg/center/api/response/ModuleGroupByNameResponse.java b/msg-center-api/src/main/java/cn/axzo/msg/center/api/response/ModuleGroupByNameResponse.java new file mode 100644 index 00000000..d16084c3 --- /dev/null +++ b/msg-center-api/src/main/java/cn/axzo/msg/center/api/response/ModuleGroupByNameResponse.java @@ -0,0 +1,40 @@ +package cn.axzo.msg.center.api.response; + +import com.alibaba.fastjson.JSON; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +import java.io.Serializable; +import java.util.List; + +/** + * @author cold_blade + * @date 2023/10/9 + * @version 1.0 + */ +@Setter +@Getter +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class ModuleGroupByNameResponse implements Serializable { + + private static final long serialVersionUID = -6354884288735626666L; + + /** + * 模块id列表 + */ + private List ids; + /** + * 模块名称 + */ + private String moduleName; + + @Override + public String toString() { + return JSON.toJSONString(this); + } +} From ba0eae53db7511573e2dd396644e83434f82ac88 Mon Sep 17 00:00:00 2001 From: luofu Date: Mon, 9 Oct 2023 15:18:49 +0800 Subject: [PATCH 07/12] =?UTF-8?q?feat(REQ-1138):=20=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E7=AB=AFApp=E6=94=B9=E7=89=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 背景: https://jira.axzo.cn/browse/REQ-1138?goToView=7 修改: 新增代办分页查询的接口 影响: 无 --- .../java/cn/axzo/msg/center/api/InsideMessageModuleApi.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/msg-center-api/src/main/java/cn/axzo/msg/center/api/InsideMessageModuleApi.java b/msg-center-api/src/main/java/cn/axzo/msg/center/api/InsideMessageModuleApi.java index 867392eb..5b17ffab 100644 --- a/msg-center-api/src/main/java/cn/axzo/msg/center/api/InsideMessageModuleApi.java +++ b/msg-center-api/src/main/java/cn/axzo/msg/center/api/InsideMessageModuleApi.java @@ -22,7 +22,7 @@ import org.springframework.web.bind.annotation.RequestParam; import java.util.List; import java.util.Map; -@FeignClient(name = "msg-center", url = "${server.serviceUrl}", fallback = InsideMessageModuleApiFallBack.class) +@FeignClient(name = "msg-center", url = "${server.serviceUrl:http://msg-center:8080}", fallback = InsideMessageModuleApiFallBack.class) @Component public interface InsideMessageModuleApi { From e41a4ad1162cf4d949782e2cd2fe33a60fb15c85 Mon Sep 17 00:00:00 2001 From: luofu Date: Mon, 9 Oct 2023 18:57:32 +0800 Subject: [PATCH 08/12] =?UTF-8?q?feat(REQ-1138):=20=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E7=AB=AFApp=E6=94=B9=E7=89=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 背景: https://jira.axzo.cn/browse/REQ-1138?goToView=7 修改: 新增代办分页查询的接口 影响: 无 --- .../controller/pending/PendingMessageStatisticController.java | 3 --- .../notices/service/impl/InsideMessageModuleApiImpl.java | 1 + 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/inside-notices/src/main/java/cn/axzo/msg/center/inside/notices/controller/pending/PendingMessageStatisticController.java b/inside-notices/src/main/java/cn/axzo/msg/center/inside/notices/controller/pending/PendingMessageStatisticController.java index d44acd5c..01cb6108 100644 --- a/inside-notices/src/main/java/cn/axzo/msg/center/inside/notices/controller/pending/PendingMessageStatisticController.java +++ b/inside-notices/src/main/java/cn/axzo/msg/center/inside/notices/controller/pending/PendingMessageStatisticController.java @@ -52,9 +52,6 @@ public class PendingMessageStatisticController implements PendingMessageServiceA @Override public CommonResponse> pageQuery(PendingMessagePageReq request) { - //FIXME:[cold_blade]这里临时处理 企业端不关注身份的场景 - request.setIdentifyId(null); - request.setIdentifyTypes(null); return CommonResponse.success(pendingMessageService.pageQuery(request)); } diff --git a/inside-notices/src/main/java/cn/axzo/msg/center/inside/notices/service/impl/InsideMessageModuleApiImpl.java b/inside-notices/src/main/java/cn/axzo/msg/center/inside/notices/service/impl/InsideMessageModuleApiImpl.java index 1d7dbf76..ac7bc8bb 100644 --- a/inside-notices/src/main/java/cn/axzo/msg/center/inside/notices/service/impl/InsideMessageModuleApiImpl.java +++ b/inside-notices/src/main/java/cn/axzo/msg/center/inside/notices/service/impl/InsideMessageModuleApiImpl.java @@ -216,6 +216,7 @@ public class InsideMessageModuleApiImpl implements InsideMessageModuleApi { public CommonResponse> listModulesGroupByName() { Map> resultList = groupByField(MessageModule::getModuleName); List responses = resultList.entrySet().stream() + .filter(e -> !"项目公告".equals(e.getKey())) .map(e -> ModuleGroupByNameResponse.builder() .moduleName(e.getKey()) .ids(e.getValue()) From bf8038f87103d1b2a8379651b2260ed1dd342ae9 Mon Sep 17 00:00:00 2001 From: luofu Date: Wed, 11 Oct 2023 14:27:51 +0800 Subject: [PATCH 09/12] =?UTF-8?q?feat(REQ-1138):=20=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E7=AB=AFApp=E6=94=B9=E7=89=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 背景: https://jira.axzo.cn/browse/REQ-1138?goToView=7 修改: 新增代办分页查询的接口 影响: 无 --- .../axzo/msg/center/api/response/PendingMessageBriefRes.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/msg-center-api/src/main/java/cn/axzo/msg/center/api/response/PendingMessageBriefRes.java b/msg-center-api/src/main/java/cn/axzo/msg/center/api/response/PendingMessageBriefRes.java index e66e4c65..55a06215 100644 --- a/msg-center-api/src/main/java/cn/axzo/msg/center/api/response/PendingMessageBriefRes.java +++ b/msg-center-api/src/main/java/cn/axzo/msg/center/api/response/PendingMessageBriefRes.java @@ -47,6 +47,10 @@ public class PendingMessageBriefRes implements Serializable { * 消息关联的终端名称:企业名/项目名 */ private String terminalName; + /** + * 消息所属标识Id 用于跳转 + */ + private Long terminalId; /** * 消息时间戳 */ From f825c6ce3bd13f799d5aa4ca7a18eb2feaa2f14f Mon Sep 17 00:00:00 2001 From: luofu Date: Wed, 11 Oct 2023 16:17:07 +0800 Subject: [PATCH 10/12] =?UTF-8?q?feat(REQ-1138):=20=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E7=AB=AFApp=E6=94=B9=E7=89=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 背景: https://jira.axzo.cn/browse/REQ-1138?goToView=7 修改: 新增代办分页查询的接口 影响: 无 --- .../notices/service/impl/IYouMengMessageServiceImpl.java | 4 ++-- .../notices/service/impl/MessageRecordServiceImpl.java | 1 + .../center/inside/notices/service/umeng/UpushService.java | 6 ++++-- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/inside-notices/src/main/java/cn/axzo/msg/center/inside/notices/service/impl/IYouMengMessageServiceImpl.java b/inside-notices/src/main/java/cn/axzo/msg/center/inside/notices/service/impl/IYouMengMessageServiceImpl.java index 7ff16e42..6bf46670 100644 --- a/inside-notices/src/main/java/cn/axzo/msg/center/inside/notices/service/impl/IYouMengMessageServiceImpl.java +++ b/inside-notices/src/main/java/cn/axzo/msg/center/inside/notices/service/impl/IYouMengMessageServiceImpl.java @@ -39,9 +39,9 @@ public class IYouMengMessageServiceImpl implements IYouMengMessageService { msg.setMsgId(extraData.getLong("msgId")); msg.setType(extraData.getInteger("type")); try { - upushService.sendAndroidCustomizedcast(msg, msgFromClient); + upushService.sendAndroidCustomizedcast(msg, msgFromClient, extraData); msg.setRouter(extraData.getString("ir")); - upushService.sendIOSCustomizedcast(msg, msgFromClient); + upushService.sendIOSCustomizedcast(msg, msgFromClient, extraData); } catch (Exception e) { log.error("推送消息发送失败:{}", e.getMessage()); } diff --git a/inside-notices/src/main/java/cn/axzo/msg/center/inside/notices/service/impl/MessageRecordServiceImpl.java b/inside-notices/src/main/java/cn/axzo/msg/center/inside/notices/service/impl/MessageRecordServiceImpl.java index 77d4b860..e7b77032 100644 --- a/inside-notices/src/main/java/cn/axzo/msg/center/inside/notices/service/impl/MessageRecordServiceImpl.java +++ b/inside-notices/src/main/java/cn/axzo/msg/center/inside/notices/service/impl/MessageRecordServiceImpl.java @@ -309,6 +309,7 @@ public class MessageRecordServiceImpl implements MessageRecordService { } }); } + extra.put("terminalId", message.getTerminalId()); extra.put("msgId", message.getId()); extra.put("p", message.getRouterParams()); extra.put("t", message.getTitle()); diff --git a/inside-notices/src/main/java/cn/axzo/msg/center/inside/notices/service/umeng/UpushService.java b/inside-notices/src/main/java/cn/axzo/msg/center/inside/notices/service/umeng/UpushService.java index 414649a2..372346ca 100644 --- a/inside-notices/src/main/java/cn/axzo/msg/center/inside/notices/service/umeng/UpushService.java +++ b/inside-notices/src/main/java/cn/axzo/msg/center/inside/notices/service/umeng/UpushService.java @@ -163,7 +163,7 @@ public class UpushService { client.send(groupcast); } - public void sendAndroidCustomizedcast(Message message, MsgBody4Guest msgFromClient) + public void sendAndroidCustomizedcast(Message message, MsgBody4Guest msgFromClient, com.alibaba.fastjson.JSONObject extraData) throws Exception { AndroidCustomizedcast customizedcast; @@ -214,6 +214,7 @@ public class UpushService { customizedcast.setExtraField("fromGrade", message.getFromGrade()); customizedcast.setExtraField("router", message.getRouter()); customizedcast.setExtraField("msgId", String.valueOf(message.getMsgId())); + customizedcast.setExtraField("terminalId", extraData.getString("terminalId")); String audio = message.getAudio(); if (audio != null) { customizedcast.setExtraField("audio", message.getAudio()); @@ -227,7 +228,7 @@ public class UpushService { } - public void sendIOSCustomizedcast(Message message, MsgBody4Guest msgFromClient) + public void sendIOSCustomizedcast(Message message, MsgBody4Guest msgFromClient, com.alibaba.fastjson.JSONObject extraData) throws Exception { IOSCustomizedcast customizedcast; if (Objects.nonNull(msgFromClient.getAppClient()) && "cmp".equals(msgFromClient.getAppClient())) { @@ -272,6 +273,7 @@ public class UpushService { .setCustomizedField("conversationId", String.valueOf(message.getConversationId())); customizedcast.setCustomizedField("params", message.getParams()); customizedcast.setCustomizedField("msgId", String.valueOf(message.getMsgId())); + customizedcast.setCustomizedField("terminalId", extraData.getString("terminalId")); // TODO Set your alias and alias_type here, and use comma to split them if there are multiple alias. // And if you have many alias, you can also upload a file containing these alias, then // use file_id to send customized notification. From dbe4eb5d348cf33227cfedc067582e2d281e61eb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=87=91=E6=B5=B7=E6=B4=8B?= Date: Fri, 13 Oct 2023 14:42:49 +0800 Subject: [PATCH 11/12] =?UTF-8?q?fix(server):=20=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E6=B6=88=E6=81=AF=E5=88=97=E8=A1=A8=E6=9F=A5=E8=AF=A2=E7=9A=84?= =?UTF-8?q?=E6=97=B6=E5=80=99=E5=8E=BB=E6=8E=89=E6=97=A0=E8=BA=AB=E4=BB=BD?= =?UTF-8?q?=E7=B1=BB=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/mapper/MessageRecordMapper.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/msg-center-dal/src/main/resources/mapper/MessageRecordMapper.xml b/msg-center-dal/src/main/resources/mapper/MessageRecordMapper.xml index e3ce7543..2835d5ea 100644 --- a/msg-center-dal/src/main/resources/mapper/MessageRecordMapper.xml +++ b/msg-center-dal/src/main/resources/mapper/MessageRecordMapper.xml @@ -55,9 +55,9 @@ and record.is_delete = 0 and ( (record.to_id = #{identityId} and record.receive_type = #{receiveType}) - - or (record.to_id = 0 and record.receive_type = 9 and record.person_id = #{personId} ) - + + + ) and record.state in From 2be81358ee22590047bc4bfb0eb8f8a9accdfb6a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=87=91=E6=B5=B7=E6=B4=8B?= Date: Fri, 13 Oct 2023 17:08:13 +0800 Subject: [PATCH 12/12] =?UTF-8?q?feat(server):=20=E5=B1=8F=E8=94=BD?= =?UTF-8?q?=E4=BA=A4=E6=98=93=E7=BB=9F=E8=AE=A1=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../inside/notices/service/impl/MessageRecordServiceImpl.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/inside-notices/src/main/java/cn/axzo/msg/center/inside/notices/service/impl/MessageRecordServiceImpl.java b/inside-notices/src/main/java/cn/axzo/msg/center/inside/notices/service/impl/MessageRecordServiceImpl.java index e7b77032..807fd5a6 100644 --- a/inside-notices/src/main/java/cn/axzo/msg/center/inside/notices/service/impl/MessageRecordServiceImpl.java +++ b/inside-notices/src/main/java/cn/axzo/msg/center/inside/notices/service/impl/MessageRecordServiceImpl.java @@ -486,8 +486,8 @@ public class MessageRecordServiceImpl implements MessageRecordService { ); calcCount(constructionList, res); - List tradeList = messageRecordDao.statisticsMsg4Trade(personId); - calcCount(tradeList, res); +// List tradeList = messageRecordDao.statisticsMsg4Trade(personId); +// calcCount(tradeList, res); return res; }