package cn.huge.module.meet.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.module.client.api.impl.UtilsClientImpl; import cn.huge.module.mediate.constant.CaseBaseConstsEnum; import cn.huge.module.mediate.constant.MeetBaseConstsEnum; import cn.huge.module.meet.dao.mapper.MeetUserMapper; import cn.huge.module.meet.domain.dto.MeetUserJoinDTO; import cn.huge.module.meet.domain.po.MeetInfo; import cn.huge.module.meet.domain.po.MeetUser; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.apache.commons.collections.CollectionUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import lombok.extern.slf4j.Slf4j; 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 java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Map; /** * @title: 会议参与人表业务逻辑处理 * @Description JPA的单表数据查询以由BaseService完成 * @company hugeinfo * @author liyj * @Time 2022-03-28 12:02:58 * @version 1.0.0 */ @Slf4j @Service @Transactional(rollbackFor = Exception.class) public class MeetUserService extends ServiceImpl{ @Autowired private MeetUserMapper mapper; @Autowired private MeetInfoService meetInfoService; @Autowired private UtilsClientImpl utilsClient; /** * 更新对象 * @param entity 对象 */ public void updateMeetUser(MeetUser entity){ try{ mapper.updateMeetUser(entity); }catch (Exception e){ log.error("service方法[MeetUserService.updateMeetUser]调用异常:"+e, e); throw new ServiceException("MeetUserService.updateMeetUser", e); } } /** * 条件更新对象 * @param entity 对象 * @param terms 条件 */ public void updateMeetUserTerms(MeetUser entity, Map terms){ try{ mapper.updateMeetUserTerms(entity, terms); }catch (Exception e){ log.error("service方法[MeetUserService.updateMeetUserTerms]调用异常:"+e, e); throw new ServiceException("MeetUserService.updateMeetUserTerms", e); } } /** * 根据编号物理删除 * @param id 查询条件集合 */ public void deleteMeetUser(String id){ try{ mapper.deleteMeetUser(id); }catch (Exception e){ log.error("service方法[MeetUserService.deleteMeetUser]调用异常:"+e, e); throw new ServiceException("MeetUserService.deleteMeetUser", 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 meetUser 实体对象 */ public void saveMeetUser(MeetUser meetUser){ try{ Date nowDate = DateUtils.getNowDate(); // 判断是否新增 if (IdUtils.checkNewId(meetUser.getId())){ meetUser.setId(utilsClient.getNewTimeId()); meetUser.setCreateTime(nowDate); } meetUser.setUpdateTime(nowDate); this.saveOrUpdate(meetUser); }catch (Exception e){ log.error("service方法[MeetUserService.saveMeetUser]调用异常:"+e, e); throw new ServiceException("MeetUserService.saveMeetUser", e); } } /** * 创建会议参与人 * @param meetInfo 会议信息 * @param userType 参与人类型 * @param userId 参与人编号 * @param userName 参与人名称 */ public void createMeetUser(MeetInfo meetInfo, String userType, String userId, String userName, String userMobile, String userIdcard){ try{ Date nowDate = DateUtils.getNowDate(); MeetUser meetUser = new MeetUser(); meetUser.setId(utilsClient.getNewTimeId()); meetUser.setCaseId(meetInfo.getCaseId()); meetUser.setMeetId(meetInfo.getId()); meetUser.setUserType(userType); meetUser.setUserTypeName(MeetBaseConstsEnum.getDes(userType)); meetUser.setUserId(userId); meetUser.setUserName(userName); meetUser.setUserIdcard(userIdcard); meetUser.setUserMobile(userMobile); meetUser.setMeetWay(meetInfo.getMeetWay()); if (MeetBaseConstsEnum.MEET_USER_TYPE_1.getIndex().equals(userType) || MeetBaseConstsEnum.MEET_USER_TYPE_2.getIndex().equals(userType)){ meetUser.setFixStatus(MeetBaseConstsEnum.FIX_STATUS_2.getIndex()); meetUser.setFixStatusName(MeetBaseConstsEnum.FIX_STATUS_2.getDes()); meetUser.setSignStatus(MeetBaseConstsEnum.SIGN_STATUS_2.getIndex()); meetUser.setSignStatus(MeetBaseConstsEnum.SIGN_STATUS_2.getDes()); }else { meetUser.setFixStatus(MeetBaseConstsEnum.FIX_STATUS_1.getIndex()); meetUser.setFixStatusName(MeetBaseConstsEnum.FIX_STATUS_1.getDes()); } meetUser.setSignStatus(MeetBaseConstsEnum.SIGN_STATUS_1.getIndex()); meetUser.setSignStatusName(MeetBaseConstsEnum.SIGN_STATUS_1.getDes()); meetUser.setCustId(meetInfo.getCustId()); meetUser.setCreateTime(nowDate); meetUser.setUpdateTime(nowDate); mapper.insert(meetUser); }catch (Exception e){ log.error("service方法[MeetUserService.createMeetUser]调用异常:"+e, e); throw new ServiceException("MeetUserService.createMeetUser", e); } } /** * 按纠纷编号查询 * @param caseId 纠纷编号 * @return List */ public List listByCaseId(String caseId){ QueryWrapper meetUserQueryWrapper = new QueryWrapper<>(); meetUserQueryWrapper.eq("case_id", caseId); return mapper.selectList(meetUserQueryWrapper); } /** * 按纠会议编号查询 * @param meetId 会议编号 * @return List */ public List listByMeetId(String meetId){ QueryWrapper meetUserQueryWrapper = new QueryWrapper<>(); meetUserQueryWrapper.eq("meet_id", meetId); return mapper.selectList(meetUserQueryWrapper); } /** * 按纠会议编号查询申请人当事人参与信息 * @param meetId 会议编号 * @return List */ public List listSqrByMeetId(String meetId){ QueryWrapper meetUserQueryWrapper = new QueryWrapper<>(); List userTypes = new ArrayList<>(); userTypes.add(MeetBaseConstsEnum.MEET_USER_TYPE_10.getIndex()); userTypes.add(MeetBaseConstsEnum.MEET_USER_TYPE_11.getIndex()); meetUserQueryWrapper.eq("meet_id", meetId).in("user_type", userTypes); return mapper.selectList(meetUserQueryWrapper); } /** * 按纠会议编号查询被申请人当事人参与信息 * @param meetId 会议编号 * @return List */ public List listBsqrByMeetId(String meetId){ QueryWrapper meetUserQueryWrapper = new QueryWrapper<>(); List userTypes = new ArrayList<>(); userTypes.add(MeetBaseConstsEnum.MEET_USER_TYPE_12.getIndex()); userTypes.add(MeetBaseConstsEnum.MEET_USER_TYPE_13.getIndex()); meetUserQueryWrapper.eq("meet_id", meetId).in("user_type", userTypes); return mapper.selectList(meetUserQueryWrapper); } /** * 按纠会议编号查询 * @param meetId 会议编号 * @param userIdcard 参与人身份证号码 * @return List */ public MeetUser getByMeetIdAndIdcard(String meetId, String userIdcard){ QueryWrapper meetUserQueryWrapper = new QueryWrapper<>(); meetUserQueryWrapper.eq("meet_id", meetId).eq("user_idcard", userIdcard); return mapper.selectOne(meetUserQueryWrapper); } /** * 根据纠纷编号查询参与人参与情况 * @param caseId 纠纷编号 * @param caseId 会议类型 * @return MeetUserJoinDTO */ public MeetUserJoinDTO getUserJoinByCase(String caseId, String meetType){ // 封装数据 MeetUserJoinDTO meetUserJoinDTO = new MeetUserJoinDTO(); List plaintiffList = new ArrayList<>(); List defendantList = new ArrayList<>(); List otherList = new ArrayList<>(); // 获取参与人信息 List meetInfoList = meetInfoService.listByCaseId(caseId, meetType); if (CollectionUtils.isNotEmpty(meetInfoList)) { MeetInfo meetInfo = meetInfoList.get(0); List meetUserList = this.listByMeetId(meetInfo.getId()); for (MeetUser meetUser : meetUserList) { // 封装申请人列表 if (MeetBaseConstsEnum.MEET_USER_TYPE_11.getIndex().equals(meetUser.getUserType())) { plaintiffList.add(meetUser); } else if (MeetBaseConstsEnum.MEET_USER_TYPE_12.getIndex().equals(meetUser.getUserType())) { // 封装被申请人列表 defendantList.add(meetUser); } else { // 封装其他参与人列表 otherList.add(meetUser); } } } meetUserJoinDTO.setPlaintiffList(plaintiffList); meetUserJoinDTO.setDefendantList(defendantList); meetUserJoinDTO.setOtherList(otherList); return meetUserJoinDTO; } /** * 根据纠纷编号查询参与人参与情况 * @param meetId 会议编号 * @return MeetUserJoinDTO */ public MeetUserJoinDTO getUserJoinByMeet(String meetId){ // 封装数据 MeetUserJoinDTO meetUserJoinDTO = new MeetUserJoinDTO(); List plaintiffList = new ArrayList<>(); List defendantList = new ArrayList<>(); List otherList = new ArrayList<>(); // 获取参与人信息 List meetUserList = this.listByMeetId(meetId); for (MeetUser meetUser : meetUserList) { // 封装申请人列表 if (MeetBaseConstsEnum.MEET_USER_TYPE_11.getIndex().equals(meetUser.getUserType())) { plaintiffList.add(meetUser); } else if (MeetBaseConstsEnum.MEET_USER_TYPE_12.getIndex().equals(meetUser.getUserType())) { // 封装被申请人列表 defendantList.add(meetUser); } else { // 封装其他参与人列表 otherList.add(meetUser); } } meetUserJoinDTO.setPlaintiffList(plaintiffList); meetUserJoinDTO.setDefendantList(defendantList); meetUserJoinDTO.setOtherList(otherList); return meetUserJoinDTO; } /** * 更新当事人身份证号码 * @param idcard 身份证号码 * @param userId 用户编号 * @param caseId 纠纷编号 */ public void updateIdcardByUserId(String idcard, String userId, String caseId){ try{ UpdateWrapper meetUserUpdateWrapper = new UpdateWrapper<>(); meetUserUpdateWrapper.eq("user_id", userId); meetUserUpdateWrapper.eq("case_id", caseId); meetUserUpdateWrapper.set("user_idcard", idcard); this.update(meetUserUpdateWrapper); }catch (Exception e){ log.error("service方法[MeetUserService.updateIdcardByUserId]调用异常:"+e, e); throw new ServiceException("MeetUserService.updateIdcardByUserId", e); } } /** * 根据会议编号删除 * @param meetId 会议编号 */ public void removeByMeetId(String meetId){ try{ QueryWrapper meetUserQueryWrapper = new QueryWrapper<>(); meetUserQueryWrapper.eq("meet_id", meetId); mapper.delete(meetUserQueryWrapper); }catch (Exception e){ log.error("service方法[MeetUserService.removeByMeetId]调用异常:"+e, e); throw new ServiceException("MeetUserService.removeByMeetId", e); } } }