|
@ -1,17 +1,21 @@ |
|
|
package com.kms.system.service; |
|
|
package com.kms.system.service; |
|
|
|
|
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
|
|
|
|
|
import com.kms.system.mapper.SysDictTypeMapper; |
|
|
import com.shuili.common.constant.YesOrNo; |
|
|
import com.shuili.common.constant.YesOrNo; |
|
|
import com.shuili.common.core.domain.entity.SysDictData; |
|
|
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.core.service.BaseService; |
|
|
import com.shuili.common.utils.DictUtils; |
|
|
import com.shuili.common.utils.DictUtils; |
|
|
import com.shuili.common.utils.StringUtils; |
|
|
import com.shuili.common.utils.StringUtils; |
|
|
import com.kms.common.utils.BaseEntityUtils; |
|
|
import com.kms.common.utils.BaseEntityUtils; |
|
|
import com.kms.system.mapper.SysDictDataMapper; |
|
|
import com.kms.system.mapper.SysDictDataMapper; |
|
|
|
|
|
import org.apache.commons.collections4.CollectionUtils; |
|
|
import org.springframework.beans.factory.annotation.Autowired; |
|
|
import org.springframework.beans.factory.annotation.Autowired; |
|
|
import org.springframework.stereotype.Service; |
|
|
import org.springframework.stereotype.Service; |
|
|
|
|
|
|
|
|
import java.util.Arrays; |
|
|
import java.util.Arrays; |
|
|
|
|
|
import java.util.HashMap; |
|
|
import java.util.List; |
|
|
import java.util.List; |
|
|
import java.util.Map; |
|
|
import java.util.Map; |
|
|
import java.util.stream.Collectors; |
|
|
import java.util.stream.Collectors; |
|
@ -27,6 +31,9 @@ public class SysDictDataService extends BaseService<SysDictDataMapper,SysDictDat |
|
|
@Autowired |
|
|
@Autowired |
|
|
private SysDictDataMapper dictDataMapper; |
|
|
private SysDictDataMapper dictDataMapper; |
|
|
|
|
|
|
|
|
|
|
|
@Autowired |
|
|
|
|
|
private SysDictTypeMapper dictTypeMapper; |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
* 根据条件分页查询字典数据 |
|
|
* 根据条件分页查询字典数据 |
|
|
* |
|
|
* |
|
@ -134,10 +141,32 @@ public class SysDictDataService extends BaseService<SysDictDataMapper,SysDictDat |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public Map<String, String> selectMap(String dictType) { |
|
|
public Map<String, String> selectMap(String dictType) { |
|
|
LambdaQueryWrapper<SysDictData> queryWrapper = new LambdaQueryWrapper<>(); |
|
|
// 字典数据
|
|
|
queryWrapper |
|
|
List<SysDictData> sysDictData = dictDataMapper.selectList(null); |
|
|
.eq(StringUtils.isNotBlank(dictType), SysDictData::getDictType, dictType); |
|
|
|
|
|
List<SysDictData> sysDictData = dictDataMapper.selectList(queryWrapper); |
|
|
Map<String, List<SysDictData>> dictDataMap = sysDictData.stream().collect(Collectors.groupingBy(SysDictData::getDictType)); |
|
|
return sysDictData.stream().collect(Collectors.toMap(SysDictData::getDictValue, SysDictData::getDictLabel)); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Map<String, String> map = new HashMap<>(); |
|
|
|
|
|
|
|
|
|
|
|
List<SysDictData> dataList = dictDataMap.get(dictType); |
|
|
|
|
|
if(CollectionUtils.isNotEmpty(dataList)) { |
|
|
|
|
|
toMap(dataList, map, dictDataMap, ""); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return map; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private void toMap(List<SysDictData> dataList, Map<String, String> map, Map<String, List<SysDictData>> dictDataMap, String keyPrefix) { |
|
|
|
|
|
dataList.forEach(t -> { |
|
|
|
|
|
String key = keyPrefix + t.getDictValue(); |
|
|
|
|
|
map.put(key, t.getDictLabel()); |
|
|
|
|
|
// 该 字典也可作为 一个父级
|
|
|
|
|
|
List<SysDictData> sysDictData = dictDataMap.get(t.getDictValue()); |
|
|
|
|
|
if(CollectionUtils.isNotEmpty(sysDictData)) { |
|
|
|
|
|
toMap(sysDictData, map, dictDataMap, key + ":"); |
|
|
|
|
|
} |
|
|
|
|
|
}); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|