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

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

saas平台新增验证码登陆接口
上级 038aeee1
流水线 #47476 已失败 于阶段
......@@ -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)) {
throw new PicaException(PicaResultCode.PARAM_IS_INVALID.code(), "请输入正确的手机号");
}
......@@ -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();
if (StringUtils.isBlank(req.getAuthCode())) {
......
package com.pica.cloud.account.account.server.controller;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.pica.cloud.account.account.server.entity.AesBean.AesAuthCodeReq;
import com.pica.cloud.account.account.server.entity.*;
......@@ -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.log.AccountLogEntityUtils;
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.OneClickLoginReq;
import com.pica.cloud.account.account.server.service.CaptchaService;
......@@ -36,6 +38,7 @@ import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.Map;
@Api(description = "登录资源")
......@@ -66,6 +69,9 @@ public class LoginController extends AccountBaseController {
@Autowired
private CaptchaService captchaService;
@Resource
private AccountController accountController;
/**
* 密码登录接口(app、H5、web)
*
......@@ -474,4 +480,41 @@ public class LoginController extends AccountBaseController {
SaasLoginResult login = loginService.saasLogin(request);
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 {
*/
SaasLoginResult saasLogin(BaseRequest request);
/***
* saas 验证码登录
* @param request
* @return
*/
SaasLoginResult saasLoginByAuthCode(BaseRequest request);
}
......@@ -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) {
//接入新旭事务一致性
String batchNo = IntactUtils.getUUID();
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册