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; import org.springframework.data.domain.Page; 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; import java.util.List; import java.util.Map; /** * @title: 客户用户表业务逻辑处理 * @Description 客户用户表业务逻辑处理 * @company hugeinfo * @author liyj * @Time 2024-08-19 20:04:19 * @version 1.0.0 */ @Slf4j @Service @Transactional(rollbackFor = Exception.class) public class CtUserService extends ServiceImpl{ @Autowired private RedisTemplate redisTemplate; @Autowired private CtUserMapper mapper; @Autowired private UtilsClientImpl utilsClient; /** * 更新对象 * @param entity 对象 */ public void updateCtUser(CtUser entity){ try{ mapper.updateCtUser(entity); }catch (Exception e){ log.error("[CtUserService.updateCtUser]调用失败,异常信息:"+e, e); throw new ServiceException("CtUserService.updateCtUser", e); } } /** * 条件更新对象 * @param entity 对象 * @param terms 条件 */ public void updateCtUserTerms(CtUser entity, Map terms){ try{ mapper.updateCtUserTerms(entity, terms); }catch (Exception e){ log.error("[CtUserService.updateCtUserTerms]调用失败,异常信息:"+e, e); throw new ServiceException("CtUserService.updateCtUserTerms", e); } } /** * 根据编号物理删除 * @param id 查询条件集合 */ public void deleteCtUser(String id){ try{ mapper.deleteCtUser(id); }catch (Exception e){ log.error("[CtUserService.deleteCtUser]调用失败,异常信息:"+e, e); throw new ServiceException("CtUserService.deleteCtUser", e); } } /** * 按条件查询 * @param terms 条件 * @return List */ public List listTerms(Map terms){ return mapper.listTerms(terms); } /** * 按条件统计 * @param terms 条件 * @return long */ public long countTerms(Map terms){ return mapper.countTerms(terms); } /** * 按条件分页查询 * @param page 分页对象 * @param terms 条件 * @return Page */ public Page pageQuery(PageRequest page, Map terms){ long total = mapper.countTerms(terms); List content = mapper.pageTerms(page, terms); return new PageImpl(content, page, total); } /** * 新增对象 * @param ctUser 实体对象 */ public void saveToRedis(CtUser ctUser){ try{ 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()); } } }