提交 5f62dbe3 编写于 作者: wenlei.liao's avatar wenlei.liao

机构SaaS登录接口

上级 2bbc7b73
流水线 #42788 已失败 于阶段
......@@ -642,55 +642,4 @@ public class AccountController extends AccountBaseController {
// String newToken = this.generateToken(account, deviceType);
// return PicaResponse.toResponse(newToken);
// }
@ApiOperation("密码或验证码登录")
@PostMapping("/saasLogin")
public PicaResponse<SaasLoginResult> saasLogin(@RequestBody AccountReq req) {
this.checkMobilePhone(req.getMobilePhone());
logger.info("login:{}", JSONObject.toJSONString(req));
//接入新旭事务一致性
String batchNo = IntactUtils.getUUID();
intactUtil.sendIntact(batchNo,"login",com.pica.cloud.foundation.completeness.contract.constants.CommonConstants.INTACT_CONTENT_LOG_STATUS_1,"req:"+ JSON.toJSONString(req));
Account account = accountService.getByMobilePhone(req.getMobilePhone());
if (account == null) {
intactUtil.sendIntact(batchNo,"login",com.pica.cloud.foundation.completeness.contract.constants.CommonConstants.INTACT_CONTENT_LOG_STATUS_3,"未注册,请验证码登录");
return PicaResponse.toResponse(null, PicaResultCode.RESULE_DATA_NONE.code(), "未注册,请验证码登录");
}
if (StringUtils.isBlank(req.getPassword())) {
//验证码登录
req.setFlag("0");
intactUtil.sendIntact(batchNo,"login",com.pica.cloud.foundation.completeness.contract.constants.CommonConstants.INTACT_CONTENT_LOG_STATUS_3,"校验验证码前的返回,因为验证码可能校验不通过,就直接返回了");
//校验验证码
this.checkAuthCode(req);
} else { //密码登录
if (!StringUtils.equals(req.getPassword(), account.getPassword())) {
intactUtil.sendIntact(batchNo,"login",com.pica.cloud.foundation.completeness.contract.constants.CommonConstants.INTACT_CONTENT_LOG_STATUS_3,"请输入正确的密码");
return PicaResponse.toResponse(null, PicaResultCode.PARAM_IS_INVALID.code(), "请输入正确的密码");
}
}
//更新最后登录时间
Account update = new Account();
update.setId(account.getId());
update.setLastLoginTime(new Date());
if (StringUtils.isBlank(account.getUnionid()) && StringUtils.isNotBlank(req.getUnionid())) {
update.setUnionid(req.getUnionid());
update.setModifyId(account.getId());
update.setModifyTime(new Date());
}
accountService.updateAccountById(update);
//登录成功,清除旧token,生成新token
String deviceType = super.getDeviceInfo("device_type");
String newToken = "";
if(deviceType.equals("1")){
newToken = this.generateToken(account, "4");
}else {
newToken = this.generateToken(account, deviceType);
}
SaasLoginResult result = new SaasLoginResult();
result.setToken(newToken);
result.setHospitalId(account.getHospitalId());
intactUtil.sendIntact(batchNo,"login",com.pica.cloud.foundation.completeness.contract.constants.CommonConstants.INTACT_CONTENT_LOG_STATUS_3,"req:"+ JSON.toJSONString(req));
return PicaResponse.toResponse(result);
}
}
......@@ -448,4 +448,30 @@ public class LoginController extends AccountBaseController {
return PicaResponse.toResponse();
}
/**
* saas机构管理平台密码登录接口
*
* @author wenlei.liao
* @date 2022/3/1 18:45
* @param
* @return
*/
@ApiOperation("saas机构管理平台密码登录接口")
@PostMapping("/saasLogin")
public PicaResponse<SaasLoginResult> saasLogin(@RequestBody SaasLoginReq authCodeReq) throws Exception {
EncryptEntity entity = new EncryptEntity();
entity.setKey(authCodeReq.getKey());
entity.setContent(authCodeReq.getContent());
BaseRequest request = CryptoUtil.decrypt(entity, BaseRequest.class);
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());
AccountUtils.checkPassword(request.getPassword());
SaasLoginResult login = loginService.saasLogin(request);
return PicaResponse.toResponse(login);
}
}
......@@ -76,8 +76,6 @@ public class Account {
private Date birthday;
private Long hospitalId;
private Integer hospitalId;
public Integer getHospitalId() {
......@@ -335,12 +333,4 @@ public class Account {
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
public Long getHospitalId() {
return hospitalId;
}
public void setHospitalId(Long hospitalId) {
this.hospitalId = hospitalId;
}
}
package com.pica.cloud.account.account.server.entity;
public class SaasLoginReq {
/**
* 加密后的密文
*/
private String key;
/**
* 加密后的数据
*/
private String content;
public String getKey() {
return key;
}
public void setKey(String key) {
this.key = key;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
}
......@@ -16,7 +16,16 @@ public class SaasLoginResult {
private String token;
@ApiModelProperty("机构id")
private Long hospitalId;
private Integer hospitalId;
@ApiModelProperty("用户id 未加密")
private Long userId;
@ApiModelProperty("未加密手机号")
private String mobile;
@ApiModelProperty("用户id,已经加密处理")
private String doctorId;
public String getToken() {
return token;
......@@ -26,11 +35,35 @@ public class SaasLoginResult {
this.token = token;
}
public Long getHospitalId() {
public Integer getHospitalId() {
return hospitalId;
}
public void setHospitalId(Long hospitalId) {
public void setHospitalId(Integer hospitalId) {
this.hospitalId = hospitalId;
}
public Long getUserId() {
return userId;
}
public void setUserId(Long userId) {
this.userId = userId;
}
public String getMobile() {
return mobile;
}
public void setMobile(String mobile) {
this.mobile = mobile;
}
public String getDoctorId() {
return doctorId;
}
public void setDoctorId(String doctorId) {
this.doctorId = doctorId;
}
}
package com.pica.cloud.account.account.server.service;
import com.pica.cloud.account.account.server.entity.AccountUser;
import com.pica.cloud.account.account.server.entity.LogLoginAes;
import com.pica.cloud.account.account.server.entity.LoginResult;
import com.pica.cloud.account.account.server.entity.PICAPDoctor;
import com.pica.cloud.account.account.server.entity.*;
import com.pica.cloud.account.account.server.req.BaseRequest;
import com.pica.cloud.account.account.server.resp.UnifiedVerificationResp;
import com.pica.cloud.foundation.entity.PicaResponse;
......@@ -105,4 +102,14 @@ public interface LoginService {
void loginSwitch(AccountUser oldUser, AccountUser loginUser);
/**
* saas 密码登录
*
* @author wenlei.liao
* @date 2022/3/1 18:51
* @param
* @return
*/
SaasLoginResult saasLogin(BaseRequest request);
}
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册