提交 cdf51044 编写于 作者: fengyuan.wan's avatar fengyuan.wan

一键登录 日志记录代码

上级 f54f325f
流水线 #22061 已失败 于阶段
in 0 second
......@@ -238,8 +238,8 @@ public class LoginController extends AccountBaseController {
@ApiOperation(value = "app端手机号码一键登录")
@PostMapping("/login/one-click")
public PicaResponse<LoginResult> oneClickLogin(@RequestBody EncryptEntity entity) throws Exception {
OneClickLoginReq req = CryptoUtil.decrypt(entity, OneClickLoginReq.class);
public PicaResponse<LoginResult> oneClickLogin(@RequestBody OneClickLoginReq req ) throws Exception {
// OneClickLoginReq req = CryptoUtil.decrypt(entity, OneClickLoginReq.class);
req.setProductType(super.getProductType());
req.setSourceType(super.getSourceType());
req.setLoginIp(super.getIpAddr());
......
......@@ -38,6 +38,16 @@ public class LogLoginEntity extends AccountLogEntity {
private int deleteFlag;
private QueryMobileEntity queryMobileEntity;
public QueryMobileEntity getQueryMobileEntity() {
return queryMobileEntity;
}
public void setQueryMobileEntity(QueryMobileEntity queryMobileEntity) {
this.queryMobileEntity = queryMobileEntity;
}
public Integer getId() {
return id;
}
......
......@@ -7,13 +7,13 @@ public class LogLoginOnekey {
private Integer logLoginId;
private Byte deviceType;
private Integer deviceType;
private String mobile;
private String tradeNo;
private Byte fanqizha;
private Integer fanqizha;
private String tag;
......@@ -45,11 +45,11 @@ public class LogLoginOnekey {
this.logLoginId = logLoginId;
}
public Byte getDeviceType() {
public Integer getDeviceType() {
return deviceType;
}
public void setDeviceType(Byte deviceType) {
public void setDeviceType(Integer deviceType) {
this.deviceType = deviceType;
}
......@@ -69,11 +69,11 @@ public class LogLoginOnekey {
this.tradeNo = tradeNo == null ? null : tradeNo.trim();
}
public Byte getFanqizha() {
public Integer getFanqizha() {
return fanqizha;
}
public void setFanqizha(Byte fanqizha) {
public void setFanqizha(Integer fanqizha) {
this.fanqizha = fanqizha;
}
......
......@@ -12,6 +12,15 @@ public class QueryMobileEntity {
private Integer chargeStatus;
private MobileDataEntity data;
private String mobile;
private Integer sourceType;
public Integer getSourceType() {
return sourceType;
}
public void setSourceType(Integer sourceType) {
this.sourceType = sourceType;
}
public String getMobile() {
return mobile;
......@@ -61,6 +70,7 @@ public class QueryMobileEntity {
", chargeStatus=" + chargeStatus +
", data=" + data +
", mobile='" + mobile + '\'' +
", sourceType=" + sourceType +
'}';
}
}
......@@ -4,11 +4,13 @@ package com.pica.cloud.account.account.server.log;
import com.pica.cloud.account.account.server.entity.LogLoginEntity;
import com.pica.cloud.account.account.server.entity.LogPWDModifyEntity;
import com.pica.cloud.account.account.server.entity.LogUserInfoEntity;
import com.pica.cloud.account.account.server.entity.QueryMobileEntity;
import com.pica.cloud.account.account.server.enums.AccountTypeEnum;
import com.pica.cloud.account.account.server.mapper.LogLoginMapper;
import com.pica.cloud.account.account.server.mapper.LogPWDModifyMapper;
import com.pica.cloud.account.account.server.mapper.LogUserInfoMapper;
import com.pica.cloud.account.account.server.model.OneClickProcessor;
import com.pica.cloud.account.account.server.util.BeanUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
......@@ -28,6 +30,8 @@ public class AccountLogTask implements Runnable {
private LogUserInfoMapper logUserInfoMapper;
private OneClickProcessor oneClickProcessor;
/**
* 日志类型
*/
......@@ -44,6 +48,8 @@ public class AccountLogTask implements Runnable {
loginLogMapper = BeanUtil.getBean(LogLoginMapper.class);
logPWDModifyMapper = BeanUtil.getBean(LogPWDModifyMapper.class);
logUserInfoMapper = BeanUtil.getBean(LogUserInfoMapper.class);
oneClickProcessor = BeanUtil.getBean(OneClickProcessor.class);
}
@Override
......@@ -53,6 +59,11 @@ public class AccountLogTask implements Runnable {
if (type == AccountTypeEnum.LOG_TYPE_LOGIN.getCode()) {
logger.info("login record......");
loginLogMapper.insert((LogLoginEntity) picaLogEntity);
QueryMobileEntity queryMobileEntity = ((LogLoginEntity) picaLogEntity).getQueryMobileEntity();
if(queryMobileEntity != null){
// 记录一键登录日志
oneClickProcessor.savelogLoginOnekey(queryMobileEntity,((LogLoginEntity) picaLogEntity).getId());
}
} else if (type == AccountTypeEnum.LOG_TYPE_PASSWORD.getCode()) {
logPWDModifyMapper.insert((LogPWDModifyEntity) picaLogEntity);
} else if (type == AccountTypeEnum.LOG_TYPE_USER_INFO.getCode()) {
......
......@@ -99,11 +99,11 @@ public class OneClickProcessor {
}
@Async
public void savelogLoginOnekey(QueryMobileEntity queryMobileEntity, Integer type, Integer logLoginId) {
public void savelogLoginOnekey(QueryMobileEntity queryMobileEntity,Integer logLoginId) {
LogLoginOnekey l = new LogLoginOnekey();
l.setDeviceType(type.byteValue());
l.setDeviceType(queryMobileEntity.getSourceType());
MobileDataEntity data = queryMobileEntity.getData();
l.setFanqizha(data.getFanqizha().byteValue());
l.setFanqizha(data.getFanqizha());
l.setTradeNo(data.getTradeNo());
l.setMobile(AESUtil.encryptV0(data.getMobileName()));
l.setLogLoginId(logLoginId);
......
package com.pica.cloud.account.account.server.service;
import com.pica.cloud.account.account.server.entity.LoginResult;
import com.pica.cloud.account.account.server.entity.QueryMobileEntity;
import com.pica.cloud.account.account.server.req.BaseRequest;
import com.pica.cloud.account.account.common.req.OCINRequest;
import com.pica.cloud.foundation.entity.PicaResponse;
......@@ -25,4 +26,6 @@ public interface RegisterService {
void ocinRegister(OCINRequest request);
LoginResult register(BaseRequest baseRequest, QueryMobileEntity queryMobileEntity);
}
......@@ -258,6 +258,10 @@ public class LoginServiceImpl implements LoginService {
* @param baseRequest
*/
private LoginResult processLogin(BaseRequest baseRequest, Integer acctId, Integer loginType) {
return processLogin(baseRequest,acctId,loginType,null);
}
private LoginResult processLogin(BaseRequest baseRequest, Integer acctId, Integer loginType,QueryMobileEntity queryMobileEntity) {
Date currentTime = new Date();
Long userId = accountUtils.getUserIdByAcctId(baseRequest.getProductType(), acctId);
Account account = new Account();
......@@ -280,6 +284,9 @@ public class LoginServiceImpl implements LoginService {
//记录登录日志
LogLoginEntity entity = AccountLogEntityUtils.getLogLoginEntity(acctId, baseRequest.getProductType(), baseRequest.getSourceType(),
loginType, baseRequest.getLoginIp(), AccountTypeEnum.LOGIN_STATUS_SUCCESS.getCode(), AccountTypeEnum.LOG_TYPE_LOGIN.getCode());
if(queryMobileEntity != null){
entity.setQueryMobileEntity(queryMobileEntity);
}
picaLogUtils.info(entity);
result.setLogLoginId(entity.getId());
return result;
......@@ -493,6 +500,7 @@ public class LoginServiceImpl implements LoginService {
if (queryMobileEntity == null || StringUtils.isBlank(queryMobileEntity.getMobile()) || !ValidateUtils.isMobile(queryMobileEntity.getMobile())) {
throw new PicaException(PicaResultCode.INTERFACE_INVOKE_EXCEPTION.code(), "获取手机号失败!");
}
queryMobileEntity.setSourceType(req.getSourceType());
AccountInfoEntity accountInfoEntity = accountInfoDetailMapper.selectByMobile(AESUtil.encryptV0(queryMobileEntity.getMobile()));
BaseRequest baseRequest = new BaseRequest();
baseRequest.setMobile(queryMobileEntity.getMobile());
......@@ -505,9 +513,8 @@ public class LoginServiceImpl implements LoginService {
result = registerService.register(baseRequest);
} else {
//登录功能
result = processLogin(baseRequest, accountInfoEntity.getId(), AccountTypeEnum.LOGIN_CODE.getCode());
result = processLogin(baseRequest, accountInfoEntity.getId(), AccountTypeEnum.LOGIN_CODE.getCode(),queryMobileEntity);
}
oneClickProcessor.savelogLoginOnekey(queryMobileEntity,req.getSourceType(),result.getLogLoginId());
return result;
}
......
......@@ -80,6 +80,11 @@ public class RegisterServiceImpl implements RegisterService {
@Transactional
@Override
public LoginResult register(BaseRequest baseRequest) {
return register(baseRequest,null);
}
@Override
public LoginResult register(BaseRequest baseRequest,QueryMobileEntity queryMobileEntity) {
String mobile = baseRequest.getMobile();
//对注册接口做幂等性处理:注册成功,删除缓存,注册失败提示用户
String exist = redisClient.get(REPEAT_REGISTER_PREFIX + mobile);
......@@ -152,6 +157,9 @@ public class RegisterServiceImpl implements RegisterService {
LogLoginEntity entity = AccountLogEntityUtils.getLogLoginEntity(acctId, productType, baseRequest.getSourceType(),
AccountTypeEnum.LOGIN_REGISTER.getCode(), baseRequest.getLoginIp(), AccountTypeEnum.LOGIN_STATUS_SUCCESS.getCode(),
AccountTypeEnum.LOG_TYPE_LOGIN.getCode());
if(queryMobileEntity != null){
entity.setQueryMobileEntity(queryMobileEntity);
}
picaLogUtils.info(entity);
result.setLogLoginId(entity.getId());
processAgreement(userId);
......
......@@ -4,10 +4,10 @@
<resultMap id="BaseResultMap" type="com.pica.cloud.account.account.server.entity.LogLoginOnekey" >
<id column="id" property="id" jdbcType="INTEGER" />
<result column="log_login_id" property="logLoginId" jdbcType="INTEGER" />
<result column="device_type" property="deviceType" jdbcType="TINYINT" />
<result column="device_type" property="deviceType" jdbcType="INTEGER" />
<result column="mobile" property="mobile" jdbcType="VARCHAR" />
<result column="trade_no" property="tradeNo" jdbcType="VARCHAR" />
<result column="fanqizha" property="fanqizha" jdbcType="TINYINT" />
<result column="fanqizha" property="fanqizha" jdbcType="INTEGER" />
<result column="tag" property="tag" jdbcType="VARCHAR" />
<result column="info" property="info" jdbcType="VARCHAR" />
<result column="delete_flag" property="deleteFlag" jdbcType="INTEGER" />
......@@ -36,8 +36,8 @@
tag, info, delete_flag,
create_id, create_time, modify_id,
modify_time)
values (#{id,jdbcType=INTEGER}, #{logLoginId,jdbcType=INTEGER}, #{deviceType,jdbcType=TINYINT},
#{mobile,jdbcType=VARCHAR}, #{tradeNo,jdbcType=VARCHAR}, #{fanqizha,jdbcType=TINYINT},
values (#{id,jdbcType=INTEGER}, #{logLoginId,jdbcType=INTEGER}, #{deviceType,jdbcType=INTEGER},
#{mobile,jdbcType=VARCHAR}, #{tradeNo,jdbcType=VARCHAR}, #{fanqizha,jdbcType=INTEGER},
#{tag,jdbcType=VARCHAR}, #{info,jdbcType=VARCHAR}, #{deleteFlag,jdbcType=INTEGER},
#{createId,jdbcType=INTEGER}, #{createTime,jdbcType=TIMESTAMP}, #{modifyId,jdbcType=INTEGER},
#{modifyTime,jdbcType=TIMESTAMP})
......@@ -93,7 +93,7 @@
#{logLoginId,jdbcType=INTEGER},
</if>
<if test="deviceType != null" >
#{deviceType,jdbcType=TINYINT},
#{deviceType,jdbcType=INTEGER},
</if>
<if test="mobile != null" >
#{mobile,jdbcType=VARCHAR},
......@@ -102,7 +102,7 @@
#{tradeNo,jdbcType=VARCHAR},
</if>
<if test="fanqizha != null" >
#{fanqizha,jdbcType=TINYINT},
#{fanqizha,jdbcType=INTEGER},
</if>
<if test="tag != null" >
#{tag,jdbcType=VARCHAR},
......@@ -134,7 +134,7 @@
log_login_id = #{logLoginId,jdbcType=INTEGER},
</if>
<if test="deviceType != null" >
device_type = #{deviceType,jdbcType=TINYINT},
device_type = #{deviceType,jdbcType=INTEGER},
</if>
<if test="mobile != null" >
mobile = #{mobile,jdbcType=VARCHAR},
......@@ -143,7 +143,7 @@
trade_no = #{tradeNo,jdbcType=VARCHAR},
</if>
<if test="fanqizha != null" >
fanqizha = #{fanqizha,jdbcType=TINYINT},
fanqizha = #{fanqizha,jdbcType=INTEGER},
</if>
<if test="tag != null" >
tag = #{tag,jdbcType=VARCHAR},
......@@ -172,10 +172,10 @@
<update id="updateByPrimaryKey" parameterType="com.pica.cloud.account.account.server.entity.LogLoginOnekey" >
update log_login_onekey
set log_login_id = #{logLoginId,jdbcType=INTEGER},
device_type = #{deviceType,jdbcType=TINYINT},
device_type = #{deviceType,jdbcType=INTEGER},
mobile = #{mobile,jdbcType=VARCHAR},
trade_no = #{tradeNo,jdbcType=VARCHAR},
fanqizha = #{fanqizha,jdbcType=TINYINT},
fanqizha = #{fanqizha,jdbcType=INTEGER},
tag = #{tag,jdbcType=VARCHAR},
info = #{info,jdbcType=VARCHAR},
delete_flag = #{deleteFlag,jdbcType=INTEGER},
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册