频率限制7

This commit is contained in:
GYJ 2025-03-23 17:20:48 +08:00
parent 09ece58a42
commit 8ea8cf1dcd
4 changed files with 10 additions and 2 deletions

View File

@ -2,7 +2,9 @@ package com.sqx.common.aspect;
import com.google.common.util.concurrent.RateLimiter;
import com.sqx.common.annotation.Limiting;
import com.sqx.common.exception.CzgException;
import com.sqx.common.utils.IPUtils;
import com.sqx.common.utils.Result;
import lombok.extern.slf4j.Slf4j;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.Signature;
@ -56,7 +58,7 @@ public class RateLimitAspect {
} else {
// 未获取到许可抛出异常或返回错误信息
log.info("IP: {} 请求方法: {} 超过访问频率限制", ip, method.getName());
throw new RuntimeException("访问频率过高,请稍后再试");
throw new CzgException("访问频率过高,请稍后再试");
}
}
}

View File

@ -1,5 +1,6 @@
package com.sqx.modules.common.controller.app;
import com.sqx.common.annotation.Limiting;
import com.sqx.common.utils.Result;
import com.sqx.modules.common.entity.CommonInfo;
import com.sqx.modules.common.service.CommonInfoService;
@ -66,6 +67,7 @@ public class AppCommonController {
@GetMapping("getAppUseKv")
@ApiOperation("获取APP使用的KV数据")
@ResponseBody
@Limiting
public Result getAppUseKv() {
return Result.success().put("data", commonService.findAppKv());
}

View File

@ -33,6 +33,7 @@ public class AppCourseCollectController extends AbstractController {
@GetMapping("/selectByUserId")
@ApiOperation("app查询收藏短剧信息")
@Debounce(interval = 3000, value = "#userId")
@Limiting
public Result selectByUserId(Integer page, Integer limit, @RequestAttribute("userId") Long userId, Integer classify) {
return courseCollectService.selectByUserId(page, limit, userId, classify);
}
@ -40,6 +41,7 @@ public class AppCourseCollectController extends AbstractController {
@Login
@GetMapping("/collectVideoSummary")
@Debounce(interval = 3000, value = "#userId")
@Limiting
public Result collectVideoSummary(@RequestAttribute("userId") Long userId) {
return courseCollectService.collectVideoSummary(userId);
}

View File

@ -1,6 +1,7 @@
package com.sqx.modules.message.controller.app;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.sqx.common.annotation.Limiting;
import com.sqx.common.utils.PageUtils;
import com.sqx.common.utils.Result;
import com.sqx.modules.app.annotation.Login;
@ -54,6 +55,7 @@ public class AppMessageController {
@ApiOperation("查询用户消息")
@ResponseBody
// @Login
@Limiting
public Result selectMessage(int page, int limit,Integer state){
Map<String,Object> map=new HashMap<>();
map.put("page",page);
@ -81,4 +83,4 @@ public class AppMessageController {
}
}