REQ-2299 列表分页模糊查询

This commit is contained in:
yangheng 2024-04-23 10:45:44 +08:00
parent 69943f37ed
commit 17c676f4a3
9 changed files with 104 additions and 32 deletions

View File

@ -1,8 +1,11 @@
package cn.axzo.tyr.client.feign;
import cn.axzo.core.domain.PageResult;
import cn.axzo.framework.domain.web.result.ApiResult;
import cn.axzo.tyr.client.model.req.CreateDataObjectReq;
import cn.axzo.tyr.client.model.req.EditDataObjectReq;
import cn.axzo.tyr.client.model.req.PageDataObjectReq;
import cn.axzo.tyr.client.model.res.SimpleDataObjectRes;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
@ -30,4 +33,12 @@ public interface DataObjectApi {
@PostMapping("/api/dataObject/delete")
ApiResult<Void> deleteDataObject(@RequestParam Long dataObjectId, @RequestParam(required = false) Long updateBy);
/**
* 分页查询数据对象列表
* @param req
* @return
*/
@PostMapping("/api/dataObject/page")
ApiResult<PageResult<SimpleDataObjectRes>> pageDataObject(@RequestBody @Valid PageDataObjectReq req);
}

View File

@ -1,5 +1,6 @@
package cn.axzo.tyr.client.model.data.object;
import cn.axzo.core.domain.PageRequest;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
@ -11,7 +12,7 @@ import lombok.experimental.Accessors;
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = true)
public class DataObjectQueryBO {
public class DataObjectQueryBO extends PageRequest {
/**
* 数据权限code
*/

View File

@ -0,0 +1,18 @@
package cn.axzo.tyr.client.model.req;
import cn.axzo.core.domain.PageRequest;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class PageDataObjectReq extends PageRequest {
/**
* 数据对象名称 搜索
*/
private String keyword;
}

View File

@ -0,0 +1,25 @@
package cn.axzo.tyr.client.model.res;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class SimpleDataObjectRes {
/**
* 数据对象id
*/
private Long dataObjectId;
/**
* 数据对象Code
*/
private String dataObjectCode;
/**
* 数据对象名称
*/
private String dataObjectName;
}

View File

@ -1,27 +0,0 @@
package cn.axzo.tyr.server.config.mybatisplus;
import cn.axzo.pokonyan.config.mybatisplus.EntityMetaObjectHandler;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.annotation.Order;
import org.springframework.transaction.annotation.EnableTransactionManagement;
/**
* @author lijiacheng 李嘉成 Jache
*/
@EnableTransactionManagement
@Configuration
public class MybatisPlusConfig {
@Bean
public MybatisPlusInterceptor paginationInterceptor() {
MybatisPlusInterceptor mybatisPlusInterceptor = new MybatisPlusInterceptor();
mybatisPlusInterceptor.addInnerInterceptor(new PaginationInnerInterceptor());
return mybatisPlusInterceptor;
}
}

View File

@ -1,10 +1,13 @@
package cn.axzo.tyr.server.controller.data.object;
import cn.axzo.core.domain.PageResult;
import cn.axzo.framework.auth.domain.ContextInfoHolder;
import cn.axzo.framework.domain.web.result.ApiResult;
import cn.axzo.tyr.client.feign.DataObjectApi;
import cn.axzo.tyr.client.model.req.CreateDataObjectReq;
import cn.axzo.tyr.client.model.req.EditDataObjectReq;
import cn.axzo.tyr.client.model.req.PageDataObjectReq;
import cn.axzo.tyr.client.model.res.SimpleDataObjectRes;
import cn.axzo.tyr.server.service.DataObjectService;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@ -37,4 +40,10 @@ public class DataObjectController implements DataObjectApi {
return ApiResult.ok();
}
@Override
public ApiResult<PageResult<SimpleDataObjectRes>> pageDataObject(PageDataObjectReq req) {
return ApiResult.ok(dataObjectService.pageDataObject(req));
}
}

View File

@ -4,6 +4,7 @@ import cn.axzo.basics.common.constant.enums.DeleteEnum;
import cn.axzo.tyr.client.model.data.object.DataObjectQueryBO;
import cn.axzo.tyr.server.repository.entity.DataObject;
import cn.axzo.tyr.server.repository.mapper.DataObjectMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Repository;
@ -17,12 +18,21 @@ public class DataObjectDao extends ServiceImpl<DataObjectMapper, DataObject> {
public List<DataObject> duplicateListByBO(DataObjectQueryBO bo) {
return lambdaQuery()
.eq(DataObject::getIsDelete, DeleteEnum.NORMAL.getValue())
.and(sql -> sql
.eq(StringUtils.isNotEmpty(bo.getDataObjectCode()), DataObject::getDataObjectCode, bo.getDataObjectCode())
.or(StringUtils.isNotEmpty(bo.getDataObjectCode()))
.eq(StringUtils.isNotEmpty(bo.getDataObjectName()), DataObject::getDataObjectName, bo.getDataObjectName())
.eq(StringUtils.isNotEmpty(bo.getDataObjectName()), DataObject::getDataObjectName, bo.getDataObjectName()))
.list();
}
public IPage<DataObject> pageByBO(DataObjectQueryBO bo) {
return lambdaQuery()
.eq(DataObject::getIsDelete, DeleteEnum.NORMAL.getValue())
.eq(StringUtils.isNotEmpty(bo.getDataObjectCode()), DataObject::getDataObjectCode, bo.getDataObjectCode())
.like(StringUtils.isNotEmpty(bo.getDataObjectName()), DataObject::getDataObjectName, bo.getDataObjectName())
.page(bo.toPage());
}
public void deleteByIdList(List<Long> idList, Long updateBy) {
lambdaUpdate()
.eq(DataObject::getIsDelete, DeleteEnum.NORMAL.getValue())

View File

@ -1,7 +1,10 @@
package cn.axzo.tyr.server.service;
import cn.axzo.core.domain.PageResult;
import cn.axzo.tyr.client.model.req.CreateDataObjectReq;
import cn.axzo.tyr.client.model.req.EditDataObjectReq;
import cn.axzo.tyr.client.model.req.PageDataObjectReq;
import cn.axzo.tyr.client.model.res.SimpleDataObjectRes;
public interface DataObjectService {
Long createDataObject(CreateDataObjectReq req);
@ -9,4 +12,6 @@ public interface DataObjectService {
void editDataObject(EditDataObjectReq req);
void deleteDataObject(Long dataObjectId, Long updateBy);
PageResult<SimpleDataObjectRes> pageDataObject(PageDataObjectReq req);
}

View File

@ -1,6 +1,7 @@
package cn.axzo.tyr.server.service.impl;
import cn.axzo.basics.common.exception.ServiceException;
import cn.axzo.core.domain.PageResult;
import cn.axzo.tyr.client.common.enums.ReturnCodeEnum;
import cn.axzo.tyr.client.common.enums.YesNoEnum;
import cn.axzo.tyr.client.model.data.object.AttributeBO;
@ -8,6 +9,8 @@ import cn.axzo.tyr.client.model.data.object.DataObjectQueryBO;
import cn.axzo.tyr.client.model.data.object.DataObjectRuleBO;
import cn.axzo.tyr.client.model.req.CreateDataObjectReq;
import cn.axzo.tyr.client.model.req.EditDataObjectReq;
import cn.axzo.tyr.client.model.req.PageDataObjectReq;
import cn.axzo.tyr.client.model.res.SimpleDataObjectRes;
import cn.axzo.tyr.server.repository.dao.DataObjectAttrDao;
import cn.axzo.tyr.server.repository.dao.DataObjectDao;
import cn.axzo.tyr.server.repository.dao.DataObjectRuleAttrDao;
@ -21,6 +24,7 @@ import cn.axzo.tyr.server.repository.entity.DataObjectRuleScope;
import cn.axzo.tyr.server.service.DataObjectService;
import cn.axzo.tyr.server.utils.mapper.DataObjectMapper;
import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.metadata.IPage;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
@ -159,6 +163,22 @@ public class DataObjectServiceImpl implements DataObjectService {
});
}
@Override
public PageResult<SimpleDataObjectRes> pageDataObject(PageDataObjectReq req) {
DataObjectQueryBO bo = DataObjectQueryBO.builder().dataObjectName(req.getKeyword()).build();
bo.setPage(req.getPage());
bo.setPageSize(req.getPageSize());
IPage<DataObject> dataObjectIPage = dataObjectDao.pageByBO(bo);
List<SimpleDataObjectRes> resList = dataObjectIPage.getRecords().stream()
.map(e -> SimpleDataObjectRes.builder()
.dataObjectId(e.getId())
.dataObjectCode(e.getDataObjectCode())
.dataObjectName(e.getDataObjectName())
.build())
.collect(Collectors.toList());
return new PageResult<>(resList, dataObjectIPage.getTotal());
}
private void checkRuleNameUnique(CreateDataObjectReq req) {
if (CollUtil.isNotEmpty(req.getDataObjectRuleBOList())) {
List<String> nameList = req.getDataObjectRuleBOList().stream().map(DataObjectRuleBO::getDataObjectRuleName).distinct().collect(Collectors.toList());