package com.ydtech.modules.admin.service.impl; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ydtech.modules.admin.dao.SysUserLinkPtlAgreementMapper; import com.ydtech.modules.admin.dao.SysUserMapper; import com.ydtech.modules.admin.model.SysUser; import com.ydtech.modules.admin.model.dto.SysUserDto; import com.ydtech.modules.admin.model.dto.SysUserLinkPtlAgreementDto; import com.ydtech.modules.admin.model.dto.SysUserLinkPtlAgreementQueryDto; import com.ydtech.modules.admin.model.po.SysUserLinkPtlAgreement; import com.ydtech.modules.admin.model.vo.SysUserBaseVO; import com.ydtech.modules.admin.model.vo.SysUserLinkPtlAgreementAddVo; import com.ydtech.modules.admin.model.vo.SysUserLinkPtlAgreementVo; import com.ydtech.modules.admin.service.SysUserLinkPtlAgreementService; import com.ydtech.modules.esm.service.EsmInsCompanyService; import com.ydtech.modules.order.entity.BasePageResult; import com.ydtech.modules.protocol.entity.po.PtlAgreement; import com.ydtech.modules.protocol.service.PtlAgreementService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.stream.Collectors; /** * @version * @author: hxl * @Date: 2024/4/15 14:52 * @Description: 用户关联协议表 */ @Service public class SysUserLinkPtlAgreementServiceImpl extends ServiceImpl implements SysUserLinkPtlAgreementService { @Autowired private SysUserLinkPtlAgreementMapper sysUserLinkPtlAgreementMapper; @Autowired private SysUserMapper sysUserMapper; @Autowired private PtlAgreementService ptlAgreementService; @Autowired private EsmInsCompanyService esmInsCompanyService; /** * @version * @author: hxl * @Date: 2024/4/15 15:13 * @Description: 分页 */ @Override public BasePageResult queryPage(SysUserLinkPtlAgreementVo sysUserLinkPtlAgreementVo) { Page page = new Page<>(sysUserLinkPtlAgreementVo.getPageNum(), sysUserLinkPtlAgreementVo.getPageSize()); // 获取供应商本级id 及其 下级id List lowerId = esmInsCompanyService.getByLowerId(sysUserLinkPtlAgreementVo.getInsuranceCompany()); Page sysUserLinkPtlAgreementDtoBasePageResult = sysUserLinkPtlAgreementMapper.queryPage(page, sysUserLinkPtlAgreementVo,lowerId); return new BasePageResult<>(sysUserLinkPtlAgreementVo.getPageNum(), page.getSize(), sysUserLinkPtlAgreementDtoBasePageResult.getTotal(), page.getPages(), sysUserLinkPtlAgreementDtoBasePageResult.getRecords()); } /** * @version * @author: hxl * @Date: 2024/4/15 15:13 * @Description: 添加修改 */ @Override public void addOrUpdate(SysUserLinkPtlAgreementAddVo sysUserLinkPtlAgreementAddVo, SysUser user) { String userId = sysUserLinkPtlAgreementAddVo.getUserId(); List ptlAgreementIds = sysUserLinkPtlAgreementAddVo.getPtlAgreementIds(); //删除数据重新添加 //sysUserLinkPtlAgreementMapper.deleteByUserId(userId); List addList=new ArrayList(); List ids=sysUserLinkPtlAgreementMapper.findAgreeIdsByUserId(userId); List differences = ptlAgreementIds.stream() .filter(i -> !ids.contains(i)) .collect(Collectors.toList()); //重新添加 if(differences!=null && differences.size()>0){ for (Long ptlAgreementId : differences) { SysUserLinkPtlAgreement add=new SysUserLinkPtlAgreement(userId,ptlAgreementId,user.getId(),user.getName(),new Date(),user.getId(),user.getName(),new Date()); addList.add(add); } this.saveBatch(addList); } } /** * @version * @author: hxl * @Date: 2024/4/15 17:53 * @Description: 通过id删除数据 */ @Override public void deleteByIds(List ids) { sysUserLinkPtlAgreementMapper.deleteBatchIds(ids); } /** * @version * @author: hxl * @Date: 2024/4/15 17:52 * @Description: 查询所有的后线人员 */ @Override public List findUserList(String userId) { return sysUserMapper.findQXUserList(userId); } /** * @version * @author: hxl * @Date: 2024/4/15 18:05 * @Description: 查询所有审核的协议信息 */ @Override public List findPtlAgreementList() { //预留查询条件后期添加 PtlAgreement param =new PtlAgreement(); return ptlAgreementService.findCheckAgreementList(param); } /** * @version * @author: whp * @Date: 2024/07/23 * @Description: 查询审核的所有协议 协议名称拼接 */ @Override public List findPtlAgreementListNew(String type) { //预留查询条件后期添加 PtlAgreement param =new PtlAgreement(); param.setAgreementType(type); return ptlAgreementService.findCheckAgreementListNew(param); } @Override @Transactional public void addOrUpdateAll(String userId, SysUser user) { // 获取所有协议 List list = sysUserLinkPtlAgreementMapper.findAllPtlAgreementListByUserId(userId); // 删除所有绑定的协议 sysUserLinkPtlAgreementMapper.deleteByUserId(userId); // 重新绑定所有协议 List addList = new ArrayList<>(); for (PtlAgreement ptlAgreement : list) { SysUserLinkPtlAgreement add=new SysUserLinkPtlAgreement(userId,Long.parseLong(ptlAgreement.getId()),user.getId(),user.getName(),new Date(),user.getId(),user.getName(),new Date()); addList.add(add); } saveBatch(addList); } /** * @version * @author: hxl * @Date: 2024/4/16 9:31 * @Description: 通过用户id查询关联的协议列表 */ @Override public List findPtlAgreementListByUserId(String userId) { return sysUserLinkPtlAgreementMapper.findPtlAgreementListByUserId(userId); } @Override public List findAllPtlAgreementListByUserId(String userId) { List list = sysUserLinkPtlAgreementMapper.findAllPtlAgreementListByUserId(userId); if(list!=null && list.size()>0){ for (PtlAgreement ptlAgreement : list) { if("1".equals(ptlAgreement.getFlag())){ ptlAgreement.setFlag("true"); }else{ ptlAgreement.setFlag("false"); } } } return list; } /** * @version * @author: hxl * @Date: 2024/4/23 11:43 * @Description: 查询后线人员+分页 */ @Override public BasePageResult findUserListByPage(SysUserDto sysUserDto) { Page page = new Page<>(sysUserDto.getPageNum(), sysUserDto.getPageSize()); Page userPageResult = sysUserMapper.findUserListByPage(page, sysUserDto); return new BasePageResult<>(sysUserDto.getPageNum(), page.getSize(), userPageResult.getTotal(), page.getPages(), userPageResult.getRecords()); } /** * @version * @author: hxl * @Date: 2024/7/2 11:28 * @Description: 通过用户id查询的关联的协议列表+分页 */ @Override public BasePageResult findPtlAgreementPageListByUserId(SysUserLinkPtlAgreementQueryDto sysUserLinkPtlAgreementQueryDto) { Page page = new Page<>(sysUserLinkPtlAgreementQueryDto.getPageNum(), sysUserLinkPtlAgreementQueryDto.getPageSize()); Page userPageResult = sysUserLinkPtlAgreementMapper.findPtlAgreementListByUserIdPage(page, sysUserLinkPtlAgreementQueryDto); List records = userPageResult.getRecords(); List newList =new ArrayList<>(); if(records!=null && records.size()>0){ for (PtlAgreement ptlAgreement : records) { if("1".equals(ptlAgreement.getFlag())){ ptlAgreement.setFlag("true"); }else{ ptlAgreement.setFlag("false"); } newList.add(ptlAgreement); } } userPageResult.setRecords(newList); return new BasePageResult<>(sysUserLinkPtlAgreementQueryDto.getPageNum(), page.getSize(), userPageResult.getTotal(), page.getPages(), userPageResult.getRecords()); } }