feat: 添加获取所有字典和数据接口

This commit is contained in:
Ray.Hao
2024-10-18 22:22:27 +08:00
parent 37a20c7a6c
commit 3481396e59
12 changed files with 113 additions and 60 deletions

View File

@@ -7,11 +7,12 @@ import com.youlai.boot.system.model.entity.Dict;
import com.youlai.boot.system.model.form.DictForm;
import com.youlai.boot.system.model.query.DictPageQuery;
import com.youlai.boot.system.model.vo.DictPageVO;
import com.youlai.boot.system.model.vo.DictVO;
import java.util.List;
/**
* 数据字典业务接口
* 字典业务接口
*
* @author haoxr
* @since 2022/10/12
@@ -48,7 +49,7 @@ public interface DictService extends IService<Dict> {
/**
* 修改字典
*
* @param id
* @param id 字典ID
* @param dictForm 字典表单
* @return
*/
@@ -63,19 +64,10 @@ public interface DictService extends IService<Dict> {
void deleteDictByIds(String idsStr);
/**
* 获取字典的数据项
*
* @param code 字典编码
* @return
*/
List<Option<Long>> listDictItemsByCode(String code);
/**
* 获取字典列表
*
* @return
*/
List<Option<String>> getDictList();
List<DictVO> getAllDictWithData();
}

View File

@@ -16,6 +16,7 @@ import com.youlai.boot.system.model.form.DictForm;
import com.youlai.boot.system.model.query.DictPageQuery;
import com.youlai.boot.system.model.vo.DictPageVO;
import com.youlai.boot.common.model.Option;
import com.youlai.boot.system.model.vo.DictVO;
import com.youlai.boot.system.service.DictDataService;
import com.youlai.boot.system.service.DictService;
import lombok.RequiredArgsConstructor;
@@ -145,44 +146,11 @@ public class DictServiceImpl extends ServiceImpl<DictMapper, Dict> implements Di
}
/**
* 获取字典数据
*
* @param code 字典编码
* 获取所有字典和字典数据
*/
@Override
public List<Option<Long>> listDictItemsByCode(String code) {
// 根据字典编码获取字典ID
Dict dict = this.getOne(new LambdaQueryWrapper<Dict>()
.eq(Dict::getDictCode, code)
.select(Dict::getId)
.last("limit 1")
);
// 如果字典不存在,则返回空集合
if (dict == null) {
return CollectionUtil.newArrayList();
}
// 获取字典项
List<DictData> dictData = dictDataService.list(
new LambdaQueryWrapper<DictData>()
.eq(DictData::getDictCode, dict.getDictCode())
);
// 转换为 Option
return dictDataConverter.toOption(dictData);
}
/**
* 获取字典列表
*/
@Override
public List<Option<String>> getDictList() {
return this.list(new LambdaQueryWrapper<Dict>()
.eq(Dict::getStatus, 1)
.select(Dict::getName, Dict::getDictCode)
).stream()
.map(dict -> new Option<>(dict.getDictCode(), dict.getName()))
.toList();
public List<DictVO> getAllDictWithData() {
return this.baseMapper.getAllDictWithData();
}
}