From 19b72fbd2e6b30a23a06dd284619784a096bc896 Mon Sep 17 00:00:00 2001
From: kaiyu <404897439@qq.com>
Date: Thu, 26 Aug 2021 11:33:56 +0800
Subject: [PATCH] screen-manage                  单位转换插入添加日志功能                  修复organization插入Bug

---
 screen-manage/src/main/java/com/moral/api/service/impl/SysDictDataServiceImpl.java |   88 +++++++++++++++++++++++++------------------
 1 files changed, 51 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..08b24e5 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;
@@ -43,6 +44,8 @@
     SysDictDataMapper sysDictDataMapper;
     @Autowired
     RedisTemplate redisTemplate;
+    @Autowired
+    LogUtils logUtils;
 
     @Override
     @Transactional
@@ -51,20 +54,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 +89,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 +106,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 +147,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();
@@ -185,18 +191,25 @@
     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 +226,4 @@
         return result;
     }
 }
+

--
Gitblit v1.8.0