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

fix an issue.

parent 255ec988
...@@ -44,9 +44,22 @@ public interface ISessionService { ...@@ -44,9 +44,22 @@ public interface ISessionService {
* @param user - 登录用户 * @param user - 登录用户
* @param loginProperties - 登录参数 * @param loginProperties - 登录参数
* @param ordinal - 登录方式 * @param ordinal - 登录方式
* @return * @return AuthBean
*/ */
AuthBean createSession(User user, LoginProperties loginProperties, int ordinal,Integer tenantId); 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 { ...@@ -64,6 +64,10 @@ public class SessionServiceImpl implements ISessionService {
*/ */
@Override @Override
public AuthBean createSession(User user, LoginProperties properties, int loginType, Integer tenantId) { 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 //TODO: 使用userId
String sessionId = findSessionIdByUserIdLoginProperties(user.getId(), properties, tenantId); String sessionId = findSessionIdByUserIdLoginProperties(user.getId(), properties, tenantId);
...@@ -91,13 +95,16 @@ public class SessionServiceImpl implements ISessionService { ...@@ -91,13 +95,16 @@ public class SessionServiceImpl implements ISessionService {
// 添加登陆日志 // 添加登陆日志
loginRecordService.saveLoginRecord(user.getId(), RecordType.LOGINRECORD.getName(), loginType); loginRecordService.saveLoginRecord(user.getId(), RecordType.LOGINRECORD.getName(), loginType);
if(send){
//更新user_tag记录 //更新user_tag记录
applicationEventPublisher.publishEvent(new UserLoginEvent(this, UserTag.builder() applicationEventPublisher.publishEvent(new UserLoginEvent(this, UserTag.builder()
.userId(user.getId()).registeredFrom(sessionStruct.getRegisteredFrom()).tenantId(user.getTenantId()).build())); .userId(user.getId()).registeredFrom(sessionStruct.getRegisteredFrom()).tenantId(user.getTenantId()).build()));
}
return authBean; return authBean;
} }
@Override @Override
public SessionStruct createSessionAndPersist(User user, LoginProperties properties, Integer tenantId) { public SessionStruct createSessionAndPersist(User user, LoginProperties properties, Integer tenantId) {
SessionStruct sessionStruct; SessionStruct sessionStruct;
......
...@@ -95,7 +95,7 @@ public class PhonePasswordLoginStrategy implements LoginStrategy { ...@@ -95,7 +95,7 @@ public class PhonePasswordLoginStrategy implements LoginStrategy {
lockIpv4Service.unLockPhone(phonePasswordLoginParam.getPhone()); lockIpv4Service.unLockPhone(phonePasswordLoginParam.getPhone());
LoginProperties loginProperties = new LoginProperties(1, sessionStruct.getRegisteredFrom(),sessionStruct.getTenantId()); 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(); LoginBean loginBean = new LoginBean();
if (authBean != null) { if (authBean != null) {
authBean.setRegister(false); authBean.setRegister(false);
......
...@@ -126,7 +126,7 @@ public class SMSDirectJiLoginStrategy implements LoginStrategy { ...@@ -126,7 +126,7 @@ public class SMSDirectJiLoginStrategy implements LoginStrategy {
LoginProperties loginProperties = new LoginProperties(1, sessionStruct.getRegisteredFrom(), sessionStruct.getTenantId()); 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(); LoginBean loginBean = new LoginBean();
if (authBean != null) { if (authBean != null) {
loginBean.setToken(authBean.getToken()); loginBean.setToken(authBean.getToken());
......
...@@ -116,7 +116,7 @@ public class SMSLoginStrategy implements LoginStrategy { ...@@ -116,7 +116,7 @@ public class SMSLoginStrategy implements LoginStrategy {
LoginProperties loginProperties = new LoginProperties(1, sessionStruct.getRegisteredFrom(), sessionStruct.getTenantId()); 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(); LoginBean loginBean = new LoginBean();
if (authBean != null) { if (authBean != null) {
loginBean.setToken(authBean.getToken()); loginBean.setToken(authBean.getToken());
......
...@@ -114,7 +114,7 @@ public class WechatMiniLoginStrategy implements LoginStrategy { ...@@ -114,7 +114,7 @@ public class WechatMiniLoginStrategy implements LoginStrategy {
LoginProperties loginProperties = new LoginProperties(1, sessionStruct.getRegisteredFrom(), sessionStruct.getTenantId()); LoginProperties loginProperties = new LoginProperties(1, sessionStruct.getRegisteredFrom(), sessionStruct.getTenantId());
AuthBean authBean = null; AuthBean authBean = null;
if (user != 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 //TODO:需要针对微信登录用户签发token
LoginBean loginBean = new LoginBean(); LoginBean loginBean = new LoginBean();
......
...@@ -141,7 +141,7 @@ public class WechatMiniPhoneLoginStrategy implements LoginStrategy { ...@@ -141,7 +141,7 @@ public class WechatMiniPhoneLoginStrategy implements LoginStrategy {
} }
LoginProperties loginProperties = new LoginProperties(1, sessionStruct.getRegisteredFrom(), sessionStruct.getTenantId()); 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(); LoginBean loginBean = new LoginBean();
if (authBean != null) { if (authBean != null) {
loginBean.setToken(authBean.getToken()); 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