Parcourir la source

1、获取web权限,如果有失效时间并且失效就撤出权限

liyanbo il y a 2 mois
Parent
commit
f5e0ff2269

+ 25 - 15
byzs-web/src/main/java/cn/iocoder/byzs/module/web/service/login/WebLoginServiceImpl.java

@@ -122,21 +122,6 @@ public class WebLoginServiceImpl {
         List<RoleDO> roles = roleService.getRoleList(roleIds);
         roles.removeIf(role -> !CommonStatusEnum.ENABLE.getStatus().equals(role.getStatus())); // 移除禁用的角色
 
-        // 获得用户激活的邀请码
-        List<InviteCodeDO> inviteCodes = inviteCodeService.getInviteCodeByUserId(userId);
-
-//        Set<Long> roleIds1 = new HashSet<>();
-//        Set<Long> roleIds2 = new HashSet<>();
-//        inviteCodes.forEach(inviteCode -> {
-//            roleIds1.addAll(Arrays.stream(inviteCode.getRoleIds().split(","))
-//                    .map(s -> Long.parseLong(s.trim()))
-//                    .collect(Collectors.toSet()));
-//        } );
-
-//        Set<Long> roleIds = Arrays.stream(inviteCode.getRoleIds().split(","))
-//                .map(s ->Long.parseLong(s.trim())).collect(Collectors.toSet());
-        inviteCodes.removeIf(inviteCode -> !CommonStatusEnum.ENABLE.getStatus().equals(inviteCode.getStatus())); // 移除禁用的邀请码
-
         // 填充角色路由
         Set<String> roleRouteSet = new HashSet<>();
         for (RoleDO role : roles) {
@@ -150,6 +135,31 @@ public class WebLoginServiceImpl {
             Set<String> roleRoute = webRoleRoute.stream().map(DictDataDO::getValue).collect(Collectors.toSet());
             roleRouteSet.addAll(roleRoute);
         }
+
+        // 获得用户激活的邀请码
+//        List<InviteCodeDO> inviteCodes = inviteCodeService.getInviteCodeByUserId(userId);
+//        inviteCodes.removeIf(inviteCode -> "1".equals(inviteCode.getStatus()));
+//        Set<Long> codeRoleIds = new HashSet<>();
+//        inviteCodes.forEach(role -> {
+//            codeRoleIds.addAll(Arrays.stream(role.getRoleIds().split(","))
+//                    .map(s ->Long.parseLong(s.trim())).collect(Collectors.toSet()));
+//        });
+
+        //处理邀请码过期内容
+        //当前用户web过期时间
+        UserWebExpireTimeDO userWebExpireTime = userWebExpireTimeService.getUserWebExpireTime(userId);
+        if (userWebExpireTime != null) {
+            LocalDateTime now = LocalDateTime.now();
+            if(userWebExpireTime.getCourseExpireTime() != null && userWebExpireTime.getCourseExpireTime().isBefore(now)){
+                roleRouteSet.remove("course");
+            }
+            if(userWebExpireTime.getBlocklyExpireTime() != null && userWebExpireTime.getBlocklyExpireTime().isBefore(now)){
+                roleRouteSet.remove("blockly");
+            }
+            if(userWebExpireTime.getAiCourseExpireTime() != null && userWebExpireTime.getAiCourseExpireTime().isBefore(now)){
+                roleRouteSet.remove("aiCourse");
+            }
+        }
         return roleRouteSet;
     }
 }