jiangping
2024-12-27 20e4681bf506385441482548bdbfe9d3abb5fb58
server/service/src/main/java/com/doumee/service/business/impl/CompanyServiceImpl.java
@@ -28,6 +28,7 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Indexed;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
@@ -38,6 +39,7 @@
import java.lang.reflect.Array;
import java.net.URI;
import java.net.URLEncoder;
import java.nio.charset.Charset;
import java.util.*;
/**
@@ -52,6 +54,8 @@
    private boolean debugModel;
    @Autowired
    private CompanyMapper companyMapper;
    @Autowired
    private CompanyDepartmentMapper companyDepartmentMapper;
    @Autowired
    private SystemUserMapper systemUserMapper;
    @Autowired
@@ -92,14 +96,37 @@
        companyMapper.insert(company);
        company.setEditDate(company.getCreateDate());
        company.setEditor(user.getId());
        //新建默认组织
        CompanyDepartment department = createDefaultDepart(company);
        //处理登陆账号信息
        dealSystemUserData(company);
        SystemUser sysuser = dealSystemUserData(company,department.getId());
        //处理附件信息
        dealFileData(company);
        //处理关联方案
        dealSolutionsData(company);
        return company;
    }
    private CompanyDepartment createDefaultDepart(Company company) {
        CompanyDepartment depart = new CompanyDepartment();
        depart.setCompanyId(company.getId());
        depart.setCreator(company.getCreator());
        depart.setCreateDate(company.getCreateDate());
        depart.setType(Constants.equalsInteger(company.getType(),Constants.ZERO)?Constants.ONE:Constants.TWO);
        depart.setName(company.getName());
        depart.setIsdeleted(Constants.ZERO);
        depart.setNamePath(company.getName());
        depart.setStatus(Constants.ZERO);
        depart.setRemark("默认根组织");
        companyDepartmentMapper.insert(depart);
        depart.setIdPath(company.getId()+"/");
        companyDepartmentMapper.updateById(depart);//更新路径
        return depart;
    }
    @Override
    @Transactional
    public Company createShop(Company company) {
@@ -121,14 +148,17 @@
        company.setSignStatus(Constants.ZERO);
        company.setSignIdStatus(Constants.ZERO);
        companyMapper.insert(company);
        company.setEditDate(company.getCreateDate());
        company.setEditor(user.getId());
        //处理登陆账号信息
        dealSystemUserData(company);
        dealSystemUserData(company,createDefaultDepart(company).getId());
        //处理附件信息
        dealFileData(company);
        return company;
    }
    @Override
    @Transactional
    public void  updateSolutions(Company company) {
@@ -176,8 +206,9 @@
            if(fileList == null || fileList.size() == 0){
                throw  new BusinessException(ResponseStatus.DATA_EMPTY);
            }
            String fileName =  model.getName() +"_企业证件_"+System.currentTimeMillis()+".zip" ;
            String encodeFileName = URLEncoder.encode(fileName);
            String fileName =  model.getName() +"-企业证件-"+System.currentTimeMillis() ;
            String encodeFileName =URLEncoder.encode(fileName, Charset.forName("UTF-8").toString())+".zip";
            response.setHeader("Content-Disposition","attachment;filename=" + encodeFileName);
            response.setContentType("application/octet-stream");
            response.setHeader("eva-opera-type", "download");
@@ -188,7 +219,7 @@
        }
    }
    private void dealSystemUserData(Company company) {
    private SystemUser dealSystemUserData(Company company, Integer departId) {
        if(systemUserMapper.selectCount(new QueryWrapper<SystemUser>().lambda()
                .eq(SystemUser::getDeleted,Boolean.TRUE)
                .eq(SystemUser::getUsername,company.getUsername()))>0){
@@ -214,9 +245,11 @@
        user.setRealname(company.getLegalName());
        user.setMobile(company.getPhone());
        user.setCreateUser(company.getCreator());
        user.setDepartmentId(departId);
        user.setCreateTime(company.getCreateDate());
        user.setStatus(Constants.ZERO);
        systemUserMapper.insert(user);
        return user;
    }
    private void dealSystemUserDataForUpdate (Company company,String oldUserName) {
        if(systemUserMapper.selectCount(new QueryWrapper<SystemUser>().lambda()
@@ -365,8 +398,8 @@
            ||StringUtils.isBlank(company.getEmail())){
            throw new BusinessException(ResponseStatus.BAD_REQUEST);
        }
        if(!debugModel){
        String  phoneAtuh = systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.COMPANY_PHONE_AUTH).getCode();
        if(!debugModel && !StringUtils.equals(phoneAtuh,Constants.ONE+"")){
            //手机验证码校验
            SmsEmailServiceImpl.isCaptcheValide(smsEmailMapper,company.getPhone(),company.getCaptche());
        }
@@ -485,7 +518,8 @@
                || StringUtils.isBlank(company.getCaptche())){
            throw  new BusinessException(ResponseStatus.BAD_REQUEST );
        }
        if(!debugModel){
        String  phoneAtuh = systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.COMPANY_PHONE_AUTH).getCode();
        if(!debugModel && !StringUtils.equals(phoneAtuh,Constants.ONE+"")){
            SmsEmailServiceImpl.isCaptcheValide(smsEmailMapper,company.getPhone(),company.getCaptche());
        }
        Company model = companyMapper.selectById(company.getId());
@@ -549,9 +583,10 @@
        if(companyMapper.selectCount(new QueryWrapper<Company>().lambda()
                .ne(Company::getId,company.getId())
                .eq(Company::getIsdeleted,Constants.ZERO)
                .and(w->w.eq(Company::getCode,company.getCode())
                    .or().eq(Company::getEmail,company.getEmail())
                    .or().eq(Company::getUsername,company.getUsername())
//                    .or().eq(Company::getUsername,company.getUsername())
                    .or().eq(Company::getName,company.getName()))
                )>0){
            throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对不起,该企业【名称】【统一信用代码】【邮箱】或者【企业账号】已存在,请确认后重新提交!");