jiangping
2024-01-26 8ebca068bb00e530ce44e10e7d009bcaa46c6579
server/service/src/main/java/com/doumee/service/business/impl/CompanyServiceImpl.java
@@ -25,6 +25,7 @@
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;
@@ -43,6 +44,8 @@
@Service
public class CompanyServiceImpl implements CompanyService {
    @Value("${debug_model}")
    private boolean debugModel;
    @Autowired
    private CompanyMapper companyMapper;
    @Autowired
@@ -69,9 +72,10 @@
        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(),"对不起,该企业【名称】【统一信用代码或者【手机号】已存在,请确认后重新提交!");
            throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对不起,该企业【名称】【统一信用代码】【邮箱】或者【手机号】已存在,请确认后重新提交!");
        }
        LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
        company.setCreator(user.getId());
@@ -221,8 +225,11 @@
            ||StringUtils.isBlank(company.getEmail())){
            throw new BusinessException(ResponseStatus.BAD_REQUEST);
        }
        //手机验证码校验
        SmsEmailServiceImpl.isCaptcheValide(smsEmailMapper,company.getPhone(),company.getCaptche());
        if(!debugModel){
            //手机验证码校验
            SmsEmailServiceImpl.isCaptcheValide(smsEmailMapper,company.getPhone(),company.getCaptche());
        }
    }
@@ -252,19 +259,25 @@
        List<Multifile> multifileList = new ArrayList<>();
        List<Integer> objList = new ArrayList<>();
        if(company.getBusinessImg()!=null && StringUtils.isNotBlank(company.getBusinessImg().getFileurl())){
        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());
        }else  {
            throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"请上传营业执照!");
        }
        if(company.getSignImg()!=null && StringUtils.isNotBlank(company.getSignImg().getFileurl())){
        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){
            for(Multifile f : company.getIdcardImgList()){
                if(f.getId() !=null){
                    continue;
                }
                multifileList.add(initMultiFileByCompay(company,f,Constants.MultiFile.COM_IDCARD_IMG.getKey()));
            }
            objList.add(Constants.MultiFile.COM_IDCARD_IMG.getKey());
@@ -329,7 +342,9 @@
                || StringUtils.isBlank(company.getCaptche())){
            throw  new BusinessException(ResponseStatus.BAD_REQUEST );
        }
        SmsEmailServiceImpl.isCaptcheValide(smsEmailMapper,company.getPhone(),company.getCaptche());
        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(),"手机号未发生改变~" );
@@ -393,13 +408,16 @@
        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(),"对不起,该企业【名称】【统一信用代码或者【企业账号】已存在,请确认后重新提交!");
            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();
@@ -417,7 +435,10 @@
        update.setInvoiceAddr(company.getInvoiceAddr());
        update.setSignIdStatus(company.getSignIdStatus());
        update.setInvoiceEmail(company.getInvoiceEmail());
        if(StringUtils.isNotBlank(company.getEmail())){
        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);
        }
@@ -444,11 +465,11 @@
    @Override
    public Company findById(Integer id) {
        Company model = findById(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<>();
        /*MPJLambdaWrapper<CompanySolution> csWrapper = new MPJLambdaWrapper<>();
        csWrapper.selectAll(CompanySolution.class);
        csWrapper.selectAs(Solutions::getName,CompanySolution::getSolutionName);
        csWrapper.leftJoin(Solutions.class,Solutions::getId,CompanySolution::getSolutionBaseId);
@@ -456,7 +477,7 @@
        csWrapper.eq(CompanySolution::getIsdeleted,Constants.ZERO);
        csWrapper.orderByAsc(CompanySolution::getSortnum);
        model.setSolutionList(companySolutionJoinMapper.selectJoinList(CompanySolution.class,csWrapper));
*/
        initImgData(model);
        return model;
    }
@@ -518,6 +539,33 @@
        //更新认证状态
        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){
@@ -547,7 +595,6 @@
                    //更新认证状态
                    companyMapper.updateById(update);
                }
            }
        }
@@ -561,7 +608,7 @@
    public void dealSignIdStatus(){
        List<Company> companyList = companyMapper.selectList(new QueryWrapper<Company>().lambda()
                .eq(Company::getIsdeleted,Constants.ZERO)
                .eq(Company::getSignStatus,Constants.ONE)
                .eq(Company::getSignStatus,Constants.THREE)
                .eq(Company::getSignIdStatus,Constants.ZERO));
        if(companyList!=null && companyList.size()>0){
            for(Company company :companyList){
@@ -594,12 +641,31 @@
    }
//    @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(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());
@@ -609,7 +675,12 @@
        LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
        if(pageWrap.getModel().getQueryFlag() == 0){
            //只能看权限范围内
            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");
            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");