|  |  |  | 
|---|
|  |  |  | 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); | 
|---|
|  |  |  | //执行删除 | 
|---|
|  |  |  | 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); | 
|---|
|  |  |  | //刷新缓存 | 
|---|
|  |  |  | refreshCache(); | 
|---|
|  |  |  | //封装返回对象 | 
|---|
|  |  |  | dto.setSysDictData(existData); | 
|---|
|  |  |  | dto.setCode(ResponseCodeEnum.SUCCESS.getCode()); | 
|---|
|  |  |  | dto.setMsg(ResponseCodeEnum.SUCCESS.getMsg()); | 
|---|
|  |  |  | return dto; | 
|---|
|  |  |  | 
|---|
|  |  |  | 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(); | 
|---|
|  |  |  | //判断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); | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | //执行更新 | 
|---|
|  |  |  | sysDictDataMapper.updateById(sysDictData); | 
|---|
|  |  |  | //清除缓存 | 
|---|
|  |  |  | CacheUtils.clearDictionariesCache(); | 
|---|
|  |  |  | //刷新缓存 | 
|---|
|  |  |  | refreshCache(); | 
|---|
|  |  |  | //封装返回结果 | 
|---|
|  |  |  | dto.setSysDictData(sysDictData); | 
|---|
|  |  |  | dto.setCode(ResponseCodeEnum.SUCCESS.getCode()); | 
|---|
|  |  |  | dto.setMsg(ResponseCodeEnum.SUCCESS.getMsg()); | 
|---|
|  |  |  | return dto; | 
|---|
|  |  |  | 
|---|
|  |  |  | 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()); | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | //执行插入 | 
|---|
|  |  |  | sysDictDataMapper.insert(sysDictData); | 
|---|
|  |  |  | //清除缓存 | 
|---|
|  |  |  | CacheUtils.clearDictionariesCache(); | 
|---|
|  |  |  | //刷新缓存 | 
|---|
|  |  |  | 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> | 
|---|
|  |  |  | * @return: java.util.Map<java.lang.String                               ,                               java.lang.Object> | 
|---|
|  |  |  | * @Author: 陈凯裕 | 
|---|
|  |  |  | * @Date: 2021/4/16 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | 
|---|
|  |  |  | 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 | 
|---|
|  |  |  | */ | 
|---|