Commit 58c66812 authored by 李健华's avatar 李健华

kdsp添加登陆注册日志

parent b6808b8e
package cn.quantgroup.user.enums;
/**
* Created by FrankChow on 15/7/15.
*/
public enum RecordType {
LOGINRECORD("login"),
REGISTERRECORD("register");
private String name;
RecordType(String name) {
this.name = name;
}
public String getName() {
return name;
}
@Override
public String toString() {
return name;
}
}
package cn.quantgroup.xyqb.entity;
import lombok.Data;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import java.io.Serializable;
/**
* Created by 11 on 2017/3/22.
*/
@Data
@Entity
@Table(name = "login_record")
public class LoginRecord extends BaseEntity implements Serializable {
@Column(name = "user_id")
private Long userId;
@Column(name = "type")
private String type;
@Column(name = "qg_tenant_id")
private Long qgTenantId;
@Column(name = "vcc_channel")
private Long vccChannel;
@Column(name = "user_terminal")
private String userTerminal;
@Column(name = "ip")
private String ip;
@Column(name = "app_name")
private String appName;
@Column(name = "version")
private String version;
@Column(name = "user_agent")
private String userAgent;
@Column(name = "device_id")
private String deviceId;
@Column(name = "app_channel")
private String appChannel;
}
package cn.quantgroup.xyqb.repository;
import cn.quantgroup.xyqb.entity.LoginRecord;
import cn.quantgroup.xyqb.entity.User;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
public interface ILoginRecordRepository extends JpaRepository<LoginRecord, Long>, JpaSpecificationExecutor<LoginRecord> {
}
package cn.quantgroup.xyqb.service.register.impl;
import cn.quantgroup.user.enums.RecordType;
import cn.quantgroup.xyqb.Constants;
import cn.quantgroup.xyqb.entity.Address;
import cn.quantgroup.xyqb.entity.Contact;
......@@ -10,6 +11,7 @@ import cn.quantgroup.xyqb.exception.UserRegisterLoginException;
import cn.quantgroup.xyqb.model.UserRegisterParam;
import cn.quantgroup.xyqb.service.register.IUserDeregisterService;
import cn.quantgroup.xyqb.service.register.IUserRegisterService;
import cn.quantgroup.xyqb.service.user.ILoginRecordService;
import cn.quantgroup.xyqb.service.user.IUserService;
import cn.quantgroup.xyqb.util.DateUtils;
import cn.quantgroup.xyqb.util.PasswordUtil;
......@@ -40,6 +42,9 @@ public class UserRegisterServiceImpl implements IUserRegisterService {
@Resource
private IUserService userService;
@Resource
private ILoginRecordService loginRecordService;
@Resource
private IUserDeregisterService userDeregisterService;
......@@ -155,6 +160,9 @@ public class UserRegisterServiceImpl implements IUserRegisterService {
user.setPassword(PasswordUtil.MD5WithSalt(password));
}
user = userService.saveUser(user);
// 注册添加日志
loginRecordService.saveLoginRecord(user.getId(), RecordType.REGISTERRECORD.getName());
userRegisterParam.setUser(user);
return user;
}
......
package cn.quantgroup.xyqb.service.session.impl;
import cn.quantgroup.user.enums.RecordType;
import cn.quantgroup.xyqb.Constants;
import cn.quantgroup.xyqb.entity.User;
import cn.quantgroup.xyqb.model.AuthBean;
......@@ -9,6 +10,7 @@ import cn.quantgroup.xyqb.model.session.SessionStruct;
import cn.quantgroup.xyqb.model.session.SessionValue;
import cn.quantgroup.xyqb.service.session.ISessionService;
import cn.quantgroup.xyqb.service.session.aspect.UserBtRegisterFill;
import cn.quantgroup.xyqb.service.user.ILoginRecordService;
import cn.quantgroup.xyqb.util.MqUtils;
import cn.quantgroup.xyqb.util.TenantUtil;
import com.alibaba.fastjson.JSON;
......@@ -21,8 +23,11 @@ import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import org.springframework.util.ObjectUtils;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.sql.Timestamp;
import java.util.*;
import java.util.concurrent.TimeUnit;
......@@ -38,6 +43,9 @@ public class SessionServiceImpl implements ISessionService {
@Resource
private RedisTemplate<String, String> stringRedisTemplate;
@Resource
private ILoginRecordService loginRecordService;
@Value("${token.prefix}")
private String prefix;
......@@ -74,6 +82,10 @@ public class SessionServiceImpl implements ISessionService {
authBean.setUuid(uuid);
authBean.setHasPassword(user.getHasPassword());
log.info("用户登录成功, loginFrom:{}, phoneNo:{},appChannel:{},channelId:{}", properties.getCreatedFrom(), user.getPhoneNo(), properties.getAppChannel(), properties.getChannelId());
// 添加登陆日志
loginRecordService.saveLoginRecord(user.getId(), RecordType.LOGINRECORD.getName());
return authBean;
}
......
package cn.quantgroup.xyqb.service.user;
import cn.quantgroup.user.enums.RecordType;
import cn.quantgroup.xyqb.controller.internal.user.resp.UserFullResp;
import cn.quantgroup.xyqb.entity.Merchant;
import cn.quantgroup.xyqb.entity.User;
import cn.quantgroup.xyqb.model.JsonResult;
import cn.quantgroup.xyqb.model.LoginProperties;
import cn.quantgroup.xyqb.model.UserInfo;
import javax.servlet.http.HttpServletRequest;
import java.util.List;
import java.util.Map;
/**
* Created by Miraculous on 15/7/5.
*/
public interface ILoginRecordService {
void saveLoginRecord(Long id, String name);
}
package cn.quantgroup.xyqb.service.user.impl;
import cn.quantgroup.tech.db.DSType;
import cn.quantgroup.tech.db.TargetDataSource;
import cn.quantgroup.user.enums.BizType;
import cn.quantgroup.user.enums.IncomeRangeEnum;
import cn.quantgroup.xyqb.Constants;
import cn.quantgroup.xyqb.aspect.lock.RedisLock;
import cn.quantgroup.xyqb.controller.IBaseController;
import cn.quantgroup.xyqb.controller.internal.user.resp.UserFullResp;
import cn.quantgroup.xyqb.entity.*;
import cn.quantgroup.xyqb.event.PhoneNoUpdateEvent;
import cn.quantgroup.xyqb.exception.DataException;
import cn.quantgroup.xyqb.exception.UserNotExistException;
import cn.quantgroup.xyqb.exception.UserRegisterLoginException;
import cn.quantgroup.xyqb.model.*;
import cn.quantgroup.xyqb.repository.*;
import cn.quantgroup.xyqb.service.register.IUserDeregisterService;
import cn.quantgroup.xyqb.service.register.IUserRegisterService;
import cn.quantgroup.xyqb.service.session.ISessionService;
import cn.quantgroup.xyqb.service.user.*;
import cn.quantgroup.xyqb.service.wechat.IWechatService;
import cn.quantgroup.xyqb.util.*;
import com.alibaba.fastjson.JSON;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.sensorsdata.analytics.javasdk.ISensorsAnalytics;
import com.sensorsdata.analytics.javasdk.bean.EventRecord;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cache.annotation.CacheEvict;
import org.springframework.cache.annotation.Caching;
import org.springframework.context.ApplicationEventPublisher;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.util.*;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
/**
* Created by Miraculous on 15/7/5.
*/
@Service
@Slf4j
public class LoginRecordServiceImpl implements ILoginRecordService, IBaseController {
@Autowired
private ILoginRecordRepository loginRecordRepository;
@Override
public void saveLoginRecord(Long userId, String name) {
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
LoginRecord loginRecord = new LoginRecord();
loginRecord.setUserId(userId);
loginRecord.setType(name);
String qgTenantId = request.getHeader("qg-tenant-id");
String vccChannel = request.getHeader("vccChannel");
if (null != qgTenantId && !"".equals(qgTenantId)) {
loginRecord.setQgTenantId(Long.parseLong(qgTenantId));
}
if (null != vccChannel && !"".equals(vccChannel)) {
loginRecord.setVccChannel(Long.parseLong(vccChannel));
}
loginRecord.setUserTerminal(request.getHeader("x-user-terminal"));
loginRecord.setIp(request.getHeader("x-original-client-ip"));
loginRecord.setAppName(request.getHeader("appName"));
loginRecord.setVersion(request.getHeader("version"));
loginRecord.setUserAgent(request.getHeader("User-Agent"));
loginRecord.setDeviceId(request.getHeader("scDeviceId"));
loginRecord.setAppChannel(request.getHeader("appChannel"));
loginRecordRepository.saveAndFlush(loginRecord);
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment