wip: 字典重构临时提交

This commit is contained in:
ray
2024-10-03 17:41:38 +08:00
parent 7dc8e61989
commit 3f2a5a28df
15 changed files with 82 additions and 85 deletions

View File

@@ -8,7 +8,7 @@ import com.youlai.boot.common.model.Option;
import com.youlai.boot.common.result.PageResult;
import com.youlai.boot.common.result.Result;
import com.youlai.boot.system.model.form.DictDataForm;
import com.youlai.boot.system.model.query.DictPageQuery;
import com.youlai.boot.system.model.query.DictDataPageQuery;
import com.youlai.boot.system.model.vo.DictDataPageVO;
import com.youlai.boot.system.service.DictDataService;
import io.swagger.v3.oas.annotations.Operation;
@@ -39,7 +39,7 @@ public class DictDataController {
@GetMapping("/page")
@Log( value = "字典数据分页列表",module = LogModuleEnum.DICT)
public PageResult<DictDataPageVO> getDictDataPage(
DictPageQuery queryParams
DictDataPageQuery queryParams
) {
Page<DictDataPageVO> result = dictDataService.getDictDataPage(queryParams);
return PageResult.success(result);
@@ -86,10 +86,10 @@ public class DictDataController {
@Operation(summary = "字典数据列表")
@GetMapping("/{dictCode}/options")
public Result<List<Option>> getDictDataList(
public Result<List<Option<String>>> getDictDataList(
@Parameter(description = "字典编码") @PathVariable String dictCode
) {
List<Option> options = dictDataService.getDictDataList(dictCode);
List<Option<String>> options = dictDataService.getDictDataList(dictCode);
return Result.success(options);
}

View File

@@ -2,7 +2,9 @@ package com.youlai.boot.system.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.youlai.boot.common.model.Option;
import com.youlai.boot.system.model.entity.DictData;
import com.youlai.boot.system.model.query.DictDataPageQuery;
import com.youlai.boot.system.model.query.DictPageQuery;
import com.youlai.boot.system.model.vo.DictDataPageVO;
import org.apache.ibatis.annotations.Mapper;
@@ -16,7 +18,15 @@ import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface DictDataMapper extends BaseMapper<DictData> {
Page<DictDataPageVO> getDictDataPage(Page<DictDataPageVO> page, DictPageQuery queryParams);
/**
* 字典数据分页列表
*/
Page<DictDataPageVO> getDictDataPage(Page<DictDataPageVO> page, DictDataPageQuery queryParams);
/**
* 根据字典编码获取字典数据列表
*/
Option listDictDataByDictCode(String dictCode);
}

View File

@@ -19,7 +19,7 @@ public class Dict extends BaseEntity {
/**
* 字典编码
*/
private String code;
private String dictCode;
/**
* 字典名称

View File

@@ -23,7 +23,7 @@ public class DictForm {
private Long id;
@Schema(description = "字典名称",example = "性别")
private String dictName;
private String name;
@Schema(description = "字典编码", example ="gender")
private String dictCode;
@@ -32,5 +32,4 @@ public class DictForm {
@Range(min = 0, max = 1, message = "字典状态不正确")
private Integer status;
}

View File

@@ -23,12 +23,12 @@ public class DictDataPageVO {
@Schema(description = "字典编码")
private String dictCode;
@Schema(description = "字典数据值")
private String value;
@Schema(description = "字典数据标签")
@Schema(description = "字典标签")
private String label;
@Schema(description = "字典值")
private String value;
@Schema(description = "排序")
private Integer sort;

View File

@@ -23,7 +23,7 @@ public class DictPageVO {
private Long id;
@Schema(description = "字典名称")
private String dictName;
private String name;
@Schema(description = "字典编码")
private String dictCode;

View File

@@ -6,6 +6,7 @@ import com.youlai.boot.common.model.Option;
import com.youlai.boot.system.model.entity.DictData;
import com.youlai.boot.system.model.form.DictDataForm;
import com.youlai.boot.system.model.form.DictForm;
import com.youlai.boot.system.model.query.DictDataPageQuery;
import com.youlai.boot.system.model.query.DictPageQuery;
import com.youlai.boot.system.model.vo.DictDataPageVO;
@@ -25,7 +26,7 @@ public interface DictDataService extends IService<DictData> {
* @param queryParams
* @return
*/
Page<DictDataPageVO> getDictDataPage(DictPageQuery queryParams);
Page<DictDataPageVO> getDictDataPage(DictDataPageQuery queryParams);
/**
* 获取字典数据表单

View File

@@ -8,6 +8,7 @@ import com.youlai.boot.system.converter.DictDataConverter;
import com.youlai.boot.system.mapper.DictDataMapper;
import com.youlai.boot.system.model.entity.DictData;
import com.youlai.boot.system.model.form.DictDataForm;
import com.youlai.boot.system.model.query.DictDataPageQuery;
import com.youlai.boot.system.model.query.DictPageQuery;
import com.youlai.boot.system.model.vo.DictDataPageVO;
import com.youlai.boot.system.service.DictDataService;
@@ -36,7 +37,7 @@ public class DictDataServiceImpl extends ServiceImpl<DictDataMapper, DictData> i
* @return
*/
@Override
public Page<DictDataPageVO> getDictDataPage(DictPageQuery queryParams) {
public Page<DictDataPageVO> getDictDataPage(DictDataPageQuery queryParams) {
int pageNum = queryParams.getPageNum();
int pageSize = queryParams.getPageSize();
Page<DictDataPageVO> page = new Page<>(pageNum, pageSize);

View File

@@ -23,7 +23,6 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.*;
import java.util.stream.Collectors;
/**
* 数据字典业务实现类
@@ -65,10 +64,10 @@ public class DictServiceImpl extends ServiceImpl<DictMapper, Dict> implements Di
Dict entity = dictConverter.toEntity(dictForm);
// 校验 code 是否唯一
String dictCode = entity.getCode();
String dictCode = entity.getDictCode();
long count = this.count(new LambdaQueryWrapper<Dict>()
.eq(Dict::getCode, dictCode)
.eq(Dict::getDictCode, dictCode)
);
Assert.isTrue(count == 0, "字典编码已存在");
@@ -103,9 +102,9 @@ public class DictServiceImpl extends ServiceImpl<DictMapper, Dict> implements Di
Dict entity = dictConverter.toEntity(dictForm);
// 校验 code 是否唯一
String dictCode = entity.getCode();
String dictCode = entity.getDictCode();
long count = this.count(new LambdaQueryWrapper<Dict>()
.eq(Dict::getCode, dictCode)
.eq(Dict::getDictCode, dictCode)
.ne(Dict::getId, id)
);
if(count>0){
@@ -137,7 +136,7 @@ public class DictServiceImpl extends ServiceImpl<DictMapper, Dict> implements Di
if (removeResult) {
dictDataService.remove(
new LambdaQueryWrapper<DictData>()
.eq(DictData::getDictCode, dict.getCode())
.eq(DictData::getDictCode, dict.getDictCode())
);
}
@@ -154,7 +153,7 @@ public class DictServiceImpl extends ServiceImpl<DictMapper, Dict> implements Di
public List<Option<Long>> listDictItemsByCode(String code) {
// 根据字典编码获取字典ID
Dict dict = this.getOne(new LambdaQueryWrapper<Dict>()
.eq(Dict::getCode, code)
.eq(Dict::getDictCode, code)
.select(Dict::getId)
.last("limit 1")
);
@@ -166,7 +165,7 @@ public class DictServiceImpl extends ServiceImpl<DictMapper, Dict> implements Di
// 获取字典项
List<DictData> dictData = dictDataService.list(
new LambdaQueryWrapper<DictData>()
.eq(DictData::getDictCode, dict.getCode())
.eq(DictData::getDictCode, dict.getDictCode())
);
// 转换为 Option
@@ -180,9 +179,9 @@ public class DictServiceImpl extends ServiceImpl<DictMapper, Dict> implements Di
public List<Option<String>> getDictList() {
return this.list(new LambdaQueryWrapper<Dict>()
.eq(Dict::getStatus, 1)
.select(Dict::getName, Dict::getCode)
.select(Dict::getName, Dict::getDictCode)
).stream()
.map(dict -> new Option<>(dict.getCode(), dict.getName()))
.map(dict -> new Option<>(dict.getDictCode(), dict.getName()))
.toList();
}
}