From a4bcc1576c21046167cdea4049821e2238757784 Mon Sep 17 00:00:00 2001
From: kaiyu <404897439@qq.com>
Date: Sat, 18 Sep 2021 09:45:59 +0800
Subject: [PATCH] screen-manage 修改添加父菜单BUG
---
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