jinpengyong
2021-10-09 73f40e24c8900d8d7616b44515c965ce0ef20763
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;
@@ -52,7 +56,7 @@
        SysDictTypeDTO dto = new SysDictTypeDTO();
        //获取Id
        Integer typeId = form.getId();
        //判断type是否存在
        //查询要删除的type用于插入日志
        QueryWrapper<SysDictType> existWrapper = new QueryWrapper<>();
        existWrapper.eq("is_delete",Constants.NOT_DELETE);
        existWrapper.eq("id",typeId);
@@ -72,15 +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.setSysDictType(type);
        dto.setCode(ResponseCodeEnum.SUCCESS.getCode());
        dto.setMsg(ResponseCodeEnum.SUCCESS.getMsg());
        return dto;
    }
    @Override
    @Transactional
@@ -89,7 +94,7 @@
        SysDictTypeDTO dto = new SysDictTypeDTO();
        //获取实体
        SysDictType type = form.formConvertEntity();
        //判断type是否存在
        //查询type用于插入日志
        QueryWrapper<SysDictType> existNameWrapper = new QueryWrapper<>();
        existNameWrapper.eq("id",type.getId());
        existNameWrapper.eq("is_delete",Constants.NOT_DELETE);
@@ -103,10 +108,9 @@
        sysDictTypeMapper.updateById(type);
        //获取更新后的对象
        SysDictType sysDictType = sysDictTypeMapper.selectById(type.getId());
        //清除缓存
        CacheUtils.clearDictionariesCache();
        //刷新缓存
        refreshCache();
        //封装返回对象
        dto.setSysDictType(sysDictType);
        dto.setCode(ResponseCodeEnum.SUCCESS.getCode());
        dto.setMsg(ResponseCodeEnum.SUCCESS.getMsg());
        return dto;
@@ -131,8 +135,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());
@@ -202,5 +209,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);
    }
}