From 49864198306482dc8c28a519ba7291cfe3a6f562 Mon Sep 17 00:00:00 2001
From: k94314517 <8417338+k94314517@user.noreply.gitee.com>
Date: 星期一, 01 四月 2024 15:56:32 +0800
Subject: [PATCH] git ch
---
server/service/src/main/java/com/doumee/service/business/impl/CompanyServiceImpl.java | 751 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 732 insertions(+), 19 deletions(-)
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/CompanyServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/CompanyServiceImpl.java
index 0204f3e..fc77449 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/CompanyServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/CompanyServiceImpl.java
@@ -1,5 +1,7 @@
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;
@@ -7,22 +9,36 @@
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.CompanyPermissionMapper;
-import com.doumee.dao.business.model.Company;
-import com.doumee.dao.business.model.CompanyPermission;
-import com.doumee.dao.business.model.Insurance;
+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.*;
/**
* 浼佷笟淇℃伅琛⊿ervice瀹炵幇
@@ -32,21 +48,451 @@
@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(),"瀵逛笉璧凤紝璇ヤ紒涓氥�愬悕绉般�戙�愮粺涓�淇$敤浠g爜銆戙�愰偖绠便�戞垨鑰呫�愭墜鏈哄彿銆戝凡瀛樺湪锛岃纭鍚庨噸鏂版彁浜わ紒");
+ }
+ 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(),"瀵逛笉璧凤紝璇ュ晢鎴枫�愬悕绉般�戙�愮粺涓�淇$敤浠g爜銆戙�愰偖绠便�戞垨鑰呫�愭墜鏈哄彿銆戝凡瀛樺湪锛岃纭鍚庨噸鏂版彁浜わ紒");
+ }
+ 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.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.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
@@ -62,14 +508,78 @@
}
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) {
+ 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 );
}
- companyMapper.updateById(company);
+ 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(),"瀵逛笉璧凤紝璇ヤ紒涓氥�愬悕绉般�戙�愮粺涓�淇$敤浠g爜銆戙�愰偖绠便�戞垨鑰呫�愪紒涓氳处鍙枫�戝凡瀛樺湪锛岃纭鍚庨噸鏂版彁浜わ紒");
+ }
+ 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
@@ -84,7 +594,49 @@
@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
@@ -92,13 +644,164 @@
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姝e湪鐢宠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姝e湪鐢宠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)){
+
+ }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());
@@ -106,12 +809,22 @@
Utils.MP.blankToNull(pageWrap.getModel());
pageWrap.getModel().setIsdeleted(Constants.ZERO);
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");
- } 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(Constants.formatIntegerNum(pageWrap.getModel().getType()) == Constants.ONE) {
+
+ }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());
--
Gitblit v1.9.3