作者 RuoYi

优化加载字典缓存数据

1 package com.ruoyi.system.service.impl; 1 package com.ruoyi.system.service.impl;
2 2
  3 +import java.util.Comparator;
  4 +import java.util.List;
  5 +import java.util.Map;
  6 +import java.util.stream.Collectors;
  7 +import javax.annotation.PostConstruct;
  8 +import org.springframework.beans.factory.annotation.Autowired;
  9 +import org.springframework.stereotype.Service;
  10 +import org.springframework.transaction.annotation.Transactional;
3 import com.ruoyi.common.constant.UserConstants; 11 import com.ruoyi.common.constant.UserConstants;
4 import com.ruoyi.common.core.domain.entity.SysDictData; 12 import com.ruoyi.common.core.domain.entity.SysDictData;
5 import com.ruoyi.common.core.domain.entity.SysDictType; 13 import com.ruoyi.common.core.domain.entity.SysDictType;
@@ -9,11 +17,6 @@ import com.ruoyi.common.utils.StringUtils; @@ -9,11 +17,6 @@ import com.ruoyi.common.utils.StringUtils;
9 import com.ruoyi.system.mapper.SysDictDataMapper; 17 import com.ruoyi.system.mapper.SysDictDataMapper;
10 import com.ruoyi.system.mapper.SysDictTypeMapper; 18 import com.ruoyi.system.mapper.SysDictTypeMapper;
11 import com.ruoyi.system.service.ISysDictTypeService; 19 import com.ruoyi.system.service.ISysDictTypeService;
12 -import org.springframework.beans.factory.annotation.Autowired;  
13 -import org.springframework.stereotype.Service;  
14 -import org.springframework.transaction.annotation.Transactional;  
15 -import javax.annotation.PostConstruct;  
16 -import java.util.List;  
17 20
18 /** 21 /**
19 * 字典 业务层处理 22 * 字典 业务层处理
@@ -135,11 +138,12 @@ public class SysDictTypeServiceImpl implements ISysDictTypeService @@ -135,11 +138,12 @@ public class SysDictTypeServiceImpl implements ISysDictTypeService
135 @Override 138 @Override
136 public void loadingDictCache() 139 public void loadingDictCache()
137 { 140 {
138 - List<SysDictType> dictTypeList = dictTypeMapper.selectDictTypeAll();  
139 - for (SysDictType dictType : dictTypeList) 141 + SysDictData dictData = new SysDictData();
  142 + dictData.setStatus("0");
  143 + Map<String, List<SysDictData>> dictDataMap = dictDataMapper.selectDictDataList(dictData).stream().collect(Collectors.groupingBy(SysDictData::getDictType));
  144 + for (Map.Entry<String, List<SysDictData>> entry : dictDataMap.entrySet())
140 { 145 {
141 - List<SysDictData> dictDatas = dictDataMapper.selectDictDataByType(dictType.getDictType());  
142 - DictUtils.setDictCache(dictType.getDictType(), dictDatas); 146 + DictUtils.setDictCache(entry.getKey(), entry.getValue().stream().sorted(Comparator.comparing(SysDictData::getDictSort)).collect(Collectors.toList()));
143 } 147 }
144 } 148 }
145 149