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

机构SaaS登录接口

上级 8af5288d
流水线 #42768 已失败 于阶段
......@@ -3,10 +3,7 @@ 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.constants.Constants;
import com.pica.cloud.account.account.server.entity.Account;
import com.pica.cloud.account.account.server.entity.Doctor;
import com.pica.cloud.account.account.server.entity.EncryptEntity;
import com.pica.cloud.account.account.server.entity.LoginResult;
import com.pica.cloud.account.account.server.entity.*;
import com.pica.cloud.account.account.server.enums.AccountTypeEnum;
import com.pica.cloud.account.account.server.req.AccountReq;
import com.pica.cloud.account.account.server.req.BaseRequest;
......@@ -645,4 +642,55 @@ 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);
}
}
......@@ -75,6 +75,8 @@ public class Account {
private Date birthday;
private Long hospitalId;
public String getNativePlace() {
return nativePlace;
}
......@@ -322,4 +324,12 @@ 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;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
/**
* @ClassName SaasLoginResult
* @Description
* @Author wenlei.liao
* @Date 2022/3/1 15:50
*/
@ApiModel
public class SaasLoginResult {
@ApiModelProperty("token")
private String token;
@ApiModelProperty("机构id")
private Long hospitalId;
public String getToken() {
return token;
}
public void setToken(String token) {
this.token = token;
}
public Long getHospitalId() {
return hospitalId;
}
public void setHospitalId(Long hospitalId) {
this.hospitalId = hospitalId;
}
}
......@@ -33,12 +33,13 @@
<result column="first_login_time" jdbcType="TIMESTAMP" property="firstLoginTime" />
<result column="card" jdbcType="VARCHAR" property="card" />
<result column="birthday" jdbcType="DATE" property="birthday" />
<result column="hospital_id" jdbcType="INTEGER" property="hospitalId" />
</resultMap>
<sql id="Base_Column_List">
id, sex, name, mobile_phone, status, certify_status, nation, avatar_image_url, email, qrcode, nickname, personal_sign, delete_flag,
creat_id, creat_time, modify_id, modify_time, password, info, entire_flag, reg_time, last_login_time,
unionid, register_source, comment, register_type, first_login_time, card, birthday
unionid, register_source, comment, register_type, first_login_time, card, birthday, hospital_id
</sql>
<select id="selectById" parameterType="java.lang.Long" resultMap="BaseResultMap">
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册