Commit 17690c4a authored by 李健华's avatar 李健华

修改登录注解拦截器的事件发送,修改注册个别方法的事件发送

parent 9cb811a7
...@@ -3,22 +3,21 @@ package cn.quantgroup.xyqb.aspect.captcha; ...@@ -3,22 +3,21 @@ package cn.quantgroup.xyqb.aspect.captcha;
import cn.qg.ec.model.base.BusinessEventBaseInfo; import cn.qg.ec.model.base.BusinessEventBaseInfo;
import cn.qg.ec.model.user.UserLoginRegEvent; import cn.qg.ec.model.user.UserLoginRegEvent;
import cn.quantgroup.xyqb.entity.User; import cn.quantgroup.xyqb.entity.User;
import cn.quantgroup.xyqb.model.AuthBean;
import cn.quantgroup.xyqb.risk.entity.CountDevice;
import cn.quantgroup.xyqb.entity.enums.Device; import cn.quantgroup.xyqb.entity.enums.Device;
import cn.quantgroup.xyqb.entity.enums.KeyType; import cn.quantgroup.xyqb.entity.enums.KeyType;
import cn.quantgroup.xyqb.model.AuthBean;
import cn.quantgroup.xyqb.model.JsonResult; import cn.quantgroup.xyqb.model.JsonResult;
import cn.quantgroup.xyqb.model.LoginRefuseResult; import cn.quantgroup.xyqb.model.LoginRefuseResult;
import cn.quantgroup.xyqb.risk.entity.CountDevice;
import cn.quantgroup.xyqb.risk.entity.LoginInfo; import cn.quantgroup.xyqb.risk.entity.LoginInfo;
import cn.quantgroup.xyqb.risk.repository.LoginInfoRepository; import cn.quantgroup.xyqb.risk.repository.LoginInfoRepository;
import cn.quantgroup.xyqb.risk.repository.WhiteListRepository; import cn.quantgroup.xyqb.risk.repository.WhiteListRepository;
import cn.quantgroup.xyqb.risk.uereventcollecting.UserEventCollectingUtil; import cn.quantgroup.xyqb.risk.uereventcollecting.UserEventCollectingUtil;
import cn.quantgroup.xyqb.service.user.IUserService; import cn.quantgroup.xyqb.service.user.IUserService;
import cn.quantgroup.xyqb.service.user.impl.UserServiceImpl; import cn.quantgroup.xyqb.util.TenantUtil;
import cn.quantgroup.xyqb.util.encrypt.Md5Util; import cn.quantgroup.xyqb.util.encrypt.Md5Util;
import com.amazonaws.util.Md5Utils; import com.alibaba.fastjson.JSON;
import com.google.common.collect.Maps; import com.google.common.collect.Maps;
import com.qiniu.util.Md5;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around; import org.aspectj.lang.annotation.Around;
...@@ -26,11 +25,13 @@ import org.aspectj.lang.annotation.Aspect; ...@@ -26,11 +25,13 @@ import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Pointcut; import org.aspectj.lang.annotation.Pointcut;
import org.springframework.core.annotation.Order; import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.springframework.util.StreamUtils;
import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes; import org.springframework.web.context.request.ServletRequestAttributes;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import java.util.HashMap;
import java.util.Map; import java.util.Map;
/** /**
...@@ -89,6 +90,14 @@ public class LoginInterceptorAspect { ...@@ -89,6 +90,14 @@ public class LoginInterceptorAspect {
private Object around(ProceedingJoinPoint pjp) throws Throwable { private Object around(ProceedingJoinPoint pjp) throws Throwable {
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
byte[] bodyBytes = StreamUtils.copyToByteArray(request.getInputStream());
String body = new String(bodyBytes, request.getCharacterEncoding());
Integer tenantId = null;
if (body != null) {
HashMap hashMap = JSON.parseObject(body, HashMap.class);
tenantId = Integer.parseInt(hashMap.get("tenantId").toString());
}
/** /**
* 拿参数 * 拿参数
*/ */
...@@ -115,7 +124,7 @@ public class LoginInterceptorAspect { ...@@ -115,7 +124,7 @@ public class LoginInterceptorAspect {
/** /**
* 尝试登录发一下 * 尝试登录发一下
*/ */
sendEvent(UserLoginRegEvent.SubEventType.user_attempt_login, device, phone, deviceId, realIp, null); sendEvent(UserLoginRegEvent.SubEventType.user_attempt_login, device, phone, deviceId, realIp, null, tenantId);
LoginRefuseResult result = verification(scDeviceId, phone, device); LoginRefuseResult result = verification(scDeviceId, phone, device);
...@@ -133,7 +142,7 @@ public class LoginInterceptorAspect { ...@@ -133,7 +142,7 @@ public class LoginInterceptorAspect {
/** /**
* 保存登录信息 * 保存登录信息
*/ */
saveLoginInfo(phone, device, deviceId, realIp, result, loginResult); saveLoginInfo(phone, device, deviceId, realIp, result, loginResult, tenantId);
} }
return loginResult; return loginResult;
} }
...@@ -226,7 +235,7 @@ public class LoginInterceptorAspect { ...@@ -226,7 +235,7 @@ public class LoginInterceptorAspect {
* @param deviceId * @param deviceId
* @param ip * @param ip
*/ */
private void saveLoginInfo(String phone, Device device, String deviceId, String ip, LoginRefuseResult refuseResult, Object loginResult) { private void saveLoginInfo(String phone, Device device, String deviceId, String ip, LoginRefuseResult refuseResult, Object loginResult, Integer tenantId) {
try { try {
/** /**
* 默认code不需要 * 默认code不需要
...@@ -269,7 +278,7 @@ public class LoginInterceptorAspect { ...@@ -269,7 +278,7 @@ public class LoginInterceptorAspect {
if (loginResult instanceof JsonResult) { if (loginResult instanceof JsonResult) {
if (((JsonResult) loginResult).isSuccess()) { if (((JsonResult) loginResult).isSuccess()) {
info.setIsLogin(Boolean.TRUE); info.setIsLogin(Boolean.TRUE);
sendEvent(UserLoginRegEvent.SubEventType.user_only_login, device, phone, deviceId, ip, loginResult); sendEvent(UserLoginRegEvent.SubEventType.user_only_login, device, phone, deviceId, ip, loginResult, tenantId);
} else { } else {
info.setIsLogin(Boolean.FALSE); info.setIsLogin(Boolean.FALSE);
info.setLoginFailMsg(((JsonResult) loginResult) info.setLoginFailMsg(((JsonResult) loginResult)
...@@ -307,7 +316,7 @@ public class LoginInterceptorAspect { ...@@ -307,7 +316,7 @@ public class LoginInterceptorAspect {
* @param ip * @param ip
* @param loginResult * @param loginResult
*/ */
private void sendEvent(UserLoginRegEvent.SubEventType type, Device device, String phone, String deviceId, String ip, Object loginResult) { private void sendEvent(UserLoginRegEvent.SubEventType type, Device device, String phone, String deviceId, String ip, Object loginResult, Integer tenantId) {
try { try {
if (null == phone) { if (null == phone) {
...@@ -349,7 +358,9 @@ public class LoginInterceptorAspect { ...@@ -349,7 +358,9 @@ public class LoginInterceptorAspect {
baseInfoBuilder.deviceType(device.getCode()); baseInfoBuilder.deviceType(device.getCode());
builder.businessEventBaseInfo(baseInfoBuilder.build()); builder.businessEventBaseInfo(baseInfoBuilder.build());
UserEventCollectingUtil.addEvent(builder.build()); if (tenantId == null || tenantId.equals(TenantUtil.TENANT_DEFAULT)) {
UserEventCollectingUtil.addEvent(builder.build());
}
} catch (Exception e) { } catch (Exception e) {
log.error("发送用户登录事件异常phone:{}", phone); log.error("发送用户登录事件异常phone:{}", phone);
} }
......
...@@ -327,9 +327,7 @@ public class AppController implements IBaseController { ...@@ -327,9 +327,7 @@ public class AppController implements IBaseController {
return JsonResult.buildErrorStateResult("登录失败", null); return JsonResult.buildErrorStateResult("登录失败", null);
} }
//校验租户ID tenantId //校验租户ID tenantId
if (TenantUtil.checkoutTenantIsDefault(tenantId)) { oauthLoginInfoService.addLoginInfo(user, tenantId);
oauthLoginInfoService.addLoginInfo(user, tenantId);
}
LoginProperties loginProperties = new LoginProperties("", 4, channelId, registerFrom, appChannel, null, "", tenantId); LoginProperties loginProperties = new LoginProperties("", 4, channelId, registerFrom, appChannel, null, "", tenantId);
AuthBean bean = sessionService.createSession(user, loginProperties); AuthBean bean = sessionService.createSession(user, loginProperties);
log.info("第三方用户登录成功 [AppController] login2 --> loginFrom:{}, phoneNo:{},appChannel:{}", registerFrom, phoneNo, appChannel); log.info("第三方用户登录成功 [AppController] login2 --> loginFrom:{}, phoneNo:{},appChannel:{}", registerFrom, phoneNo, appChannel);
......
...@@ -332,7 +332,7 @@ public class InnerController implements IBaseController { ...@@ -332,7 +332,7 @@ public class InnerController implements IBaseController {
return JsonResult.buildSuccessResult(null, new UserRet(user)); return JsonResult.buildSuccessResult(null, new UserRet(user));
} }
//注册新用户 //注册新用户
user = userRegisterService.register(registeredFrom, phoneNo, null, null, 0L, 0L); user = userRegisterService.register(registeredFrom, phoneNo, null, null, 0L, 0L, tenantId);
//校验租户ID tenantId //校验租户ID tenantId
iOauthLoginInfoService.addLoginInfo(user, tenantId); iOauthLoginInfoService.addLoginInfo(user, tenantId);
return JsonResult.buildSuccessResult(null, new UserRet(user)); return JsonResult.buildSuccessResult(null, new UserRet(user));
......
...@@ -95,7 +95,7 @@ public class AppletServiceImpl implements IAppletService { ...@@ -95,7 +95,7 @@ public class AppletServiceImpl implements IAppletService {
User user = userService.findByPhoneInDb(appletParamEntry.getMobile()); User user = userService.findByPhoneInDb(appletParamEntry.getMobile());
//如果不存在就去注册一下 //如果不存在就去注册一下
if (null == user) { if (null == user) {
user = iUserRegisterService.register(appletParamEntry.getChannelId(), appletParamEntry.getMobile()); user = iUserRegisterService.register(appletParamEntry.getChannelId(), appletParamEntry.getMobile(), appletParamEntry.getTenantId());
} }
iOauthLoginInfoService.addRegisterInfo(user, appletParamEntry); iOauthLoginInfoService.addRegisterInfo(user, appletParamEntry);
return user.getId(); return user.getId();
......
...@@ -13,6 +13,8 @@ import java.util.List; ...@@ -13,6 +13,8 @@ import java.util.List;
public interface IUserRegisterService { public interface IUserRegisterService {
User register(Long registerFrom, String phoneNo); User register(Long registerFrom, String phoneNo);
User register(Long registerFrom, String phoneNo, Integer tenantId);
/** /**
* 替换AppController.register * 替换AppController.register
* /app/login,/app/login_super * /app/login,/app/login_super
...@@ -27,6 +29,8 @@ public interface IUserRegisterService { ...@@ -27,6 +29,8 @@ public interface IUserRegisterService {
*/ */
User register(Long registerFrom, String phoneNo, String idNo, String name, Long channelId, Long btRegisterChannelId); User register(Long registerFrom, String phoneNo, String idNo, String name, Long channelId, Long btRegisterChannelId);
User register(Long registerFrom, String phoneNo, String idNo, String name, Long channelId, Long btRegisterChannelId, Integer tenantId);
/** /**
* 替换UserController.register里的userService.register * 替换UserController.register里的userService.register
......
...@@ -9,6 +9,7 @@ import cn.quantgroup.xyqb.model.UserRegisterParam; ...@@ -9,6 +9,7 @@ import cn.quantgroup.xyqb.model.UserRegisterParam;
import cn.quantgroup.xyqb.service.register.IUserRegisterService; import cn.quantgroup.xyqb.service.register.IUserRegisterService;
import cn.quantgroup.xyqb.service.user.IUserService; import cn.quantgroup.xyqb.service.user.IUserService;
import cn.quantgroup.xyqb.util.PasswordUtil; import cn.quantgroup.xyqb.util.PasswordUtil;
import cn.quantgroup.xyqb.util.TenantUtil;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.context.ApplicationEventPublisher; import org.springframework.context.ApplicationEventPublisher;
...@@ -16,7 +17,6 @@ import org.springframework.stereotype.Service; ...@@ -16,7 +17,6 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.sql.Timestamp;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
import java.util.UUID; import java.util.UUID;
...@@ -51,6 +51,24 @@ import java.util.UUID; ...@@ -51,6 +51,24 @@ import java.util.UUID;
return user; return user;
} }
@Transactional(rollbackFor = Exception.class)
@Override
public User register(Long registerFrom, String phoneNo, Integer tenantId) {
UserRegisterParam userRegisterParam = UserRegisterParam.builder()
.registerFrom(registerFrom)
.phoneNo(phoneNo)
.channelId(registerFrom)
.sendSuccessSms(true)
.sendAppSms(true)
.sendSuccessMq(true)
.build();
User user = saveUser(userRegisterParam);
if (tenantId == null || tenantId.equals(TenantUtil.TENANT_DEFAULT)) {
applicationEventPublisher.publishEvent(new RegisterEvent(this, userRegisterParam));
}
return user;
}
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
@Override @Override
public User register(Long registerFrom, String phoneNo, String idNo, String name, Long channelId, Long btRegisterChannelId) { public User register(Long registerFrom, String phoneNo, String idNo, String name, Long channelId, Long btRegisterChannelId) {
...@@ -70,6 +88,27 @@ import java.util.UUID; ...@@ -70,6 +88,27 @@ import java.util.UUID;
return user; return user;
} }
@Transactional(rollbackFor = Exception.class)
@Override
public User register(Long registerFrom, String phoneNo, String idNo, String name, Long channelId, Long btRegisterChannelId, Integer tenantId) {
UserRegisterParam userRegisterParam = UserRegisterParam.builder()
.registerFrom(registerFrom)
.phoneNo(phoneNo)
.idNo(idNo)
.name(name)
.channelId(channelId)
.btRegisterChannelId(btRegisterChannelId)
.sendSuccessSms(true)
.sendAppSms(true)
.sendSuccessMq(true)
.build();
User user = saveUser(userRegisterParam);
if (tenantId == null || tenantId.equals(TenantUtil.TENANT_DEFAULT)) {
applicationEventPublisher.publishEvent(new RegisterEvent(this, userRegisterParam));
}
return user;
}
private User saveUser(UserRegisterParam userRegisterParam) { private User saveUser(UserRegisterParam userRegisterParam) {
String uuid = UUID.randomUUID().toString(); String uuid = UUID.randomUUID().toString();
User user = new User(); User user = new User();
......
This source diff could not be displayed because it is too large. You can view the blob instead.
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