diff --git a/zt-module-system/zt-module-system-api/src/main/java/com/zt/plat/module/system/api/dict/DictDataApi.java b/zt-module-system/zt-module-system-api/src/main/java/com/zt/plat/module/system/api/dict/DictDataApi.java index c251d0af..4021404d 100644 --- a/zt-module-system/zt-module-system-api/src/main/java/com/zt/plat/module/system/api/dict/DictDataApi.java +++ b/zt-module-system/zt-module-system-api/src/main/java/com/zt/plat/module/system/api/dict/DictDataApi.java @@ -2,7 +2,9 @@ package com.zt.plat.module.system.api.dict; import com.zt.plat.framework.common.biz.system.dict.DictDataCommonApi; import com.zt.plat.framework.common.pojo.CommonResult; +import com.zt.plat.framework.common.pojo.PageResult; import com.zt.plat.module.system.api.dict.dto.DictDataDetailRespDTO; +import com.zt.plat.module.system.api.dict.dto.DictDataPageReqDTO; import com.zt.plat.module.system.api.dict.dto.DictDataSaveReqDTO; import com.zt.plat.module.system.api.dict.dto.DictDataSimpleRespDTO; import com.zt.plat.module.system.enums.ApiConstants; @@ -43,6 +45,10 @@ public interface DictDataApi extends DictDataCommonApi { @Operation(summary = "获得字典数据详情") CommonResult getDictData(@RequestParam("id") Long id); + @PostMapping(PREFIX + "/page") + @Operation(summary = "分页查询字典数据") + CommonResult> getDictDataPage(@RequestBody DictDataPageReqDTO pageReqDTO); + @GetMapping(PREFIX + "/valid") @Operation(summary = "校验字典数据们是否有效") @Parameters({ diff --git a/zt-module-system/zt-module-system-api/src/main/java/com/zt/plat/module/system/api/dict/dto/DictDataPageReqDTO.java b/zt-module-system/zt-module-system-api/src/main/java/com/zt/plat/module/system/api/dict/dto/DictDataPageReqDTO.java index 8722da7c..3779f302 100644 --- a/zt-module-system/zt-module-system-api/src/main/java/com/zt/plat/module/system/api/dict/dto/DictDataPageReqDTO.java +++ b/zt-module-system/zt-module-system-api/src/main/java/com/zt/plat/module/system/api/dict/dto/DictDataPageReqDTO.java @@ -21,6 +21,9 @@ public class DictDataPageReqDTO extends PageParam { @Schema(description = "字典类型,模糊匹配", example = "sys_common_sex") private String dictType; + @Schema(description = "字典值", example = "1") + private String value; + @Schema(description = "展示状态,参见 CommonStatusEnum 枚举类", example = "1") private Integer status; diff --git a/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/api/dict/DictDataApiImpl.java b/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/api/dict/DictDataApiImpl.java index 46755c0f..ce85d233 100644 --- a/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/api/dict/DictDataApiImpl.java +++ b/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/api/dict/DictDataApiImpl.java @@ -3,10 +3,13 @@ package com.zt.plat.module.system.api.dict; import com.zt.plat.framework.common.biz.system.dict.dto.DictDataRespDTO; import com.zt.plat.framework.common.enums.CommonStatusEnum; import com.zt.plat.framework.common.pojo.CommonResult; +import com.zt.plat.framework.common.pojo.PageResult; import com.zt.plat.framework.common.util.object.BeanUtils; import com.zt.plat.module.system.api.dict.dto.DictDataDetailRespDTO; +import com.zt.plat.module.system.api.dict.dto.DictDataPageReqDTO; import com.zt.plat.module.system.api.dict.dto.DictDataSaveReqDTO; import com.zt.plat.module.system.api.dict.dto.DictDataSimpleRespDTO; +import com.zt.plat.module.system.controller.admin.dict.vo.data.DictDataPageReqVO; import com.zt.plat.module.system.controller.admin.dict.vo.data.DictDataSaveReqVO; import com.zt.plat.module.system.dal.dataobject.dict.DictDataDO; import com.zt.plat.module.system.service.dict.DictDataService; @@ -61,6 +64,13 @@ public class DictDataApiImpl implements DictDataApi { return success(BeanUtils.toBean(dictData, DictDataDetailRespDTO.class)); } + @Override + public CommonResult> getDictDataPage(DictDataPageReqDTO pageReqDTO) { + DictDataPageReqVO pageReqVO = BeanUtils.toBean(pageReqDTO, DictDataPageReqVO.class); + PageResult pageResult = dictDataService.getDictDataPage(pageReqVO); + return success(BeanUtils.toBean(pageResult, DictDataDetailRespDTO.class)); + } + @Override public CommonResult validateDictDataList(String dictType, Collection values) { dictDataService.validateDictDataList(dictType, values); diff --git a/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/controller/admin/dict/vo/data/DictDataPageReqVO.java b/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/controller/admin/dict/vo/data/DictDataPageReqVO.java index 19cb7b7c..046c1865 100644 --- a/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/controller/admin/dict/vo/data/DictDataPageReqVO.java +++ b/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/controller/admin/dict/vo/data/DictDataPageReqVO.java @@ -21,6 +21,10 @@ public class DictDataPageReqVO extends PageParam { @Size(max = 100, message = "字典类型类型长度不能超过100个字符") private String dictType; + @Schema(description = "字典键值", example = "1") + @Size(max = 100, message = "字典键值长度不能超过100个字符") + private String value; + @Schema(description = "展示状态,参见 CommonStatusEnum 枚举类", example = "1") @InEnum(value = CommonStatusEnum.class, message = "修改状态必须是 {value}") private Integer status; diff --git a/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/dal/mysql/dict/DictDataMapper.java b/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/dal/mysql/dict/DictDataMapper.java index e9840251..eb29f991 100644 --- a/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/dal/mysql/dict/DictDataMapper.java +++ b/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/dal/mysql/dict/DictDataMapper.java @@ -1,11 +1,11 @@ package com.zt.plat.module.system.dal.mysql.dict; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.zt.plat.framework.common.pojo.PageResult; import com.zt.plat.framework.mybatis.core.mapper.BaseMapperX; import com.zt.plat.framework.mybatis.core.query.LambdaQueryWrapperX; import com.zt.plat.module.system.controller.admin.dict.vo.data.DictDataPageReqVO; import com.zt.plat.module.system.dal.dataobject.dict.DictDataDO; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import org.apache.ibatis.annotations.Mapper; import java.util.Arrays; @@ -35,6 +35,7 @@ public interface DictDataMapper extends BaseMapperX { default PageResult selectPage(DictDataPageReqVO reqVO) { return selectPage(reqVO, new LambdaQueryWrapperX() .likeIfPresent(DictDataDO::getLabel, reqVO.getLabel()) + .eqIfPresent(DictDataDO::getValue, reqVO.getValue()) .eqIfPresent(DictDataDO::getDictType, reqVO.getDictType()) .eqIfPresent(DictDataDO::getStatus, reqVO.getStatus()) .orderByDesc(Arrays.asList(DictDataDO::getDictType, DictDataDO::getSort))); diff --git a/zt-module-system/zt-module-system-server/src/test/java/com/zt/plat/module/system/service/dict/DictDataServiceImplTest.java b/zt-module-system/zt-module-system-server/src/test/java/com/zt/plat/module/system/service/dict/DictDataServiceImplTest.java index db30e121..36ecba95 100644 --- a/zt-module-system/zt-module-system-server/src/test/java/com/zt/plat/module/system/service/dict/DictDataServiceImplTest.java +++ b/zt-module-system/zt-module-system-server/src/test/java/com/zt/plat/module/system/service/dict/DictDataServiceImplTest.java @@ -72,6 +72,7 @@ public class DictDataServiceImplTest extends BaseDbUnitTest { o.setLabel("芋艿"); o.setDictType("yunai"); o.setStatus(CommonStatusEnum.ENABLE.getStatus()); + o.setValue("testValue"); }); dictDataMapper.insert(dbDictData); // 测试 label 不匹配 @@ -80,11 +81,14 @@ public class DictDataServiceImplTest extends BaseDbUnitTest { dictDataMapper.insert(cloneIgnoreId(dbDictData, o -> o.setDictType("nai"))); // 测试 status 不匹配 dictDataMapper.insert(cloneIgnoreId(dbDictData, o -> o.setStatus(CommonStatusEnum.DISABLE.getStatus()))); + // 测试 value 不匹配 + dictDataMapper.insert(cloneIgnoreId(dbDictData, o -> o.setValue("otherValue"))); // 准备参数 DictDataPageReqVO reqVO = new DictDataPageReqVO(); reqVO.setLabel("芋"); reqVO.setDictType("yunai"); reqVO.setStatus(CommonStatusEnum.ENABLE.getStatus()); + reqVO.setValue("testValue"); // 调用 PageResult pageResult = dictDataService.getDictDataPage(reqVO);