forked from gzzfw/backEnd/gz-dyh

dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/service/CtUserService.java
@@ -1,13 +1,22 @@
package cn.huge.module.ctuser.service;
import cn.huge.base.common.exception.MethodException;
import cn.huge.base.common.exception.ServiceException;
import cn.huge.base.common.utils.DateUtils;
import cn.huge.base.common.utils.IdUtils;
import cn.huge.base.common.utils.ObjectUtils;
import cn.huge.module.client.api.impl.UtilsClientImpl;
import cn.huge.module.constant.BaseConsts;
import cn.huge.module.ctuser.dao.mapper.CtUserMapper;
import cn.huge.module.ctuser.domain.po.CtUser;
import cn.huge.module.cust.constant.UserBaseConsts;
import cn.huge.module.redis.constant.RedisKeyConsts;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
@@ -15,6 +24,7 @@
import org.springframework.data.domain.PageImpl;
import org.springframework.data.domain.PageRequest;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.DigestUtils;
import javax.annotation.PostConstruct;
import java.util.Date;
@@ -33,6 +43,9 @@
@Service
@Transactional(rollbackFor = Exception.class)
public class CtUserService extends ServiceImpl<CtUserMapper, CtUser>{
    @Autowired
    private RedisTemplate<String, Object> redisTemplate;
    @Autowired
    private CtUserMapper mapper;
@@ -111,23 +124,74 @@
    }
    /**
    * 新增或更新对象
     * 新增对象
    * @param ctUser 实体对象
    */
    public void saveCtUser(CtUser ctUser){
    public void saveToRedis(CtUser ctUser){
        try{
            Date nowDate = DateUtils.getMowDate();
            // 判断是否新增
            if (IdUtils.checkNewId(ctUser.getId())){
                ctUser.setId(utilsClient.getNewTimeId());
                ctUser.setCreateTime(nowDate);
            }
            ctUser.setUpdateTime(nowDate);
            this.saveOrUpdate(ctUser);
            mapper.insert(ctUser);
            // 清楚redis缓存
            String key = RedisKeyConsts.CTUSER + ctUser.getId();
            redisTemplate.delete(key);
            // 重新set
            redisTemplate.opsForValue().set(key, ctUser);
        }catch (Exception e){
            log.error("[CtUserService.saveCtUser]调用失败,异常信息:"+e, e);
            throw new ServiceException("CtUserService.saveCtUser", e);
        }
    }
    /**
     * 更新对象
     * @param ctUser 实体对象
     */
    public void updateToRedis(CtUser ctUser){
        try{
            mapper.updateById(ctUser);
            // 清楚redis缓存
            String key = RedisKeyConsts.CTUSER + ctUser.getId();
            redisTemplate.delete(key);
            // 重新set
            redisTemplate.opsForValue().set(key, ctUser);
        }catch (Exception e){
            log.error("[CtUserService.saveCtUser]调用失败,异常信息:"+e, e);
            throw new ServiceException("CtUserService.saveCtUser", e);
        }
    }
    /**
     * 根据id查询
     * @param id 编号
     * @return
     */
    public CtUser getByIdFromRedis(String id){
        String key = RedisKeyConsts.CTUSER + id;
        // 从redis获取
        CtUser ctUser = (CtUser) redisTemplate.opsForValue().get(key);
        if (ObjectUtils.isEmpty(ctUser)){
            ctUser = mapper.selectById(id);
            if (ObjectUtils.isNotEmpty(ctUser)){
                redisTemplate.opsForValue().set(key, ctUser);
            }
        }
        return ctUser;
    }
    /**
     * web端-人员信息管理-新增/新用户信息
     * @param ctUser
     * @param userId
     */
    public void webSaveCtUser(CtUser ctUser, String userId) {
        try {
            // 获取当前登录用户
            CtUser loginUser = this.getByIdFromRedis(userId);
            Date nowDate = DateUtils.getNowDate();
        } catch (Exception e) {
            log.error("service方法[CtUserService.webSaveCtUser]调用异常:" + e, e);
            throw new MethodException(e.getMessage());
        }
    }
}