ソースを参照

白名单bug解决

dzx 1 年間 前
コミット
7b00428a4d

+ 3 - 0
src/main/java/com/xjrsoft/common/interceptor/RateLimitInterceptor.java

@@ -38,6 +38,9 @@ public class RateLimitInterceptor implements HandlerInterceptor {
         Long userType = Convert.toLong(StpUtil.getTokenSession().get(GlobalConstant.LOGIN_USER_TYPE), 0L);
         if (userType.equals(RoleEnum.STUDENT.getCode())) {
             Map map = redisUtil.get(GlobalConstant.WHITE_MANAGEMENT_CACHE_KEY, Map.class);
+            if(map == null){
+                return true;
+            }
             return map.get(userId.toString()) == null;
         }
         return false;

+ 33 - 23
src/main/java/com/xjrsoft/module/base/controller/WhitelistManagementController.java

@@ -1,45 +1,42 @@
 package com.xjrsoft.module.base.controller;
 
+import cn.dev33.satoken.annotation.SaCheckPermission;
 import cn.hutool.core.bean.BeanUtil;
-import cn.hutool.core.util.ObjectUtil;
-import cn.hutool.core.util.StrUtil;
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.alibaba.excel.EasyExcel;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.xjrsoft.common.constant.GlobalConstant;
-import com.baomidou.mybatisplus.core.toolkit.StringPool;
+import com.xjrsoft.common.model.result.RT;
 import com.xjrsoft.common.page.ConventPage;
 import com.xjrsoft.common.page.PageOutput;
-import com.xjrsoft.common.model.result.RT;
-import com.xjrsoft.common.utils.VoToColumnUtil;
 import com.xjrsoft.module.base.dto.AddWhitelistManagementDto;
 import com.xjrsoft.module.base.dto.UpdateWhitelistManagementDto;
-import cn.dev33.satoken.annotation.SaCheckPermission;
-import com.alibaba.excel.EasyExcel;
-import com.xjrsoft.module.base.entity.TreeNode;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.http.ResponseEntity;
-import org.springframework.web.multipart.MultipartFile;
-import java.io.IOException;
-
 import com.xjrsoft.module.base.dto.WhitelistManagementPageDto;
+import com.xjrsoft.module.base.entity.TreeNode;
 import com.xjrsoft.module.base.entity.WhitelistManagement;
 import com.xjrsoft.module.base.service.IWhitelistManagementService;
 import com.xjrsoft.module.base.vo.WhitelistManagementPageVo;
-
 import com.xjrsoft.module.base.vo.WhitelistManagementVo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;
-import org.springframework.web.bind.annotation.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.multipart.MultipartFile;
 
 import javax.validation.Valid;
-import javax.validation.constraints.NotNull;
+import java.io.IOException;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
+import java.util.concurrent.CompletableFuture;
 
 /**
 * @title: 白名单管理
@@ -84,7 +81,13 @@ public class WhitelistManagementController {
     public RT<Boolean> add(@Valid @RequestBody AddWhitelistManagementDto dto){
         WhitelistManagement whitelistManagement = BeanUtil.toBean(dto, WhitelistManagement.class);
         boolean isSuccess = whitelistManagementService.save(whitelistManagement);
-    return RT.ok(isSuccess);
+        if(isSuccess){
+            CompletableFuture.runAsync(() -> {
+                whitelistManagementService.loadCaches();
+            });
+        }
+
+        return RT.ok(isSuccess);
     }
 
     @PutMapping
@@ -101,7 +104,14 @@ public class WhitelistManagementController {
     @ApiOperation(value = "删除白名单管理")
     @SaCheckPermission("whitelistmanagement:delete")
     public RT<Boolean> delete(@Valid @RequestBody List<Long> ids){
-        return RT.ok(whitelistManagementService.removeBatchByIds(ids));
+        boolean b = whitelistManagementService.removeBatchByIds(ids);
+        if(b){
+            CompletableFuture.runAsync(() -> {
+                whitelistManagementService.loadCaches();
+            });
+        }
+
+        return RT.ok(b);
 
     }