Commit 01e0cadc authored by 王亮's avatar 王亮

fix an issue.

parent 255ec988
......@@ -44,9 +44,22 @@ public interface ISessionService {
* @param user - 登录用户
* @param loginProperties - 登录参数
* @param ordinal - 登录方式
* @return
* @return AuthBean
*/
AuthBean createSession(User user, LoginProperties loginProperties, int ordinal,Integer tenantId);
/**
* 更新session
* 用户信息存在,更新session中的最后访问时间,重新写入缓存.
* 存在则保存用户session信息,userId为uuid
*
* @param user 用户表
* @param loginProperties 登录信息
* @param ordinal 登录类型
* @param tenantId 租户id
* @param send 是否发送登录成功消息
* @return AuthBean
*/
AuthBean createSession(User user, LoginProperties loginProperties, int ordinal,Integer tenantId,boolean send);
}
......@@ -64,6 +64,10 @@ public class SessionServiceImpl implements ISessionService {
*/
@Override
public AuthBean createSession(User user, LoginProperties properties, int loginType, Integer tenantId) {
return this.createSession(user,properties,loginType,tenantId,true);
}
public AuthBean createSession(User user, LoginProperties properties, int loginType,Integer tenantId,boolean send){
//找到用户
//TODO: 使用userId
String sessionId = findSessionIdByUserIdLoginProperties(user.getId(), properties, tenantId);
......@@ -91,13 +95,16 @@ public class SessionServiceImpl implements ISessionService {
// 添加登陆日志
loginRecordService.saveLoginRecord(user.getId(), RecordType.LOGINRECORD.getName(), loginType);
//更新user_tag记录
applicationEventPublisher.publishEvent(new UserLoginEvent(this, UserTag.builder()
.userId(user.getId()).registeredFrom(sessionStruct.getRegisteredFrom()).tenantId(user.getTenantId()).build()));
if(send){
//更新user_tag记录
applicationEventPublisher.publishEvent(new UserLoginEvent(this, UserTag.builder()
.userId(user.getId()).registeredFrom(sessionStruct.getRegisteredFrom()).tenantId(user.getTenantId()).build()));
}
return authBean;
}
@Override
public SessionStruct createSessionAndPersist(User user, LoginProperties properties, Integer tenantId) {
SessionStruct sessionStruct;
......
......@@ -95,7 +95,7 @@ public class PhonePasswordLoginStrategy implements LoginStrategy {
lockIpv4Service.unLockPhone(phonePasswordLoginParam.getPhone());
LoginProperties loginProperties = new LoginProperties(1, sessionStruct.getRegisteredFrom(),sessionStruct.getTenantId());
AuthBean authBean = sessionService.createSession(user, loginProperties, LoginType.ACCOUNTPASSWORD.ordinal(),sessionStruct.getTenantId());
AuthBean authBean = sessionService.createSession(user, loginProperties, LoginType.ACCOUNTPASSWORD.ordinal(),sessionStruct.getTenantId(),false);
LoginBean loginBean = new LoginBean();
if (authBean != null) {
authBean.setRegister(false);
......
......@@ -126,7 +126,7 @@ public class SMSDirectJiLoginStrategy implements LoginStrategy {
LoginProperties loginProperties = new LoginProperties(1, sessionStruct.getRegisteredFrom(), sessionStruct.getTenantId());
AuthBean authBean = sessionService.createSession(user, loginProperties, LoginType.AUTHLOGIN.ordinal(), sessionStruct.getTenantId());
AuthBean authBean = sessionService.createSession(user, loginProperties, LoginType.AUTHLOGIN.ordinal(), sessionStruct.getTenantId(),false);
LoginBean loginBean = new LoginBean();
if (authBean != null) {
loginBean.setToken(authBean.getToken());
......
......@@ -116,7 +116,7 @@ public class SMSLoginStrategy implements LoginStrategy {
LoginProperties loginProperties = new LoginProperties(1, sessionStruct.getRegisteredFrom(), sessionStruct.getTenantId());
AuthBean authBean = sessionService.createSession(user, loginProperties, LoginType.VERIFICATIONCODE.ordinal(), sessionStruct.getTenantId());
AuthBean authBean = sessionService.createSession(user, loginProperties, LoginType.VERIFICATIONCODE.ordinal(), sessionStruct.getTenantId(),false);
LoginBean loginBean = new LoginBean();
if (authBean != null) {
loginBean.setToken(authBean.getToken());
......
......@@ -114,7 +114,7 @@ public class WechatMiniLoginStrategy implements LoginStrategy {
LoginProperties loginProperties = new LoginProperties(1, sessionStruct.getRegisteredFrom(), sessionStruct.getTenantId());
AuthBean authBean = null;
if (user != null) {
authBean = sessionService.createSession(user, loginProperties, LoginType.WECHATLOGIN.ordinal(), sessionStruct.getTenantId());
authBean = sessionService.createSession(user, loginProperties, LoginType.WECHATLOGIN.ordinal(), sessionStruct.getTenantId(),false);
}
//TODO:需要针对微信登录用户签发token
LoginBean loginBean = new LoginBean();
......
......@@ -141,7 +141,7 @@ public class WechatMiniPhoneLoginStrategy implements LoginStrategy {
}
LoginProperties loginProperties = new LoginProperties(1, sessionStruct.getRegisteredFrom(), sessionStruct.getTenantId());
AuthBean authBean = sessionService.createSession(user, loginProperties, LoginType.WECHATLOGIN.ordinal(), sessionStruct.getTenantId());
AuthBean authBean = sessionService.createSession(user, loginProperties, LoginType.WECHATLOGIN.ordinal(), sessionStruct.getTenantId(),false);
LoginBean loginBean = new LoginBean();
if (authBean != null) {
loginBean.setToken(authBean.getToken());
......
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