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.*; 
 | 
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 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/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 
 | 
    @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); 
 | 
        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(),"对不起,该登录账号已存在,请更新重试~"); 
 | 
        } 
 | 
        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(),"对不起,该登录账号已存在,请更新重试~"); 
 | 
        } 
 | 
        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.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 
 | 
    public void delete(Company company) { 
 | 
        UpdateWrapper<Company> deleteWrapper = new UpdateWrapper<>(company); 
 | 
        companyMapper.delete(deleteWrapper); 
 | 
    } 
 | 
  
 | 
    @Override 
 | 
    public void deleteByIdInBatch(List<Integer> ids) { 
 | 
        if (CollectionUtils.isEmpty(ids)) { 
 | 
            return; 
 | 
        } 
 | 
        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 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 
 | 
    public void updateByIdInBatch(List<Company> companys) { 
 | 
        if (CollectionUtils.isEmpty(companys)) { 
 | 
            return; 
 | 
        } 
 | 
        for (Company company: companys) { 
 | 
            this.updateById(company); 
 | 
        } 
 | 
    } 
 | 
  
 | 
    @Override 
 | 
    public Company findById(Integer 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 
 | 
    public Company findOne(Company company) { 
 | 
        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()); 
 | 
        } 
 | 
        if (pageWrap.getModel().getCreator() != null) { 
 | 
            queryWrapper.lambda().eq(Company::getCreator, pageWrap.getModel().getCreator()); 
 | 
        } 
 | 
        if (pageWrap.getModel().getCreateDate() != null) { 
 | 
            queryWrapper.lambda().ge(Company::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate())); 
 | 
            queryWrapper.lambda().le(Company::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate())); 
 | 
        } 
 | 
        if (pageWrap.getModel().getEditor() != null) { 
 | 
            queryWrapper.lambda().eq(Company::getEditor, pageWrap.getModel().getEditor()); 
 | 
        } 
 | 
        if (pageWrap.getModel().getEditDate() != null) { 
 | 
            queryWrapper.lambda().ge(Company::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate())); 
 | 
            queryWrapper.lambda().le(Company::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate())); 
 | 
        } 
 | 
        if (pageWrap.getModel().getIsdeleted() != null) { 
 | 
            queryWrapper.lambda().eq(Company::getIsdeleted, pageWrap.getModel().getIsdeleted()); 
 | 
        } 
 | 
        if (pageWrap.getModel().getName() != null) { 
 | 
            queryWrapper.lambda().like(Company::getName, pageWrap.getModel().getName()); 
 | 
        } 
 | 
        if (pageWrap.getModel().getRemark() != null) { 
 | 
            queryWrapper.lambda().eq(Company::getRemark, pageWrap.getModel().getRemark()); 
 | 
        } 
 | 
        if (pageWrap.getModel().getStatus() != null) { 
 | 
            queryWrapper.lambda().eq(Company::getStatus, pageWrap.getModel().getStatus()); 
 | 
        } 
 | 
        if (pageWrap.getModel().getSortnum() != null) { 
 | 
            queryWrapper.lambda().eq(Company::getSortnum, pageWrap.getModel().getSortnum()); 
 | 
        } 
 | 
        if (pageWrap.getModel().getType() != null) { 
 | 
            queryWrapper.lambda().eq(Company::getType, pageWrap.getModel().getType()); 
 | 
        } 
 | 
        if (pageWrap.getModel().getCode() != null) { 
 | 
            queryWrapper.lambda().eq(Company::getCode, pageWrap.getModel().getCode()); 
 | 
        } 
 | 
        if (pageWrap.getModel().getUsername() != null) { 
 | 
            queryWrapper.lambda().eq(Company::getUsername, pageWrap.getModel().getUsername()); 
 | 
        } 
 | 
        if (pageWrap.getModel().getTaxCode() != null) { 
 | 
            queryWrapper.lambda().eq(Company::getTaxCode, pageWrap.getModel().getTaxCode()); 
 | 
        } 
 | 
        if (pageWrap.getModel().getTaxAccount() != null) { 
 | 
            queryWrapper.lambda().eq(Company::getTaxAccount, pageWrap.getModel().getTaxAccount()); 
 | 
        } 
 | 
        if (pageWrap.getModel().getTaxBank() != null) { 
 | 
            queryWrapper.lambda().eq(Company::getTaxBank, pageWrap.getModel().getTaxBank()); 
 | 
        } 
 | 
        if (pageWrap.getModel().getTaxAddr() != null) { 
 | 
            queryWrapper.lambda().eq(Company::getTaxAddr, pageWrap.getModel().getTaxAddr()); 
 | 
        } 
 | 
        if (pageWrap.getModel().getInvoiceEmail() != null) { 
 | 
            queryWrapper.lambda().eq(Company::getInvoiceEmail, pageWrap.getModel().getInvoiceEmail()); 
 | 
        } 
 | 
        if (pageWrap.getModel().getInvoiceAddr() != null) { 
 | 
            queryWrapper.lambda().eq(Company::getInvoiceAddr, pageWrap.getModel().getInvoiceAddr()); 
 | 
        } 
 | 
        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()); 
 | 
            } else { 
 | 
                queryWrapper.orderByAsc(sortData.getProperty()); 
 | 
            } 
 | 
        } 
 | 
        return PageData.from(companyMapper.selectPage(page, queryWrapper)); 
 | 
    } 
 | 
  
 | 
    @Override 
 | 
    public long count(Company company) { 
 | 
        QueryWrapper<Company> wrapper = new QueryWrapper<>(company); 
 | 
        return companyMapper.selectCount(wrapper); 
 | 
    } 
 | 
} 
 |