提交 e1cd690d 编写于 作者: 江陈's avatar 江陈

feat:加入合作机构自动开saas账号

saas平台新增验证码登陆接口
上级 038aeee1
流水线 #47476 已失败 于阶段
...@@ -469,7 +469,7 @@ public class AccountController extends AccountBaseController { ...@@ -469,7 +469,7 @@ public class AccountController extends AccountBaseController {
//手机格式校验 //手机格式校验
private void checkMobilePhone(String mobilePhone) { public void checkMobilePhone(String mobilePhone) {
if (StringUtils.isBlank(mobilePhone) || !ValidateUtils.isMobile(mobilePhone)) { if (StringUtils.isBlank(mobilePhone) || !ValidateUtils.isMobile(mobilePhone)) {
throw new PicaException(PicaResultCode.PARAM_IS_INVALID.code(), "请输入正确的手机号"); throw new PicaException(PicaResultCode.PARAM_IS_INVALID.code(), "请输入正确的手机号");
} }
...@@ -482,7 +482,7 @@ public class AccountController extends AccountBaseController { ...@@ -482,7 +482,7 @@ public class AccountController extends AccountBaseController {
} }
//校验验证码 //校验验证码
private void checkAuthCode(AccountReq req) { public void checkAuthCode(AccountReq req) {
String flag = StringUtils.isBlank(req.getFlag()) ? "0" : req.getFlag(); String flag = StringUtils.isBlank(req.getFlag()) ? "0" : req.getFlag();
if (StringUtils.isBlank(req.getAuthCode())) { if (StringUtils.isBlank(req.getAuthCode())) {
......
package com.pica.cloud.account.account.server.controller; package com.pica.cloud.account.account.server.controller;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.pica.cloud.account.account.server.entity.AesBean.AesAuthCodeReq; import com.pica.cloud.account.account.server.entity.AesBean.AesAuthCodeReq;
import com.pica.cloud.account.account.server.entity.*; import com.pica.cloud.account.account.server.entity.*;
...@@ -9,6 +10,7 @@ import com.pica.cloud.account.account.server.enums.SourceTypeEnum; ...@@ -9,6 +10,7 @@ import com.pica.cloud.account.account.server.enums.SourceTypeEnum;
import com.pica.cloud.account.account.server.exception.AccountException; import com.pica.cloud.account.account.server.exception.AccountException;
import com.pica.cloud.account.account.server.log.AccountLogEntityUtils; import com.pica.cloud.account.account.server.log.AccountLogEntityUtils;
import com.pica.cloud.account.account.server.log.AccountLogUtils; import com.pica.cloud.account.account.server.log.AccountLogUtils;
import com.pica.cloud.account.account.server.req.AccountReq;
import com.pica.cloud.account.account.server.req.BaseRequest; import com.pica.cloud.account.account.server.req.BaseRequest;
import com.pica.cloud.account.account.server.req.OneClickLoginReq; import com.pica.cloud.account.account.server.req.OneClickLoginReq;
import com.pica.cloud.account.account.server.service.CaptchaService; import com.pica.cloud.account.account.server.service.CaptchaService;
...@@ -36,6 +38,7 @@ import org.slf4j.LoggerFactory; ...@@ -36,6 +38,7 @@ import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.Map; import java.util.Map;
@Api(description = "登录资源") @Api(description = "登录资源")
...@@ -66,6 +69,9 @@ public class LoginController extends AccountBaseController { ...@@ -66,6 +69,9 @@ public class LoginController extends AccountBaseController {
@Autowired @Autowired
private CaptchaService captchaService; private CaptchaService captchaService;
@Resource
private AccountController accountController;
/** /**
* 密码登录接口(app、H5、web) * 密码登录接口(app、H5、web)
* *
...@@ -474,4 +480,41 @@ public class LoginController extends AccountBaseController { ...@@ -474,4 +480,41 @@ public class LoginController extends AccountBaseController {
SaasLoginResult login = loginService.saasLogin(request); SaasLoginResult login = loginService.saasLogin(request);
return PicaResponse.toResponse(login); return PicaResponse.toResponse(login);
} }
@ApiOperation("saas机构管理平台验证码登录接口")
@PostMapping("/saasLoginByAuthCode")
public PicaResponse<SaasLoginResult> saasLoginByAuthCode(@RequestBody SaasLoginReq authCodeReq) throws Exception {
EncryptEntity entity = new EncryptEntity();
entity.setKey(authCodeReq.getKey());
entity.setContent(authCodeReq.getContent());
logger.info("saasLoginByAuthCode 验证码登陆接口参数:{}", JSON.toJSONString(entity));
BaseRequest request = CryptoUtil.decrypt(entity, BaseRequest.class);
logger.info("saasLoginByAuthCode 解密之后的数据request:{}", JSON.toJSONString(entity));
request.setProductType(super.getProductType());
Integer sourceType = super.getSourceType();
request.setSourceType(sourceType == null ? 0 : sourceType);
request.setLoginIp(super.getIpAddr());
request.setUserTokenTourist(super.getUserTokenTourist());
AccountUtils.checkMobilePhone(request.getMobile());
try {
//校验验证码
accountController.checkMobilePhone(request.getMobile());
AccountReq accountReq = new AccountReq();
accountReq.setMobilePhone(request.getMobile());
accountReq.setFlag("0");
accountReq.setAuthCode(request.getAuthCode());
accountController.checkAuthCode(accountReq);
} catch (PicaException e) {
logger.info("saasLoginByAuthCode 短信验证失败");
return PicaResponse.toResponse(null, e.getCode(), e.getMessage());
}catch (Exception e) {
logger.info("saasLoginByAuthCode 短信验证失败");
return PicaResponse.toResponse(null,PicaResultCode.DATA_EXCEPTION.code(), "短信校验异常");
}
SaasLoginResult login = loginService.saasLogin(request);
return PicaResponse.toResponse(login);
}
} }
...@@ -112,4 +112,11 @@ public interface LoginService { ...@@ -112,4 +112,11 @@ public interface LoginService {
*/ */
SaasLoginResult saasLogin(BaseRequest request); SaasLoginResult saasLogin(BaseRequest request);
/***
* saas 验证码登录
* @param request
* @return
*/
SaasLoginResult saasLoginByAuthCode(BaseRequest request);
} }
...@@ -1229,6 +1229,45 @@ public class LoginServiceImpl implements LoginService { ...@@ -1229,6 +1229,45 @@ public class LoginServiceImpl implements LoginService {
} }
} }
@Override
public SaasLoginResult saasLoginByAuthCode(BaseRequest request) {
//接入新旭事务一致性
String batchNo = IntactUtils.getUUID();
intactUtil.sendIntact(batchNo, "login", com.pica.cloud.foundation.completeness.contract.constants.CommonConstants.INTACT_CONTENT_LOG_STATUS_1, "request:" + JSON.toJSONString(request));
String mobile = request.getMobile();
Integer sourceType = request.getSourceType();
String encrypt = AESUtil.encryptV0(mobile);
AccountInfoEntity accountInfoEntity = accountInfoDetailMapper.selectByMobile(encrypt);
logger.info("bizType:{}, account not null:{}", request.getBizType(), accountInfoEntity != null);
if (accountInfoEntity != null) {
intactUtil.sendIntact(batchNo, "login", com.pica.cloud.foundation.completeness.contract.constants.CommonConstants.INTACT_CONTENT_LOG_STATUS_3, "接下来调用pwdLoginCorrect");
return pwdSaaSLoginCorrect(request, mobile, encrypt, accountInfoEntity);
} else {
if (null != request.getBizType() &&
request.getBizType().equals(1)) {
if (sourceType != null && SourceTypeEnum.H5.getCode().equals(sourceType)) {
intactUtil.sendIntact(batchNo, "login", com.pica.cloud.foundation.completeness.contract.constants.CommonConstants.INTACT_CONTENT_LOG_STATUS_3, "该手机号尚未设置密码,设置密码请前往云鹊医APP,或使用其他方式登录。");
throw new PicaWarnException(AccountExceptionEnum.PICA_MOBILE_NOT_REGIST_H5.getCode(),
AccountExceptionEnum.PICA_MOBILE_NOT_REGIST_H5.getMessage());
} else {
// 新版-未注册
intactUtil.sendIntact(batchNo, "login", com.pica.cloud.foundation.completeness.contract.constants.CommonConstants.INTACT_CONTENT_LOG_STATUS_3, "该手机号{mobile}尚未设置密码,请先设置密码。");
throw new PicaException(AccountExceptionEnum.PICA_PASSWORD_RULE_ERROR.getCode(),
AccountExceptionEnum.PICA_PASSWORD_RULE_ERROR.getMessage()
.replace("{mobile}", mobile));
}
} else {
intactUtil.sendIntact(batchNo, "login", com.pica.cloud.foundation.completeness.contract.constants.CommonConstants.INTACT_CONTENT_LOG_STATUS_3, "未注册,请先注册");
throw new PicaException(AccountExceptionEnum.PICA_NOT_REGISTER.getCode(), AccountExceptionEnum.PICA_NOT_REGISTER.getMessage());
}
}
}
private SaasLoginResult pwdSaaSLoginCorrect(BaseRequest request, String mobile, String encrypt, AccountInfoEntity accountInfoEntity) { private SaasLoginResult pwdSaaSLoginCorrect(BaseRequest request, String mobile, String encrypt, AccountInfoEntity accountInfoEntity) {
//接入新旭事务一致性 //接入新旭事务一致性
String batchNo = IntactUtils.getUUID(); String batchNo = IntactUtils.getUUID();
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册