From 5887c736a1b0bef653fb5d69fb81d0da4ec97ae2 Mon Sep 17 00:00:00 2001 From: yanglin Date: Mon, 2 Sep 2024 13:49:07 +0800 Subject: [PATCH 1/2] =?UTF-8?q?REQ-2699:=20=E5=88=A0=E9=99=A4=E6=97=A0?= =?UTF-8?q?=E7=94=A8=E5=8D=95=E4=BD=8D=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../axzo/msg/center/api/MessageAPIV4Test.java | 31 ------------------- 1 file changed, 31 deletions(-) delete mode 100644 start/src/test/java/cn/axzo/msg/center/api/MessageAPIV4Test.java diff --git a/start/src/test/java/cn/axzo/msg/center/api/MessageAPIV4Test.java b/start/src/test/java/cn/axzo/msg/center/api/MessageAPIV4Test.java deleted file mode 100644 index 5fe3d971..00000000 --- a/start/src/test/java/cn/axzo/msg/center/api/MessageAPIV4Test.java +++ /dev/null @@ -1,31 +0,0 @@ -package cn.axzo.msg.center.api; - -import cn.axzo.msg.center.MsgCenterApplication; -import cn.axzo.msg.center.api.request.v4.MessageSendRequestV4; -import com.alibaba.fastjson.JSON; -import lombok.RequiredArgsConstructor; -import org.junit.jupiter.api.Test; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.annotation.Commit; -import org.springframework.transaction.annotation.Transactional; - -import static org.junit.jupiter.api.Assertions.*; - -/** - * @author yanglin - */ -@SpringBootTest(classes = MsgCenterApplication.class) -@RequiredArgsConstructor(onConstructor_ = @Autowired) -class MessageAPIV4Test { - - private final MessageAPIV4 messageAPIV4; - - @Test @Transactional @Commit - void exec() { - String json = "{\"eventMappingCode\":\"gaia_projectComplete_closeOrCancel_workpoint\",\"sendBasicInfo\":{\"bizCode\":\"421\",\"bizExtParams\":{\"reason\":\"记工单关联的部分工程已完结\",\"count\":\"1 单\",\"type\":\"系统自动撤销记工单\"},\"receivers\":[{\"id\":2810}],\"receiversOrgType\":\"PROJECT\",\"receiversOuId\":6458,\"receiversWorkspaceId\":326,\"routerParams\":{\"projectId\":421,\"workspaceId\":326}},\"templates\":[{\"channel\":\"NOTIFICATION\",\"templateCodes\":[\"75d88ddae7914c7089b67d944357fa1c\"]}]}"; - MessageSendRequestV4 request = JSON.parseObject(json, MessageSendRequestV4.class);; - messageAPIV4.send(request); - } - -} \ No newline at end of file From 8ab3b5c33c411ee0dee9a3881008f1d04201e1ea Mon Sep 17 00:00:00 2001 From: yanglin Date: Tue, 8 Oct 2024 18:32:29 +0800 Subject: [PATCH 2/2] =?UTF-8?q?REQ-2752:=20=E8=8E=B7=E5=8F=96=E7=AE=80?= =?UTF-8?q?=E5=8D=95=E7=9A=84=E5=BE=85=E5=8A=9E=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../config/PendingMessageBizConfig.java | 3 +++ .../PendingMessageNewController.java | 7 +++++ .../message/service/todo/TodoRespBuilder.java | 10 +++++++ .../service/todo/TodoSimpleQueryService.java | 19 +++++++++----- .../pending/client/PendingMessageClient.java | 5 ++++ .../pending/request/GetTodoRequest.java | 26 +++++++++++++++++++ 6 files changed, 64 insertions(+), 6 deletions(-) create mode 100644 msg-center-api/src/main/java/cn/axzo/msg/center/service/pending/request/GetTodoRequest.java diff --git a/inside-notices/src/main/java/cn/axzo/msg/center/inside/notices/config/PendingMessageBizConfig.java b/inside-notices/src/main/java/cn/axzo/msg/center/inside/notices/config/PendingMessageBizConfig.java index 708d1fe3..8927a38c 100644 --- a/inside-notices/src/main/java/cn/axzo/msg/center/inside/notices/config/PendingMessageBizConfig.java +++ b/inside-notices/src/main/java/cn/axzo/msg/center/inside/notices/config/PendingMessageBizConfig.java @@ -71,6 +71,9 @@ public class PendingMessageBizConfig { @Getter private int getLatestByBizCodeMaxSize = 500; + @Getter + private int getTodoSimpleSize = 500; + /** * 设置待办隐藏的隐藏时间 */ diff --git a/inside-notices/src/main/java/cn/axzo/msg/center/message/controller/PendingMessageNewController.java b/inside-notices/src/main/java/cn/axzo/msg/center/message/controller/PendingMessageNewController.java index 49726e7e..fcdac264 100644 --- a/inside-notices/src/main/java/cn/axzo/msg/center/message/controller/PendingMessageNewController.java +++ b/inside-notices/src/main/java/cn/axzo/msg/center/message/controller/PendingMessageNewController.java @@ -16,6 +16,7 @@ import cn.axzo.msg.center.service.pending.request.CompletePendingBySubCodeReques import cn.axzo.msg.center.service.pending.request.CompletePendingMessageByIdRequest; import cn.axzo.msg.center.service.pending.request.CompletePendingMessageRequest; import cn.axzo.msg.center.service.pending.request.GetPendingTodosRequest; +import cn.axzo.msg.center.service.pending.request.GetTodoRequest; import cn.axzo.msg.center.service.pending.request.PendingMessageByBizCodeRequest; import cn.axzo.msg.center.service.pending.request.PendingMessageCountUncompletedRequest; import cn.axzo.msg.center.service.pending.request.PendingMessageFixedTemplatePageRequest; @@ -249,6 +250,12 @@ public class PendingMessageNewController implements PendingMessageClient { return CommonResponse.success(todoSimpleQueryService.getLatestTodosByBiz(param)); } + @Override + public CommonResponse> getTodosSimple(GetTodoRequest request) { + log.info("getTodos, request={}", JSON.toJSONString(request)); + return CommonResponse.success(todoSimpleQueryService.getTodosSimple(request)); + } + @Override public CommonResponse setHide(SetHideRequest req) { log.info("setHide, request={}", JSON.toJSONString(req)); diff --git a/inside-notices/src/main/java/cn/axzo/msg/center/message/service/todo/TodoRespBuilder.java b/inside-notices/src/main/java/cn/axzo/msg/center/message/service/todo/TodoRespBuilder.java index efbc378f..4ca1c0ea 100644 --- a/inside-notices/src/main/java/cn/axzo/msg/center/message/service/todo/TodoRespBuilder.java +++ b/inside-notices/src/main/java/cn/axzo/msg/center/message/service/todo/TodoRespBuilder.java @@ -1,5 +1,6 @@ package cn.axzo.msg.center.message.service.todo; +import cn.axzo.basics.common.BeanMapper; import cn.axzo.msg.center.dal.SampleTodos; import cn.axzo.msg.center.dal.TodoBusinessDao; import cn.axzo.msg.center.dal.TodoBusinesses; @@ -13,6 +14,7 @@ import cn.axzo.msg.center.message.service.MessageTemplateNewService; import cn.axzo.msg.center.message.service.impl.PendingMessageNewServiceImpl; import cn.axzo.msg.center.service.enums.TerminalTypeEnum; import cn.axzo.msg.center.service.pending.response.PendingMessageResponse; +import cn.axzo.msg.center.service.pending.response.PendingMessageSimpleDTO; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; @@ -120,6 +122,14 @@ class TodoRespBuilder { return adapters; } + List buildTodosSimple(List todos) { + List adapters = buildTodoAdapters(todos); + return adapters.stream() + .map(MigrateUtils::convertAdapterToPending) + .map(p -> BeanMapper.copyBean(p, PendingMessageSimpleDTO.class)) + .collect(toList()); + } + List buildTodoAdapters(List todos) { if (CollectionUtils.isEmpty(todos)) return Collections.emptyList(); 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 af685685..fe8dbad5 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,6 +1,5 @@ package cn.axzo.msg.center.message.service.todo; -import cn.axzo.basics.common.BeanMapper; import cn.axzo.msg.center.common.enums.TableIsDeleteEnum; import cn.axzo.msg.center.common.utils.BizAssertions; import cn.axzo.msg.center.dal.TodoBusinessDao; @@ -12,6 +11,7 @@ import cn.axzo.msg.center.inside.notices.config.PendingMessageBizConfig; import cn.axzo.msg.center.service.enums.TerminalTypeEnum; import cn.axzo.msg.center.service.enums.TodoQueryType; import cn.axzo.msg.center.service.enums.TodoType; +import cn.axzo.msg.center.service.pending.request.GetTodoRequest; import cn.axzo.msg.center.service.pending.request.PendingMessageByBizCodeRequest; import cn.axzo.msg.center.service.pending.request.PendingMessageQueryRequest; import cn.axzo.msg.center.service.pending.response.PendingMessageResponse; @@ -124,11 +124,18 @@ public class TodoSimpleQueryService { .max(comparing(Todo::getId)) .ifPresent(latestTodos::add); } - List adapters = todoRespBuilder.buildTodoAdapters(latestTodos); - return adapters.stream() - .map(MigrateUtils::convertAdapterToPending) - .map(p -> BeanMapper.copyBean(p, PendingMessageSimpleDTO.class)) - .collect(toList()); + return todoRespBuilder.buildTodosSimple(latestTodos); } + public List getTodosSimple(GetTodoRequest request) { + List todos = todoDao.lambdaQuery() + .in(CollectionUtils.isNotEmpty(request.getIdentityCodes()), Todo::getIdentityCode, request.getIdentityCodes()) + .in(CollectionUtils.isNotEmpty(request.getTemplateCodes()), Todo::getTemplateCode, request.getTemplateCodes()) + .in(CollectionUtils.isNotEmpty(request.getBizCodes()), Todo::getBizCode, request.getBizCodes()) + .in(CollectionUtils.isNotEmpty(request.getExecutorPersonIds()), Todo::getExecutorPersonId, request.getExecutorPersonIds()) + .in(CollectionUtils.isNotEmpty(request.getStates()), Todo::getState, request.getStates()) + .last("LIMIT " + cfg.getGetTodoSimpleSize()) + .list(); + return todoRespBuilder.buildTodosSimple(todos); + } } \ No newline at end of file diff --git a/msg-center-api/src/main/java/cn/axzo/msg/center/service/pending/client/PendingMessageClient.java b/msg-center-api/src/main/java/cn/axzo/msg/center/service/pending/client/PendingMessageClient.java index 73c84b75..261ea8a1 100644 --- a/msg-center-api/src/main/java/cn/axzo/msg/center/service/pending/client/PendingMessageClient.java +++ b/msg-center-api/src/main/java/cn/axzo/msg/center/service/pending/client/PendingMessageClient.java @@ -7,6 +7,7 @@ import cn.axzo.msg.center.service.pending.request.CompletePendingBySubCodeReques import cn.axzo.msg.center.service.pending.request.CompletePendingMessageByIdRequest; import cn.axzo.msg.center.service.pending.request.CompletePendingMessageRequest; import cn.axzo.msg.center.service.pending.request.GetPendingTodosRequest; +import cn.axzo.msg.center.service.pending.request.GetTodoRequest; import cn.axzo.msg.center.service.pending.request.PendingMessageByBizCodeRequest; import cn.axzo.msg.center.service.pending.request.PendingMessageCountUncompletedRequest; import cn.axzo.msg.center.service.pending.request.PendingMessageFixedTemplatePageRequest; @@ -325,4 +326,8 @@ public interface PendingMessageClient { @PostMapping(value = "/pending-message/set-copied-to-me-read", produces = {MediaType.APPLICATION_JSON_VALUE}) CommonResponse setCopiedToMeRead(@RequestParam("personId") Long personId, @RequestParam(value = "identityCode", defaultValue = "") String identityCode); + + @PostMapping(value = "/pending-message/record/get-todos-simple", produces = {MediaType.APPLICATION_JSON_VALUE}) + CommonResponse> getTodosSimple(@RequestBody @Valid GetTodoRequest request); + } \ No newline at end of file diff --git a/msg-center-api/src/main/java/cn/axzo/msg/center/service/pending/request/GetTodoRequest.java b/msg-center-api/src/main/java/cn/axzo/msg/center/service/pending/request/GetTodoRequest.java new file mode 100644 index 00000000..9e42978c --- /dev/null +++ b/msg-center-api/src/main/java/cn/axzo/msg/center/service/pending/request/GetTodoRequest.java @@ -0,0 +1,26 @@ +package cn.axzo.msg.center.service.pending.request; + +import cn.axzo.msg.center.service.enums.PendingMessageStateEnum; +import com.alibaba.fastjson.JSON; +import lombok.Getter; +import lombok.Setter; + +import java.util.Set; + +/** + * @author yanglin + */ +@Setter +@Getter +public class GetTodoRequest { + private Set identityCodes; + private Set templateCodes; + private Set bizCodes; + private Set executorPersonIds; + private Set states; + + @Override + public String toString() { + return JSON.toJSONString(this); + } +} \ No newline at end of file