package cn.huge.module.pauser.service; 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.cust.dto.PaUserDTO; import cn.huge.module.mediate.dto.WechatBindCaseDTO; import cn.huge.module.cust.constant.UserBaseConsts; import cn.huge.module.mediate.dto.WechatBindCaseDTO; import cn.huge.module.pauser.dao.mapper.PaAccountMapper; import cn.huge.module.pauser.dao.mapper.PaUserMapper; import cn.huge.module.pauser.domain.po.PaAccount; import cn.huge.module.pauser.domain.po.PaUser; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import cn.huge.module.pauser.dto.WeChatPersonalDTO; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; 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 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 PaUserService extends ServiceImpl{ @Autowired private PaUserMapper mapper; @Autowired private UtilsClientImpl utilsClient; @Autowired private PaAccountMapper paAccountMapper; /** * 更新对象 * @param entity 对象 */ public void updatePaUser(PaUser entity){ try{ mapper.updatePaUser(entity); }catch (Exception e){ log.error("[PaUserService.updatePaUser]调用失败,异常信息:"+e, e); throw new ServiceException("PaUserService.updatePaUser", e); } } /** * 条件更新对象 * @param entity 对象 * @param terms 条件 */ public void updatePaUserTerms(PaUser entity, Map terms){ try{ mapper.updatePaUserTerms(entity, terms); }catch (Exception e){ log.error("[PaUserService.updatePaUserTerms]调用失败,异常信息:"+e, e); throw new ServiceException("PaUserService.updatePaUserTerms", e); } } /** * 根据编号物理删除 * @param id 查询条件集合 */ public void deletePaUser(String id){ try{ mapper.deletePaUser(id); }catch (Exception e){ log.error("[PaUserService.deletePaUser]调用失败,异常信息:"+e, e); throw new ServiceException("PaUserService.deletePaUser", 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 paUser 实体对象 */ public void savePaUser(PaUser paUser){ try{ Date nowDate = DateUtils.getNowDate(); // 判断是否新增 if (IdUtils.checkNewId(paUser.getId())){ paUser.setId(utilsClient.getNewTimeId()); paUser.setCreateTime(nowDate); } paUser.setUpdateTime(nowDate); this.saveOrUpdate(paUser); }catch (Exception e){ log.error("[PaUserService.savePaUser]调用失败,异常信息:"+e, e); throw new ServiceException("PaUserService.savePaUser", e); } } /** * pc端提交案件后-获取相关当事人用户编号 * @param wechatBindCaseDTO 用户信息 * @return String */ public String bindGetUserId(WechatBindCaseDTO wechatBindCaseDTO){ try{ QueryWrapper paUserQueryWrapper = new QueryWrapper<>(); paUserQueryWrapper.eq("true_name", wechatBindCaseDTO.getTrueName()). eq("idcard", wechatBindCaseDTO.getIdcard()).eq("cust_id", wechatBindCaseDTO.getCustId()); PaUser paUser = this.getOne(paUserQueryWrapper); return paUser.getId(); }catch (Exception e){ log.error("service方法[PaUserService.bindGetUserId]调用异常:"+e, e); throw new ServiceException("PaUserService.bindGetUserId", e); } } /** * 当事人小程序-个人中心 * @param userId 用户编号 * @return WeChatPersonalDTO */ public WeChatPersonalDTO wechatPersonal(String userId){ WeChatPersonalDTO weChatPersonalDTO = new WeChatPersonalDTO(); PaUser paUser = this.getById(userId); BeanUtils.copyProperties(paUser, weChatPersonalDTO); weChatPersonalDTO.setUserId(paUser.getId()); // TODO: 2022/4/13 我的消息 weChatPersonalDTO.setMsgCount(0); // TODO: 2022/4/13 反馈意见 weChatPersonalDTO.setOpinionCount(0); QueryWrapper paAccountWrapper = new QueryWrapper<>(); paAccountWrapper.eq("user_id", userId); PaAccount paAccount = paAccountMapper.selectOne(paAccountWrapper); if(ObjectUtils.isNotEmpty(paAccount)){ weChatPersonalDTO.setLoginTime(paAccount.getLoginTime()); } return weChatPersonalDTO; } /** * 当事人小程序-完善资料 * @param paUser 用户信息 */ public void perfectInfo(PaUser paUser){ try{ Date nowDate = new Date(); paUser.setStatus(UserBaseConsts.USER_STATUS_1); paUser.setUpdateTime(nowDate); mapper.updatePaUser(paUser); // 绑定案件 // WechatBindCaseDTO wechatBindCaseDTO = new WechatBindCaseDTO(); // wechatBindCaseDTO.setUserId(paUser.getId()); // wechatBindCaseDTO.setMobile(paUser.getMobile()); // wechatBindCaseDTO.setTrueName(paUser.getTrueName()); // wechatBindCaseDTO.setIdcard(paUser.getIdcard()); // wechatBindCaseDTO.setCustId(paUser.getCustId()); // mediateClient.bindCase(wechatBindCaseDTO); }catch (Exception e){ log.error("service方法[PaUserService.perfectInfo]调用异常:"+e, e); throw new ServiceException("PaUserService.perfectInfo", e); } } /** * 当事人小程序-实名认证 * @param paUser 用户信息 */ public void wechatRealAuth(PaUser paUser){ try{ Date nowDate = new Date(); paUser.setRealStatus(UserBaseConsts.REAL_STATUS_1); // paUser.setFaceStatus(UserBaseConsts.FACE_STATUS_1); paUser.setStatus(UserBaseConsts.USER_STATUS_1); paUser.setUpdateTime(nowDate); mapper.updatePaUser(paUser); // 绑定案件 // WechatBindCaseDTO wechatBindCaseDTO = new WechatBindCaseDTO(); // wechatBindCaseDTO.setUserId(paUser.getId()); // wechatBindCaseDTO.setMobile(paUser.getMobile()); // wechatBindCaseDTO.setTrueName(paUser.getTrueName()); // wechatBindCaseDTO.setIdcard(paUser.getIdcard()); // wechatBindCaseDTO.setCustId(paUser.getCustId()); // mediateClient.bindCase(wechatBindCaseDTO); }catch (Exception e){ log.error("service方法[PaUserService.wechatRealAuth]调用异常:"+e, e); throw new ServiceException("PaUserService.wechatRealAuth", e); } } public PaUserDTO clientGetUserAll(String userId){ PaUserDTO paUserDTO = new PaUserDTO(); PaUser paUser = mapper.selectById(userId); if(ObjectUtils.isNotEmpty(paUser)){ BeanUtils.copyProperties(paUser, paUserDTO); } return paUserDTO; } }