From 454631e648a7fec7fa5f871b27541c550f13c8b1 Mon Sep 17 00:00:00 2001 From: yangqicheng Date: Fri, 1 Nov 2024 13:51:34 +0800 Subject: [PATCH] =?UTF-8?q?REQ-2595-=E5=BE=85=E5=8A=9E=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E7=AB=AF=E6=9F=A5=E8=AF=A2=E6=9D=A1=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/todo/TodoSimpleQueryService.java | 25 ++++++++++++++++++- .../pending/request/GetTodoPageRequest.java | 5 +++- 2 files changed, 28 insertions(+), 2 deletions(-) diff --git a/inside-notices/src/main/java/cn/axzo/msg/center/message/service/todo/TodoSimpleQueryService.java b/inside-notices/src/main/java/cn/axzo/msg/center/message/service/todo/TodoSimpleQueryService.java index 131e7dd7..0b049552 100644 --- a/inside-notices/src/main/java/cn/axzo/msg/center/message/service/todo/TodoSimpleQueryService.java +++ b/inside-notices/src/main/java/cn/axzo/msg/center/message/service/todo/TodoSimpleQueryService.java @@ -1,5 +1,6 @@ package cn.axzo.msg.center.message.service.todo; +import cn.axzo.maokai.api.vo.response.tree.ValueNode; import cn.axzo.msg.center.common.enums.TableIsDeleteEnum; import cn.axzo.msg.center.common.utils.BizAssertions; import cn.axzo.msg.center.dal.TodoBusinessDao; @@ -8,6 +9,8 @@ import cn.axzo.msg.center.domain.entity.PendingRecordAdapter; import cn.axzo.msg.center.domain.entity.Todo; import cn.axzo.msg.center.domain.entity.TodoBusiness; import cn.axzo.msg.center.inside.notices.config.PendingMessageBizConfig; +import cn.axzo.msg.center.message.service.group.GroupTemplateService; +import cn.axzo.msg.center.message.service.group.NodeWrapper; import cn.axzo.msg.center.service.enums.BizCategoryEnum; import cn.axzo.msg.center.service.enums.TerminalTypeEnum; import cn.axzo.msg.center.service.enums.TodoQueryType; @@ -32,6 +35,7 @@ import java.util.Collections; import java.util.EnumMap; import java.util.List; import java.util.Map; +import java.util.stream.Collectors; import static java.util.Comparator.comparing; import static java.util.stream.Collectors.groupingBy; @@ -49,6 +53,7 @@ public class TodoSimpleQueryService { private final TodoDao todoDao; private final TodoRespBuilder todoRespBuilder; private final PendingMessageBizConfig cfg; + private final GroupTemplateService groupTemplateService; public PendingMessageResponse query(PendingMessageQueryRequest req) { // 虽然通过code可以查询到唯一的记录, 把一些事情交给数据库去库, 成本不高 @@ -183,9 +188,27 @@ public class TodoSimpleQueryService { } public Page getTodosSimplePage(GetTodoPageRequest request) { + List groupTempCodes = null; + if (request.getAppTerminalType() != null) { + List> nodes = groupTemplateService.getTodoGroups(request.getAppTerminalType()); + groupTempCodes = groupTemplateService.collectTemplateCodes(nodes); + } + List valuableTempCodes = new ArrayList<>(); + if (CollectionUtils.isNotEmpty(groupTempCodes)) { + if (CollectionUtils.isNotEmpty(request.getTemplateCodes())) { + valuableTempCodes.addAll(request.getTemplateCodes().stream() + .filter(groupTempCodes::contains) + .collect(Collectors.toList())); + } else { + valuableTempCodes.addAll(groupTempCodes); + } + } else if (CollectionUtils.isNotEmpty(request.getTemplateCodes())) { + valuableTempCodes.addAll(request.getTemplateCodes()); + } + IPage page = todoDao.lambdaQuery() .in(CollectionUtils.isNotEmpty(request.getIdentityCodes()), Todo::getIdentityCode, request.getIdentityCodes()) - .in(CollectionUtils.isNotEmpty(request.getTemplateCodes()), Todo::getTemplateCode, request.getTemplateCodes()) + .in(CollectionUtils.isNotEmpty(valuableTempCodes), Todo::getTemplateCode, request.getTemplateCodes()) .in(CollectionUtils.isNotEmpty(request.getBizCodes()), Todo::getBizCode, request.getBizCodes()) .in(CollectionUtils.isNotEmpty(request.getStates()), Todo::getState, request.getStates()) .likeRight(StringUtils.isNotBlank(request.getTitleLike()), Todo::getTitle, request.getTitleLike()) diff --git a/msg-center-api/src/main/java/cn/axzo/msg/center/service/pending/request/GetTodoPageRequest.java b/msg-center-api/src/main/java/cn/axzo/msg/center/service/pending/request/GetTodoPageRequest.java index 197b359a..47b5c2d6 100644 --- a/msg-center-api/src/main/java/cn/axzo/msg/center/service/pending/request/GetTodoPageRequest.java +++ b/msg-center-api/src/main/java/cn/axzo/msg/center/service/pending/request/GetTodoPageRequest.java @@ -1,8 +1,10 @@ package cn.axzo.msg.center.service.pending.request; import cn.axzo.basics.common.page.PageRequest; +import cn.axzo.msg.center.service.enums.AppTerminalTypeEnum; import cn.axzo.msg.center.service.enums.BizCategoryEnum; import cn.axzo.msg.center.service.enums.PendingMessageStateEnum; +import cn.axzo.msg.center.service.enums.TerminalTypeEnum; import com.alibaba.fastjson.JSON; import lombok.AllArgsConstructor; import lombok.Data; @@ -19,7 +21,8 @@ import java.util.Set; @NoArgsConstructor @AllArgsConstructor public class GetTodoPageRequest extends PageRequest { - + private TerminalTypeEnum terminalType; + private AppTerminalTypeEnum appTerminalType; private String titleLike; private BizCategoryEnum bizCategory; private Set identityCodes;