From 895ed97195660b0196b61f5da626ac6d18e2068d Mon Sep 17 00:00:00 2001
From: luodangjia <luodangjia>
Date: 星期三, 22 一月 2025 11:54:52 +0800
Subject: [PATCH] 1

---
 ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/service/impl/CompanyServiceImpl.java |   32 ++++++++++++++++++++++----------
 1 files changed, 22 insertions(+), 10 deletions(-)

diff --git a/ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/service/impl/CompanyServiceImpl.java b/ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/service/impl/CompanyServiceImpl.java
index 96b72b8..831561e 100644
--- a/ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/service/impl/CompanyServiceImpl.java
+++ b/ruoyi-modules/ruoyi-company/src/main/java/com/ruoyi/company/service/impl/CompanyServiceImpl.java
@@ -115,10 +115,7 @@
             throw new ServiceException("该企业已存在");
         }
         //身份证二要素校验
-        Boolean res = aliyunCloudAuthUtil.verifyIdCard(dto.getLegalPersonName(), dto.getIdCardNumber());
-        if (!res) {
-            throw new ServiceException("身份证信息不匹配");
-        }
+        identityVerification(dto, company, user);
         this.save(company);
     }
 
@@ -142,7 +139,10 @@
         if (Objects.isNull(user)) {
             throw new ServiceException("该企业账号不存在");
         }
-        Long accountCount = userService.lambdaQuery().ne(User::getUserId, user.getUserId()).eq(User::getAccountName, dto.getAccountName()).count();
+        Long accountCount = userService.lambdaQuery()
+                .ne(User::getUserId, user.getUserId())
+                .eq(User::getAccountName, dto.getAccountName())
+                .count();
         if (accountCount > 0) {
             throw new ServiceException("账户名重复");
         }
@@ -158,21 +158,33 @@
         if (StringUtils.isNotBlank(company.getCompanyName())){
             Long count = this.lambdaQuery()
                     .ne(Company::getId, dto.getId())
-                    .eq(Company::getSocialCode, company.getSocialCode())
-                    .eq(Company::getCompanyName, dto.getCompanyName())
+                    .and(i -> {
+                    i.eq(Company::getSocialCode, dto.getSocialCode());
+                    i.or();
+                    i.eq(Company::getCompanyName, dto.getCompanyName());
+                    })
                     .count();
             if (count > 0) {
                 throw new ServiceException("该企业已存在");
             }
         }
+        identityVerification(dto, company, user);
+        Company companyUpd = BeanUtils.copyBean(dto, Company.class);
+        companyUpd.setId(company.getId());
+        this.updateById(companyUpd);
+    }
+
+    private void identityVerification(MgtCompanyDTO dto, Company company, User user) {
         //身份证二要素校验
         Boolean res = aliyunCloudAuthUtil.verifyIdCard(dto.getLegalPersonName(), dto.getIdCardNumber());
         if (!res) {
             throw new ServiceException("身份证信息不匹配");
         }
-        Company companyUpd = BeanUtils.copyBean(dto, Company.class);
-        companyUpd.setId(company.getId());
-        this.updateById(companyUpd);
+        //营业执照二要素校验
+        res = aliyunCloudAuthUtil.verifyBusinessLicense(dto.getSocialCode(), company.getCompanyName(), user.getUserId());
+        if (!res) {
+            throw new ServiceException("营业执照信息不匹配");
+        }
     }
 
     /**

--
Gitblit v1.7.1