Merge branch 'feature/REQ-3454'

This commit is contained in:
yanglin 2025-01-21 10:12:45 +08:00
commit 70697b2fe2
4 changed files with 78 additions and 0 deletions

View File

@ -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<List<PendingMessageResponse>> fetchTodosByBiz(FetchTodoByBizRequest request) {
log.info("fetchTodosByBiz, request={}", JSON.toJSONString(request));
return CommonResponse.success(todoSimpleQueryService.fetchTodosByBiz(request));
}
@Override
public CommonResponse<Map<BizCategoryEnum, PendingMessageCountDTO>> getTodosSimpleCount(GetTodoCountRequest request) {
return CommonResponse.success(todoSimpleQueryService.getTodosSimpleCount(request));

View File

@ -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<PendingMessageResponse> fetchTodosByBiz(FetchTodoByBizRequest request) {
List<Todo> 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<PendingMessageResponse> response = todoRespBuilder.toResponse(
todoRespBuilder.buildTodoAdapters(todos), request);
ParsedModelV3[] models = response.stream()
.map(PendingMessageResponse::getModelV3)
.toArray(ParsedModelV3[]::new);
v3ExtPopulator.populate(models);
return response;
}
public List<PendingMessageSimpleDTO> getTodosSimple(GetTodoRequest request) {
List<Todo> todos = todoDao.lambdaQuery()
.in(CollectionUtils.isNotEmpty(request.getIdentityCodes()), Todo::getIdentityCode, request.getIdentityCodes())

View File

@ -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<List<PendingMessageSimpleDTO>> getTodosSimple(@RequestBody @Valid GetTodoRequest request);
@PostMapping(value = "/pending-message/record/fetch-todos-by-biz", produces = {MediaType.APPLICATION_JSON_VALUE})
CommonResponse<List<PendingMessageResponse>> fetchTodosByBiz(@RequestBody @Valid FetchTodoByBizRequest request);
@PostMapping(value = "/pending-message/record/get-todos-simple/count", produces = {MediaType.APPLICATION_JSON_VALUE})
CommonResponse<Map<BizCategoryEnum, PendingMessageCountDTO>> getTodosSimpleCount(@RequestBody @Valid GetTodoCountRequest request);

View File

@ -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<TodoInfo> 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;
}
}