From b7f5fd4000d644d117a0936dbcc2bfc56bfab4f0 Mon Sep 17 00:00:00 2001
From: lizijie <lzjiiie@163.com>
Date: Thu, 16 Sep 2021 10:08:11 +0800
Subject: [PATCH] 新建特殊设备DTO类,存放保存到redis的数据

---
 screen-manage/src/main/java/com/moral/api/service/impl/SysDictDataServiceImpl.java |  106 ++++++++++++++++++++++++++++++++++++----------------
 1 files changed, 73 insertions(+), 33 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 cfca955..102f116 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;
@@ -75,35 +84,49 @@
         SysDictDataDTO dto = new SysDictDataDTO();
         //������
         SysDictData sysDictData = form.formConvertEntity();
-        //������������������������
+        //���������������������������
         QueryWrapper<SysDictData> existWrapper = new QueryWrapper<>();
         existWrapper.eq("is_delete", Constants.NOT_DELETE);
         existWrapper.eq("id", sysDictData.getId());
         SysDictData existData = sysDictDataMapper.selectOne(existWrapper);
+        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);
+            wrapper.eq("dict_type_id", existData.getDictTypeId());
+            SysDictData existKeyData = sysDictDataMapper.selectOne(wrapper);
+            if (!ObjectUtils.isEmpty(existKeyData)) {
+                dto.setCode(ResponseCodeEnum.DICTDATA_KEY_EXIST.getCode());
+                dto.setMsg(ResponseCodeEnum.DICTDATA_KEY_EXIST.getMsg());
+                return dto;
+            }
+        }
         //������������
         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());
@@ -124,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();
@@ -168,10 +188,29 @@
     }
 
 
+    @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<>();
+        for (SysDictData sysDictData : sysDictDatas) {
+            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
      */
@@ -188,3 +227,4 @@
         return result;
     }
 }
+

--
Gitblit v1.8.0