REQ-2595-待办查询增加端查询条件

This commit is contained in:
yangqicheng 2024-11-01 13:51:34 +08:00
parent 8920a3145c
commit 454631e648
2 changed files with 28 additions and 2 deletions

View File

@ -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<PendingMessageSimpleDTO> getTodosSimplePage(GetTodoPageRequest request) {
List<String> groupTempCodes = null;
if (request.getAppTerminalType() != null) {
List<ValueNode<NodeWrapper>> nodes = groupTemplateService.getTodoGroups(request.getAppTerminalType());
groupTempCodes = groupTemplateService.collectTemplateCodes(nodes);
}
List<String> 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<Todo> 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())

View File

@ -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<String> identityCodes;