|
@@ -24,6 +24,7 @@ import org.springframework.stereotype.Service;
|
|
|
import javax.annotation.Resource;
|
|
|
import java.security.NoSuchAlgorithmException;
|
|
|
import java.util.*;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
* <p>
|
|
@@ -64,9 +65,12 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
|
|
roleTypes.add(s.getType().name());
|
|
|
}
|
|
|
}
|
|
|
- String sessionId = SessionUtil.digest(sysUser.getId(), Math.abs(roleNamesSet.toString().hashCode()), platform.name());
|
|
|
+ List<String> roleNames = new ArrayList<>(roleNamesSet);
|
|
|
+ Collections.sort(roleNames);
|
|
|
+
|
|
|
+ String sessionId = SessionUtil.digest(sysUser.getId(), Math.abs(roleNames.toString().hashCode()), platform.name());
|
|
|
ExpireTimeBean expireTime = AuthUtil.getExpireTime(platform);
|
|
|
- TBSession tbSession = new TBSession(sessionId, String.valueOf(sysUser.getId()), roleNamesSet.toString(),
|
|
|
+ TBSession tbSession = new TBSession(sessionId, String.valueOf(sysUser.getId()), roleNames.toString(),
|
|
|
platform.name(), platform.name(), deviceId, IpUtil.getRemoteIp(), token,
|
|
|
expireTime.getDate().getTime(), appSource);
|
|
|
tbSessionService.saveOrUpdate(tbSession);
|
|
@@ -76,4 +80,36 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
|
|
loginResult.setOrgInfo(Objects.nonNull(authBean.getOrg()) ? loginResult.new OrgNativeBean(authBean.getOrg()) : null);
|
|
|
return loginResult;
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 删除用户信息
|
|
|
+ *
|
|
|
+ * @param userId
|
|
|
+ * @param all
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public void removeUserInfo(Long userId, boolean all) throws NoSuchAlgorithmException {
|
|
|
+ AuthBean authBean = commonCacheService.userAuthCache(userId);
|
|
|
+ Optional.ofNullable(authBean).orElseThrow(() -> ExceptionResultEnum.NOT_LOGIN.exception());
|
|
|
+ if (all) {
|
|
|
+ for (Platform p : Platform.values()) {
|
|
|
+ Set<String> roleNamesSet = authBean.getRoleList().stream().map(s -> s.getName()).collect(Collectors.toSet());
|
|
|
+ List<String> roleNames = new ArrayList<>(roleNamesSet);
|
|
|
+ Collections.sort(roleNames);
|
|
|
+ String sessionId = SessionUtil.digest(userId, Math.abs(roleNames.toString().hashCode()), p.name());
|
|
|
+ tbSessionService.removeById(sessionId);
|
|
|
+ commonCacheService.deleteUserSession(sessionId);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ Set<String> roleNamesSet = authBean.getRoleList().stream().map(s -> s.getName()).collect(Collectors.toSet());
|
|
|
+ List<String> roleNames = new ArrayList<>(roleNamesSet);
|
|
|
+ Collections.sort(roleNames);
|
|
|
+ String sessionId = SessionUtil.digest(userId, Math.abs(roleNames.toString().hashCode()), Platform.WEB.name());
|
|
|
+ tbSessionService.removeById(sessionId);
|
|
|
+ commonCacheService.deleteUserSession(sessionId);
|
|
|
+ }
|
|
|
+ commonCacheService.removeUserCache(userId);
|
|
|
+ commonCacheService.removeUserAuthCache(userId);
|
|
|
+ commonCacheService.removeUserRolePrivilegeCache(userId);
|
|
|
+ }
|
|
|
}
|