|  |  | 
 |  |  | package com.doumee.service.business.impl; | 
 |  |  |  | 
 |  |  | import com.alibaba.fastjson.JSONObject; | 
 |  |  | import com.doumee.biz.system.SystemDictDataBiz; | 
 |  |  | import com.doumee.core.constants.ResponseStatus; | 
 |  |  | import com.doumee.core.exception.BusinessException; | 
 |  |  | import com.doumee.core.model.LoginUserInfo; | 
 |  |  | import com.doumee.core.model.PageData; | 
 |  |  | import com.doumee.core.model.PageWrap; | 
 |  |  | import com.doumee.core.utils.Constants; | 
 |  |  | import com.doumee.core.utils.Utils; | 
 |  |  | import com.doumee.dao.business.CompanyMapper; | 
 |  |  | import com.doumee.dao.business.model.Company; | 
 |  |  | import com.doumee.dao.business.*; | 
 |  |  | import com.doumee.dao.business.join.CompanySolutionJoinMapper; | 
 |  |  | import com.doumee.dao.business.model.*; | 
 |  |  | import com.doumee.dao.system.SystemUserMapper; | 
 |  |  | import com.doumee.dao.system.model.SystemUser; | 
 |  |  | import com.doumee.service.business.CompanyService; | 
 |  |  | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; | 
 |  |  | import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; | 
 |  |  | import com.baomidou.mybatisplus.core.metadata.IPage; | 
 |  |  | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; | 
 |  |  | import com.doumee.service.business.third.SignService; | 
 |  |  | import com.github.yulichang.wrapper.MPJLambdaWrapper; | 
 |  |  | import lombok.Synchronized; | 
 |  |  | import org.apache.commons.lang3.RandomStringUtils; | 
 |  |  | import org.apache.commons.lang3.StringUtils; | 
 |  |  | import org.apache.shiro.SecurityUtils; | 
 |  |  | import org.springframework.beans.factory.annotation.Autowired; | 
 |  |  | import org.springframework.beans.factory.annotation.Value; | 
 |  |  | import org.springframework.scheduling.annotation.Async; | 
 |  |  | import org.springframework.stereotype.Service; | 
 |  |  | import org.springframework.transaction.annotation.Transactional; | 
 |  |  | import org.springframework.util.CollectionUtils; | 
 |  |  |  | 
 |  |  | import java.util.List; | 
 |  |  | import javax.servlet.http.HttpServletResponse; | 
 |  |  | import java.io.File; | 
 |  |  | import java.io.IOException; | 
 |  |  | import java.lang.reflect.Array; | 
 |  |  | import java.net.URI; | 
 |  |  | import java.net.URLEncoder; | 
 |  |  | import java.util.*; | 
 |  |  |  | 
 |  |  | /** | 
 |  |  |  * 企业信息表Service实现 | 
 |  |  |  * @author 江蹄蹄 | 
 |  |  |  * @date 2024/01/15 11:15 | 
 |  |  |  * @date 2024/01/16 10:03 | 
 |  |  |  */ | 
 |  |  | @Service | 
 |  |  | public class CompanyServiceImpl implements CompanyService { | 
 |  |  |  | 
 |  |  |     @Value("${debug_model}") | 
 |  |  |     private boolean debugModel; | 
 |  |  |     @Autowired | 
 |  |  |     private CompanyMapper companyMapper; | 
 |  |  |     @Autowired | 
 |  |  |     private SystemUserMapper systemUserMapper; | 
 |  |  |     @Autowired | 
 |  |  |     private SignService signService; | 
 |  |  |     @Autowired | 
 |  |  |     private SolutionsMapper solutionsMapper; | 
 |  |  |     @Autowired | 
 |  |  |     private CompanySolutionJoinMapper companySolutionJoinMapper; | 
 |  |  |     @Autowired | 
 |  |  |     private CompanyPermissionMapper companyPermissionMapper; | 
 |  |  |     @Autowired | 
 |  |  |     private MultifileMapper multifileMapper; | 
 |  |  |     @Autowired | 
 |  |  |     private SmsEmailMapper smsEmailMapper; | 
 |  |  |     @Autowired | 
 |  |  |     private SystemDictDataBiz systemDictDataBiz; | 
 |  |  |  | 
 |  |  |     @Override | 
 |  |  |     public Integer create(Company company) { | 
 |  |  |     @Transactional | 
 |  |  |     public Company create(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.setIsdeleted(Constants.ZERO); | 
 |  |  |         company.setStatus(Constants.ZERO); | 
 |  |  |         company.setType(Constants.ZERO); | 
 |  |  |         company.setSignStatus(Constants.ZERO); | 
 |  |  |         company.setSignIdStatus(Constants.ZERO); | 
 |  |  |         companyMapper.insert(company); | 
 |  |  |         return company.getId(); | 
 |  |  |         company.setEditDate(company.getCreateDate()); | 
 |  |  |         company.setEditor(user.getId()); | 
 |  |  |         //处理登陆账号信息 | 
 |  |  |         dealSystemUserData(company); | 
 |  |  |         //处理附件信息 | 
 |  |  |         dealFileData(company); | 
 |  |  |         //处理关联方案 | 
 |  |  |         dealSolutionsData(company); | 
 |  |  |         return company; | 
 |  |  |     } | 
 |  |  |     @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); | 
 |  |  |         //处理附件信息 | 
 |  |  |         dealFileData(company); | 
 |  |  |         return company; | 
 |  |  |     } | 
 |  |  |     @Override | 
 |  |  |     @Transactional | 
 |  |  |     public void  updateSolutions(Company company) { | 
 |  |  |         if(company.getId()==null | 
 |  |  |                 ||company.getSolutionList() == null | 
 |  |  |                 ||company.getSolutionList().size() == 0 ){ | 
 |  |  |             throw new BusinessException(ResponseStatus.BAD_REQUEST); | 
 |  |  |         } | 
 |  |  |         Company model = findById(company.getId()); | 
 |  |  |         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); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     @Override | 
 |  |  |     @Transactional | 
 |  |  |     public void exportFiles(Integer id, HttpServletResponse response){ | 
 |  |  |         try { | 
 |  |  |             Company model = companyMapper.selectById(id); | 
 |  |  |             if(model == null){ | 
 |  |  |                 throw  new BusinessException(ResponseStatus.DATA_EMPTY); | 
 |  |  |             } | 
 |  |  |             List<File> fileList = new ArrayList<>(); | 
 |  |  |             List<Multifile> multifileList = multifileMapper.selectList(new QueryWrapper<Multifile>().lambda() | 
 |  |  |                     .eq(Multifile::getObjId,id) | 
 |  |  |                     .isNotNull(Multifile::getFileurl) | 
 |  |  |                     .in(Multifile::getObjType, Arrays.asList(new Integer[]{ | 
 |  |  |                             Constants.MultiFile.COM_BUSINESS_LICENSE.getKey(), | 
 |  |  |                             Constants.MultiFile.COM_IDCARD_IMG.getKey(), | 
 |  |  |                     })) | 
 |  |  |             ); | 
 |  |  |             if(multifileList== null || multifileList.size() == 0){ | 
 |  |  |                 throw  new BusinessException(ResponseStatus.DATA_EMPTY); | 
 |  |  |             } | 
 |  |  |             String path = systemDictDataBiz.queryByCode(Constants.OSS,Constants.RESOURCE_PATH).getCode()+systemDictDataBiz.queryByCode(Constants.OSS,Constants.COMPANY_FILE).getCode(); | 
 |  |  |             for(Multifile l : multifileList){ | 
 |  |  |                 File f = Constants.getFileByNetFile(path + l.getFileurl(),StringUtils.defaultString(l.getName(),"未命名")); | 
 |  |  |                 if(f !=null && f.isFile()){ | 
 |  |  |                     fileList.add(f); | 
 |  |  |                 } | 
 |  |  |             } | 
 |  |  |             if(fileList == null || fileList.size() == 0){ | 
 |  |  |                 throw  new BusinessException(ResponseStatus.DATA_EMPTY); | 
 |  |  |             } | 
 |  |  |             String fileName =  model.getName() +"_企业证件_"+System.currentTimeMillis()+".zip" ; | 
 |  |  |             String encodeFileName = URLEncoder.encode(fileName); | 
 |  |  |             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()); | 
 |  |  |         } catch (IOException e) { | 
 |  |  |             throw new BusinessException(ResponseStatus.EXPORT_EXCEL_ERROR, e); | 
 |  |  |         } | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     private void dealSystemUserData(Company company) { | 
 |  |  |         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()); | 
 |  |  |         // 生成密码盐 | 
 |  |  |         String salt = RandomStringUtils.randomAlphabetic(6); | 
 |  |  |         // 生成密码 | 
 |  |  |         user.setPassword(Utils.Secure.encryptPassword(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.DEFAULT_PASSWORD).getCode(), salt)); | 
 |  |  |         user.setSalt(salt); | 
 |  |  |         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.setCreateTime(company.getCreateDate()); | 
 |  |  |         user.setStatus(Constants.ZERO); | 
 |  |  |         systemUserMapper.insert(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) | 
 |  |  |                 .eq(SystemUser::getUsername,oldUserName).last("limit 1")); | 
 |  |  |         if(model  ==null){ | 
 |  |  |             SystemUser user = new SystemUser(); | 
 |  |  |             user.setUsername(company.getUsername()); | 
 |  |  |             // 生成密码盐 | 
 |  |  |             String salt = RandomStringUtils.randomAlphabetic(6); | 
 |  |  |             // 生成密码 | 
 |  |  |             user.setPassword(Utils.Secure.encryptPassword(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.DEFAULT_PASSWORD).getCode(), salt)); | 
 |  |  |             user.setSalt(salt); | 
 |  |  |             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()); | 
 |  |  |             systemUserMapper.updateById(model);//修改原来的超级管理员账号 | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  |      * 新增关联方案 | 
 |  |  |      * @param company | 
 |  |  |      */ | 
 |  |  |     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(),"请添加有效的保险方案信息!"); | 
 |  |  |             } | 
 |  |  |             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); | 
 |  |  |             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.insertBatchSomeColumn(list); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |  | 
 |  |  |    /* private void dealSolutionsData(Company company) { | 
 |  |  |         List<Integer> sIds = new ArrayList<>(); | 
 |  |  |         List<CompanySolution> list = new ArrayList<>(); | 
 |  |  |         int num =0; | 
 |  |  |         for(CompanySolution s :company.getSolutionList()){ | 
 |  |  |             if(s.getSolution() == null || s.getSolution().getBaseId() == null ||s.getSolution().getId()==null){ | 
 |  |  |                 continue; | 
 |  |  |             } | 
 |  |  |             sIds.add(s.getSolution().getId() ); | 
 |  |  |             s.setCompanyId(company.getId()); | 
 |  |  |             s.setIsdeleted(Constants.ZERO); | 
 |  |  |             s.setCanAdd(Constants.formatIntegerNum(s.getCanAdd())); | 
 |  |  |             s.setCanReduce(Constants.formatIntegerNum(s.getCanReduce())); | 
 |  |  |             s.setCreateDate(company.getCreateDate()); | 
 |  |  |             s.setCreator(company.getCreator()); | 
 |  |  |             s.setSortnum(num++); | 
 |  |  |             s.setSolutionBaseId( s.getSolution().getId() ); | 
 |  |  |             s.setSolutionId( s.getSolution().getBaseId() ); | 
 |  |  |             s.setStatus(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.insertBatchSomeColumn(list); | 
 |  |  |     }*/ | 
 |  |  |     private void isValidCreateParam(Company company) { | 
 |  |  |         if(StringUtils.isBlank(company.getPhone()) | 
 |  |  |             ||StringUtils.isBlank(company.getName()) | 
 |  |  |             ||StringUtils.isBlank(company.getUsername()) | 
 |  |  |             ||StringUtils.isBlank(company.getCode()) | 
 |  |  |             ||StringUtils.isBlank(company.getCaptche()) | 
 |  |  |             ||StringUtils.isBlank(company.getLegalName()) | 
 |  |  |             ||StringUtils.isBlank(company.getEmail()) | 
 |  |  |             ||company.getSolutionList() == null | 
 |  |  |             ||company.getSolutionList().size() == 0 | 
 |  |  |             ||StringUtils.isBlank(company.getEmail())){ | 
 |  |  |             throw new BusinessException(ResponseStatus.BAD_REQUEST); | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         if(!debugModel){ | 
 |  |  |             //手机验证码校验 | 
 |  |  |             SmsEmailServiceImpl.isCaptcheValide(smsEmailMapper,company.getPhone(),company.getCaptche()); | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     private void dealFileData(Company company ) { | 
 |  |  |  | 
 |  |  |         List<Multifile> multifileList = new ArrayList<>(); | 
 |  |  |         if(company.getBusinessImg()!=null && StringUtils.isNotBlank(company.getBusinessImg().getFileurl())){ | 
 |  |  |             multifileList.add(initMultiFileByCompay(company,company.getBusinessImg(),Constants.MultiFile.COM_BUSINESS_LICENSE.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())); | 
 |  |  |             } | 
 |  |  |         }else { | 
 |  |  |             throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"请上传身份证扫描件!"); | 
 |  |  |         } | 
 |  |  |         multifileMapper.insertBatchSomeColumn(multifileList); | 
 |  |  |     } | 
 |  |  |     private void dealFileDataForUpdate(Company company ) { | 
 |  |  |  | 
 |  |  |         List<Multifile> multifileList = new ArrayList<>(); | 
 |  |  |         List<Integer> objList = new ArrayList<>(); | 
 |  |  |         if(company.getBusinessImg()!=null && company.getBusinessImg().getId() ==null && StringUtils.isNotBlank(company.getBusinessImg().getFileurl())){ | 
 |  |  |             multifileList.add(initMultiFileByCompay(company,company.getBusinessImg(),Constants.MultiFile.COM_BUSINESS_LICENSE.getKey())); | 
 |  |  |             objList.add(Constants.MultiFile.COM_BUSINESS_LICENSE.getKey()); | 
 |  |  |         } | 
 |  |  |         if(company.getSignImg()!=null&& company.getSignImg().getId() ==null && StringUtils.isNotBlank(company.getSignImg().getFileurl())){ | 
 |  |  |             multifileList.add(initMultiFileByCompay(company,company.getSignImg(),Constants.MultiFile.COM_SING_IMG.getKey())); | 
 |  |  |             objList.add(Constants.MultiFile.COM_SING_IMG.getKey()); | 
 |  |  |             company.setSignIdStatus(Constants.ZERO);//标记电子签章未上传 | 
 |  |  |             if(StringUtils.isNotBlank(company.getSignId())){ | 
 |  |  |                 //删除现有的签章 | 
 |  |  |                 signService.deleteEntSign(company.getSignId()); | 
 |  |  |             } | 
 |  |  |             company.setSignId(""); | 
 |  |  |         } | 
 |  |  |         if(company.getIdcardImgList()!=null && company.getIdcardImgList()!=null){ | 
 |  |  |             boolean isNew = false; | 
 |  |  |             for(Multifile f : company.getIdcardImgList()){ | 
 |  |  |                 if(f.getId() !=null){ | 
 |  |  |                     continue; | 
 |  |  |                 } | 
 |  |  |                 isNew = true; | 
 |  |  |                 multifileList.add(initMultiFileByCompay(company,f,Constants.MultiFile.COM_IDCARD_IMG.getKey())); | 
 |  |  |             } | 
 |  |  |             if(isNew) | 
 |  |  |               objList.add(Constants.MultiFile.COM_IDCARD_IMG.getKey()); | 
 |  |  |         } | 
 |  |  |         if(objList.size()>0){ | 
 |  |  |             multifileMapper.update(null,new UpdateWrapper<Multifile>().lambda() | 
 |  |  |                     .set(Multifile::getIsdeleted,Constants.ONE) | 
 |  |  |                     .set(Multifile::getEditDate,company.getEditDate()) | 
 |  |  |                     .set(Multifile::getEditor,company.getEditor()) | 
 |  |  |                     .eq(Multifile::getObjId,company.getId()) | 
 |  |  |                     .eq(Multifile::getIsdeleted,Constants.ZERO) | 
 |  |  |                     .in(Multifile::getObjType,objList) | 
 |  |  |             ); | 
 |  |  |             multifileMapper.insertBatchSomeColumn(multifileList); | 
 |  |  |         } | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     private Multifile initMultiFileByCompay(Company company, Multifile file, int key) { | 
 |  |  |         file.setCompanyId(company.getId()); | 
 |  |  |         file.setIsdeleted(Constants.ZERO); | 
 |  |  |         file.setCreateDate(company.getEditDate()); | 
 |  |  |         file.setCreator(company.getEditor()); | 
 |  |  |         file.setObjId(company.getId()); | 
 |  |  |         file.setObjType(key); | 
 |  |  |         file.setType(Constants.formatIntegerNum(file.getType())); | 
 |  |  |         if(file.getFileurl().endsWith(".mp4")){ | 
 |  |  |             file.setType(Constants.TWO); | 
 |  |  |         } | 
 |  |  |         return  file; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     @Override | 
 |  |  |     public void deleteById(Integer id) { | 
 |  |  |         companyMapper.deleteById(id); | 
 |  |  |     } | 
 |  |  |     @Override | 
 |  |  |     public void updateStatus(Company company){ | 
 |  |  |         if(company.getId() == null || company.getStatus()==null || company.getStatus()<0||company.getStatus()>1){ | 
 |  |  |             throw  new BusinessException(ResponseStatus.BAD_REQUEST ); | 
 |  |  |         } | 
 |  |  |         Company model = companyMapper.selectById(company.getId()); | 
 |  |  |         if(model == null  || !Constants.equalsInteger(model.getIsdeleted(),Constants.ZERO) ){ | 
 |  |  |             throw  new BusinessException(ResponseStatus.DATA_EMPTY ); | 
 |  |  |         } | 
 |  |  |         if(Constants.equalsInteger(model.getStatus(),company.getStatus())){ | 
 |  |  |             //如果状态不发生改变,直接返回 | 
 |  |  |             return; | 
 |  |  |         } | 
 |  |  |         LoginUserInfo user= (LoginUserInfo)SecurityUtils.getSubject().getPrincipal(); | 
 |  |  |         //更新数据状态 | 
 |  |  |         companyMapper.update(null,new UpdateWrapper<Company>() | 
 |  |  |                 .lambda() | 
 |  |  |                 .eq(Company::getId,model.getId()) | 
 |  |  |                 .set(Company::getEditDate,new Date()) | 
 |  |  |                 .set(Company::getEditor,user.getId()) | 
 |  |  |                 .set(Company::getStatus,company.getStatus()) | 
 |  |  |         ); | 
 |  |  |     } | 
 |  |  |     @Override | 
 |  |  |     public void updatePhone(Company company){ | 
 |  |  |         if(company.getId() == null ||StringUtils.isBlank(company.getPhone()) | 
 |  |  |                 || StringUtils.isBlank(company.getCaptche())){ | 
 |  |  |             throw  new BusinessException(ResponseStatus.BAD_REQUEST ); | 
 |  |  |         } | 
 |  |  |         if(!debugModel){ | 
 |  |  |             SmsEmailServiceImpl.isCaptcheValide(smsEmailMapper,company.getPhone(),company.getCaptche()); | 
 |  |  |         } | 
 |  |  |         Company model = companyMapper.selectById(company.getId()); | 
 |  |  |         if(model == null  || StringUtils.equals(model.getPhone(),company.getPhone()) ){ | 
 |  |  |             throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"手机号未发生改变~" ); | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         if(companyMapper.selectCount(new QueryWrapper<Company>().lambda() | 
 |  |  |                 .eq(Company::getPhone,company.getPhone()) | 
 |  |  |                 .eq(Company::getIsdeleted,Constants.ZERO))>0){ | 
 |  |  |             throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对不起,该企业【手机号】已存在,请确认后重新提交!"); | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         LoginUserInfo user= (LoginUserInfo)SecurityUtils.getSubject().getPrincipal(); | 
 |  |  |         //更换手机号 | 
 |  |  |         companyMapper.update(null,new UpdateWrapper<Company>() | 
 |  |  |                 .lambda() | 
 |  |  |                 .eq(Company::getId,model.getId()) | 
 |  |  |                 .set(Company::getEditDate,new Date()) | 
 |  |  |                 .set(Company::getEditor,user.getId()) | 
 |  |  |                 .set(Company::getPhone,company.getPhone()) | 
 |  |  |         ); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     @Override | 
 |  |  | 
 |  |  |         } | 
 |  |  |         companyMapper.deleteBatchIds(ids); | 
 |  |  |     } | 
 |  |  |     private void isValidUpdateParam(Company company) { | 
 |  |  |         if( StringUtils.isBlank(company.getName()) | 
 |  |  | //                ||StringUtils.isBlank(company.getUsername()) | 
 |  |  |                 ||StringUtils.isBlank(company.getCode()) | 
 |  |  |                 ||StringUtils.isBlank(company.getLegalName()) | 
 |  |  |                 ||StringUtils.isBlank(company.getEmail()) ){ | 
 |  |  |             throw new BusinessException(ResponseStatus.BAD_REQUEST); | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |     } | 
 |  |  |     @Override | 
 |  |  |     public void updateById(Company company) { | 
 |  |  |         companyMapper.updateById(company); | 
 |  |  |     public Company updateById(Company company) { | 
 |  |  |         isValidUpdateParam(company); | 
 |  |  |         Company model = findById(company.getId()); | 
 |  |  |         if(model == null  || !Constants.equalsInteger(model.getIsdeleted(),Constants.ZERO) ){ | 
 |  |  |             throw  new BusinessException(ResponseStatus.DATA_EMPTY ); | 
 |  |  |         } | 
 |  |  |         if(StringUtils.equals(company.getEmail(),model.getEmail())){ | 
 |  |  |             company.setEmail(null); | 
 |  |  |         } | 
 |  |  |         if(StringUtils.equals(company.getUsername(),model.getUsername())){ | 
 |  |  |             company.setUsername(null); | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         if(companyMapper.selectCount(new QueryWrapper<Company>().lambda() | 
 |  |  |                 .ne(Company::getId,company.getId()) | 
 |  |  |                 .and(w->w.eq(Company::getCode,company.getCode()) | 
 |  |  |                     .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(); | 
 |  |  |         if(Constants.equalsInteger(model.getSignIdStatus(),Constants.ONE)){ | 
 |  |  |             company.setSignId(model.getSignId()); | 
 |  |  |         } | 
 |  |  |         dealFileDataForUpdate(company); | 
 |  |  |  | 
 |  |  |         Company update = new Company(); | 
 |  |  |         update.setName(company.getName()); | 
 |  |  |         update.setCode(company.getCode()); | 
 |  |  |         update.setEditDate(new Date()); | 
 |  |  |         update.setEditor(user.getId()); | 
 |  |  |         update.setUsername(company.getUsername()); | 
 |  |  |         update.setTaxAccount(company.getTaxAccount()); | 
 |  |  |         update.setTaxAddr(company.getTaxAddr()); | 
 |  |  |         update.setTaxCode(company.getTaxCode()); | 
 |  |  |         update.setTaxBank(company.getTaxBank()); | 
 |  |  |         update.setEmail(company.getEmail()); | 
 |  |  |         update.setId(model.getId()); | 
 |  |  |         update.setLegalName(company.getLegalName()); | 
 |  |  |         update.setInvoiceAddr(company.getInvoiceAddr()); | 
 |  |  |         update.setSignIdStatus(company.getSignIdStatus()); | 
 |  |  |         update.setInvoiceEmail(company.getInvoiceEmail()); | 
 |  |  |         if(StringUtils.isNotBlank(company.getEmail()) | 
 |  |  |             ||!StringUtils.equals(company.getName(),model.getName()) | 
 |  |  |             ||!StringUtils.equals(company.getLegalName(),model.getLegalName()) | 
 |  |  |             ||!StringUtils.equals(company.getCode(),model.getCode()) ){ | 
 |  |  |             //如果邮箱发生改变 | 
 |  |  |             update.setSignStatus(Constants.ZERO); | 
 |  |  |         } | 
 |  |  |         companyMapper.updateById(update); | 
 |  |  |         company.setCreator(update.getEditor()); | 
 |  |  |         company.setCreateDate(update.getEditDate()); | 
 |  |  |         if(StringUtils.isNotBlank(company.getUsername())){ | 
 |  |  |             //处理登陆账号信息 | 
 |  |  |             company.setType(model.getType()); | 
 |  |  |             dealSystemUserDataForUpdate(company,model.getUsername()); | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         return  company; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     @Override | 
 |  |  | 
 |  |  |  | 
 |  |  |     @Override | 
 |  |  |     public Company findById(Integer id) { | 
 |  |  |         return companyMapper.selectById(id); | 
 |  |  |         Company model = companyMapper.selectById(id); | 
 |  |  |         if(model == null ||Constants.equalsInteger(model.getIsdeleted(),Constants.ONE)){ | 
 |  |  |             throw  new BusinessException(ResponseStatus.DATA_EMPTY); | 
 |  |  |         } | 
 |  |  |         /*MPJLambdaWrapper<CompanySolution> csWrapper = new MPJLambdaWrapper<>(); | 
 |  |  |         csWrapper.selectAll(CompanySolution.class); | 
 |  |  |         csWrapper.selectAs(Solutions::getName,CompanySolution::getSolutionName); | 
 |  |  |         csWrapper.leftJoin(Solutions.class,Solutions::getId,CompanySolution::getSolutionBaseId); | 
 |  |  |         csWrapper.eq(CompanySolution::getCompanyId,id); | 
 |  |  |         csWrapper.eq(CompanySolution::getIsdeleted,Constants.ZERO); | 
 |  |  |         csWrapper.orderByAsc(CompanySolution::getSortnum); | 
 |  |  |         model.setSolutionList(companySolutionJoinMapper.selectJoinList(CompanySolution.class,csWrapper)); | 
 |  |  | */ | 
 |  |  |         initImgData(model); | 
 |  |  |         return model; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     private void initImgData(Company model) { | 
 |  |  |         List<Multifile> multifiles = multifileMapper.selectList(new QueryWrapper<Multifile>().lambda() | 
 |  |  |                 .eq(Multifile::getCompanyId,model.getId()) | 
 |  |  |                 .eq(Multifile::getIsdeleted,Constants.ZERO)); | 
 |  |  |         if(multifiles!=null){ | 
 |  |  |             String path = systemDictDataBiz.queryByCode(Constants.OSS,Constants.RESOURCE_PATH).getCode()+systemDictDataBiz.queryByCode(Constants.OSS,Constants.COMPANY_FILE).getCode(); | 
 |  |  |             for(Multifile f : multifiles){ | 
 |  |  |                 if(StringUtils.isBlank(f.getFileurl())){ | 
 |  |  |                     continue; | 
 |  |  |                 } | 
 |  |  |                 f.setFileurlFull(path+f.getFileurl()); | 
 |  |  |                 if(Constants.equalsInteger(f.getObjType(),Constants.MultiFile.COM_BUSINESS_LICENSE.getKey())){ | 
 |  |  |                     //营业执照 | 
 |  |  |                     model.setBusinessImg(f); | 
 |  |  |                 }else if(Constants.equalsInteger(f.getObjType(),Constants.MultiFile.COM_SING_IMG.getKey())){ | 
 |  |  |                     //企业电子章 | 
 |  |  |                     model.setSignImg(f); | 
 |  |  |                 }else if(Constants.equalsInteger(f.getObjType(),Constants.MultiFile.COM_IDCARD_IMG.getKey())){ | 
 |  |  |                     //法人身份证 | 
 |  |  |                     if(model.getIdcardImgList()==null){ | 
 |  |  |                         model.setIdcardImgList(new ArrayList<>()); | 
 |  |  |                     } | 
 |  |  |                     model.getIdcardImgList().add(f); | 
 |  |  |                 } | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     @Override | 
 |  |  | 
 |  |  |         QueryWrapper<Company> wrapper = new QueryWrapper<>(company); | 
 |  |  |         return companyMapper.selectOne(wrapper); | 
 |  |  |     } | 
 |  |  |     /** | 
 |  |  |      * 电子签认证 | 
 |  |  |      *   public boolean organizationCreate (String fullname,String creditCode,String legalName,String email,File  businessimg,String notifyUrl){ | 
 |  |  |      */ | 
 |  |  |     @Override | 
 |  |  |     @Async | 
 |  |  |     public   void startSignAuth(Integer id){ | 
 |  |  |         Company company = companyMapper.selectById(id); | 
 |  |  |         Multifile f = multifileMapper.selectOne(new QueryWrapper<Multifile>().lambda() | 
 |  |  |                 .eq(Multifile::getIsdeleted,Constants.ZERO) | 
 |  |  |                 .eq(Multifile::getObjType,Constants.MultiFile.COM_BUSINESS_LICENSE.getKey()) | 
 |  |  |                 .eq(Multifile::getObjId,company.getId()) | 
 |  |  |                 .last("limit 1")); | 
 |  |  |         if(f == null){ | 
 |  |  |             return; | 
 |  |  |         } | 
 |  |  |         String path = systemDictDataBiz.queryByCode(Constants.OSS,Constants.RESOURCE_PATH).getCode()+systemDictDataBiz.queryByCode(Constants.OSS,Constants.COMPANY_FILE).getCode(); | 
 |  |  |         boolean status = signService.organizationCreate(company.getName(),company.getCode(),company.getLegalName(),company.getEmail(), path + f.getFileurl(),null); | 
 |  |  |         Company update = new Company(); | 
 |  |  |         update.setId(company.getId()); | 
 |  |  |         update.setSignStatus(status?Constants.ONE:Constants.TWO); | 
 |  |  |         update.setSignDate(new Date()); | 
 |  |  |         //更新认证状态 | 
 |  |  |         companyMapper.updateById(update); | 
 |  |  |     } | 
 |  |  |     @Override | 
 |  |  |     public   void startSignAuthAuto( ){ | 
 |  |  |         List<Company> companyList = companyMapper.selectList(new QueryWrapper<Company>().lambda() | 
 |  |  |                 .eq(Company::getIsdeleted,Constants.ZERO) | 
 |  |  |                 .eq(Company::getSignStatus,Constants.ZERO)); | 
 |  |  |         if(companyList!=null && companyList.size()>0) { | 
 |  |  |             for (Company company : companyList) { | 
 |  |  |                 Multifile f = multifileMapper.selectOne(new QueryWrapper<Multifile>().lambda() | 
 |  |  |                         .eq(Multifile::getIsdeleted,Constants.ZERO) | 
 |  |  |                         .eq(Multifile::getObjType,Constants.MultiFile.COM_BUSINESS_LICENSE.getKey()) | 
 |  |  |                         .eq(Multifile::getObjId,company.getId()) | 
 |  |  |                         .last("limit 1")); | 
 |  |  |                 if(f == null){ | 
 |  |  |                     return; | 
 |  |  |                 } | 
 |  |  |                 String path = systemDictDataBiz.queryByCode(Constants.OSS,Constants.RESOURCE_PATH).getCode()+systemDictDataBiz.queryByCode(Constants.OSS,Constants.COMPANY_FILE).getCode(); | 
 |  |  |                 boolean status = signService.organizationCreate(company.getName(),company.getCode(),company.getLegalName(),company.getEmail(), path + f.getFileurl(),null); | 
 |  |  |                 Company update = new Company(); | 
 |  |  |                 update.setId(company.getId()); | 
 |  |  |                 update.setSignStatus(status?Constants.ONE:Constants.TWO); | 
 |  |  |                 update.setSignDate(new Date()); | 
 |  |  |                 //更新认证状态 | 
 |  |  |                 companyMapper.updateById(update); | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |     } | 
 |  |  |     /** | 
 |  |  |      * 电子签认证 | 
 |  |  |      *   public boolean organizationCreate (String fullname,String creditCode,String legalName,String email,File  businessimg,String notifyUrl){ | 
 |  |  |      */ | 
 |  |  |     @Override | 
 |  |  |     @Synchronized//单例执行 | 
 |  |  |     public void dealSignAuthStatus(){ | 
 |  |  |         List<Company> companyList = companyMapper.selectList(new QueryWrapper<Company>().lambda() | 
 |  |  |                 .eq(Company::getIsdeleted,Constants.ZERO) | 
 |  |  |                 .eq(Company::getSignStatus,Constants.ONE)); | 
 |  |  |         if(companyList!=null && companyList.size()>0){ | 
 |  |  |             for(Company company :companyList){ | 
 |  |  |                 //查询企业签约状态 审核状态,0正在申请1通过2驳回 | 
 |  |  |                 int status = signService.organizationAuditStatus(company.getEmail()); | 
 |  |  |                 if(status == 0){ | 
 |  |  |                     continue; | 
 |  |  |                 } | 
 |  |  |                 if(status == 1){ | 
 |  |  |                     Company update = new Company(); | 
 |  |  |                     update.setId(company.getId()); | 
 |  |  |                     update.setSignStatus( Constants.THREE); | 
 |  |  |                     update.setSignDate(new Date()); | 
 |  |  |                     //更新认证状态 | 
 |  |  |                     companyMapper.updateById(update); | 
 |  |  |                 }else{ | 
 |  |  |                     Company update = new Company(); | 
 |  |  |                     update.setId(company.getId()); | 
 |  |  |                     update.setSignStatus(Constants.TWO); | 
 |  |  |                     update.setSignDate(new Date()); | 
 |  |  |                     //更新认证状态 | 
 |  |  |                     companyMapper.updateById(update); | 
 |  |  |                 } | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |     } | 
 |  |  |     /** | 
 |  |  |      * 电子印章自动上传 | 
 |  |  |      *   public boolean organizationCreate (String fullname,String creditCode,String legalName,String email,File  businessimg,String notifyUrl){ | 
 |  |  |      */ | 
 |  |  |     @Override | 
 |  |  |     @Synchronized//单例执行 | 
 |  |  |     public void dealSignIdStatus(){ | 
 |  |  |         List<Company> companyList = companyMapper.selectList(new QueryWrapper<Company>().lambda() | 
 |  |  |                 .eq(Company::getIsdeleted,Constants.ZERO) | 
 |  |  |                 .eq(Company::getSignStatus,Constants.THREE) | 
 |  |  |                 .eq(Company::getSignIdStatus,Constants.ZERO)); | 
 |  |  |         if(companyList!=null && companyList.size()>0){ | 
 |  |  |             for(Company company :companyList){ | 
 |  |  |                 //查询企业签约状态 审核状态,0正在申请1通过2驳回 | 
 |  |  |                 Multifile f = multifileMapper.selectOne(new QueryWrapper<Multifile>().lambda() | 
 |  |  |                         .eq(Multifile::getIsdeleted,Constants.ZERO) | 
 |  |  |                         .eq(Multifile::getObjType,Constants.MultiFile.COM_SING_IMG.getKey()) | 
 |  |  |                         .eq(Multifile::getObjId,company.getId()) | 
 |  |  |                         .last("limit 1")); | 
 |  |  |                 if(f !=null &&StringUtils.isNotBlank(f.getFileurl())){ | 
 |  |  |                     String path = systemDictDataBiz.queryByCode(Constants.OSS,Constants.RESOURCE_PATH).getCode()+systemDictDataBiz.queryByCode(Constants.OSS,Constants.COMPANY_FILE).getCode(); | 
 |  |  |                     String signId = signService.uploadEntSign(company.getName(),path+f.getFileurl(),company.getEmail()); | 
 |  |  |                     Company update = new Company(); | 
 |  |  |                     update.setId(company.getId()); | 
 |  |  |                     if(StringUtils.isNotBlank(signId)){ | 
 |  |  |                         update.setSignIdStatus( Constants.ONE); | 
 |  |  |                         update.setSignId(signId); | 
 |  |  |                         //更新认证状态 | 
 |  |  |                         companyMapper.updateById(update); | 
 |  |  |                     }else{ | 
 |  |  |                         update.setSignIdStatus(Constants.TWO); | 
 |  |  |                         //更新认证状态 | 
 |  |  |                         companyMapper.updateById(update); | 
 |  |  |                     } | 
 |  |  |                 } | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |     } | 
 |  |  |  | 
 |  |  | //    @Override | 
 |  |  | //    public List<Company> findList(Company company) { | 
 |  |  | //        QueryWrapper<Company> wrapper = new QueryWrapper<>(company); | 
 |  |  | //        return companyMapper.selectList(wrapper); | 
 |  |  | //    } | 
 |  |  | // | 
 |  |  |     @Override | 
 |  |  |     public List<Company> findList(Company company) { | 
 |  |  |         QueryWrapper<Company> wrapper = new QueryWrapper<>(company); | 
 |  |  |         company.setIsdeleted(Constants.ZERO); | 
 |  |  |         LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); | 
 |  |  |         if(Constants.equalsInteger(company.getType(),Constants.ONE)){ | 
 |  |  | //                return new ArrayList<>(); | 
 |  |  |         }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"); | 
 |  |  |                 } | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |         return companyMapper.selectList(wrapper); | 
 |  |  |     } | 
 |  |  |    | 
 |  |  |  | 
 |  |  |     @Override | 
 |  |  |     public PageData<Company> findPage(PageWrap<Company> pageWrap) { | 
 |  |  |         IPage<Company> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); | 
 |  |  |         QueryWrapper<Company> queryWrapper = new QueryWrapper<>(); | 
 |  |  |         Utils.MP.blankToNull(pageWrap.getModel()); | 
 |  |  |         pageWrap.getModel().setIsdeleted(Constants.ZERO); | 
 |  |  |         LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); | 
 |  |  |         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"); | 
 |  |  |                 } | 
 |  |  |             } | 
 |  |  |  | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         if (pageWrap.getModel().getId() != null) { | 
 |  |  |             queryWrapper.lambda().eq(Company::getId, pageWrap.getModel().getId()); | 
 |  |  |         } | 
 |  |  | 
 |  |  |             queryWrapper.lambda().eq(Company::getIsdeleted, pageWrap.getModel().getIsdeleted()); | 
 |  |  |         } | 
 |  |  |         if (pageWrap.getModel().getName() != null) { | 
 |  |  |             queryWrapper.lambda().eq(Company::getName, pageWrap.getModel().getName()); | 
 |  |  |             queryWrapper.lambda().like(Company::getName, pageWrap.getModel().getName()); | 
 |  |  |         } | 
 |  |  |         if (pageWrap.getModel().getRemark() != null) { | 
 |  |  |             queryWrapper.lambda().eq(Company::getRemark, pageWrap.getModel().getRemark()); | 
 |  |  | 
 |  |  |         if (pageWrap.getModel().getPhone() != null) { | 
 |  |  |             queryWrapper.lambda().eq(Company::getPhone, pageWrap.getModel().getPhone()); | 
 |  |  |         } | 
 |  |  |         if (pageWrap.getModel().getEmail() != null) { | 
 |  |  |             queryWrapper.lambda().eq(Company::getEmail, pageWrap.getModel().getEmail()); | 
 |  |  |         } | 
 |  |  |         if (pageWrap.getModel().getSignStatus() != null) { | 
 |  |  |             queryWrapper.lambda().eq(Company::getSignStatus, pageWrap.getModel().getSignStatus()); | 
 |  |  |         } | 
 |  |  |         if (pageWrap.getModel().getSignDate() != null) { | 
 |  |  |             queryWrapper.lambda().ge(Company::getSignDate, Utils.Date.getStart(pageWrap.getModel().getSignDate())); | 
 |  |  |             queryWrapper.lambda().le(Company::getSignDate, Utils.Date.getEnd(pageWrap.getModel().getSignDate())); | 
 |  |  |         } | 
 |  |  |         for(PageWrap.SortData sortData: pageWrap.getSorts()) { | 
 |  |  |             if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) { | 
 |  |  |                 queryWrapper.orderByDesc(sortData.getProperty()); |