提交 a400cd65 编写于 作者: rushui.chen's avatar rushui.chen

20190827 日志异步存储

上级 7cb7027e
流水线 #13687 已失败 于阶段
in 2 second
...@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONObject; ...@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONObject;
import com.pica.cloud.account.account.server.entity.*; import com.pica.cloud.account.account.server.entity.*;
import com.pica.cloud.account.account.server.enums.EnumsType; import com.pica.cloud.account.account.server.enums.EnumsType;
import com.pica.cloud.account.account.server.enums.ExceptionType; import com.pica.cloud.account.account.server.enums.ExceptionType;
import com.pica.cloud.account.account.server.log.PicaLogUtils;
import com.pica.cloud.account.account.server.req.RegisterReq; import com.pica.cloud.account.account.server.req.RegisterReq;
import com.pica.cloud.account.account.server.service.*; import com.pica.cloud.account.account.server.service.*;
import com.pica.cloud.account.account.server.util.AccountUtils; import com.pica.cloud.account.account.server.util.AccountUtils;
...@@ -54,7 +55,6 @@ public class LoginController extends AccountBaseController { ...@@ -54,7 +55,6 @@ public class LoginController extends AccountBaseController {
@Autowired @Autowired
private AccountUtils accountUtils; private AccountUtils accountUtils;
@ApiOperation("登录接口") @ApiOperation("登录接口")
@PostMapping("/login") @PostMapping("/login")
public PicaResponse<String> loginByPassword(@RequestBody String params) throws Exception { public PicaResponse<String> loginByPassword(@RequestBody String params) throws Exception {
...@@ -230,7 +230,9 @@ public class LoginController extends AccountBaseController { ...@@ -230,7 +230,9 @@ public class LoginController extends AccountBaseController {
account.setCreatTime(new Date()); account.setCreatTime(new Date());
account.setRegisterSource(super.getSourceType()); account.setRegisterSource(super.getSourceType());
String newToken = tokenUtils.generateToken(account); String newToken = tokenUtils.generateToken(account);
AccountUser accountUser = cacheClient.getToken(newToken, AccountUser.class); AccountUser accountUser = cacheClient.getToken(newToken, AccountUser.class);
accountUser.setLoginFrom(super.getSourceType()); accountUser.setLoginFrom(super.getSourceType());
accountUser.setLoginPlatform(super.getProductType()); accountUser.setLoginPlatform(super.getProductType());
accountUser.setLoginIp(super.getIpAddr()); accountUser.setLoginIp(super.getIpAddr());
......
package com.pica.cloud.account.account.server.entity; package com.pica.cloud.account.account.server.entity;
import com.pica.cloud.account.account.server.log.PicaLogEntity;
import java.util.Date; import java.util.Date;
public class AccountInfo { public class AccountInfo extends PicaLogEntity {
private Long id; private Long id;
private String password; private String password;
......
package com.pica.cloud.account.account.server.entity; package com.pica.cloud.account.account.server.entity;
import com.pica.cloud.account.account.server.log.PicaLogEntity;
import java.util.Date; import java.util.Date;
public class LogPasswordModify { public class LogPasswordModify extends PicaLogEntity {
private Long id; private Long id;
......
package com.pica.cloud.account.account.server.entity; package com.pica.cloud.account.account.server.entity;
import com.pica.cloud.account.account.server.log.PicaLogEntity;
import java.util.Date; import java.util.Date;
public class LoginLog { public class LoginLog extends PicaLogEntity {
public LoginLog() { public LoginLog() {
this.loginTime = new Date(); this.loginTime = new Date();
...@@ -86,8 +88,9 @@ public class LoginLog { ...@@ -86,8 +88,9 @@ public class LoginLog {
return loginType; return loginType;
} }
public void setLoginType(Integer loginType) { public LoginLog setLoginType(Integer loginType) {
this.loginType = loginType; this.loginType = loginType;
return this;
} }
public String getLoginIp() { public String getLoginIp() {
...@@ -102,16 +105,17 @@ public class LoginLog { ...@@ -102,16 +105,17 @@ public class LoginLog {
return loginPlatform; return loginPlatform;
} }
public void setLoginPlatform(Integer loginPlatform) { public LoginLog setLoginPlatform(Integer loginPlatform) {
this.loginPlatform = loginPlatform; this.loginPlatform = loginPlatform;
return this;
} }
public Integer getLoginStatus() { public Integer getLoginStatus() {
return loginStatus; return loginStatus;
} }
public void setLoginStatus(Integer loginStatus) { public void setLoginStatus(Integer loginStatus) {
this.loginStatus = loginStatus; this.loginStatus = loginStatus;
} }
public Integer getCreateId() { public Integer getCreateId() {
......
...@@ -32,10 +32,14 @@ public enum EnumsType { ...@@ -32,10 +32,14 @@ public enum EnumsType {
SYSCODE_TYPE_RESET_PASSWORD(4, "重置密码"), SYSCODE_TYPE_RESET_PASSWORD(4, "重置密码"),
//联合登录类型 //联合登录类型
UNION_LOGIN_WE_CHAT(1,"微信"), UNION_LOGIN_WE_CHAT(1, "微信"),
UNION_LOGIN_QQ(2,"QQ"), UNION_LOGIN_QQ(2, "QQ"),
union_login_blog(3,"微博"); union_login_blog(3, "微博"),
//日志类型枚举
LOG_TYPE_LOGIN(1, "登录日志"),
LOG_TYPE_PASSWORD(2, "密码更新日志"),
LOG_TYPE_USER_INFO(3, "用户信息更新日志");
private int code; private int code;
private String type; private String type;
......
package com.pica.cloud.account.account.server.log;
/**
* 日志记录
*/
public class PicaLogEntity {
//标记当前记录的是哪种日志
private int logType;
public int getLogType() {
return logType;
}
public void setLogType(int logType) {
this.logType = logType;
}
}
package com.pica.cloud.account.account.server.log;
import com.pica.cloud.account.account.server.entity.AccountInfo;
import com.pica.cloud.account.account.server.entity.LogPasswordModify;
import com.pica.cloud.account.account.server.entity.LoginLog;
import com.pica.cloud.account.account.server.enums.EnumsType;
import com.pica.cloud.account.account.server.mapper.AccountDetailsMapper;
import com.pica.cloud.account.account.server.mapper.LogPwdModifyMapper;
import com.pica.cloud.account.account.server.mapper.LogLoginMapper;
import org.springframework.beans.factory.annotation.Autowired;
public class PicaLogTask implements Runnable {
@Autowired
private LogLoginMapper loginLogMapper;
@Autowired
private LogPwdModifyMapper logPasswordModifyMapper;
@Autowired
private AccountDetailsMapper accountDetailsMapper;
/**
* 日志类型
*/
private int type;
/**
* 日志内容
*/
private PicaLogEntity picaLogEntity;
PicaLogTask(PicaLogEntity picaLogEntity) {
this.picaLogEntity = picaLogEntity;
type = picaLogEntity.getLogType();
}
@Override
public void run() {
if (type == EnumsType.LOG_TYPE_LOGIN.getCode()) {
loginLogMapper.insertSelective((LoginLog) picaLogEntity);
} else if (type == EnumsType.LOG_TYPE_PASSWORD.getCode()) {
logPasswordModifyMapper.insertSelective((LogPasswordModify) picaLogEntity);
} else if (type == EnumsType.LOG_TYPE_USER_INFO.getCode()) {
accountDetailsMapper.insertSelective((AccountInfo) picaLogEntity);
}
}
}
package com.pica.cloud.account.account.server.log;
import org.springframework.stereotype.Component;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
@Component
public class PicaLogUtils {
/**
* 开启一个线程池
*/
ExecutorService executor = Executors.newFixedThreadPool(30);
/**
* 日志记录方法
*
* @param picaLogEntity
*/
public void info(PicaLogEntity picaLogEntity) {
executor.submit(new PicaLogTask(picaLogEntity));
}
}
...@@ -3,7 +3,7 @@ package com.pica.cloud.account.account.server.mapper; ...@@ -3,7 +3,7 @@ package com.pica.cloud.account.account.server.mapper;
import com.pica.cloud.account.account.server.entity.LoginLog; import com.pica.cloud.account.account.server.entity.LoginLog;
public interface LoginLogMapper { public interface LogLoginMapper {
int insert(LoginLog record); int insert(LoginLog record);
......
...@@ -3,7 +3,7 @@ package com.pica.cloud.account.account.server.mapper; ...@@ -3,7 +3,7 @@ package com.pica.cloud.account.account.server.mapper;
import com.pica.cloud.account.account.server.entity.LogPasswordModify; import com.pica.cloud.account.account.server.entity.LogPasswordModify;
public interface LogPasswordModifyMapper { public interface LogPwdModifyMapper {
int deleteByPrimaryKey(Long id); int deleteByPrimaryKey(Long id);
int insert(LogPasswordModify record); int insert(LogPasswordModify record);
......
...@@ -4,8 +4,9 @@ import com.pica.cloud.account.account.server.entity.AccountContact; ...@@ -4,8 +4,9 @@ import com.pica.cloud.account.account.server.entity.AccountContact;
import com.pica.cloud.account.account.server.entity.AccountInfo; import com.pica.cloud.account.account.server.entity.AccountInfo;
import com.pica.cloud.account.account.server.entity.AccountUser; import com.pica.cloud.account.account.server.entity.AccountUser;
import com.pica.cloud.account.account.server.entity.LoginLog; import com.pica.cloud.account.account.server.entity.LoginLog;
import com.pica.cloud.account.account.server.enums.EnumsType;
import com.pica.cloud.account.account.server.log.PicaLogUtils;
import com.pica.cloud.account.account.server.mapper.AccountDetailsMapper; import com.pica.cloud.account.account.server.mapper.AccountDetailsMapper;
import com.pica.cloud.account.account.server.mapper.LoginLogMapper;
import com.pica.cloud.account.account.server.service.AccountContactService; import com.pica.cloud.account.account.server.service.AccountContactService;
import com.pica.cloud.account.account.server.service.AccountLoginService; import com.pica.cloud.account.account.server.service.AccountLoginService;
import com.pica.cloud.account.account.server.util.AccountUtils; import com.pica.cloud.account.account.server.util.AccountUtils;
...@@ -16,19 +17,23 @@ import org.springframework.stereotype.Service; ...@@ -16,19 +17,23 @@ import org.springframework.stereotype.Service;
@Service @Service
public class AccountLoginServiceImpl implements AccountLoginService { public class AccountLoginServiceImpl implements AccountLoginService {
@Autowired
private LoginLogMapper loginLogMapper;
@Autowired @Autowired
private AccountContactService accountContactServer; private AccountContactService accountContactServer;
@Autowired @Autowired
private AccountDetailsMapper accountDetailsMapper; private AccountDetailsMapper accountDetailsMapper;
@Autowired
private PicaLogUtils picaLogUtils;
@Override @Override
public void insertLoginLog(AccountUser accountUser, Integer loginType, Integer status) { public void insertLoginLog(AccountUser accountUser, Integer loginType, Integer status) {
LoginLog loginLog = AccountUtils.getLoginLog(accountUser); LoginLog loginLog = AccountUtils.getLoginLog(accountUser);
loginLog.setLoginStatus(status); loginLog.setLoginStatus(status);
loginLog.setLoginType(loginType); loginLog.setLoginType(loginType);
loginLogMapper.insertSelective(loginLog); loginLog.setLogType(EnumsType.LOG_TYPE_LOGIN.getCode());
picaLogUtils.info(loginLog);
// loginLogMapper.insertSelective(loginLog);
} }
@Override @Override
......
...@@ -6,7 +6,7 @@ import com.pica.cloud.account.account.server.entity.AccountInfo; ...@@ -6,7 +6,7 @@ import com.pica.cloud.account.account.server.entity.AccountInfo;
import com.pica.cloud.account.account.server.entity.LogPasswordModify; import com.pica.cloud.account.account.server.entity.LogPasswordModify;
import com.pica.cloud.account.account.server.mapper.AccountContactMapper; import com.pica.cloud.account.account.server.mapper.AccountContactMapper;
import com.pica.cloud.account.account.server.mapper.AccountDetailsMapper; import com.pica.cloud.account.account.server.mapper.AccountDetailsMapper;
import com.pica.cloud.account.account.server.mapper.LogPasswordModifyMapper; import com.pica.cloud.account.account.server.mapper.LogPwdModifyMapper;
import com.pica.cloud.account.account.server.req.ForgetPasswordReq; import com.pica.cloud.account.account.server.req.ForgetPasswordReq;
import com.pica.cloud.account.account.server.req.PasswordReq; import com.pica.cloud.account.account.server.req.PasswordReq;
import com.pica.cloud.account.account.server.service.PasswordService; import com.pica.cloud.account.account.server.service.PasswordService;
...@@ -21,7 +21,7 @@ public class PasswordServiceImpl implements PasswordService { ...@@ -21,7 +21,7 @@ public class PasswordServiceImpl implements PasswordService {
private AccountDetailsMapper accountDetailsMapper; private AccountDetailsMapper accountDetailsMapper;
@Autowired @Autowired
private LogPasswordModifyMapper logPasswordModifyMapper; private LogPwdModifyMapper logPasswordModifyMapper;
@Autowired @Autowired
private AccountContactMapper accountContactMapper; private AccountContactMapper accountContactMapper;
......
...@@ -107,8 +107,8 @@ public class AccountUtils { ...@@ -107,8 +107,8 @@ public class AccountUtils {
* @return * @return
*/ */
public static <T> T getRequestEntity(String params, Class<T> zClass) throws Exception { public static <T> T getRequestEntity(String params, Class<T> zClass) throws Exception {
// String json = RSAUtils.decryptByPrivateKey(params,RSAUtils.PRIVATE_KEY); String json = EncryptCreateUtil.dencrypt(params);
return JSONObject.parseObject(params, zClass); return JSONObject.parseObject(json, zClass);
} }
/** /**
......
package com.pica.cloud.account.account.server.util;
import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;
import java.security.MessageDigest;
public class BASE64Utils {
public static final String KEY_SHA = "SHA";
public static final String KEY_MD5 = "MD5";
/**
* BASE64解密
*
* @param key
* @return
* @throws Exception
*/
public static byte[] decryptBASE64(String key) throws Exception {
return (new BASE64Decoder()).decodeBuffer(key);
}
/**
* BASE64加密
*
* @param key
* @return
* @throws Exception
*/
public static String encryptBASE64(byte[] key) throws Exception {
return (new BASE64Encoder()).encodeBuffer(key);
}
/**
* MD5加密
*
* @param data
* @return
* @throws Exception
*/
public static byte[] encryptMD5(byte[] data) throws Exception {
MessageDigest md5 = MessageDigest.getInstance(KEY_MD5);
md5.update(data);
return md5.digest();
}
/**
* SHA加密
*
* @param data
* @return
* @throws Exception
*/
public static byte[] encryptSHA(byte[] data) throws Exception {
MessageDigest sha = MessageDigest.getInstance(KEY_SHA);
sha.update(data);
return sha.digest();
}
}
<?xml version="1.0" encoding="UTF-8" ?> <?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.pica.cloud.account.account.server.mapper.LogPasswordModifyMapper" > <mapper namespace="com.pica.cloud.account.account.server.mapper.LogPwdModifyMapper" >
<resultMap id="BaseResultMap" type="com.pica.cloud.account.account.server.entity.LogPasswordModify" > <resultMap id="BaseResultMap" type="com.pica.cloud.account.account.server.entity.LogPasswordModify" >
<id column="id" property="id" jdbcType="BIGINT" /> <id column="id" property="id" jdbcType="BIGINT" />
<result column="mobile_phone" property="mobilePhone" jdbcType="VARCHAR" /> <result column="mobile_phone" property="mobilePhone" jdbcType="VARCHAR" />
......
<?xml version="1.0" encoding="UTF-8" ?> <?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.pica.cloud.account.account.server.mapper.LoginLogMapper" > <mapper namespace="com.pica.cloud.account.account.server.mapper.LogLoginMapper" >
<resultMap id="BaseResultMap" type="com.pica.cloud.account.account.server.entity.LoginLog" > <resultMap id="BaseResultMap" type="com.pica.cloud.account.account.server.entity.LoginLog" >
<id column="id" property="id" jdbcType="INTEGER" /> <id column="id" property="id" jdbcType="INTEGER" />
<result column="acct_id" property="acctId" jdbcType="INTEGER" /> <result column="acct_id" property="acctId" jdbcType="INTEGER" />
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册