频率限制3

This commit is contained in:
GYJ
2025-03-23 17:04:08 +08:00
parent 35bf6e479e
commit 641e949f1e
6 changed files with 12 additions and 1 deletions

View File

@@ -13,5 +13,5 @@ import java.lang.annotation.Target;
@Retention(RetentionPolicy.RUNTIME) @Retention(RetentionPolicy.RUNTIME)
public @interface Limiting { public @interface Limiting {
// 默认每秒放入桶中的token // 默认每秒放入桶中的token
double limitNum() default 10; double limitNum() default 5;
} }

View File

@@ -10,6 +10,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.sqx.common.annotation.Debounce; import com.sqx.common.annotation.Debounce;
import com.sqx.common.annotation.Limiting;
import com.sqx.common.utils.ApiAccessLimitUtil; import com.sqx.common.utils.ApiAccessLimitUtil;
import com.sqx.common.utils.DataLimitUtil; import com.sqx.common.utils.DataLimitUtil;
import com.sqx.common.utils.DesensitizedUtil; import com.sqx.common.utils.DesensitizedUtil;
@@ -291,6 +292,7 @@ public class AppController {
@RequestMapping(value = "/selectUserById", method = RequestMethod.GET) @RequestMapping(value = "/selectUserById", method = RequestMethod.GET)
@ApiOperation("获取用户详细信息") @ApiOperation("获取用户详细信息")
@ResponseBody @ResponseBody
@Limiting
public Result selectUserById(@LoginUser UserEntity user) { public Result selectUserById(@LoginUser UserEntity user) {
UserInfo userInfo = userInfoService.getByUserId(user.getUserId()); UserInfo userInfo = userInfoService.getByUserId(user.getUserId());
userInfo.setRespJson(null); userInfo.setRespJson(null);

View File

@@ -1,6 +1,7 @@
package com.sqx.modules.app.controller.app; package com.sqx.modules.app.controller.app;
import com.sqx.common.annotation.Debounce; import com.sqx.common.annotation.Debounce;
import com.sqx.common.annotation.Limiting;
import com.sqx.common.utils.Result; import com.sqx.common.utils.Result;
import com.sqx.modules.app.annotation.Login; import com.sqx.modules.app.annotation.Login;
import com.sqx.modules.app.service.UserMoneyDetailsService; import com.sqx.modules.app.service.UserMoneyDetailsService;
@@ -35,6 +36,7 @@ public class AppUserMoneyDetailsController {
@GetMapping("/selectUserMoney") @GetMapping("/selectUserMoney")
@ApiOperation("我的钱包") @ApiOperation("我的钱包")
@Debounce(interval = 3000, value = "#userId") @Debounce(interval = 3000, value = "#userId")
@Limiting
public Result selectUserMoney(@RequestAttribute Long userId){ public Result selectUserMoney(@RequestAttribute Long userId){
return Result.success().put("data",userMoneyService.selectUserMoneyByUserId(userId)); return Result.success().put("data",userMoneyService.selectUserMoneyByUserId(userId));
} }

View File

@@ -2,6 +2,7 @@ package com.sqx.modules.course.controller.app;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.sqx.common.annotation.Debounce; import com.sqx.common.annotation.Debounce;
import com.sqx.common.annotation.Limiting;
import com.sqx.common.utils.RedisKeys; import com.sqx.common.utils.RedisKeys;
import com.sqx.common.utils.RedisUtils; import com.sqx.common.utils.RedisUtils;
import com.sqx.common.utils.Result; import com.sqx.common.utils.Result;
@@ -50,6 +51,7 @@ public class AppCourseController extends AbstractController {
@GetMapping("/courseSets") @GetMapping("/courseSets")
@ApiOperation("根据id查询短剧集数列表") @ApiOperation("根据id查询短剧集数列表")
@Debounce(interval = 3000, value = "#userId") @Debounce(interval = 3000, value = "#userId")
@Limiting
public Result courseSets(@RequestAttribute("userId") Long userId, Long courseId, Integer sort) { public Result courseSets(@RequestAttribute("userId") Long userId, Long courseId, Integer sort) {
return courseDetailsService.courseSets(userId, courseId,sort); return courseDetailsService.courseSets(userId, courseId,sort);
} }
@@ -124,6 +126,7 @@ public class AppCourseController extends AbstractController {
@GetMapping("/viewCourse") @GetMapping("/viewCourse")
@ApiOperation("查看短剧") @ApiOperation("查看短剧")
@Limiting
public Result viewCourse(@ApiParam("短剧id") Long courseId, public Result viewCourse(@ApiParam("短剧id") Long courseId,
@ApiParam("剧集id") Long courseDetailsId, @ApiParam("剧集id") Long courseDetailsId,
@ApiParam("统计类型start 开始end 结束") String type) { @ApiParam("统计类型start 开始end 结束") String type) {

View File

@@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
import com.sqx.common.annotation.Debounce; import com.sqx.common.annotation.Debounce;
import com.sqx.common.annotation.Limiting;
import com.sqx.common.exception.CzgException; import com.sqx.common.exception.CzgException;
import com.sqx.common.exception.SqxException; import com.sqx.common.exception.SqxException;
import com.sqx.common.utils.*; import com.sqx.common.utils.*;
@@ -164,6 +165,7 @@ public class DiscSpinningController {
@ApiResponse(code = 200, message = "{\"sum\":\"总抽奖次数\",\"count\":\"剩余抽奖次数\"}"), @ApiResponse(code = 200, message = "{\"sum\":\"总抽奖次数\",\"count\":\"剩余抽奖次数\"}"),
}) })
@Debounce(value = "#userId") @Debounce(value = "#userId")
@Limiting
public Result drawCount(@ApiIgnore @RequestAttribute("userId") Long userId, @RequestParam(required = false, defaultValue = "1") Integer source) { public Result drawCount(@ApiIgnore @RequestAttribute("userId") Long userId, @RequestParam(required = false, defaultValue = "1") Integer source) {
Map<String, Object> map = new HashMap<>(); Map<String, Object> map = new HashMap<>();
int drawCount = Integer.parseInt(commonRepository.findOne(901).getValue()); int drawCount = Integer.parseInt(commonRepository.findOne(901).getValue());

View File

@@ -6,6 +6,7 @@ import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.sqx.common.annotation.Debounce; import com.sqx.common.annotation.Debounce;
import com.sqx.common.annotation.Limiting;
import com.sqx.common.utils.Result; import com.sqx.common.utils.Result;
import com.sqx.modules.app.service.UserMoneyDetailsService; import com.sqx.modules.app.service.UserMoneyDetailsService;
import com.sqx.modules.app.service.UserMoneyService; import com.sqx.modules.app.service.UserMoneyService;
@@ -136,6 +137,7 @@ public class WuyouController {
@ApiOperation("查询订单支付结果") @ApiOperation("查询订单支付结果")
@GetMapping("/queryOrder/{orderId}") @GetMapping("/queryOrder/{orderId}")
@Debounce(value = "#orderId") @Debounce(value = "#orderId")
@Limiting(limitNum = 20)
public Result queryOrder(HttpServletRequest request, @PathVariable("orderId") Long orderId) { public Result queryOrder(HttpServletRequest request, @PathVariable("orderId") Long orderId) {
Orders order = ordersService.getById(orderId); Orders order = ordersService.getById(orderId);
if (order == null) { if (order == null) {