|  |  |  | 
|---|
|  |  |  | import com.doumee.core.utils.Constants; | 
|---|
|  |  |  | import com.doumee.core.utils.Utils; | 
|---|
|  |  |  | import com.doumee.dao.business.*; | 
|---|
|  |  |  | import com.doumee.dao.business.join.CompanyJoinMapper; | 
|---|
|  |  |  | import com.doumee.dao.business.join.CompanySolutionJoinMapper; | 
|---|
|  |  |  | import com.doumee.dao.business.model.*; | 
|---|
|  |  |  | import com.doumee.dao.system.SystemUserMapper; | 
|---|
|  |  |  | 
|---|
|  |  |  | import org.springframework.beans.factory.annotation.Autowired; | 
|---|
|  |  |  | import org.springframework.beans.factory.annotation.Value; | 
|---|
|  |  |  | import org.springframework.scheduling.annotation.Async; | 
|---|
|  |  |  | import org.springframework.stereotype.Indexed; | 
|---|
|  |  |  | import org.springframework.stereotype.Service; | 
|---|
|  |  |  | import org.springframework.transaction.annotation.Transactional; | 
|---|
|  |  |  | import org.springframework.util.CollectionUtils; | 
|---|
|  |  |  | 
|---|
|  |  |  | import java.lang.reflect.Array; | 
|---|
|  |  |  | import java.net.URI; | 
|---|
|  |  |  | import java.net.URLEncoder; | 
|---|
|  |  |  | import java.nio.charset.Charset; | 
|---|
|  |  |  | import java.util.*; | 
|---|
|  |  |  | import java.util.stream.Collectors; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 企业信息表Service实现 | 
|---|
|  |  |  | 
|---|
|  |  |  | private boolean debugModel; | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private CompanyMapper companyMapper; | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private CompanyJoinMapper companyJoinMapper; | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private CompanyDepartmentMapper companyDepartmentMapper; | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private SystemUserMapper systemUserMapper; | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | 
|---|
|  |  |  | private SmsEmailMapper smsEmailMapper; | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private SystemDictDataBiz systemDictDataBiz; | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private NoticesMapper noticesMapper; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | @Transactional | 
|---|
|  |  |  | 
|---|
|  |  |  | companyMapper.insert(company); | 
|---|
|  |  |  | company.setEditDate(company.getCreateDate()); | 
|---|
|  |  |  | company.setEditor(user.getId()); | 
|---|
|  |  |  | //新建默认组织 | 
|---|
|  |  |  | CompanyDepartment department = createDefaultDepart(company); | 
|---|
|  |  |  | //处理登陆账号信息 | 
|---|
|  |  |  | dealSystemUserData(company); | 
|---|
|  |  |  | SystemUser sysuser = dealSystemUserData(company,department.getId()); | 
|---|
|  |  |  | //处理附件信息 | 
|---|
|  |  |  | dealFileData(company); | 
|---|
|  |  |  | //处理关联方案 | 
|---|
|  |  |  | dealSolutionsData(company); | 
|---|
|  |  |  | return company; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private CompanyDepartment createDefaultDepart(Company company) { | 
|---|
|  |  |  | CompanyDepartment depart = new CompanyDepartment(); | 
|---|
|  |  |  | depart.setCompanyId(company.getId()); | 
|---|
|  |  |  | depart.setCreator(company.getCreator()); | 
|---|
|  |  |  | depart.setCreateDate(company.getCreateDate()); | 
|---|
|  |  |  | depart.setType(Constants.equalsInteger(company.getType(),Constants.ZERO)?Constants.ONE:Constants.TWO); | 
|---|
|  |  |  | depart.setName(company.getName()); | 
|---|
|  |  |  | depart.setIsdeleted(Constants.ZERO); | 
|---|
|  |  |  | depart.setNamePath(company.getName()); | 
|---|
|  |  |  | depart.setStatus(Constants.ZERO); | 
|---|
|  |  |  | depart.setRemark("默认根组织"); | 
|---|
|  |  |  | companyDepartmentMapper.insert(depart); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | depart.setIdPath(company.getId()+"/"); | 
|---|
|  |  |  | companyDepartmentMapper.updateById(depart);//更新路径 | 
|---|
|  |  |  |  | 
|---|
|  |  |  | return depart; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | @Transactional | 
|---|
|  |  |  | public Company createShop(Company company) { | 
|---|
|  |  |  | isValidCreateParam(company); | 
|---|
|  |  |  | if(companyMapper.selectCount(new QueryWrapper<Company>().lambda() | 
|---|
|  |  |  | .eq(Company::getCode,company.getCode()) | 
|---|
|  |  |  | .or().eq(Company::getPhone,company.getPhone()) | 
|---|
|  |  |  | .or().eq(Company::getEmail,company.getEmail()) | 
|---|
|  |  |  | .or().eq(Company::getUsername,company.getUsername()) | 
|---|
|  |  |  | .or().eq(Company::getName,company.getName()))>0){ | 
|---|
|  |  |  | throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对不起,该商户【名称】【统一信用代码】【邮箱】或者【手机号】已存在,请确认后重新提交!"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); | 
|---|
|  |  |  | company.setCreator(user.getId()); | 
|---|
|  |  |  | company.setCreateDate(new Date()); | 
|---|
|  |  |  | company.setType(Constants.ONE); | 
|---|
|  |  |  | company.setIsdeleted(Constants.ZERO); | 
|---|
|  |  |  | company.setStatus(Constants.ZERO); | 
|---|
|  |  |  | company.setSignStatus(Constants.ZERO); | 
|---|
|  |  |  | company.setSignIdStatus(Constants.ZERO); | 
|---|
|  |  |  | companyMapper.insert(company); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | company.setEditDate(company.getCreateDate()); | 
|---|
|  |  |  | company.setEditor(user.getId()); | 
|---|
|  |  |  | //处理登陆账号信息 | 
|---|
|  |  |  | dealSystemUserData(company,createDefaultDepart(company).getId()); | 
|---|
|  |  |  | //处理附件信息 | 
|---|
|  |  |  | dealFileData(company); | 
|---|
|  |  |  | return company; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | @Transactional(rollbackFor = {Exception.class,BusinessException.class}) | 
|---|
|  |  |  | public void  updateSolutions(Company company) { | 
|---|
|  |  |  | if(company.getId()==null | 
|---|
|  |  |  | ||company.getSolutionList() == null | 
|---|
|  |  |  | 
|---|
|  |  |  | if(model == null  || !Constants.equalsInteger(model.getIsdeleted(),Constants.ZERO) ){ | 
|---|
|  |  |  | throw  new BusinessException(ResponseStatus.DATA_EMPTY ); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | companySolutionJoinMapper.delete(new UpdateWrapper<CompanySolution>().lambda().eq(CompanySolution::getCompanyId,company.getId())); | 
|---|
|  |  |  | //处理关联方案 | 
|---|
|  |  |  | dealSolutionsData(company); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | if(fileList == null || fileList.size() == 0){ | 
|---|
|  |  |  | throw  new BusinessException(ResponseStatus.DATA_EMPTY); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | String fileName =  model.getName() +"_企业证件_"+System.currentTimeMillis()+".zip" ; | 
|---|
|  |  |  | String encodeFileName = URLEncoder.encode(fileName); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | String fileName =  model.getName() +"-企业证件-"+System.currentTimeMillis() ; | 
|---|
|  |  |  | String encodeFileName =URLEncoder.encode(fileName, Charset.forName("UTF-8").toString())+".zip"; | 
|---|
|  |  |  | response.setHeader("Content-Disposition","attachment;filename=" + encodeFileName); | 
|---|
|  |  |  | response.setContentType("application/octet-stream"); | 
|---|
|  |  |  | response.setHeader("eva-opera-type", "download"); | 
|---|
|  |  |  | response.setHeader("eva-download-filename", encodeFileName); | 
|---|
|  |  |  | Constants. packFilesToZip(fileList,response.getOutputStream()); | 
|---|
|  |  |  | Constants.packFilesToZip(fileList,response.getOutputStream()); | 
|---|
|  |  |  | } catch (IOException e) { | 
|---|
|  |  |  | throw new BusinessException(ResponseStatus.EXPORT_EXCEL_ERROR, e); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private void dealSystemUserData(Company company) { | 
|---|
|  |  |  | private SystemUser dealSystemUserData(Company company, Integer departId) { | 
|---|
|  |  |  | if(systemUserMapper.selectCount(new QueryWrapper<SystemUser>().lambda() | 
|---|
|  |  |  | .eq(SystemUser::getDeleted,Boolean.TRUE) | 
|---|
|  |  |  | .eq(SystemUser::getUsername,company.getUsername()))>0){ | 
|---|
|  |  |  | throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对不起,该登录账号已存在,请更新重试~"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(systemUserMapper.selectCount(new QueryWrapper<SystemUser>().lambda() | 
|---|
|  |  |  | .eq(SystemUser::getDeleted,Boolean.TRUE) | 
|---|
|  |  |  | .eq(SystemUser::getMobile,company.getPhone()))>0){ | 
|---|
|  |  |  | throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对不起,该手机号已存在,请更换重试~"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | SystemUser user = new SystemUser(); | 
|---|
|  |  |  | user.setUsername(company.getUsername()); | 
|---|
|  |  |  | // 生成密码盐 | 
|---|
|  |  |  | 
|---|
|  |  |  | // 生成密码 | 
|---|
|  |  |  | user.setPassword(Utils.Secure.encryptPassword(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.DEFAULT_PASSWORD).getCode(), salt)); | 
|---|
|  |  |  | user.setSalt(salt); | 
|---|
|  |  |  | user.setType(Constants.ONE); | 
|---|
|  |  |  | user.setType(Constants.equalsInteger(company.getType(),Constants.ZERO)?Constants.ONE:Constants.TWO); | 
|---|
|  |  |  | user.setFixed(Boolean.TRUE); | 
|---|
|  |  |  | user.setDeleted(Boolean.FALSE); | 
|---|
|  |  |  | user.setCompanyId(company.getId()); | 
|---|
|  |  |  | user.setRealname(company.getLegalName()); | 
|---|
|  |  |  | user.setMobile(company.getPhone()); | 
|---|
|  |  |  | user.setCreateUser(company.getCreator()); | 
|---|
|  |  |  | user.setDepartmentId(departId); | 
|---|
|  |  |  | user.setCreateTime(company.getCreateDate()); | 
|---|
|  |  |  | user.setStatus(Constants.ZERO); | 
|---|
|  |  |  | systemUserMapper.insert(user); | 
|---|
|  |  |  | return user; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | private void dealSystemUserDataForUpdate (Company company,String oldUserName) { | 
|---|
|  |  |  | if(systemUserMapper.selectCount(new QueryWrapper<SystemUser>().lambda() | 
|---|
|  |  |  | .eq(SystemUser::getDeleted,Boolean.TRUE) | 
|---|
|  |  |  | .eq(SystemUser::getUsername,company.getUsername()))>0){ | 
|---|
|  |  |  | throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对不起,该登录账号已存在,请更新重试~"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(systemUserMapper.selectCount(new QueryWrapper<SystemUser>().lambda() | 
|---|
|  |  |  | .eq(SystemUser::getDeleted,Boolean.TRUE) | 
|---|
|  |  |  | .ne(SystemUser::getUsername,company.getUsername()) | 
|---|
|  |  |  | .eq(SystemUser::getMobile,company.getPhone()))>0){ | 
|---|
|  |  |  | throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对不起,该手机号已存在,请更新重试~"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | SystemUser model = systemUserMapper.selectOne(new QueryWrapper<SystemUser>().lambda() | 
|---|
|  |  |  | .eq(SystemUser::getDeleted,Boolean.TRUE) | 
|---|
|  |  |  | 
|---|
|  |  |  | // 生成密码 | 
|---|
|  |  |  | user.setPassword(Utils.Secure.encryptPassword(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.DEFAULT_PASSWORD).getCode(), salt)); | 
|---|
|  |  |  | user.setSalt(salt); | 
|---|
|  |  |  | user.setType(Constants.ONE); | 
|---|
|  |  |  | user.setType(Constants.equalsInteger(company.getType(),Constants.ZERO)?Constants.ONE:Constants.TWO); | 
|---|
|  |  |  | user.setFixed(Boolean.TRUE); | 
|---|
|  |  |  | user.setDeleted(Boolean.FALSE); | 
|---|
|  |  |  | user.setCompanyId(company.getId()); | 
|---|
|  |  |  | user.setMobile(company.getPhone()); | 
|---|
|  |  |  | user.setCreateUser(company.getCreator()); | 
|---|
|  |  |  | user.setRealname(company.getLegalName()); | 
|---|
|  |  |  | user.setCreateTime(company.getCreateDate()); | 
|---|
|  |  |  | user.setStatus(Constants.ZERO); | 
|---|
|  |  |  | systemUserMapper.insert(user);//插入新的管理员账号 | 
|---|
|  |  |  | }else{ | 
|---|
|  |  |  | model.setMobile(company.getPhone()); | 
|---|
|  |  |  | model.setUsername(company.getUsername()); | 
|---|
|  |  |  | model.setCreateUser(company.getCreator()); | 
|---|
|  |  |  | model.setCreateTime(company.getCreateDate()); | 
|---|
|  |  |  | 
|---|
|  |  |  | * @param company | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | private void dealSolutionsData(Company company) { | 
|---|
|  |  |  | List<Integer> sIds = new ArrayList<>(); | 
|---|
|  |  |  | List<CompanySolution> list = new ArrayList<>(); | 
|---|
|  |  |  | int num =0; | 
|---|
|  |  |  | Date date = new Date(); | 
|---|
|  |  |  | List<CompanySolution> addList = new ArrayList<>(); | 
|---|
|  |  |  | List<CompanySolution> delList = new ArrayList<>(); | 
|---|
|  |  |  | List<CompanySolution> updList = new ArrayList<>(); | 
|---|
|  |  |  | List<CompanySolution> companySolutionList = companySolutionJoinMapper.selectList(new QueryWrapper<CompanySolution>().lambda().eq(CompanySolution::getCompanyId,company.getId())); | 
|---|
|  |  |  | for(CompanySolution s :company.getSolutionList()){ | 
|---|
|  |  |  | if(companySolutionList.stream().filter(i->Constants.equalsInteger(i.getSolutionBaseId(),s.getSolution().getBaseId())).collect(Collectors.toList()).size()>Constants.ZERO){ | 
|---|
|  |  |  | updList.add(s); | 
|---|
|  |  |  | }else{ | 
|---|
|  |  |  | addList.add(s); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | for (CompanySolution s:companySolutionList) { | 
|---|
|  |  |  | if( addList.stream().filter(i->Constants.equalsInteger(i.getSolution().getBaseId(),s.getSolutionBaseId())).collect(Collectors.toList()).size()>Constants.ZERO | 
|---|
|  |  |  | || updList.stream().filter(i->Constants.equalsInteger(i.getSolution().getBaseId(),s.getSolutionBaseId())).collect(Collectors.toList()).size()>Constants.ZERO | 
|---|
|  |  |  | ){ | 
|---|
|  |  |  | continue; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | delList.add(s); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(delList)){ | 
|---|
|  |  |  | companySolutionJoinMapper.delete(new UpdateWrapper<CompanySolution>().lambda().in(CompanySolution::getId,delList.stream().map(i->i.getId()).collect(Collectors.toList()))); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(addList)){ | 
|---|
|  |  |  | for(CompanySolution s :addList){ | 
|---|
|  |  |  | if(Objects.isNull(s.getSolution())){ | 
|---|
|  |  |  | continue; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(s.getSolution().getBaseId() == null){ | 
|---|
|  |  |  | continue; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | Solutions newVersion = solutionsMapper.selectOne(new QueryWrapper<Solutions>().lambda().eq(Solutions::getBaseId,s.getSolution().getBaseId()) | 
|---|
|  |  |  | .eq(Solutions::getDataType,Constants.TWO).last("limit 1")); | 
|---|
|  |  |  | if(Objects.isNull(newVersion)){ | 
|---|
|  |  |  | throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"请添加有效的保险方案信息!"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | //查询方案的方案确认书 | 
|---|
|  |  |  | Multifile multifile = multifileMapper.selectOne(new QueryWrapper<Multifile>().lambda() | 
|---|
|  |  |  | .eq(Multifile::getObjType,Constants.MultiFile.SOLUTIONS_CONFIRMATION_LATTER.getKey()) | 
|---|
|  |  |  | .eq(Multifile::getIsdeleted,Constants.ZERO) | 
|---|
|  |  |  | .eq(Multifile::getObjId,newVersion.getId()) | 
|---|
|  |  |  | ); | 
|---|
|  |  |  | if(Objects.isNull(multifile) ||  StringUtils.isBlank(multifile.getFileurl())){ | 
|---|
|  |  |  | throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"未查询到方案确认书!"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | sIds.add(s.getSolution().getBaseId()); | 
|---|
|  |  |  | s.setCompanyId(company.getId()); | 
|---|
|  |  |  | s.setIsdeleted(Constants.ZERO); | 
|---|
|  |  |  | s.setCanAdd(Constants.formatIntegerNum(s.getCanAdd())); | 
|---|
|  |  |  | s.setCanReduce(Constants.formatIntegerNum(s.getCanReduce())); | 
|---|
|  |  |  | s.setCreateDate(date); | 
|---|
|  |  |  | s.setCreator(company.getCreator()); | 
|---|
|  |  |  | s.setSortnum(num++); | 
|---|
|  |  |  | s.setSolutionBaseId( s.getSolution().getBaseId() ); | 
|---|
|  |  |  | s.setSolutionId( newVersion.getId() ); | 
|---|
|  |  |  | s.setStatus(Constants.ZERO); | 
|---|
|  |  |  | s.setFileUrl(multifile.getFileurl()); | 
|---|
|  |  |  | s.setSignStatus(Constants.ZERO); | 
|---|
|  |  |  | s.setSolutionName(newVersion.getName()); | 
|---|
|  |  |  | list.add(s); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(list.size() ==0){ | 
|---|
|  |  |  | throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"请添加有效的保险方案信息!"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | List<Solutions> solutionsList = solutionsMapper.selectList(new QueryWrapper<Solutions>().lambda() | 
|---|
|  |  |  | .in(Solutions::getId,sIds) | 
|---|
|  |  |  | .eq(Solutions::getIsdeleted,Constants.ZERO)); | 
|---|
|  |  |  | if(solutionsList.size()!= list.size()){ | 
|---|
|  |  |  | throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"请添加有效的保险方案信息哦"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | for(Solutions s:solutionsList){ | 
|---|
|  |  |  | if(Constants.equalsInteger(s.getStatus(),Constants.ONE)){ | 
|---|
|  |  |  | throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"保险方案【"+s.getName()+"】已被禁用,不能进行该操作"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | companySolutionJoinMapper.insert(list); | 
|---|
|  |  |  | //存储待办信息 | 
|---|
|  |  |  | Constants.NoticeObjectType noticeObjectType = Constants.NoticeObjectType.SOLUTIONS; | 
|---|
|  |  |  | for (CompanySolution s:list) { | 
|---|
|  |  |  | Solutions newVersion = solutionsMapper.selectById(s.getSolutionId()); | 
|---|
|  |  |  | //平台待办 | 
|---|
|  |  |  | Notices notices = new Notices(noticeObjectType, | 
|---|
|  |  |  | Constants.ONE | 
|---|
|  |  |  | ,s.getId(), | 
|---|
|  |  |  | newVersion.getName() , | 
|---|
|  |  |  | company.getId() | 
|---|
|  |  |  | ,Constants.NoticeType.ZERO); | 
|---|
|  |  |  | noticesMapper.insert(notices); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /*private void dealSolutionsData(Company company) { | 
|---|
|  |  |  | List<Integer> sIds = new ArrayList<>(); | 
|---|
|  |  |  | List<CompanySolution> list = new ArrayList<>(); | 
|---|
|  |  |  | int num =0; | 
|---|
|  |  |  | Date date = new Date(); | 
|---|
|  |  |  | for(CompanySolution s :company.getSolutionList()){ | 
|---|
|  |  |  | if(Objects.isNull(s.getSolution())){ | 
|---|
|  |  |  | continue; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(s.getSolution().getBaseId() == null){ | 
|---|
|  |  |  | continue; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | Solutions newVersion = solutionsMapper.selectOne(new QueryWrapper<Solutions>().lambda().eq(Solutions::getBaseId,s.getSolution().getBaseId()) | 
|---|
|  |  |  | .eq(Solutions::getDataType,Constants.TWO).last("limit 1")); | 
|---|
|  |  |  | if(Objects.isNull(newVersion)){ | 
|---|
|  |  |  | throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"请添加有效的保险方案信息!"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | //查询方案的方案确认书 | 
|---|
|  |  |  | Multifile multifile = multifileMapper.selectOne(new QueryWrapper<Multifile>().lambda() | 
|---|
|  |  |  | .eq(Multifile::getObjType,Constants.MultiFile.SOLUTIONS_CONFIRMATION_LATTER.getKey()) | 
|---|
|  |  |  | .eq(Multifile::getIsdeleted,Constants.ZERO) | 
|---|
|  |  |  | .eq(Multifile::getObjId,newVersion.getId()) | 
|---|
|  |  |  | ); | 
|---|
|  |  |  | if(Objects.isNull(multifile) ||  StringUtils.isBlank(multifile.getFileurl())){ | 
|---|
|  |  |  | throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"未查询到方案确认书!"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | sIds.add(s.getSolution().getBaseId()); | 
|---|
|  |  |  | s.setCompanyId(company.getId()); | 
|---|
|  |  |  | s.setIsdeleted(Constants.ZERO); | 
|---|
|  |  |  | s.setCanAdd(Constants.formatIntegerNum(s.getCanAdd())); | 
|---|
|  |  |  | s.setCanReduce(Constants.formatIntegerNum(s.getCanReduce())); | 
|---|
|  |  |  | s.setCreateDate(date); | 
|---|
|  |  |  | s.setCreator(company.getCreator()); | 
|---|
|  |  |  | s.setSortnum(num++); | 
|---|
|  |  |  | s.setSolutionBaseId( s.getSolution().getBaseId() ); | 
|---|
|  |  |  | s.setSolutionId( newVersion.getId() ); | 
|---|
|  |  |  | s.setStatus(Constants.ZERO); | 
|---|
|  |  |  | s.setFileUrl(multifile.getFileurl()); | 
|---|
|  |  |  | s.setSignStatus(Constants.ZERO); | 
|---|
|  |  |  | list.add(s); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(list.size() ==0){ | 
|---|
|  |  |  | throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"请添加有效的保险方案信息!"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | List<Solutions> solutionsList = solutionsMapper.selectList(new QueryWrapper<Solutions>().lambda() | 
|---|
|  |  |  | .in(Solutions::getId,sIds) | 
|---|
|  |  |  | .eq(Solutions::getIsdeleted,Constants.ZERO)); | 
|---|
|  |  |  | if(solutionsList.size()!= list.size()){ | 
|---|
|  |  |  | throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"请添加有效的保险方案信息哦"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | for(Solutions s:solutionsList){ | 
|---|
|  |  |  | if(Constants.equalsInteger(s.getStatus(),Constants.ONE)){ | 
|---|
|  |  |  | throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"保险方案【"+s.getName()+"】已被禁用,不能进行该操作"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | companySolutionJoinMapper.insert(list); | 
|---|
|  |  |  | }*/ | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /* private void dealSolutionsData(Company company) { | 
|---|
|  |  |  | List<Integer> sIds = new ArrayList<>(); | 
|---|
|  |  |  | List<CompanySolution> list = new ArrayList<>(); | 
|---|
|  |  |  | int num =0; | 
|---|
|  |  |  | 
|---|
|  |  |  | throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"保险方案【"+s.getName()+"】已被禁用,不能进行该操作"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | companySolutionJoinMapper.insertBatchSomeColumn(list); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | companySolutionJoinMapper.insert(list); | 
|---|
|  |  |  | }*/ | 
|---|
|  |  |  | private void isValidCreateParam(Company company) { | 
|---|
|  |  |  | if(StringUtils.isBlank(company.getPhone()) | 
|---|
|  |  |  | ||StringUtils.isBlank(company.getName()) | 
|---|
|  |  |  | 
|---|
|  |  |  | ||StringUtils.isBlank(company.getEmail())){ | 
|---|
|  |  |  | throw new BusinessException(ResponseStatus.BAD_REQUEST); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if(!debugModel){ | 
|---|
|  |  |  | String  phoneAtuh = systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.COMPANY_PHONE_AUTH).getCode(); | 
|---|
|  |  |  | if(!debugModel && !StringUtils.equals(phoneAtuh,Constants.ONE+"")){ | 
|---|
|  |  |  | //手机验证码校验 | 
|---|
|  |  |  | SmsEmailServiceImpl.isCaptcheValide(smsEmailMapper,company.getPhone(),company.getCaptche()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | }else  { | 
|---|
|  |  |  | throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"请上传营业执照!"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(company.getSignImg()!=null && StringUtils.isNotBlank(company.getSignImg().getFileurl())){ | 
|---|
|  |  |  | multifileList.add(initMultiFileByCompay(company,company.getSignImg(),Constants.MultiFile.COM_SING_IMG.getKey())); | 
|---|
|  |  |  | }else { | 
|---|
|  |  |  | throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"请上传电子签章!"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | //        if(company.getSignImg()!=null && StringUtils.isNotBlank(company.getSignImg().getFileurl())){ | 
|---|
|  |  |  | //            multifileList.add(initMultiFileByCompay(company,company.getSignImg(),Constants.MultiFile.COM_SING_IMG.getKey())); | 
|---|
|  |  |  | //        }else { | 
|---|
|  |  |  | //   throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"请上传电子签章!"); | 
|---|
|  |  |  | //        } | 
|---|
|  |  |  | if(company.getIdcardImgList()!=null && company.getIdcardImgList()!=null&& company.getIdcardImgList().size()>0){ | 
|---|
|  |  |  | for(Multifile f : company.getIdcardImgList()){ | 
|---|
|  |  |  | multifileList.add(initMultiFileByCompay(company,f,Constants.MultiFile.COM_IDCARD_IMG.getKey())); | 
|---|
|  |  |  | multifileList.add(initMultiFileByCompay(company,f,Constants.MultiFile.COM_IDCARD_IMG.getKey())); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }else { | 
|---|
|  |  |  | throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"请上传身份证扫描件!"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | multifileMapper.insertBatchSomeColumn(multifileList); | 
|---|
|  |  |  | multifileMapper.insert(multifileList); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | private void dealFileDataForUpdate(Company company ) { | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | .eq(Multifile::getIsdeleted,Constants.ZERO) | 
|---|
|  |  |  | .in(Multifile::getObjType,objList) | 
|---|
|  |  |  | ); | 
|---|
|  |  |  | multifileMapper.insertBatchSomeColumn(multifileList); | 
|---|
|  |  |  | multifileMapper.insert(multifileList); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | || StringUtils.isBlank(company.getCaptche())){ | 
|---|
|  |  |  | throw  new BusinessException(ResponseStatus.BAD_REQUEST ); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(!debugModel){ | 
|---|
|  |  |  | String  phoneAtuh = systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.COMPANY_PHONE_AUTH).getCode(); | 
|---|
|  |  |  | if(!debugModel && !StringUtils.equals(phoneAtuh,Constants.ONE+"")){ | 
|---|
|  |  |  | SmsEmailServiceImpl.isCaptcheValide(smsEmailMapper,company.getPhone(),company.getCaptche()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | Company model = companyMapper.selectById(company.getId()); | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if(companyMapper.selectCount(new QueryWrapper<Company>().lambda() | 
|---|
|  |  |  | .ne(Company::getId,company.getId()) | 
|---|
|  |  |  | .eq(Company::getIsdeleted,Constants.ZERO) | 
|---|
|  |  |  | .and(w->w.eq(Company::getCode,company.getCode()) | 
|---|
|  |  |  | .or().eq(Company::getEmail,company.getEmail()) | 
|---|
|  |  |  | .or().eq(Company::getUsername,company.getUsername()) | 
|---|
|  |  |  | //                    .or().eq(Company::getUsername,company.getUsername()) | 
|---|
|  |  |  | .or().eq(Company::getName,company.getName())) | 
|---|
|  |  |  | )>0){ | 
|---|
|  |  |  | throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对不起,该企业【名称】【统一信用代码】【邮箱】或者【企业账号】已存在,请确认后重新提交!"); | 
|---|
|  |  |  | 
|---|
|  |  |  | company.setCreateDate(update.getEditDate()); | 
|---|
|  |  |  | if(StringUtils.isNotBlank(company.getUsername())){ | 
|---|
|  |  |  | //处理登陆账号信息 | 
|---|
|  |  |  | company.setType(model.getType()); | 
|---|
|  |  |  | dealSystemUserDataForUpdate(company,model.getUsername()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | QueryWrapper<Company> wrapper = new QueryWrapper<>(company); | 
|---|
|  |  |  | company.setIsdeleted(Constants.ZERO); | 
|---|
|  |  |  | LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); | 
|---|
|  |  |  | if(company.getQueryFlag() == 0){ | 
|---|
|  |  |  | //只能看权限范围内 | 
|---|
|  |  |  | if(user.getCompanyIdList() == null || user.getCompanyIdList().size() == 0){ | 
|---|
|  |  |  | wrapper.lambda().eq(Company::getId,-1);//设置无效访问 | 
|---|
|  |  |  | }else { | 
|---|
|  |  |  | wrapper.lambda().in(Company::getId, user.getCompanyIdList()); | 
|---|
|  |  |  | if(Constants.equalsInteger(company.getType(),Constants.ONE)){ | 
|---|
|  |  |  |  | 
|---|
|  |  |  | }else  { | 
|---|
|  |  |  | company.setType(Constants.ZERO); | 
|---|
|  |  |  | if(Constants.equalsInteger(user.getType(),Constants.TWO)){ | 
|---|
|  |  |  | //如果是商户 | 
|---|
|  |  |  | wrapper.lambda().exists("select c.id from company_solution c where c.isdeleted=0 and c.company_id=company.id and  c.shop_id="+user.getCompanyId());//设置无效访问 | 
|---|
|  |  |  | }else{ | 
|---|
|  |  |  | //如果查询企业数据 | 
|---|
|  |  |  | if(company.getQueryFlag() == 0){ | 
|---|
|  |  |  | //只能看权限范围内 | 
|---|
|  |  |  | if(user.getCompanyIdList() == null || user.getCompanyIdList().size() == 0){ | 
|---|
|  |  |  | wrapper.lambda().eq(Company::getId,-1);//设置无效访问 | 
|---|
|  |  |  | }else { | 
|---|
|  |  |  | wrapper.lambda().in(Company::getId, user.getCompanyIdList()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } else if (company.getQueryFlag() == 1 && company.getUserId()!=null) { | 
|---|
|  |  |  | //查詢是否有查看權限 | 
|---|
|  |  |  | wrapper.select("*,(select count(1) from company_permission b where b.user_id="+company.getUserId()+" and b.isdeleted=0 and b.company_id=company.id) as hasPerimission"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } else if (company.getQueryFlag() == 1 && company.getUserId()!=null) { | 
|---|
|  |  |  | //查詢是否有查看權限 | 
|---|
|  |  |  | wrapper.select("*,(select count(1) from company_permission b where b.user_id="+company.getUserId()+" and b.isdeleted=0 and b.company_id=company.id) as hasPerimission"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return companyMapper.selectList(wrapper); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public List<Company> findAllCompanyList() { | 
|---|
|  |  |  | LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); | 
|---|
|  |  |  | List<Company> companyList = companyMapper.selectList( | 
|---|
|  |  |  | new QueryWrapper<Company>().lambda() | 
|---|
|  |  |  | .eq(Company::getIsdeleted,Constants.ZERO) | 
|---|
|  |  |  | .eq(Company::getType,Constants.ZERO) | 
|---|
|  |  |  | .ne(Constants.equalsInteger(user.getType(),Constants.ONE),Company::getId,user.getCompanyId()) | 
|---|
|  |  |  | ); | 
|---|
|  |  |  | return companyList; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public PageData<Company> findPage(PageWrap<Company> pageWrap) { | 
|---|
|  |  |  | 
|---|
|  |  |  | Utils.MP.blankToNull(pageWrap.getModel()); | 
|---|
|  |  |  | pageWrap.getModel().setIsdeleted(Constants.ZERO); | 
|---|
|  |  |  | LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); | 
|---|
|  |  |  | if(pageWrap.getModel().getQueryFlag() == 0){ | 
|---|
|  |  |  | //只能看权限范围内 | 
|---|
|  |  |  | if(user.getCompanyIdList() == null || user.getCompanyIdList().size() == 0){ | 
|---|
|  |  |  | queryWrapper.lambda().eq(Company::getId,-1);//设置无效访问 | 
|---|
|  |  |  | }else { | 
|---|
|  |  |  | queryWrapper.lambda().in(Company::getId, user.getCompanyIdList()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(Constants.formatIntegerNum(pageWrap.getModel().getType()) == Constants.ONE||Constants.formatIntegerNum(pageWrap.getModel().getType()) == Constants.ZERO) { | 
|---|
|  |  |  |  | 
|---|
|  |  |  | }else{ | 
|---|
|  |  |  | if(Constants.equalsInteger(user.getType(),Constants.TWO)){ | 
|---|
|  |  |  | //如果是商户 | 
|---|
|  |  |  | queryWrapper.lambda().exists("select c.id from company_solution c where c.isdeleted=0 and c.shop_id=company.id");//设置无效访问 | 
|---|
|  |  |  | }else{ | 
|---|
|  |  |  | //如果查询企业数据,只能看权限范围内 | 
|---|
|  |  |  | if(pageWrap.getModel().getQueryFlag() == 0){ | 
|---|
|  |  |  | //只能看权限范围内 | 
|---|
|  |  |  | if(user.getCompanyIdList() == null || user.getCompanyIdList().size() == 0){ | 
|---|
|  |  |  | queryWrapper.lambda().eq(Company::getId,-1);//设置无效访问 | 
|---|
|  |  |  | }else { | 
|---|
|  |  |  | queryWrapper.lambda().in(Company::getId, user.getCompanyIdList()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | //            queryWrapper.exists("select b.id from company_permission b where b.user_id="+user.getId()+" and b.isdeleted=0 and b.company_id=company.id"); | 
|---|
|  |  |  | } else if (pageWrap.getModel().getQueryFlag() == 1) { | 
|---|
|  |  |  | //查詢是否有查看權限 | 
|---|
|  |  |  | queryWrapper.select("*,(select count(1) from company_permission b where b.user_id="+user.getId()+" and b.isdeleted=0 and b.company_id=company.id) as hasPerimission"); | 
|---|
|  |  |  | } else if (pageWrap.getModel().getQueryFlag() == 1) { | 
|---|
|  |  |  | //查詢是否有查看權限 | 
|---|
|  |  |  | queryWrapper.select("*,(select count(1) from company_permission b where b.user_id="+user.getId()+" and b.isdeleted=0 and b.company_id=company.id) as hasPerimission"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (pageWrap.getModel().getId() != null) { | 
|---|
|  |  |  | queryWrapper.lambda().eq(Company::getId, pageWrap.getModel().getId()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | queryWrapper.lambda().eq(Company::getCode, pageWrap.getModel().getCode()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (pageWrap.getModel().getUsername() != null) { | 
|---|
|  |  |  | queryWrapper.lambda().eq(Company::getUsername, pageWrap.getModel().getUsername()); | 
|---|
|  |  |  | queryWrapper.lambda().like(Company::getUsername, pageWrap.getModel().getUsername()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (pageWrap.getModel().getTaxCode() != null) { | 
|---|
|  |  |  | queryWrapper.lambda().eq(Company::getTaxCode, pageWrap.getModel().getTaxCode()); | 
|---|
|  |  |  | 
|---|
|  |  |  | queryWrapper.lambda().eq(Company::getInvoiceAddr, pageWrap.getModel().getInvoiceAddr()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (pageWrap.getModel().getPhone() != null) { | 
|---|
|  |  |  | queryWrapper.lambda().eq(Company::getPhone, pageWrap.getModel().getPhone()); | 
|---|
|  |  |  | queryWrapper.lambda().like(Company::getPhone, pageWrap.getModel().getPhone()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (pageWrap.getModel().getEmail() != null) { | 
|---|
|  |  |  | queryWrapper.lambda().eq(Company::getEmail, pageWrap.getModel().getEmail()); | 
|---|