提交 4ac45eb6 编写于 作者:  Peijun.zhao's avatar Peijun.zhao

Merge branch 'hotfix-1104' into 'release'

Hotfix 1104



See merge request !59
流水线 #32012 已失败 于阶段
in 0 second
......@@ -334,6 +334,18 @@ public class LoginController extends AccountBaseController {
return PicaResponse.toResponse(loginService.loginByAppleStep(request));
}
@ApiOperation(value = "苹果登录-跳过绑定-静默注册")
@PostMapping("/login/apple/skip/register")
public PicaResponse appleSkipRegister(@RequestBody EncryptEntity entity) throws Exception{
BaseRequest request = CryptoUtil.decrypt(entity, BaseRequest.class);
request.setProductType(super.getProductType());
request.setSourceType(super.getSourceType());
request.setLoginIp(super.getIpAddr());
request.setUserTokenTourist(super.getUserTokenTourist());
logger.info("appleSkipRegister:{}",JSONObject.toJSONString(request));
return PicaResponse.toResponse(loginService.appleSkipRegister(request));
}
@ApiOperation(value = "app端手机号码一键登录")
@PostMapping("/login/one-click")
......
......@@ -44,6 +44,33 @@ public class ModifyMobileController extends AccountBaseController {
@ApiOperation("修改手机号")
@PostMapping("/mobile/modify")
@EnabledLoginValidate
public PicaResponse modifyMobile(@RequestBody EncryptEntity entity) throws Exception {
// Long doctorId = super.getDoctorIdByToken();
// Doctor doctorInfo = doctorService.getDoctorInfo(doctorId.intValue());
//旧的手机号
// String mobilePhone = doctorInfo.getMobilePhone();
// Integer acctId = modifyMobileService.getAcctIdByMobile(mobilePhone);
BaseRequest request = CryptoUtil.decrypt(entity, BaseRequest.class);
//新的手机号
String newMobile = request.getMobile();
accountUtils.checkMobilePhoneAndAuthCode(newMobile, AccountTypeEnum.SYSCODE_TYPE_MODIFY_MOBILE.getCode() + "", request.getAuthCode());
//判断当前手机号是否已经注册过
AccountInfoEntity accountInfoEntity = accountService.getAccountByMobilePhone(newMobile);
if (accountInfoEntity == null) {
Long doctorId = super.getDoctorIdByToken();
Doctor doctorInfo = doctorService.getDoctorInfo(doctorId.intValue());
modifyMobileService.recodeMobileModify(doctorInfo.getAcctId(),doctorInfo.getMobilePhone(),newMobile);
modifyMobileService.modify(doctorInfo.getAcctId(), newMobile);
return PicaResponse.toResponse();
} else {
return PicaResponse.toResponse(null,AccountExceptionEnum.PICA_ALREADY_REGISTER.getCode(),AccountExceptionEnum.PICA_ALREADY_REGISTER.getMessage());
}
}
/*@ApiOperation("修改手机号")
@PostMapping("/mobile/modify2")
@EnabledLoginValidate
public PicaResponse modifyMobile(@RequestBody EncryptEntity entity) throws Exception {
Long doctorId = super.getDoctorIdByToken();
Doctor doctorInfo = doctorService.getDoctorInfo(doctorId.intValue());
......@@ -63,5 +90,5 @@ public class ModifyMobileController extends AccountBaseController {
} else {
return PicaResponse.toResponse(null,AccountExceptionEnum.PICA_ALREADY_REGISTER.getCode(),AccountExceptionEnum.PICA_ALREADY_REGISTER.getMessage());
}
}
}*/
}
......@@ -27,6 +27,8 @@ public class LoginResult {
private String mobile;
@ApiModelProperty("用户id,已经加密处理")
private String doctorId;
@ApiModelProperty("accountinfo表主键id")
private Integer acctId;
public String getToken() {
......@@ -85,4 +87,11 @@ public class LoginResult {
this.doctorId = doctorId;
}
public Integer getAcctId() {
return acctId;
}
public void setAcctId(Integer acctId) {
this.acctId = acctId;
}
}
......@@ -95,5 +95,7 @@ public interface LoginService {
*/
LoginResult loginByAppleStep(BaseRequest request);
LoginResult appleSkipRegister(BaseRequest request);
int insertLoginAesLog(LogLoginAes aes);
}
......@@ -5,6 +5,8 @@ import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.auth0.jwk.Jwk;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.google.gson.JsonObject;
import com.pica.cloud.account.account.server.constants.Constants;
import com.pica.cloud.account.account.server.entity.*;
import com.pica.cloud.account.account.server.enums.AccountExceptionEnum;
......@@ -806,6 +808,11 @@ public class LoginServiceImpl implements LoginService {
PICAPDoctor doctor = doctorInfoMapper.queryDoctor(userId);
result.setEntireFlag(doctor.getEntire_flag());
result.setMobile(AESUtil.decryptV0(doctor.getMobile_phone()));
//added by joy begin
if(StringUtil.isEmpty(result.getMobile())){
result.setEntireFlag(2); // 传2给native时,跳过完善信息(apple登录用户,手机号为空的,跳过这个页面)
}
//added by joy end
}
//记录登录日志
LogLoginEntity entity = AccountLogEntityUtils.getLogLoginEntity(
......@@ -994,6 +1001,29 @@ public class LoginServiceImpl implements LoginService {
return result;
}
/**
* 苹果登录新用户1105后,无绑定手机-》注册
* @param request
* @return
*/
@Override
public LoginResult appleSkipRegister(BaseRequest request) {
LoginResult result = new LoginResult();
if(StringUtil.isNotNull(request.getMobile())){
logger.error("appleSkipRegister,苹果登录新用户 传入手机号有值,错误参数");
return result;
}
//存在安全隐患,产品晓庆已确认,后期再完善 app端拼图,
result = registerService.register(request);
logger.info("appleSkipRegister-register:{}", JSONObject.toJSONString(result));
processAccountUnionApple(result.getAcctId(), request.getAppleUserId());
logger.info("appleSkipRegister-insert-account_apple_info-end");
return result;
}
/**
* @Description account_apple_info insert
* @Author Chongwen.jiang
......
......@@ -17,6 +17,7 @@ import com.pica.cloud.foundation.completeness.client.utils.IntactUtils;
import com.pica.cloud.foundation.encryption.common.constants.EncryptConstants;
import com.pica.cloud.foundation.encryption.util.EncryptUtils;
import com.pica.cloud.foundation.redis.ICacheClient;
import com.pica.cloud.foundation.utils.utils.StringUtil;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
......@@ -80,6 +81,9 @@ public class RegisterServiceImpl implements RegisterService {
String batchNo = IntactUtils.getUUID();
intactUtil.sendIntact(batchNo,"register",com.pica.cloud.foundation.completeness.contract.constants.CommonConstants.INTACT_CONTENT_LOG_STATUS_1,"baseRequest:"+ JSON.toJSONString(baseRequest)+",queryMobileEntity:"+JSON.toJSONString(queryMobileEntity));
String mobile = baseRequest.getMobile();
if(StringUtil.isEmpty(mobile)){
mobile = "";
}
//对注册接口做幂等性处理:注册成功,删除缓存,注册失败提示用户
String nxKey = Constants.REPEAT_REGISTER_PREFIX + mobile;
Long resultNx = redisClient.setnx(nxKey, mobile);
......@@ -88,6 +92,12 @@ public class RegisterServiceImpl implements RegisterService {
//try {
String mobileEncrypt = AESUtil.encryptV0(mobile);
AccountInfoEntity accountInfoEntity = accountInfoDetailMapper.selectByMobile(mobileEncrypt);
//added by joy begin 适配苹果登录 手机号为空传入,过审核
if(StringUtil.isEmpty(mobile)){
mobileEncrypt = "";
accountInfoEntity = null;
}
//added by joy end
if (accountInfoEntity == null) {
redisClient.expire(nxKey, 30);
Date currentTime = new Date();
......@@ -143,6 +153,7 @@ public class RegisterServiceImpl implements RegisterService {
result.setEntireFlag(1);
result.setDoctorId(EncryptUtils.encryptContent(userId + "", EncryptConstants.ENCRYPT_TYPE_ID));
result.setMobile(mobile);
result.setAcctId(acctId);
LogLoginEntity entity = AccountLogEntityUtils.getLogLoginEntity(acctId, productType, baseRequest.getSourceType(),
AccountTypeEnum.LOGIN_REGISTER.getCode(), baseRequest.getLoginIp(), AccountTypeEnum.LOGIN_STATUS_SUCCESS.getCode(),
AccountTypeEnum.LOG_TYPE_LOGIN.getCode(),newToken,1,baseRequest.getUserTokenTourist());
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册