From 0936aaccea661743b37ac948b9bfec5093e1f93b Mon Sep 17 00:00:00 2001
From: MichelleChung <1242874891@qq.com>
Date: 星期六, 13 八月 2022 23:35:55 +0800
Subject: [PATCH] !215 使用Spring Cache注解优化缓存

---
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDictDataServiceImpl.java |   34 +++++++++++++---------------------
 1 files changed, 13 insertions(+), 21 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 71a8305..c003f47 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
@@ -2,15 +2,17 @@
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.ruoyi.common.constant.CacheConstants;
+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.RedisUtils;
+import com.ruoyi.common.utils.cache.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;
@@ -89,8 +91,7 @@
         for (Long dictCode : dictCodes) {
             SysDictData data = selectDictDataById(dictCode);
             baseMapper.deleteById(dictCode);
-            List<SysDictData> dictDatas = baseMapper.selectDictDataByType(data.getDictType());
-            RedisUtils.setCacheObject(getCacheKey(data.getDictType()), dictDatas);
+            CacheUtils.evict(CacheNames.SYS_DICT, data.getDictType());
         }
     }
 
@@ -100,14 +101,14 @@
      * @param data 瀛楀吀鏁版嵁淇℃伅
      * @return 缁撴灉
      */
+    @CachePut(cacheNames = CacheNames.SYS_DICT, key = "#data.dictType")
     @Override
-    public int insertDictData(SysDictData data) {
+    public List<SysDictData> insertDictData(SysDictData data) {
         int row = baseMapper.insert(data);
         if (row > 0) {
-            List<SysDictData> dictDatas = baseMapper.selectDictDataByType(data.getDictType());
-            RedisUtils.setCacheObject(getCacheKey(data.getDictType()), dictDatas);
+            return baseMapper.selectDictDataByType(data.getDictType());
         }
-        return row;
+        throw new ServiceException("鎿嶄綔澶辫触");
     }
 
     /**
@@ -116,23 +117,14 @@
      * @param data 瀛楀吀鏁版嵁淇℃伅
      * @return 缁撴灉
      */
+    @CachePut(cacheNames = CacheNames.SYS_DICT, key = "#data.dictType")
     @Override
-    public int updateDictData(SysDictData data) {
+    public List<SysDictData> updateDictData(SysDictData data) {
         int row = baseMapper.updateById(data);
         if (row > 0) {
-            List<SysDictData> dictDatas = baseMapper.selectDictDataByType(data.getDictType());
-            RedisUtils.setCacheObject(getCacheKey(data.getDictType()), dictDatas);
+            return baseMapper.selectDictDataByType(data.getDictType());
         }
-        return row;
+        throw new ServiceException("鎿嶄綔澶辫触");
     }
 
-    /**
-     * 璁剧疆cache key
-     *
-     * @param configKey 鍙傛暟閿�
-     * @return 缂撳瓨閿甼ey
-     */
-    String getCacheKey(String configKey) {
-        return CacheConstants.SYS_DICT_KEY + configKey;
-    }
 }

--
Gitblit v1.9.3