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 31fb59bd..7e4d95d5 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.CompletePendingMessageByCodesRequest; 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.FetchTodoByBizRequest; import cn.axzo.msg.center.service.pending.request.GetPendingTodosRequest; import cn.axzo.msg.center.service.pending.request.GetTodoCountRequest; import cn.axzo.msg.center.service.pending.request.GetTodoPageRequest; @@ -283,6 +284,12 @@ public class PendingMessageNewController implements PendingMessageClient { return CommonResponse.success(todoSimpleQueryService.getTodosSimple(request)); } + @Override + public CommonResponse> fetchTodosByBiz(FetchTodoByBizRequest request) { + log.info("fetchTodosByBiz, request={}", JSON.toJSONString(request)); + return CommonResponse.success(todoSimpleQueryService.fetchTodosByBiz(request)); + } + @Override public CommonResponse> getTodosSimpleCount(GetTodoCountRequest request) { return CommonResponse.success(todoSimpleQueryService.getTodosSimpleCount(request)); 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 cacaf043..e726578a 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 @@ -17,6 +17,7 @@ import cn.axzo.msg.center.service.enums.BizCategoryEnum; import cn.axzo.msg.center.service.enums.PendingMessageStateEnum; import cn.axzo.msg.center.service.enums.TodoQueryType; import cn.axzo.msg.center.service.enums.TodoType; +import cn.axzo.msg.center.service.pending.request.FetchTodoByBizRequest; import cn.axzo.msg.center.service.pending.request.GetTodoCountRequest; import cn.axzo.msg.center.service.pending.request.GetTodoPageRequest; import cn.axzo.msg.center.service.pending.request.GetTodoRequest; @@ -26,6 +27,7 @@ import cn.axzo.msg.center.service.pending.request.PendingMessageQueryRequest; import cn.axzo.msg.center.service.pending.response.PendingMessageCountDTO; import cn.axzo.msg.center.service.pending.response.PendingMessageResponse; import cn.axzo.msg.center.service.pending.response.PendingMessageSimpleDTO; +import cn.axzo.msg.center.service.pending.response.v3.model.ParsedModelV3; import cn.azxo.framework.common.model.Page; import cn.hutool.core.date.StopWatch; import cn.hutool.core.lang.Assert; @@ -143,6 +145,27 @@ public class TodoSimpleQueryService { return todoRespBuilder.buildTodosSimple(latestTodos); } + public List fetchTodosByBiz(FetchTodoByBizRequest request) { + List todos = todoDao.lambdaQuery() + .and(CollectionUtils.isNotEmpty(request.getTodos()), wrapper -> { + for (FetchTodoByBizRequest.TodoInfo todo : request.getTodos()) { + wrapper.or() + .eq(StringUtils.isNotBlank(todo.getTemplateCode()), Todo::getTemplateCode, todo.getTemplateCode()) + .eq(StringUtils.isNotBlank(todo.getBizCode()), Todo::getBizCode, todo.getBizCode()) + .eq(StringUtils.isNotBlank(todo.getSubBizCode()), Todo::getSubBizCode, todo.getSubBizCode()); + } + }) + .last("LIMIT " + cfg.getGetTodoSimpleSize()) + .list(); + List response = todoRespBuilder.toResponse( + todoRespBuilder.buildTodoAdapters(todos), request); + ParsedModelV3[] models = response.stream() + .map(PendingMessageResponse::getModelV3) + .toArray(ParsedModelV3[]::new); + v3ExtPopulator.populate(models); + return response; + } + public List getTodosSimple(GetTodoRequest request) { List todos = todoDao.lambdaQuery() .in(CollectionUtils.isNotEmpty(request.getIdentityCodes()), Todo::getIdentityCode, request.getIdentityCodes()) 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 830f2d13..968dcb9e 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.CompletePendingMessageByCodesRequest; 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.FetchTodoByBizRequest; import cn.axzo.msg.center.service.pending.request.GetPendingTodosRequest; import cn.axzo.msg.center.service.pending.request.GetTodoCountRequest; import cn.axzo.msg.center.service.pending.request.GetTodoPageRequest; @@ -347,6 +348,9 @@ public interface PendingMessageClient { @PostMapping(value = "/pending-message/record/get-todos-simple", produces = {MediaType.APPLICATION_JSON_VALUE}) CommonResponse> getTodosSimple(@RequestBody @Valid GetTodoRequest request); + @PostMapping(value = "/pending-message/record/fetch-todos-by-biz", produces = {MediaType.APPLICATION_JSON_VALUE}) + CommonResponse> fetchTodosByBiz(@RequestBody @Valid FetchTodoByBizRequest request); + @PostMapping(value = "/pending-message/record/get-todos-simple/count", produces = {MediaType.APPLICATION_JSON_VALUE}) CommonResponse> getTodosSimpleCount(@RequestBody @Valid GetTodoCountRequest request); diff --git a/msg-center-api/src/main/java/cn/axzo/msg/center/service/pending/request/FetchTodoByBizRequest.java b/msg-center-api/src/main/java/cn/axzo/msg/center/service/pending/request/FetchTodoByBizRequest.java new file mode 100644 index 00000000..0140f61b --- /dev/null +++ b/msg-center-api/src/main/java/cn/axzo/msg/center/service/pending/request/FetchTodoByBizRequest.java @@ -0,0 +1,44 @@ +package cn.axzo.msg.center.service.pending.request; + +import cn.axzo.msg.center.service.enums.AppTerminalTypeEnum; +import cn.axzo.msg.center.service.enums.TerminalTypeEnum; +import cn.axzo.msg.center.service.pending.ClientRequest; +import lombok.Getter; +import lombok.Setter; + +import javax.validation.constraints.NotEmpty; +import java.util.ArrayList; +import java.util.List; + +/** + * @author yanglin + */ +@Setter @Getter +public class FetchTodoByBizRequest implements ClientRequest { + + @NotEmpty(message = "rows不能为空") + private List todos = new ArrayList<>(); + + public void addTodo(TodoInfo todo) { + if (todos == null) + todos = new ArrayList<>(); + todos.add(todo); + } + + @Setter @Getter + public static class TodoInfo { + private String templateCode; + private String bizCode; + private String subBizCode; + } + + @Override + public AppTerminalTypeEnum getAppTerminalType() { + return null; + } + + @Override + public TerminalTypeEnum getTerminalType() { + return null; + } +} \ No newline at end of file