|
|
@@ -1,7 +1,9 @@
|
|
|
package com.usoftchina.saas.account.controller;
|
|
|
|
|
|
+import com.alibaba.fastjson.JSONObject;
|
|
|
import com.usoftchina.saas.account.dto.*;
|
|
|
import com.usoftchina.saas.account.po.Account;
|
|
|
+import com.usoftchina.saas.account.po.Company;
|
|
|
import com.usoftchina.saas.account.po.RoleResource;
|
|
|
import com.usoftchina.saas.account.service.AccountService;
|
|
|
import com.usoftchina.saas.account.service.CompanyService;
|
|
|
@@ -15,11 +17,15 @@ import com.usoftchina.saas.exception.BizException;
|
|
|
import com.usoftchina.saas.exception.ExceptionCode;
|
|
|
import com.usoftchina.saas.page.PageDefault;
|
|
|
import com.usoftchina.saas.page.PageRequest;
|
|
|
+import com.usoftchina.saas.sms.api.SmsApi;
|
|
|
+import com.usoftchina.saas.sms.dto.SmsDTO;
|
|
|
import com.usoftchina.saas.utils.BeanMapper;
|
|
|
import com.usoftchina.saas.utils.CollectionUtils;
|
|
|
import com.usoftchina.saas.utils.RegexpUtils;
|
|
|
+import com.usoftchina.saas.utils.StringUtils;
|
|
|
import com.usoftchina.sso.api.SsoUserApi;
|
|
|
-import com.usoftchina.sso.dto.SsoCheckMobile;
|
|
|
+import com.usoftchina.sso.api.SsoUserSpaceApi;
|
|
|
+import com.usoftchina.sso.dto.*;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
|
|
|
@@ -43,6 +49,12 @@ public class AccountController {
|
|
|
private RoleService roleService;
|
|
|
@Autowired
|
|
|
private SsoUserApi ssoUserApi;
|
|
|
+ @Autowired
|
|
|
+ private SsoUserSpaceApi ssoUserSpaceApi;
|
|
|
+ @Autowired
|
|
|
+ private SmsApi smsApi;
|
|
|
+
|
|
|
+ private final String msgTemplateCode = "SMS_152288990";
|
|
|
|
|
|
/**
|
|
|
* 注册
|
|
|
@@ -115,6 +127,7 @@ public class AccountController {
|
|
|
*/
|
|
|
@PostMapping("/register/add")
|
|
|
public Result AddAccount(@RequestBody AccountAddDTO accountAddDTO) {
|
|
|
+ String mobile = accountAddDTO.getMobile();
|
|
|
Account account = null;
|
|
|
// 根据手机号、邮箱、用户名片段判断是否已注册
|
|
|
boolean checked = accountService.findByUsernameOrMobileOrEmail(accountAddDTO.getUsername(), accountAddDTO.getMobile(), accountAddDTO.getEmail());
|
|
|
@@ -123,6 +136,43 @@ public class AccountController {
|
|
|
account = BeanMapper.map(accountAddDTO, Account.class);
|
|
|
account.setEnabled(true);
|
|
|
accountService.save(account);
|
|
|
+ if (!accountAddDTO.isHasRegister()) {
|
|
|
+ //1.添加至优软云
|
|
|
+ String password = StringUtils.createInitPassword(mobile.substring(mobile.length() - 3, mobile.length()));
|
|
|
+ Company company = companyService.findByPrimaryKey(BaseContextHolder.getCompanyId());
|
|
|
+ String companyName = company.getName();
|
|
|
+
|
|
|
+ //可能存在开通企业时UU号同步到优软云出错的情况,再重新同步一次
|
|
|
+ if (company.getUu() == null) {
|
|
|
+ Account accountTmp = accountService.findByPrimaryKey(company.getCreatorId());
|
|
|
+ ssoUserSpaceApi.registerLogin(companyName, company.getBusinessCode(), accountTmp.getUu());
|
|
|
+ SsoUserSpaceList ssoUserSpaceList = ssoUserApi.getUserSpacesByMobile(accountTmp.getMobile());
|
|
|
+ List<SsoUserSpace> ssoUserSpaces = ssoUserSpaceList.getSpaces();
|
|
|
+ if (ssoUserSpaces.size() > 0) {
|
|
|
+ for (SsoUserSpace ssoUserspace : ssoUserSpaces) {
|
|
|
+ if (companyName.equals(ssoUserspace.getSpaceName())) {
|
|
|
+ company.setUu(ssoUserspace.getSpaceUU());
|
|
|
+ companyService.updateUUByPrimaryKey(company.getId(), ssoUserspace.getSpaceUU());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ SsoResult result = ssoUserApi.add("add", "sp", accountAddDTO.getRealname(), mobile, password, company.getUu());
|
|
|
+ //2.调用短信服务,将密码以短信的形式发送到用户的手机上
|
|
|
+ if (result.isSuccess()) {
|
|
|
+ SmsDTO smsDTO = new SmsDTO();
|
|
|
+ smsDTO.setMobile(mobile);
|
|
|
+ smsDTO.setSignName("优软云");
|
|
|
+ smsDTO.setTemplateCode(msgTemplateCode);
|
|
|
+ JSONObject jsonObject = new JSONObject();
|
|
|
+ jsonObject.put("password", password);
|
|
|
+ smsDTO.setTemplateParam(jsonObject.toJSONString());
|
|
|
+ Result sendResult = smsApi.sendRegisterMsg(smsDTO);
|
|
|
+ if (!sendResult.isSuccess()) {
|
|
|
+ return sendResult;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}else{
|
|
|
Account accountTemp = accountService.findByMobile(accountAddDTO.getMobile());
|
|
|
if (accountTemp == null){
|