diff --git a/shuili-admin/src/main/java/com/kms/web/controller/system/SysDictDataController.java b/shuili-admin/src/main/java/com/kms/web/controller/system/SysDictDataController.java index 574f190f..019f5b6f 100644 --- a/shuili-admin/src/main/java/com/kms/web/controller/system/SysDictDataController.java +++ b/shuili-admin/src/main/java/com/kms/web/controller/system/SysDictDataController.java @@ -124,12 +124,12 @@ public class SysDictDataController extends BaseController /** * 字典数据map(key:dictValue,value:dictLabel) - * @param dictType + * @param dictType 字典类型 * @return */ @ApiOperation("字典数据Map") @GetMapping(value = "/map") - public Response> map(@RequestParam(required = false) String dictType) { + public Response> map(@RequestParam(value = "dictType") String dictType) { return Response.ok(dictDataService.selectMap(dictType)); } } diff --git a/shuili-system/src/main/java/com/kms/system/service/SysDictDataService.java b/shuili-system/src/main/java/com/kms/system/service/SysDictDataService.java index a02a4f3f..3991ea9d 100644 --- a/shuili-system/src/main/java/com/kms/system/service/SysDictDataService.java +++ b/shuili-system/src/main/java/com/kms/system/service/SysDictDataService.java @@ -1,17 +1,21 @@ package com.kms.system.service; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.kms.system.mapper.SysDictTypeMapper; import com.shuili.common.constant.YesOrNo; import com.shuili.common.core.domain.entity.SysDictData; +import com.shuili.common.core.domain.entity.SysDictType; import com.shuili.common.core.service.BaseService; import com.shuili.common.utils.DictUtils; import com.shuili.common.utils.StringUtils; import com.kms.common.utils.BaseEntityUtils; import com.kms.system.mapper.SysDictDataMapper; +import org.apache.commons.collections4.CollectionUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.Arrays; +import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.stream.Collectors; @@ -27,6 +31,9 @@ public class SysDictDataService extends BaseService selectMap(String dictType) { - LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper - .eq(StringUtils.isNotBlank(dictType), SysDictData::getDictType, dictType); - List sysDictData = dictDataMapper.selectList(queryWrapper); - return sysDictData.stream().collect(Collectors.toMap(SysDictData::getDictValue, SysDictData::getDictLabel)); + // 字典数据 + List sysDictData = dictDataMapper.selectList(null); + + Map> dictDataMap = sysDictData.stream().collect(Collectors.groupingBy(SysDictData::getDictType)); + + + Map map = new HashMap<>(); + + List dataList = dictDataMap.get(dictType); + if(CollectionUtils.isNotEmpty(dataList)) { + toMap(dataList, map, dictDataMap, ""); + } + + + return map; + } + + private void toMap(List dataList, Map map, Map> dictDataMap, String keyPrefix) { + dataList.forEach(t -> { + String key = keyPrefix + t.getDictValue(); + map.put(key, t.getDictLabel()); + // 该 字典也可作为 一个父级 + List sysDictData = dictDataMap.get(t.getDictValue()); + if(CollectionUtils.isNotEmpty(sysDictData)) { + toMap(sysDictData, map, dictDataMap, key + ":"); + } + }); } }