feat:(feature/REQ-2899) 解决通过页面code或者name模糊查询bug
This commit is contained in:
parent
cc8e6c723b
commit
92d0a627d2
@ -1,11 +1,12 @@
|
||||
package cn.axzo.tyr.client.model.req;
|
||||
|
||||
import cn.axzo.framework.domain.page.PageResp;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
@ -57,4 +58,13 @@ public class PageQueryElementV2Req {
|
||||
*/
|
||||
@Builder.Default
|
||||
private Long pageSize = 20L;
|
||||
|
||||
public PageResp toEmpty() {
|
||||
return PageResp.builder()
|
||||
.page(this.getPage())
|
||||
.pageSize(this.getPageSize())
|
||||
.list(Collections.emptyList())
|
||||
.totalCount(0L)
|
||||
.build();
|
||||
}
|
||||
}
|
||||
|
||||
@ -13,9 +13,32 @@ import cn.axzo.foundation.exception.BusinessException;
|
||||
import cn.axzo.framework.domain.page.PageResp;
|
||||
import cn.axzo.framework.rocketmq.Event;
|
||||
import cn.axzo.pokonyan.config.mybatisplus.BaseEntity;
|
||||
import cn.axzo.tyr.client.common.enums.*;
|
||||
import cn.axzo.tyr.client.model.req.*;
|
||||
import cn.axzo.tyr.client.model.res.*;
|
||||
import cn.axzo.tyr.client.common.enums.FeatureResourceType;
|
||||
import cn.axzo.tyr.client.common.enums.PageElementAppTypeEnum;
|
||||
import cn.axzo.tyr.client.common.enums.PageElementFeatureResourceRelationTypeEnum;
|
||||
import cn.axzo.tyr.client.common.enums.PageElementTypeEnum;
|
||||
import cn.axzo.tyr.client.common.enums.PermissionRelationOperateLogSceneEnum;
|
||||
import cn.axzo.tyr.client.model.req.DeletePageElementReq;
|
||||
import cn.axzo.tyr.client.model.req.GetPageElementReq;
|
||||
import cn.axzo.tyr.client.model.req.GetUserHasPermissionPageElementReq;
|
||||
import cn.axzo.tyr.client.model.req.IdentityAuthReq;
|
||||
import cn.axzo.tyr.client.model.req.ModifyPageElementRelationDTO;
|
||||
import cn.axzo.tyr.client.model.req.PageElementFeatureResourceRelationReq;
|
||||
import cn.axzo.tyr.client.model.req.PageElementImportDataReq;
|
||||
import cn.axzo.tyr.client.model.req.PageElementReportReq;
|
||||
import cn.axzo.tyr.client.model.req.PageElementReq;
|
||||
import cn.axzo.tyr.client.model.req.PageQueryElementReq;
|
||||
import cn.axzo.tyr.client.model.req.PageQueryElementV2Req;
|
||||
import cn.axzo.tyr.client.model.req.PageSaasFeatureResourceReq;
|
||||
import cn.axzo.tyr.client.model.req.PermissionOperateLogReq;
|
||||
import cn.axzo.tyr.client.model.req.SaveOrUpdatePageElementReq;
|
||||
import cn.axzo.tyr.client.model.res.GetUserHasPermissionPageElementResp;
|
||||
import cn.axzo.tyr.client.model.res.IdentityAuthRes;
|
||||
import cn.axzo.tyr.client.model.res.PageElementBasicDTO;
|
||||
import cn.axzo.tyr.client.model.res.PageElementCategoryAndElementResp;
|
||||
import cn.axzo.tyr.client.model.res.PageElementRelationFeatureResourceResp;
|
||||
import cn.axzo.tyr.client.model.res.PageElementResp;
|
||||
import cn.axzo.tyr.client.model.res.SaasFeatureResourceResp;
|
||||
import cn.axzo.tyr.server.config.MqProducer;
|
||||
import cn.axzo.tyr.server.event.payload.PageElementFeatureResourceUpsertPayload;
|
||||
import cn.axzo.tyr.server.model.RelationOperateLogResourceBindElementDO;
|
||||
@ -23,7 +46,11 @@ import cn.axzo.tyr.server.repository.dao.SaasFeatureResourceDao;
|
||||
import cn.axzo.tyr.server.repository.dao.SaasPageElementCategoryDao;
|
||||
import cn.axzo.tyr.server.repository.dao.SaasPageElementDao;
|
||||
import cn.axzo.tyr.server.repository.dao.SaasPageElementFeatureResourceRelationDao;
|
||||
import cn.axzo.tyr.server.repository.entity.*;
|
||||
import cn.axzo.tyr.server.repository.entity.SaasFeatureResource;
|
||||
import cn.axzo.tyr.server.repository.entity.SaasPageElement;
|
||||
import cn.axzo.tyr.server.repository.entity.SaasPageElementCategory;
|
||||
import cn.axzo.tyr.server.repository.entity.SaasPageElementFeatureResourceRelation;
|
||||
import cn.axzo.tyr.server.repository.entity.SaasPgroupPermissionRelationOperateLog;
|
||||
import cn.axzo.tyr.server.repository.mapper.SaasPageElementMapper;
|
||||
import cn.axzo.tyr.server.service.SaasFeatureResourceService;
|
||||
import cn.axzo.tyr.server.service.SaasPageElementFeatureResourceRelationService;
|
||||
@ -36,6 +63,7 @@ import cn.hutool.json.JSONUtil;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.google.common.base.Strings;
|
||||
@ -56,7 +84,13 @@ import org.springframework.cloud.context.config.annotation.RefreshScope;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.Optional;
|
||||
import java.util.Set;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
import java.util.concurrent.ExecutorService;
|
||||
import java.util.function.Function;
|
||||
@ -504,19 +538,34 @@ public class SaasPageElementServiceImpl extends ServiceImpl<SaasPageElementMappe
|
||||
|
||||
@Override
|
||||
public PageResp<PageElementResp> pageV2(PageQueryElementV2Req request) {
|
||||
IPage<SaasPageElement> page = saasPageElementDao.lambdaQuery()
|
||||
LambdaQueryChainWrapper<SaasPageElement> wrapper = saasPageElementDao.lambdaQuery()
|
||||
.eq(Objects.nonNull(request.getId()), SaasPageElement::getId, request.getId())
|
||||
.eq(StringUtils.isNotBlank(request.getTerminal()), SaasPageElement::getTerminal, request.getTerminal())
|
||||
.eq(StringUtils.isNotBlank(request.getItemCode()), SaasPageElement::getItemCode, request.getItemCode())
|
||||
.in(CollectionUtils.isNotEmpty(request.getElementTypes()), SaasPageElement::getType, request.getElementTypes())
|
||||
.and(StringUtils.isNotBlank(request.getPageElementCodeOrName()), w -> w.like(SaasPageElement::getCode, request.getPageElementCodeOrName())
|
||||
.or().like(SaasPageElement::getName, request.getPageElementCodeOrName()))
|
||||
.eq(StringUtils.isNotBlank(request.getPageElementGroupCodeOrName()), SaasPageElement::getType, PageElementTypeEnum.PAGE.getCode())
|
||||
.and(StringUtils.isNotBlank(request.getPageElementGroupCodeOrName()),
|
||||
w -> w.like(SaasPageElement::getGroupCode, request.getPageElementGroupCodeOrName())
|
||||
.or().like(SaasPageElement::getName, request.getPageElementGroupCodeOrName()))
|
||||
.orderByDesc(BaseEntity::getId)
|
||||
.or().like(SaasPageElement::getName, request.getPageElementCodeOrName()));
|
||||
|
||||
|
||||
// 待切换写法,收口page,pageV2查询
|
||||
// 因为页面名字没有每条记录冗余,查询条件可能是页面名字或者code,所以需要根据入参找到对应的页面code,然后作为页面code查询
|
||||
if (StringUtils.isNotBlank(request.getPageElementGroupCodeOrName())) {
|
||||
List<SaasPageElement> groupPageElements = saasPageElementDao.lambdaQuery()
|
||||
.eq(SaasPageElement::getType, PageElementTypeEnum.PAGE.getCode())
|
||||
.and(w -> w.like(SaasPageElement::getGroupCode, request.getPageElementGroupCodeOrName())
|
||||
.or()
|
||||
.like(SaasPageElement::getName, request.getPageElementGroupCodeOrName()))
|
||||
.list();
|
||||
if (CollectionUtils.isEmpty(groupPageElements)) {
|
||||
return request.toEmpty();
|
||||
}
|
||||
|
||||
wrapper.in(SaasPageElement::getGroupCode, groupPageElements.stream().map(SaasPageElement::getGroupCode).collect(Collectors.toSet()));
|
||||
}
|
||||
|
||||
IPage<SaasPageElement> page = wrapper.orderByDesc(BaseEntity::getId)
|
||||
.page(new Page<>(request.getPage(), request.getPageSize()));
|
||||
|
||||
List<PageElementResp> list = BeanMapper.copyList(page.getRecords(), PageElementResp.class);
|
||||
// 补充元素组名
|
||||
fillGroupName(list);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user