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

一键登录 日志记录代码

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