From 93fe0b66e85e95e3a7e77a28504d6d289b6906b9 Mon Sep 17 00:00:00 2001
From: kaiyu <404897439@qq.com>
Date: Fri, 08 Oct 2021 13:11:22 +0800
Subject: [PATCH] screen-manage screen-api      更改拦截器逻辑,记录token无效的请求IP以及URL。      manage记录到数据库日志中      api记录在日志文件中

---
 screen-manage/src/main/java/com/moral/api/service/impl/SysDictDataServiceImpl.java |   87 +++++++++++++++++++++++++------------------
 1 files changed, 50 insertions(+), 37 deletions(-)

diff --git a/screen-manage/src/main/java/com/moral/api/service/impl/SysDictDataServiceImpl.java b/screen-manage/src/main/java/com/moral/api/service/impl/SysDictDataServiceImpl.java
index 5c0cf16..df1c11a 100644
--- a/screen-manage/src/main/java/com/moral/api/service/impl/SysDictDataServiceImpl.java
+++ b/screen-manage/src/main/java/com/moral/api/service/impl/SysDictDataServiceImpl.java
@@ -13,6 +13,7 @@
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.moral.api.service.SysDictTypeService;
 import com.moral.api.util.CacheUtils;
+import com.moral.api.util.LogUtils;
 import com.moral.constant.Constants;
 import com.moral.constant.RedisConstants;
 import com.moral.constant.ResponseCodeEnum;
@@ -51,20 +52,26 @@
         SysDictDataDTO dto = new SysDictDataDTO();
         //������
         Integer id = form.getId();
-        //������������������
+        //������������������������������������������������������
         QueryWrapper existWrapper = new QueryWrapper();
-        existWrapper.eq("is_delete",Constants.NOT_DELETE);
-        existWrapper.eq("id",id);
+        existWrapper.eq("is_delete", Constants.NOT_DELETE);
+        existWrapper.eq("id", id);
         SysDictData existData = sysDictDataMapper.selectOne(existWrapper);
+        SysDictType type = sysDictTypeService.getDictTypeById(existData.getDictTypeId());
         //������������
         UpdateWrapper deleteWrapper = new UpdateWrapper();
-        deleteWrapper.set("is_delete",Constants.DELETE);
-        deleteWrapper.eq("id",id);
-        sysDictDataMapper.update(null,deleteWrapper);
-        //������������
-        CacheUtils.clearDictionariesCache();
+        deleteWrapper.set("is_delete", Constants.DELETE);
+        deleteWrapper.eq("id", id);
+        sysDictDataMapper.update(null, deleteWrapper);
+        //������������
+        StringBuilder content = new StringBuilder("���������������������;");
+        content.append("������:"+type.getName()+"("+type.getDesc()+")"+";");
+        content.append("key:"+existData.getDataKey()+";");
+        content.append("value:"+existData.getDataValue()+";");
+        LogUtils.saveOperationForManage(content.toString(),Constants.DELETE_OPERATE_TYPE);
+        //������������
+        refreshCache();
         //������������������
-        dto.setSysDictData(existData);
         dto.setCode(ResponseCodeEnum.SUCCESS.getCode());
         dto.setMsg(ResponseCodeEnum.SUCCESS.getMsg());
         return dto;
@@ -80,9 +87,10 @@
         existWrapper.eq("is_delete", Constants.NOT_DELETE);
         existWrapper.eq("id", sysDictData.getId());
         SysDictData existData = sysDictDataMapper.selectOne(existWrapper);
-        //������key������������������������������������������������
-        if(!ObjectUtils.isEmpty(sysDictData.getDataKey())){
-            String key = sysDictData.getDataKey();
+        SysDictType type = sysDictTypeService.getDictTypeById(existData.getDictTypeId());
+        //������key������������
+        String key = sysDictData.getDataKey();
+        if (!ObjectUtils.isEmpty(key)) {
             QueryWrapper<SysDictData> wrapper = new QueryWrapper<>();
             wrapper.eq("is_delete", Constants.NOT_DELETE);
             wrapper.eq("dataKey", key);
@@ -96,28 +104,27 @@
         }
         //������������
         sysDictDataMapper.updateById(sysDictData);
-        //������������
-        CacheUtils.clearDictionariesCache();
+        //������������
+        StringBuilder content = new StringBuilder("���������������������;");
+        content.append("������:"+type.getName()+"("+type.getDesc()+")"+";");
+        content.append("key:"+existData.getDataKey()+";");
+        content.append("value:"+existData.getDataValue()+"->"+sysDictData.getDataValue()+";");
+        LogUtils.saveOperationForManage(content.toString(),Constants.UPDATE_OPERATE_TYPE);
+        //������������
+        refreshCache();
         //������������������
-        dto.setSysDictData(sysDictData);
         dto.setCode(ResponseCodeEnum.SUCCESS.getCode());
         dto.setMsg(ResponseCodeEnum.SUCCESS.getMsg());
         return dto;
     }
 
-    /**
-     * @Description: ������������������id������������������������
-     * @Param: [form]
-     * @return: com.moral.api.pojo.dto.sysDictData.SysDictDataDTO
-     * @Author: ���������
-     * @Date: 2021/4/16
-     */
+
     @Override
     public SysDictDataDTO insertData(SysDictDataInsertForm form) {
         SysDictDataDTO dto = new SysDictDataDTO();
         //������
         SysDictData sysDictData = form.formConvertEntity();
-        //������������������������
+        //������������������������������������
         SysDictType type = sysDictTypeService.getDictTypeById(sysDictData.getDictTypeId());
         if (ObjectUtils.isEmpty(type)) {
             dto.setCode(ResponseCodeEnum.DICTTYPE_NOT_EXIST.getCode());
@@ -138,23 +145,20 @@
         }
         //������������
         sysDictDataMapper.insert(sysDictData);
-        //������������
-        CacheUtils.clearDictionariesCache();
+        //������������
+        StringBuilder content = new StringBuilder("���������������������;");
+        content.append("������:"+type.getName()+"("+type.getDesc()+")"+";");
+        content.append("key:"+sysDictData.getDataKey()+";");
+        content.append("value:"+sysDictData.getDataValue()+";");
+        LogUtils.saveOperationForManage(content.toString(),Constants.INSERT_OPERATE_TYPE);
+        //������������
+        refreshCache();
         //������������������
-        dto.setSysDictData(sysDictData);
-        dto.setSysDictType(type);
         dto.setCode(ResponseCodeEnum.SUCCESS.getCode());
         dto.setMsg(ResponseCodeEnum.SUCCESS.getMsg());
         return dto;
     }
 
-    /**
-     * @Description: ���������������������������������������������
-     * @Param: [typeName]
-     * @return: java.util.Map<java.lang.String       ,       java.lang.Object>
-     * @Author: ���������
-     * @Date: 2021/4/16
-     */
     @Override
     public Map<String, Object> queryDataByTypeName(String typeName) {
         Map<String, List<SysDictData>> datas = getAllDictData();
@@ -181,22 +185,30 @@
         return datas;
     }
 
+
     @Override
     public Map<String, SysDictData> getDictDatasByType(String type) {
         Map<String, List<SysDictData>> allDictData = getAllDictData();
         List<SysDictData> sysDictDatas = allDictData.get(type);
-        Map<String,SysDictData> result = new HashMap<>();
+        Map<String, SysDictData> result = new HashMap<>();
         for (SysDictData sysDictData : sysDictDatas) {
-            result.put(sysDictData.getDataKey(),sysDictData);
+            result.put(sysDictData.getDataKey(), sysDictData);
         }
         return result;
+    }
+
+    @Override
+    public void refreshCache(){
+        redisTemplate.delete(RedisConstants.DICT_DATA_KEY);
+        Map<String, List<SysDictData>> datas = getDictDataFromDB();
+        redisTemplate.opsForValue().set(RedisConstants.DICT_DATA_KEY, datas);
     }
 
 
     /**
      * @Description: ������������������������������������������������������������Map  Key��������������� value���������������
      * @Param: []
-     * @return: java.util.Map<java.lang.String               ,               java.util.List               <               com.moral.api.entity.sysDictData>>
+     * @return: java.util.Map<java.lang.String                                                               ,                                                               java.util.List                                                               <                                                               com.moral.api.entity.sysDictData>>
      * @Author: ���������
      * @Date: 2021/4/14
      */
@@ -213,3 +225,4 @@
         return result;
     }
 }
+

--
Gitblit v1.8.0