From 2573d09a4a305b7cb4ba9ab82daa8a8e2a4cdeb4 Mon Sep 17 00:00:00 2001 From: cjl <276999030@qq.com> Date: Tue, 26 Sep 2023 20:02:25 +0800 Subject: [PATCH] feat:补充提交 --- screen-api/src/main/java/com/moral/api/service/impl/SysDictDataServiceImpl.java | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 48 insertions(+), 0 deletions(-) diff --git a/screen-api/src/main/java/com/moral/api/service/impl/SysDictDataServiceImpl.java b/screen-api/src/main/java/com/moral/api/service/impl/SysDictDataServiceImpl.java index 4eba4ad..f2822a9 100644 --- a/screen-api/src/main/java/com/moral/api/service/impl/SysDictDataServiceImpl.java +++ b/screen-api/src/main/java/com/moral/api/service/impl/SysDictDataServiceImpl.java @@ -1,10 +1,23 @@ package com.moral.api.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.moral.api.entity.SysDictData; +import com.moral.api.entity.SysDictType; import com.moral.api.mapper.SysDictDataMapper; +import com.moral.api.mapper.SysDictTypeMapper; import com.moral.api.service.SysDictDataService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.moral.constant.RedisConstants; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Service; +import org.springframework.util.ObjectUtils; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; /** * <p> @@ -17,4 +30,39 @@ @Service public class SysDictDataServiceImpl extends ServiceImpl<SysDictDataMapper, SysDictData> implements SysDictDataService { + @Autowired + private SysDictDataMapper sysDictDataMapper; + + @Autowired + private SysDictTypeMapper sysDictTypeMapper; + + @Autowired + private RedisTemplate redisTemplate; + + @Override + public Map<String, Object> getSysDictDataByDictType(String type) { + Map<String, Object> result = new HashMap<>(); + //������redis������ + Map<String, Object> sysDict = (Map<String, Object>) redisTemplate.opsForValue().get(RedisConstants.DICT_DATA_KEY); + List<SysDictData> dictData = (List<SysDictData>) sysDict.get(type); + for (SysDictData dictDatum : dictData) { + result.put(dictDatum.getDataKey(), dictDatum.getDataValue()); + } + + if (!ObjectUtils.isEmpty(result)) { + return result; + } + + //������������������������������������������id + QueryWrapper<SysDictType> sysDictTypeQueryWrapper = new QueryWrapper<>(); + sysDictTypeQueryWrapper.select("id").eq("name", type); + SysDictType sysDictType = sysDictTypeMapper.selectOne(sysDictTypeQueryWrapper); + + //������������������id������������������������ + QueryWrapper<SysDictData> sysDictDataQueryWrapper = new QueryWrapper<>(); + sysDictDataQueryWrapper.select("dataKey", "dataValue").eq("dict_type_id", sysDictType.getId()); + List<SysDictData> sysDictData = sysDictDataMapper.selectList(sysDictDataQueryWrapper); + + return sysDictData.stream().collect(Collectors.toMap(SysDictData::getDataKey, SysDictData::getDataValue, (a, b) -> b)); + } } -- Gitblit v1.8.0