ソースを参照

加入企业功能校验完善

chenw 7 年 前
コミット
c712236086

+ 16 - 9
base-servers/account/account-server/src/main/java/com/usoftchina/saas/account/controller/AccountCenterController.java

@@ -3,12 +3,16 @@ package com.usoftchina.saas.account.controller;
 import com.usoftchina.saas.account.api.AccountApi;
 import com.usoftchina.saas.account.api.CompanyApi;
 import com.usoftchina.saas.account.dto.*;
+import com.usoftchina.saas.account.po.Account;
 import com.usoftchina.saas.account.service.AccountCenterService;
+import com.usoftchina.saas.account.service.AccountService;
+import com.usoftchina.saas.account.service.CompanyService;
 import com.usoftchina.saas.base.Result;
 import com.usoftchina.saas.commons.api.SystemRemindApi;
 import com.usoftchina.saas.commons.dto.AddApplyDTO;
 import com.usoftchina.saas.exception.BizException;
 import com.usoftchina.saas.exception.ExceptionCode;
+import com.usoftchina.saas.utils.CollectionUtils;
 import com.usoftchina.sso.api.SsoUserSpaceApi;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
@@ -24,9 +28,9 @@ public class AccountCenterController {
     @Autowired
     private SsoUserSpaceApi ssoUserSpaceApi;
     @Autowired
-    private CompanyApi companyApi;
+    private CompanyService companyService;
     @Autowired
-    private AccountApi accountApi;
+    private AccountService accountService;
     @Autowired
     private SystemRemindApi systemRemindApi;
 
@@ -100,10 +104,9 @@ public class AccountCenterController {
      */
     @GetMapping("/company/isOpen")
     public Result checkIsOpen(@RequestParam("companyName") String companyName){
-        Result<List<CompanyRspDTO>> result = companyApi.getCompanyByFuzzyName(companyName);
-        if (result.isSuccess()){
-            List<CompanyRspDTO> companyDTOList = result.getData();
-            return Result.success(companyDTOList);
+        List<CompanyRspDTO> result = companyService.findByFuzzyName(companyName);
+        if (!CollectionUtils.isEmpty(result)){
+            return Result.success(result);
         }
         return Result.error(ExceptionCode.COMPANY_NOT_EXIST);
     }
@@ -119,10 +122,14 @@ public class AccountCenterController {
         if (count > 0){
             throw new BizException(ExceptionCode.APPLY_DOING_EXIST);
         }
+        boolean hasBind = companyService.hasBind(bindCompanyDTO.getAccountId(), bindCompanyDTO.getCompanyId());
+        if (hasBind){
+            throw new BizException(ExceptionCode.HAS_BIND_COMPANY);
+        }
         AddApplyDTO addApplyDTO = new AddApplyDTO();
-        AccountDTO accountDTO = accountApi.getAccountById(bindCompanyDTO.getAccountId()).getData();
-        CompanyRspDTO companyRspDTO = companyApi.getCompanyRspDTOById(bindCompanyDTO.getCompanyId()).getData();
-        addApplyDTO.setMobile(accountDTO.getMobile());
+        Account account = accountService.findByPrimaryKey(bindCompanyDTO.getAccountId());
+        CompanyRspDTO companyRspDTO = companyService.getCompanyRspDTOById(bindCompanyDTO.getCompanyId());
+        addApplyDTO.setMobile(account.getMobile());
         addApplyDTO.setCompanyId(bindCompanyDTO.getCompanyId());
         addApplyDTO.setCompanyName(companyRspDTO.getName());
         addApplyDTO.setAdmin(companyRspDTO.getAdmin());

+ 8 - 0
base-servers/account/account-server/src/main/java/com/usoftchina/saas/account/mapper/AccountCompanyMapper.java

@@ -73,4 +73,12 @@ public interface AccountCompanyMapper {
      * @param map
      */
     void initData(Map<String, Object> map);
+
+    /**
+     * 账户是否已经绑定企业
+     * @param accountId
+     * @param companyId
+     * @return
+     */
+    int hasBind(@Param("accountId") Long accountId, @Param("companyId") Long companyId);
 }

+ 8 - 0
base-servers/account/account-server/src/main/java/com/usoftchina/saas/account/service/CompanyService.java

@@ -120,4 +120,12 @@ public interface CompanyService {
      * @return
      */
     CompanyRspDTO getCompanyRspDTOById(Long id);
+
+    /**
+     * 查询用户是否已经绑定了企业
+     * @param accountId
+     * @param companyId
+     * @return
+     */
+    boolean hasBind(Long accountId, Long companyId);
 }

+ 5 - 0
base-servers/account/account-server/src/main/java/com/usoftchina/saas/account/service/impl/CompanyServiceImpl.java

@@ -70,6 +70,11 @@ public class CompanyServiceImpl implements CompanyService{
         return companyMapper.getCompanyRspDTOById(id);
     }
 
+    @Override
+    public boolean hasBind(Long accountId, Long companyId) {
+        return accountCompanyMapper.hasBind(accountId, companyId) > 0;
+    }
+
     @Override
     public Company findByName(String name) {
         return companyMapper.selectByName(name);

+ 3 - 0
base-servers/account/account-server/src/main/resources/mapper/AccountCompanyMapper.xml

@@ -39,4 +39,7 @@
         CALL COMPANY_INSTALL(?, ?, ?, ?)
     </select>
 
+    <select id="hasBind" resultType="int">
+        SELECT COUNT(*) FROM AC_ACCOUNT_COMPANY WHERE ACCOUNT_ID = #{accountId} AND COMPANY_ID = #{companyId} AND STATUS = 1
+    </select>
 </mapper>

+ 1 - 0
framework/core/src/main/java/com/usoftchina/saas/exception/ExceptionCode.java

@@ -48,6 +48,7 @@ public enum ExceptionCode implements BaseExceptionCode {
     USER_COMPANY_EXIST(53007, "企业已存在账户"),
     ROLE_HAS_USE(54030, "存在已使用该角色的账户,不允许删除"),
     APPLY_DOING_EXIST(54031, "已存在待处理的加入申请"),
+    HAS_BIND_COMPANY(54032, "已绑定该企业"),
 
     // 文件相关
     FOLDER_NOT_EXISTS(55000, "文件夹不存在"),