package cn.huge.module.cases.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.cases.domain.dto.MediatorDTO; import cn.huge.module.client.api.impl.CustClientImpl; import cn.huge.module.client.api.impl.UtilsClientImpl; import cn.huge.module.cases.dao.mapper.CaseMediatorMapper; import cn.huge.module.cases.domain.po.CaseMediator; import cn.huge.module.cust.dto.CtUnitDTO; import cn.huge.module.mediate.constant.CaseBaseConsts; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; 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.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-11-05 15:21:34 * @version 1.0.0 */ @Slf4j @Service @Transactional(rollbackFor = Exception.class) public class CaseMediatorService extends ServiceImpl{ @Autowired private CaseMediatorMapper mapper; @Autowired private UtilsClientImpl utilsClient; @Autowired private CustClientImpl custClient; /** * 更新对象 * @param entity 对象 */ public void updateCaseMediator(CaseMediator entity){ try{ mapper.updateCaseMediator(entity); }catch (Exception e){ log.error("[CaseMediatorService.updateCaseMediator]调用失败,异常信息:"+e, e); throw new ServiceException("CaseMediatorService.updateCaseMediator", e); } } /** * 条件更新对象 * @param entity 对象 * @param terms 条件 */ public void updateCaseMediatorTerms(CaseMediator entity, Map terms){ try{ mapper.updateCaseMediatorTerms(entity, terms); }catch (Exception e){ log.error("[CaseMediatorService.updateCaseMediatorTerms]调用失败,异常信息:"+e, e); throw new ServiceException("CaseMediatorService.updateCaseMediatorTerms", e); } } /** * 根据编号物理删除 * @param id 查询条件集合 */ public void deleteCaseMediator(String id){ try{ mapper.deleteCaseMediator(id); }catch (Exception e){ log.error("[CaseMediatorService.deleteCaseMediator]调用失败,异常信息:"+e, e); throw new ServiceException("CaseMediatorService.deleteCaseMediator", 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 caseMediator 实体对象 */ public void saveCaseMediator(CaseMediator caseMediator){ try{ Date nowDate = DateUtils.getNowDate(); // 判断是否新增 if (IdUtils.checkNewId(caseMediator.getId())){ caseMediator.setId(utilsClient.getNewTimeId()); caseMediator.setCreateTime(nowDate); } caseMediator.setUpdateTime(nowDate); this.saveOrUpdate(caseMediator); }catch (Exception e){ log.error("[CaseMediatorService.saveCaseMediator]调用失败,异常信息:"+e, e); throw new ServiceException("CaseMediatorService.saveCaseMediator", e); } } /** * 删除协助调解员 * @param caseId 事件id */ public void removeAssistMeditor(String caseId, String mediatorId){ try{ QueryWrappercaseMediatorQueryWrapper = new QueryWrapper<>(); caseMediatorQueryWrapper.eq("case_id", caseId).eq("mediator_id", mediatorId); mapper.delete(caseMediatorQueryWrapper); }catch (Exception e){ log.error("[CaseMediatorService.deleteCaseMediator]调用失败,异常信息:"+e, e); throw new ServiceException("CaseMediatorService.deleteCaseMediator", e); } } /** * 添加协助调解员 * @param mediatorDTOList */ public void saveAssistMediator(List mediatorDTOList, String caseId){ try{ Date nowDate = DateUtils.getNowDate(); //循环每个协助调解员对象,插入到调解员信息表 for (MediatorDTO mediatorDTO: mediatorDTOList){ //过滤掉已存在的调解员 QueryWrapper caseMediatorQueryWrapper = new QueryWrapper<>(); caseMediatorQueryWrapper.eq("case_id", caseId).eq("mediator_id", mediatorDTO.getMediatorId()); List caseMediatorList = mapper.selectList(caseMediatorQueryWrapper); if(CollectionUtils.isEmpty(caseMediatorList)){ CaseMediator caseMediator = new CaseMediator(); caseMediator = new CaseMediator(); caseMediator.setId(utilsClient.getNewTimeId()); caseMediator.setCaseId(caseId); caseMediator.setMediatorType(CaseBaseConsts.MEDIATOR_TYPE_1); caseMediator.setMediatorId(mediatorDTO.getMediatorId()); caseMediator.setMediatorName(mediatorDTO.getMediator()); CtUnitDTO ctUnitDTO = custClient.getUnitByUserId(mediatorDTO.getMediatorId()); caseMediator.setUnitId(ctUnitDTO.getId()); caseMediator.setUnitName(ctUnitDTO.getUnitName()); caseMediator.setCreateTime(nowDate); caseMediator.setUpdateTime(nowDate); mapper.insert(caseMediator); } } }catch (Exception e){ log.error("[CaseMediatorService.saveCaseMediator]调用失败,异常信息:"+e, e); throw new ServiceException("CaseMediatorService.saveCaseMediator", e); } } }