From 02f4fdb2e5b68ec97cc1d6ef83d145dc6318f89d Mon Sep 17 00:00:00 2001
From: 疯狂的狮子Li <15040126243@163.com>
Date: 星期三, 19 十月 2022 09:16:06 +0800
Subject: [PATCH] !241 【轻量级 PR】修正Excel导出字典值转换方法由于内部调用缓存不生效问题 Merge pull request !241 from MichelleChung/dev

---
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDictDataServiceImpl.java |  239 ++++++++++++++++++++++++++++++++---------------------------
 1 files changed, 130 insertions(+), 109 deletions(-)

diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDictDataServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDictDataServiceImpl.java
index 39d9505..6b80cf4 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDictDataServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDictDataServiceImpl.java
@@ -1,109 +1,130 @@
-package com.ruoyi.system.service.impl;
-
-import java.util.List;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import com.ruoyi.common.core.domain.entity.SysDictData;
-import com.ruoyi.common.utils.DictUtils;
-import com.ruoyi.system.mapper.SysDictDataMapper;
-import com.ruoyi.system.service.ISysDictDataService;
-
-/**
- * 瀛楀吀 涓氬姟灞傚鐞�
- * 
- * @author ruoyi
- */
-@Service
-public class SysDictDataServiceImpl implements ISysDictDataService
-{
-    @Autowired
-    private SysDictDataMapper dictDataMapper;
-
-    /**
-     * 鏍规嵁鏉′欢鍒嗛〉鏌ヨ瀛楀吀鏁版嵁
-     * 
-     * @param dictData 瀛楀吀鏁版嵁淇℃伅
-     * @return 瀛楀吀鏁版嵁闆嗗悎淇℃伅
-     */
-    @Override
-    public List<SysDictData> selectDictDataList(SysDictData dictData)
-    {
-        return dictDataMapper.selectDictDataList(dictData);
-    }
-
-    /**
-     * 鏍规嵁瀛楀吀绫诲瀷鍜屽瓧鍏搁敭鍊兼煡璇㈠瓧鍏告暟鎹俊鎭�
-     * 
-     * @param dictType 瀛楀吀绫诲瀷
-     * @param dictValue 瀛楀吀閿��
-     * @return 瀛楀吀鏍囩
-     */
-    @Override
-    public String selectDictLabel(String dictType, String dictValue)
-    {
-        return dictDataMapper.selectDictLabel(dictType, dictValue);
-    }
-
-    /**
-     * 鏍规嵁瀛楀吀鏁版嵁ID鏌ヨ淇℃伅
-     * 
-     * @param dictCode 瀛楀吀鏁版嵁ID
-     * @return 瀛楀吀鏁版嵁
-     */
-    @Override
-    public SysDictData selectDictDataById(Long dictCode)
-    {
-        return dictDataMapper.selectDictDataById(dictCode);
-    }
-
-    /**
-     * 鎵归噺鍒犻櫎瀛楀吀鏁版嵁淇℃伅
-     * 
-     * @param dictCodes 闇�瑕佸垹闄ょ殑瀛楀吀鏁版嵁ID
-     * @return 缁撴灉
-     */
-    @Override
-    public int deleteDictDataByIds(Long[] dictCodes)
-    {
-        int row = dictDataMapper.deleteDictDataByIds(dictCodes);
-        if (row > 0)
-        {
-            DictUtils.clearDictCache();
-        }
-        return row;
-    }
-
-    /**
-     * 鏂板淇濆瓨瀛楀吀鏁版嵁淇℃伅
-     * 
-     * @param dictData 瀛楀吀鏁版嵁淇℃伅
-     * @return 缁撴灉
-     */
-    @Override
-    public int insertDictData(SysDictData dictData)
-    {
-        int row = dictDataMapper.insertDictData(dictData);
-        if (row > 0)
-        {
-            DictUtils.clearDictCache();
-        }
-        return row;
-    }
-
-    /**
-     * 淇敼淇濆瓨瀛楀吀鏁版嵁淇℃伅
-     * 
-     * @param dictData 瀛楀吀鏁版嵁淇℃伅
-     * @return 缁撴灉
-     */
-    @Override
-    public int updateDictData(SysDictData dictData)
-    {
-        int row = dictDataMapper.updateDictData(dictData);
-        if (row > 0)
-        {
-            DictUtils.clearDictCache();
-        }
-        return row;
-    }
-}
+package com.ruoyi.system.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.common.constant.CacheNames;
+import com.ruoyi.common.core.domain.PageQuery;
+import com.ruoyi.common.core.domain.entity.SysDictData;
+import com.ruoyi.common.core.page.TableDataInfo;
+import com.ruoyi.common.exception.ServiceException;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.common.utils.redis.CacheUtils;
+import com.ruoyi.system.mapper.SysDictDataMapper;
+import com.ruoyi.system.service.ISysDictDataService;
+import lombok.RequiredArgsConstructor;
+import org.springframework.cache.annotation.CachePut;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 瀛楀吀 涓氬姟灞傚鐞�
+ *
+ * @author Lion Li
+ */
+@RequiredArgsConstructor
+@Service
+public class SysDictDataServiceImpl implements ISysDictDataService {
+
+    private final SysDictDataMapper baseMapper;
+
+    @Override
+    public TableDataInfo<SysDictData> selectPageDictDataList(SysDictData dictData, PageQuery pageQuery) {
+        LambdaQueryWrapper<SysDictData> lqw = new LambdaQueryWrapper<SysDictData>()
+            .eq(StringUtils.isNotBlank(dictData.getDictType()), SysDictData::getDictType, dictData.getDictType())
+            .like(StringUtils.isNotBlank(dictData.getDictLabel()), SysDictData::getDictLabel, dictData.getDictLabel())
+            .eq(StringUtils.isNotBlank(dictData.getStatus()), SysDictData::getStatus, dictData.getStatus())
+            .orderByAsc(SysDictData::getDictSort);
+        Page<SysDictData> page = baseMapper.selectPage(pageQuery.build(), lqw);
+        return TableDataInfo.build(page);
+    }
+
+    /**
+     * 鏍规嵁鏉′欢鍒嗛〉鏌ヨ瀛楀吀鏁版嵁
+     *
+     * @param dictData 瀛楀吀鏁版嵁淇℃伅
+     * @return 瀛楀吀鏁版嵁闆嗗悎淇℃伅
+     */
+    @Override
+    public List<SysDictData> selectDictDataList(SysDictData dictData) {
+        return baseMapper.selectList(new LambdaQueryWrapper<SysDictData>()
+            .eq(StringUtils.isNotBlank(dictData.getDictType()), SysDictData::getDictType, dictData.getDictType())
+            .like(StringUtils.isNotBlank(dictData.getDictLabel()), SysDictData::getDictLabel, dictData.getDictLabel())
+            .eq(StringUtils.isNotBlank(dictData.getStatus()), SysDictData::getStatus, dictData.getStatus())
+            .orderByAsc(SysDictData::getDictSort));
+    }
+
+    /**
+     * 鏍规嵁瀛楀吀绫诲瀷鍜屽瓧鍏搁敭鍊兼煡璇㈠瓧鍏告暟鎹俊鎭�
+     *
+     * @param dictType  瀛楀吀绫诲瀷
+     * @param dictValue 瀛楀吀閿��
+     * @return 瀛楀吀鏍囩
+     */
+    @Override
+    public String selectDictLabel(String dictType, String dictValue) {
+        return baseMapper.selectOne(new LambdaQueryWrapper<SysDictData>()
+                .select(SysDictData::getDictLabel)
+                .eq(SysDictData::getDictType, dictType)
+                .eq(SysDictData::getDictValue, dictValue))
+            .getDictLabel();
+    }
+
+    /**
+     * 鏍规嵁瀛楀吀鏁版嵁ID鏌ヨ淇℃伅
+     *
+     * @param dictCode 瀛楀吀鏁版嵁ID
+     * @return 瀛楀吀鏁版嵁
+     */
+    @Override
+    public SysDictData selectDictDataById(Long dictCode) {
+        return baseMapper.selectById(dictCode);
+    }
+
+    /**
+     * 鎵归噺鍒犻櫎瀛楀吀鏁版嵁淇℃伅
+     *
+     * @param dictCodes 闇�瑕佸垹闄ょ殑瀛楀吀鏁版嵁ID
+     */
+    @Override
+    public void deleteDictDataByIds(Long[] dictCodes) {
+        for (Long dictCode : dictCodes) {
+            SysDictData data = selectDictDataById(dictCode);
+            baseMapper.deleteById(dictCode);
+            CacheUtils.evict(CacheNames.SYS_DICT, data.getDictType());
+        }
+    }
+
+    /**
+     * 鏂板淇濆瓨瀛楀吀鏁版嵁淇℃伅
+     *
+     * @param data 瀛楀吀鏁版嵁淇℃伅
+     * @return 缁撴灉
+     */
+    @CachePut(cacheNames = CacheNames.SYS_DICT, key = "#data.dictType")
+    @Override
+    public List<SysDictData> insertDictData(SysDictData data) {
+        int row = baseMapper.insert(data);
+        if (row > 0) {
+            return baseMapper.selectDictDataByType(data.getDictType());
+        }
+        throw new ServiceException("鎿嶄綔澶辫触");
+    }
+
+    /**
+     * 淇敼淇濆瓨瀛楀吀鏁版嵁淇℃伅
+     *
+     * @param data 瀛楀吀鏁版嵁淇℃伅
+     * @return 缁撴灉
+     */
+    @CachePut(cacheNames = CacheNames.SYS_DICT, key = "#data.dictType")
+    @Override
+    public List<SysDictData> updateDictData(SysDictData data) {
+        int row = baseMapper.updateById(data);
+        if (row > 0) {
+            return baseMapper.selectDictDataByType(data.getDictType());
+        }
+        throw new ServiceException("鎿嶄綔澶辫触");
+    }
+
+}

--
Gitblit v1.9.3