Ver Fonte

1.账户列表增加启用禁用
2.企业信息更新,企业信息列表返回结构修改。
3.修改authApi的错误
4.ssoApi增加解除手机号绑定

chenw há 7 anos atrás
pai
commit
b9a8341b0f
16 ficheiros alterados com 169 adições e 30 exclusões
  1. 9 0
      base-servers/account/account-dto/src/main/java/com/usoftchina/saas/account/dto/AccountRoleDTO.java
  2. 26 1
      base-servers/account/account-dto/src/main/java/com/usoftchina/saas/account/dto/CompanyRspDTO.java
  3. 4 0
      base-servers/account/account-server/pom.xml
  4. 12 1
      base-servers/account/account-server/src/main/java/com/usoftchina/saas/account/controller/AccountCenterController.java
  5. 4 4
      base-servers/account/account-server/src/main/java/com/usoftchina/saas/account/controller/AccountController.java
  6. 7 0
      base-servers/account/account-server/src/main/java/com/usoftchina/saas/account/mapper/CompanyMapper.java
  7. 8 0
      base-servers/account/account-server/src/main/java/com/usoftchina/saas/account/service/AccountCenterService.java
  8. 7 0
      base-servers/account/account-server/src/main/java/com/usoftchina/saas/account/service/CompanyService.java
  9. 46 17
      base-servers/account/account-server/src/main/java/com/usoftchina/saas/account/service/impl/AccountCenterServiceImpl.java
  10. 5 0
      base-servers/account/account-server/src/main/java/com/usoftchina/saas/account/service/impl/CompanyServiceImpl.java
  11. 2 1
      base-servers/account/account-server/src/main/resources/mapper/AccountCompanyMapper.xml
  12. 2 2
      base-servers/account/account-server/src/main/resources/mapper/AccountRoleMapper.xml
  13. 3 0
      base-servers/account/account-server/src/main/resources/mapper/CompanyMapper.xml
  14. 3 3
      base-servers/auth/auth-api/src/main/java/com/usoftchina/saas/auth/api/AuthApi.java
  15. 21 0
      base-servers/auth/sso-api/src/main/java/com/usoftchina/sso/api/SsoUserApi.java
  16. 10 1
      base-servers/auth/sso-api/src/test/java/com/usoftchina/sso/test/SsoUserApiTest.java

+ 9 - 0
base-servers/account/account-dto/src/main/java/com/usoftchina/saas/account/dto/AccountRoleDTO.java

@@ -9,9 +9,18 @@ public class AccountRoleDTO implements Serializable {
     private String realname;
     private String email;
     private String mobile;
+    private boolean enabled;
     private String roleNames;
     private String roleIds;
 
+    public boolean isEnabled() {
+        return enabled;
+    }
+
+    public void setEnabled(boolean enabled) {
+        this.enabled = enabled;
+    }
+
     public String getRoleNames() {
         return roleNames;
     }

+ 26 - 1
base-servers/account/account-dto/src/main/java/com/usoftchina/saas/account/dto/CompanyRspDTO.java

@@ -32,6 +32,29 @@ public class CompanyRspDTO implements Serializable {
      */
     private Long defaultCompanyId;
 
+    /**
+     * 管理员名称
+     */
+    private String admin;
+
+    private Long adminId;
+
+    public Long getAdminId() {
+        return adminId;
+    }
+
+    public void setAdminId(Long adminId) {
+        this.adminId = adminId;
+    }
+
+    public String getAdmin() {
+        return admin;
+    }
+
+    public void setAdmin(String admin) {
+        this.admin = admin;
+    }
+
     public boolean isHasDefaultCompany() {
         return hasDefaultCompany;
     }
@@ -104,13 +127,15 @@ public class CompanyRspDTO implements Serializable {
         this.default_ = default_;
     }
 
-    public CompanyRspDTO(String name, String businessCode, String address, boolean default_, boolean saas_, String uu) {
+    public CompanyRspDTO(String name, String businessCode, String address, boolean default_, boolean saas_, String uu, String admin, Long adminId) {
         this.name = name;
         this.businessCode = businessCode;
         this.address = address;
         this.default_ = default_;
         this.saas_ = saas_;
         this.uu = uu;
+        this.admin = admin;
+        this.adminId = adminId;
     }
 
     public CompanyRspDTO() {

+ 4 - 0
base-servers/account/account-server/pom.xml

@@ -30,6 +30,10 @@
             <groupId>com.usoftchina.saas</groupId>
             <artifactId>file-api</artifactId>
         </dependency>
+        <dependency>
+            <groupId>com.usoftchina.saas</groupId>
+            <artifactId>auth-api</artifactId>
+        </dependency>
         <dependency>
             <groupId>com.usoftchina.saas</groupId>
             <artifactId>auth-client</artifactId>

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

@@ -24,7 +24,18 @@ public class AccountCenterController {
      */
     @PostMapping("/companyAccount/save")
     public Result saveCompanyAccount(@RequestBody CompanyAccountDTO companyAccountDTO){
-        return Result.success(accountCenterService.saveCompanyAccount(companyAccountDTO));
+        return Result.success(accountCenterService.saveCompanyAccount(companyAccountDTO).getData());
+    }
+
+    /**
+     * 信息完善界面   更新接口
+     * @param companyAccountDTO
+     * @return
+     */
+    @PostMapping("/companyAccount/update")
+    public Result updateCompanyAccount(@RequestBody CompanyAccountDTO companyAccountDTO){
+        accountCenterService.updateCompanyAccount(companyAccountDTO);
+        return Result.success();
     }
 
     /**

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

@@ -35,13 +35,10 @@ public class AccountController {
 
     @Autowired
     private AccountService accountService;
-
     @Autowired
     private CompanyService companyService;
-
     @Autowired
     private RoleService roleService;
-
     @Autowired
     private SsoUserApi ssoUserApi;
 
@@ -115,7 +112,6 @@ public class AccountController {
      * @return
      */
     @PostMapping("/register/add")
-    @IgnoreAuth
     public Result AddAccount(@RequestBody AccountCopyDTO accountCopyDTO) {
         // 判断是否已注册
         Account account = accountService.findByUsername(accountCopyDTO.getUsername());
@@ -401,6 +397,10 @@ public class AccountController {
     @PostMapping("/disable")
     public Result disableAccount(@RequestParam long accountId) {
         accountService.disable(accountId);
+        //同步到优软云
+        Long userUU = accountService.findByPrimaryKey(accountId).getUu();
+        Long companyUU = companyService.findByPrimaryKey(BaseContextHolder.getCompanyId()).getUu();
+        String result = ssoUserApi.unbind("unbind", userUU, companyUU);
         accountService.clearCache(accountId);
         return Result.success();
     }

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

@@ -82,4 +82,11 @@ public interface CompanyMapper {
      * @return
      */
     int updateByPrimaryKeySelective(CompanyRegDTO companyRegDTO);
+
+    /**
+     * 更新UU号
+     * @param companyId
+     * @param uu
+     */
+    void updateUUByPrimaryKey(@Param("companyId") Long companyId, @Param("uu") Long uu);
 }

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

@@ -17,6 +17,14 @@ public interface AccountCenterService {
      */
     Result saveCompanyAccount(CompanyAccountDTO companyAccountDTO);
 
+
+    /**
+     * 企业账户信息完善  更新
+     * @param companyAccountDTO
+     * @return
+     */
+    boolean updateCompanyAccount(CompanyAccountDTO companyAccountDTO);
+
     /**
      * 获取企业信息列表
      * @param mobile

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

@@ -98,4 +98,11 @@ public interface CompanyService {
      * @param companyRegDTO
      */
     void update(CompanyRegDTO companyRegDTO);
+
+    /**
+     * 更新公司UU号
+     * @param companyId
+     * @param uu
+     */
+    void updateUUByPrimaryKey(Long companyId, Long uu);
 }

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

@@ -7,6 +7,8 @@ import com.usoftchina.saas.account.po.Company;
 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.auth.api.AuthApi;
+import com.usoftchina.saas.auth.dto.TokenDTO;
 import com.usoftchina.saas.base.Result;
 import com.usoftchina.saas.exception.ExceptionCode;
 import com.usoftchina.saas.utils.BeanMapper;
@@ -15,6 +17,7 @@ import com.usoftchina.sso.api.SsoUserApi;
 import com.usoftchina.sso.dto.SsoUserSpace;
 import com.usoftchina.sso.dto.SsoUserSpaceList;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.LinkedMultiValueMap;
@@ -36,10 +39,12 @@ public class AccountCenterServiceImpl implements AccountCenterService {
     @Autowired
     private SsoUserApi ssoUserApi;
     @Autowired
+    private AuthApi authApi;
+    @Autowired
     private AccountCompanyMapper accountCompanyMapper;
 
-    private final String ACCOUNTCNETER_URL_DEV = "http://192.168.253.12:32323";
-    //private final String ACCOUNTCNETER_URL_PROD = "https://sso.ubtob.com";
+    @Value("${sso.base-url}")
+    private String accountCneterUrl;
 
     @Override
     @Transactional
@@ -67,8 +72,8 @@ public class AccountCenterServiceImpl implements AccountCenterService {
         //b. 同步企业信息到优软云 ——>  创建企业
         if ("0".equals(type)) {
             String result = postToAccount(company.getName(), company.getBusinessCode(), accountRegDTO.getUu());
-            accountCompanyMapper.insert(accountId, company.getId());
         }
+        accountCompanyMapper.insert(accountId, company.getId());
         //2.更新账户信息
         Account account = BeanMapper.map(accountRegDTO, Account.class);
 
@@ -77,6 +82,20 @@ public class AccountCenterServiceImpl implements AccountCenterService {
         return null;
     }
 
+    @Override
+    public boolean updateCompanyAccount(CompanyAccountDTO companyAccountDTO) {
+        CompanyRegDTO companyRegDTO = companyAccountDTO.getCompanyRegDTO();
+        AccountRegDTO accountRegDTO = companyAccountDTO.getAccountRegDTO();
+        Long accountId = accountService.findByMobile(accountRegDTO.getMobile()).getId();
+        //更新企业信息
+        companyService.update(companyRegDTO);
+        //更新账户信息
+        Account account = BeanMapper.map(accountRegDTO, Account.class);
+        account.setId(accountId);
+        accountService.updateByPrimaryKeySelective(account);
+        return true;
+    }
+
     /**
      * 将企业信息同步到优软云
      * @param spaceName
@@ -91,7 +110,7 @@ public class AccountCenterServiceImpl implements AccountCenterService {
         requestEntity.add("spaceName", spaceName);
         requestEntity.add("businessCode", businesscode);
         requestEntity.add("userUU", uu);
-        String result = restTemplate.postForObject(ACCOUNTCNETER_URL_DEV + url, requestEntity, String.class);
+        String result = restTemplate.postForObject(accountCneterUrl + url, requestEntity, String.class);
         return result;
     }
 
@@ -116,27 +135,37 @@ public class AccountCenterServiceImpl implements AccountCenterService {
 
         //3、去重复
         for (CompanyRspDTO companyRspDTO : companyRspDTOList) {
-            for (SsoUserSpace ssoUserSpace : ssoUserSpaces) {
-                if (companyRspDTO.getName().equals(ssoUserSpace.getSpaceName())){
-                    ssoUserSpaces.remove(ssoUserSpace);
+            for (int i = 0; i < ssoUserSpaces.size(); i++){
+                if (companyRspDTO.getName().equals(ssoUserSpaces.get(i).getSpaceName())){
+                    //更新公司UU号
+                    if (StringUtils.isEmpty(companyRspDTO.getUu())){
+                        companyService.updateUUByPrimaryKey(companyRspDTO.getId(), ssoUserSpaces.get(i).getSpaceUU());
+                    }
+                    ssoUserSpaces.remove(ssoUserSpaces.get(i));
                 }
             }
             if (companyRspDTO.isDefault_()){
                 resultMap.put("hasDefaultCompany", true);
                 resultMap.put("defaultCompanyId", companyRspDTO.getId());
+                TokenDTO tokenDTO = authApi.switchCompany(companyRspDTO.getId()).getData();
+                resultMap.put("token", tokenDTO);
             }
         }
         //构造返回数据
-        for (SsoUserSpace ssoUserSpace : ssoUserSpaces){
-            CompanyRspDTO companyRspDTO = new CompanyRspDTO(
-                    ssoUserSpace.getSpaceName(),
-                    ssoUserSpace.getBusinessCode(),
-                    ssoUserSpace.getRegAddress(),
-                    false,
-                    false,
-                    ssoUserSpace.getSpaceUU().toString()
-            );
-            resultList.add(companyRspDTO);
+        if (ssoUserSpaces.size() > 0) {
+            for (SsoUserSpace ssoUserSpace : ssoUserSpaces) {
+                CompanyRspDTO companyRspDTO = new CompanyRspDTO(
+                        ssoUserSpace.getSpaceName(),
+                        ssoUserSpace.getBusinessCode(),
+                        ssoUserSpace.getRegAddress(),
+                        false,
+                        false,
+                        ssoUserSpace.getSpaceUU().toString(),
+                        ssoUserSpace.getAdmin().getVipName(),
+                        0l
+                );
+                resultList.add(companyRspDTO);
+            }
         }
         resultMap.put("spaces", resultList);
         return resultMap;

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

@@ -54,6 +54,11 @@ public class CompanyServiceImpl implements CompanyService{
         }
     }
 
+    @Override
+    public void updateUUByPrimaryKey(Long companyId, Long uu) {
+        companyMapper.updateUUByPrimaryKey(companyId, uu);
+    }
+
     @Override
     public Company findByName(String name) {
         return companyMapper.selectByName(name);

+ 2 - 1
base-servers/account/account-server/src/main/resources/mapper/AccountCompanyMapper.xml

@@ -14,9 +14,10 @@
         delete from ac_account_company where company_id=#{companyId}
     </delete>
     <select id="getCompanyListByAccountMobile" resultType="com.usoftchina.saas.account.dto.CompanyRspDTO">
-        SELECT cmp.id,cmp.name,cmp.uu,cmp.business_code businessCode,cmp.address,accmp.is_default default_,'1' saas_ from ac_company cmp
+        SELECT cmp.id,cmp.name,cmp.uu,cmp.business_code businessCode,cmp.address,accmp.is_default default_,'1' saas_,aci.realname admin,cmp.creator_id adminId from ac_company cmp
         left join ac_account_company accmp on accmp.company_id=cmp.id
         left join ac_account ac on ac.id = accmp.account_id
+        left join ac_account aci on aci.id = cmp.creator_id
         where ac.mobile = #{mobile}
         order by is_default desc
     </select>

+ 2 - 2
base-servers/account/account-server/src/main/resources/mapper/AccountRoleMapper.xml

@@ -17,7 +17,7 @@
         delete from ac_account_role where company_id=#{companyId}
     </delete>
     <select id="selectAccountRole" resultType="com.usoftchina.saas.account.dto.AccountRoleDTO">
-        SELECT a.id id,a.username,a.realname,a.email,a.mobile,GROUP_CONCAT(c.name) roleNames,GROUP_CONCAT(c.id) roleIds
+        SELECT a.id id,a.username,a.realname,a.email,a.mobile,GROUP_CONCAT(c.name) roleNames,GROUP_CONCAT(c.id) roleIds,a.enabled
         FROM ac_account a
         left join ac_account_company d on a.id = d.account_id
         left join ac_account_role b on a.id=b.account_id and d.company_id = b.company_id
@@ -30,7 +30,7 @@
                 AND d.COMPANY_ID = #{companyId}
             </if>
         </where>
-        group by a.id,a.username,a.realname,a.email,a.mobile
+        group by a.id,a.username,a.realname,a.email,a.mobile,a.enabled
     </select>
     <delete id="unBindRolesById" parameterType="java.lang.Long">
         DELETE FROM AC_ACCOUNT_ROLE WHERE ACCOUNT_ID = #{id}

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

@@ -140,4 +140,7 @@
         </set>
         where id = #{id}
     </update>
+    <update id="updateUUByPrimaryKey">
+        UPDATE ac_company set uu = #{uu} where id = #{companyId}
+    </update>
 </mapper>

+ 3 - 3
base-servers/auth/auth-api/src/main/java/com/usoftchina/saas/auth/api/AuthApi.java

@@ -21,7 +21,7 @@ public interface AuthApi {
      * @param password
      * @return
      */
-    @PostMapping(value = "/api/auth")
+    @PostMapping(value = "/authorize")
     Result<AuthDTO> authorize(@RequestParam(value = "username") String username, @RequestParam(value = "password") String password);
 
     /**
@@ -30,8 +30,8 @@ public interface AuthApi {
      * @param companyId
      * @return
      */
-    @GetMapping(value = "/api/auth/switch/company")
-    Result<TokenDTO> switchCompany(@RequestParam(value = "companyId") String companyId);
+    @GetMapping(value = "/switch/company")
+    Result<TokenDTO> switchCompany(@RequestParam(value = "companyId") Long companyId);
 
     /**
      * 获取auth信息

+ 21 - 0
base-servers/auth/sso-api/src/main/java/com/usoftchina/sso/api/SsoUserApi.java

@@ -9,6 +9,7 @@ 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;
 
@@ -41,9 +42,24 @@ public interface SsoUserApi {
     @Deprecated
     SsoUserSpaceList getUserSpacesByMobile(@RequestParam("mobile") String mobile);
 
+    /**
+     * 校验手机号是否已注册
+     * @param mobile
+     * @return
+     */
     @GetMapping("/checkMobile")
     SsoCheckMobile checkMobile(@RequestParam("mobile") String mobile);
 
+    /**
+     * 解除用户企业绑定
+     * @param _operate
+     * @param userUU
+     * @param spaceUU
+     * @return
+     */
+    @PostMapping("")
+    String unbind(@RequestParam("_operate") String _operate, @RequestParam("userUU") Long userUU, @RequestParam("spaceUU") Long spaceUU);
+
     @Component
     class DefaultFallback implements SsoUserApi{
         @Override
@@ -61,5 +77,10 @@ public interface SsoUserApi {
             return null;
         }
 
+        @Override
+        public String unbind(String _operate, Long userUU, Long spaceUU) {
+            return null;
+        }
+
     }
 }

+ 10 - 1
base-servers/auth/sso-api/src/test/java/com/usoftchina/sso/test/SsoUserApiTest.java

@@ -29,7 +29,7 @@ public class SsoUserApiTest {
 
     final static long userUU = 200040149;
 
-    final static String mobile = "18595633323";
+    final static String mobile = "18702604854";
 
     @Test
     public void testA_getUserByUu() {
@@ -53,4 +53,13 @@ public class SsoUserApiTest {
         System.out.println(checked);
     }
 
+
+    @Test
+    public void testD_unbind(){
+        Long companyUU = 10050435l;
+        Long userUU = 1000027276l;
+        String result = ssoUserApi.unbind("unbind", userUU, companyUU);
+        System.out.println(result);
+    }
+
 }