Browse Source

1.账户启用禁用同步到优软云。
2.开通企业同时绑定开通人为管理员。

chenw 7 years ago
parent
commit
b35b6b5e87

+ 7 - 3
base-servers/account/account-server/src/main/java/com/usoftchina/saas/account/controller/AccountController.java

@@ -396,6 +396,8 @@ public class AccountController {
     @PostMapping("/disable")
     public Result disableAccount(@RequestParam long accountId) {
         accountService.disable(accountId);
+        //移除账户绑定的企业关系
+        accountService.unbindCompany(accountId, BaseContextHolder.getCompanyId());
         //同步到优软云
         Long userUU = accountService.findByPrimaryKey(accountId).getUu();
         Long companyUU = companyService.findByPrimaryKey(BaseContextHolder.getCompanyId()).getUu();
@@ -413,10 +415,12 @@ public class AccountController {
     @PostMapping("/enable")
     public Result enableAccount(@RequestParam long accountId) {
         accountService.enable(accountId);
+        //添加账户绑定的企业关系
+        accountService.bindCompany(accountId, BaseContextHolder.getCompanyId());
         //同步到优软云
-//        Long userUU = accountService.findByPrimaryKey(accountId).getUu();
-//        Long companyUU = companyService.findByPrimaryKey(BaseContextHolder.getCompanyId()).getUu();
-//        String result = ssoUserApi.bind("bind", "trade-app", userUU, companyUU);
+        Long userUU = accountService.findByPrimaryKey(accountId).getUu();
+        Long companyUU = companyService.findByPrimaryKey(BaseContextHolder.getCompanyId()).getUu();
+        String result = ssoUserApi.bind("bind", "trade-app", userUU, companyUU);
         accountService.clearCache(accountId);
         return Result.success();
     }

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

@@ -19,4 +19,11 @@ public interface RoleMapper extends CommonBaseMapper<Role> {
      * @return
      */
     List<Role> selectByAccountId(@Param("accountId") long accountId);
+
+    /**
+     * 查找公司管理员角色
+     * @param companyId
+     * @return
+     */
+    Role findManagerByCompanyId(@Param("companyId") Long companyId);
 }

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

@@ -52,4 +52,11 @@ public interface RoleService extends CommonBaseService<RoleMapper, Role> {
      * @return
      */
     boolean saveRoleResource(PowerSetListDTO powerSetListDTO);
+
+    /**
+     *
+     * @param companyId
+     * @return
+     */
+    Role findManagerByCompanyId(Long companyId);
 }

+ 11 - 1
base-servers/account/account-server/src/main/java/com/usoftchina/saas/account/service/impl/AccountCenterServiceImpl.java

@@ -4,9 +4,11 @@ import com.usoftchina.saas.account.dto.*;
 import com.usoftchina.saas.account.mapper.AccountCompanyMapper;
 import com.usoftchina.saas.account.po.Account;
 import com.usoftchina.saas.account.po.Company;
+import com.usoftchina.saas.account.po.Role;
 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.account.service.RoleService;
 import com.usoftchina.saas.auth.api.AuthApi;
 import com.usoftchina.saas.auth.dto.TokenDTO;
 import com.usoftchina.saas.base.Result;
@@ -38,6 +40,8 @@ public class AccountCenterServiceImpl implements AccountCenterService {
     @Autowired
     private AccountService accountService;
     @Autowired
+    private RoleService roleService;
+    @Autowired
     private SsoUserApi ssoUserApi;
     @Autowired
     private SsoUserSpaceApi ssoUserSpaceApi;
@@ -57,7 +61,8 @@ public class AccountCenterServiceImpl implements AccountCenterService {
         //a. 判断是否已注册
         Company company = companyService.findByName(companyRegDTO.getName());
         if (null != company) {
-            return Result.error(ExceptionCode.COMPANY_NAME_EXIST);
+            Account account = accountService.findByPrimaryKey(company.getCreatorId());
+            return Result.error(String.format(ExceptionCode.COMPANY_NAME_HASREGISTER.getMessage(), account.getRealname()+"("+account.getMobile()+")"));
         }
         company = companyService.findByBusinessCode(companyRegDTO.getBusinessCode());
         if (null != company) {
@@ -89,6 +94,11 @@ public class AccountCenterServiceImpl implements AccountCenterService {
         map.put("result", null);
         accountCompanyMapper.initData(map);
 
+        //账户绑定角色    默认管理员
+        Role role = roleService.findManagerByCompanyId(company.getId());
+        if (role != null) {
+            accountService.bindRole(accountId, role.getId());
+        }
         return Result.success();
     }
 

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

@@ -166,6 +166,11 @@ public class RoleServiceImpl extends CommonBaseServiceImpl<RoleMapper, Role> imp
         return true;
     }
 
+    @Override
+    public Role findManagerByCompanyId(Long companyId) {
+        return getMapper().findManagerByCompanyId(companyId);
+    }
+
     /**
      * 设置其他默认权限,用于生成设置按钮
      * @param powerDTO

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

@@ -104,4 +104,7 @@
         select <include refid="baseColumns"/> from ac_role,ac_account_role
         where ac_role.id=ac_account_role.role_id and ac_account_role.account_id=#{accountId,jdbcType=BIGINT}
     </select>
+    <select id="findManagerByCompanyId" parameterType="int" resultType="com.usoftchina.saas.account.po.Role">
+        SELECT * FROM AC_ROLE WHERE COMPANY_ID = #{companyId} AND TYPE = 0 limit 1
+    </select>
 </mapper>

+ 18 - 5
base-servers/auth/sso-api/src/main/java/com/usoftchina/sso/api/SsoUserApi.java

@@ -8,10 +8,7 @@ import com.usoftchina.sso.dto.SsoUser;
 import com.usoftchina.sso.dto.SsoUserSpaceList;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.stereotype.Component;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.*;
 
 /**
  * @author yingp
@@ -57,9 +54,20 @@ public interface SsoUserApi {
      * @param spaceUU
      * @return
      */
-    @PostMapping("")
+    @RequestMapping(params = "_operate=unbind", method = RequestMethod.POST)
     String unbind(@RequestParam("_operate") String _operate, @RequestParam("userUU") Long userUU, @RequestParam("spaceUU") Long spaceUU);
 
+    /**
+     * 绑定用户和企业
+     * @param _operate
+     * @param appId
+     * @param userUU
+     * @param spaceUU
+     * @return
+     */
+    @RequestMapping(params = "_operate=bind", method = RequestMethod.POST)
+    String bind(@RequestParam("_operate") String _operate, @RequestParam("appId") String appId, @RequestParam("userUU") Long userUU, @RequestParam("spaceUU") Long spaceUU);
+
     @Component
     class DefaultFallback implements SsoUserApi{
         @Override
@@ -82,5 +90,10 @@ public interface SsoUserApi {
             return null;
         }
 
+        @Override
+        public String bind(String _operate, String appId, Long userUU, Long spaceUU) {
+            return null;
+        }
+
     }
 }

+ 7 - 0
base-servers/auth/sso-api/src/test/java/com/usoftchina/sso/test/SsoUserApiTest.java

@@ -62,4 +62,11 @@ public class SsoUserApiTest {
         System.out.println(result);
     }
 
+    @Test
+    public void testF_bind(){
+        Long companyUU = 10050435l;
+        Long userUU = 1000027276l;
+        String result = ssoUserApi.bind("bind","trade-app", userUU, companyUU);
+        System.out.println(result);
+    }
 }

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

@@ -30,6 +30,7 @@ public enum ExceptionCode implements BaseExceptionCode {
 
     // 账户管理相关
     COMPANY_NAME_EXIST(52000, "公司名称已注册"),
+    COMPANY_NAME_HASREGISTER(52000, "企业已开通saas,请联系管理员 %s 将您添加至企业"),
     COMPANY_CODE_EXIST(52001, "公司商业登记证号已注册"),
     COMPANY_DOMAIN_EXIST(52002, "域名已存在"),
     COMPANY_NOT_EXIST(52003, "公司不存在"),