cjl
2023-10-07 f4e06be2e50d54a956ccd26c93661c4ab9d19bf6
screen-manage/src/main/java/com/moral/api/service/impl/SysDictTypeServiceImpl.java
@@ -14,6 +14,7 @@
import com.moral.api.service.SysDictTypeService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
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;
@@ -22,7 +23,10 @@
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.ObjectUtils;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import javax.servlet.http.HttpServletRequest;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@@ -72,14 +76,16 @@
        deleteDataWrapper.eq("dict_type_id",typeId);
        deleteDataWrapper.set("is_delete",Constants.DELETE);
        sysDictDataService.update(null,deleteDataWrapper);
        //清除缓存数据
        CacheUtils.clearDictionariesCache();
        //插入日志
        HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
        LogUtils.saveOperationForManage(request,"删除字典类型:"+type.getName(),Constants.DELETE_OPERATE_TYPE);
        //刷新缓存数据
        refreshCache();
        //封装返回数据
        dto.setCode(ResponseCodeEnum.SUCCESS.getCode());
        dto.setMsg(ResponseCodeEnum.SUCCESS.getMsg());
        return dto;
    }
    @Override
    @Transactional
@@ -102,8 +108,8 @@
        sysDictTypeMapper.updateById(type);
        //获取更新后的对象
        SysDictType sysDictType = sysDictTypeMapper.selectById(type.getId());
        //清除缓存
        CacheUtils.clearDictionariesCache();
        //刷新缓存
        refreshCache();
        //封装返回对象
        dto.setCode(ResponseCodeEnum.SUCCESS.getCode());
        dto.setMsg(ResponseCodeEnum.SUCCESS.getMsg());
@@ -118,10 +124,7 @@
        //获取要插入的实体
        SysDictType sysDictType = form.formConvertEntity();
        //判断name是否已经存在
        QueryWrapper<SysDictType> existNameWrapper = new QueryWrapper<>();
        existNameWrapper.eq("name",sysDictType.getName());
        existNameWrapper.eq("is_delete",Constants.NOT_DELETE);
        SysDictType existType = sysDictTypeMapper.selectOne(existNameWrapper);
        SysDictType existType = sysDictTypeMapper.listOne(sysDictType.getName());
        if(!ObjectUtils.isEmpty(existType)){
            dto.setCode(ResponseCodeEnum.DICTTYPE_EXIST.getCode());
            dto.setMsg(ResponseCodeEnum.DICTTYPE_EXIST.getMsg());
@@ -129,8 +132,11 @@
        }
        //插入类型
        sysDictTypeMapper.insert(sysDictType);
        //清除缓存
        CacheUtils.clearDictionariesCache();
        //插入日志
        HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
        LogUtils.saveOperationForManage(request,"添加字典类型:"+sysDictType.getName(),Constants.INSERT_OPERATE_TYPE);
        //刷新缓存
        refreshCache();
        //封装返回对象
        dto.setCode(ResponseCodeEnum.SUCCESS.getCode());
        dto.setMsg(ResponseCodeEnum.SUCCESS.getMsg());
@@ -200,5 +206,12 @@
        return sysDictTypes;
    }
    @Override
    public void refreshCache(){
        redisTemplate.delete(RedisConstants.DICT_TYPE_KEY);
        List<SysDictType> types = getAllDictTypeFromDB();
        redisTemplate.opsForValue().set(RedisConstants.DICT_TYPE_KEY,types);
    }
}