状态校验修改

This commit is contained in:
张松 2025-03-27 17:00:23 +08:00
parent 02969a2c75
commit d6dcb8eeee
2 changed files with 19 additions and 16 deletions

View File

@ -1,6 +1,7 @@
package com.sqx.common.aspect; package com.sqx.common.aspect;
import com.sqx.common.annotation.Debounce; import com.sqx.common.annotation.Debounce;
import com.sqx.common.exception.SqxException;
import com.sqx.common.utils.Result; import com.sqx.common.utils.Result;
import com.sqx.common.utils.SpelUtil; import com.sqx.common.utils.SpelUtil;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
@ -26,8 +27,8 @@ import java.util.concurrent.locks.ReentrantLock;
public class DebounceAspect { public class DebounceAspect {
@Pointcut("@annotation(com.sqx.common.annotation.Debounce)") @Pointcut("@annotation(com.sqx.common.annotation.Debounce)")
public void logPointCut() { public void logPointCut() {
} }
// 用于存储基于方法和入参情况的上次执行时间结构为方法签名 -> (入参值 -> 上次执行时间) // 用于存储基于方法和入参情况的上次执行时间结构为方法签名 -> (入参值 -> 上次执行时间)
@ -87,7 +88,16 @@ public class DebounceAspect {
if (lastTime == null || currentTime - timeUnit.toMillis(interval) >= lastTime) { if (lastTime == null || currentTime - timeUnit.toMillis(interval) >= lastTime) {
// 满足防抖间隔更新上次执行时间并执行目标方法 // 满足防抖间隔更新上次执行时间并执行目标方法
methodExecutionTimeMap.put(targetValue, currentTime); methodExecutionTimeMap.put(targetValue, currentTime);
return joinPoint.proceed(); try {
return joinPoint.proceed();
}catch (Exception e) {
if (e instanceof SqxException && ((SqxException) e).getCode() == 403) {
methodExecutionTimeMap.remove(targetValue);
}
throw e;
}
} }
// 在防抖间隔内不执行目标方法直接返回 // 在防抖间隔内不执行目标方法直接返回
return Result.error("请求频繁,请重试"); return Result.error("请求频繁,请重试");

View File

@ -39,16 +39,15 @@ public class AppOrdersController extends AbstractController {
@Autowired @Autowired
private UserService userService; private UserService userService;
private boolean checkWxBind(Long userId) { private void checkWxBind(Long userId) {
CommonInfo commonInfo = commonInfoService.findOne(938); CommonInfo commonInfo = commonInfoService.findOne(938);
if (commonInfo == null || !"1".equals(commonInfo.getValue())) { if (commonInfo == null || !"1".equals(commonInfo.getValue())) {
return true; return;
} }
UserEntity userEntity = userService.queryByUserId(userId); UserEntity userEntity = userService.queryByUserId(userId);
if (StrUtil.isBlank(userEntity.getWxOpenId())) { if (StrUtil.isBlank(userEntity.getWxOpenId())) {
return false; throw new SqxException("请先绑定微信", 407);
} }
return true;
} }
@ -64,9 +63,7 @@ public class AppOrdersController extends AbstractController {
@ApiOperation("生成商品订单") @ApiOperation("生成商品订单")
@Debounce(interval = 20000, value = "#userId") @Debounce(interval = 20000, value = "#userId")
public Result insertCourseOrders(Long courseId,Long courseDetailsId, @RequestAttribute("userId") Long userId) { public Result insertCourseOrders(Long courseId,Long courseDetailsId, @RequestAttribute("userId") Long userId) {
if (!checkWxBind(userId)) { checkWxBind(userId);
return Result.error(407, "请先绑定微信");
}
return ordersService.insertCourseOrders(courseId, courseDetailsId,userId); return ordersService.insertCourseOrders(courseId, courseDetailsId,userId);
} }
@ -81,9 +78,7 @@ public class AppOrdersController extends AbstractController {
@GetMapping("/insertCourseOrders/limit10") @GetMapping("/insertCourseOrders/limit10")
@ApiOperation("生成商品订单") @ApiOperation("生成商品订单")
public Result insertCourseOrdersLimit10(Long courseId, @RequestAttribute("userId") Long userId) { public Result insertCourseOrdersLimit10(Long courseId, @RequestAttribute("userId") Long userId) {
if (!checkWxBind(userId)) { checkWxBind(userId);
return Result.error(407, "请先绑定微信");
}
return ordersService.insertCourseOrdersLimit10(courseId, userId); return ordersService.insertCourseOrdersLimit10(courseId, userId);
} }
@ -91,9 +86,7 @@ public class AppOrdersController extends AbstractController {
@GetMapping("/insertVipOrders") @GetMapping("/insertVipOrders")
@ApiOperation("生成会员订单") @ApiOperation("生成会员订单")
public Result insertVipOrders(@ApiParam("会员详情信息") Long vipDetailsId, @RequestAttribute("userId") Long userId) { public Result insertVipOrders(@ApiParam("会员详情信息") Long vipDetailsId, @RequestAttribute("userId") Long userId) {
if (!checkWxBind(userId)) { checkWxBind(userId);
return Result.error(407, "请先绑定微信");
}
return ordersService.insertVipOrders(vipDetailsId, userId); return ordersService.insertVipOrders(vipDetailsId, userId);
} }