一分钟支付超12次拉入黑名单
This commit is contained in:
parent
9d0ed1ff9c
commit
3ec519e95f
|
|
@ -36,6 +36,7 @@ import com.sqx.modules.pay.wuyou.BaseResp;
|
|||
import com.sqx.modules.pay.wuyou.Encrypt;
|
||||
import com.sqx.modules.pay.wuyou.NotifyDto;
|
||||
import com.sqx.modules.pay.wuyou.WuyouPay;
|
||||
import com.sqx.modules.redisService.RedisService;
|
||||
import com.sqx.modules.sys.entity.SysUserEntity;
|
||||
import com.sqx.modules.sys.service.SysUserService;
|
||||
import com.sqx.modules.utils.AliPayOrderUtil;
|
||||
|
|
@ -74,12 +75,14 @@ public class WuyouController {
|
|||
private final CashOutDao cashOutDao;
|
||||
private final WuyouPay wuyouPay;
|
||||
private final TempOrdersTask ordersTask;
|
||||
private final UserService userService;
|
||||
private final RedisService redisService;
|
||||
@Resource
|
||||
private WuyouCallbackService wuyouCallbackService;
|
||||
|
||||
WuyouController(OrdersService ordersService, PayDetailsDao payDetailsDao, CashOutDao cashOutDao, UserMoneyService userMoneyService,
|
||||
UserMoneyDetailsService userMoneyDetailsService, TempOrdersTask ordersTask,
|
||||
WuyouPay wuyouPay) {
|
||||
WuyouPay wuyouPay, UserService userService, RedisService redisService) {
|
||||
this.ordersService = ordersService;
|
||||
this.payDetailsDao = payDetailsDao;
|
||||
this.cashOutDao = cashOutDao;
|
||||
|
|
@ -87,6 +90,8 @@ public class WuyouController {
|
|||
this.userMoneyDetailsService = userMoneyDetailsService;
|
||||
this.wuyouPay = wuyouPay;
|
||||
this.ordersTask = ordersTask;
|
||||
this.userService = userService;
|
||||
this.redisService = redisService;
|
||||
}
|
||||
|
||||
@Debounce(interval = 1000, value = "#orderId")
|
||||
|
|
@ -101,6 +106,9 @@ public class WuyouController {
|
|||
if (order.getStatus() != 0) {
|
||||
return Result.error("订单已支付");
|
||||
}
|
||||
if (redisService.setCreateOrderFlagAndCheckLimit(order.getUserId(), orderId)) {
|
||||
userService.addBlackUser(order.getUserId(), "一分钟频繁下单超12次");
|
||||
}
|
||||
|
||||
PayDetails payDetails = payDetailsDao.selectByOrderId(order.getOrdersNo());
|
||||
if (payDetails == null) {
|
||||
|
|
|
|||
|
|
@ -30,4 +30,6 @@ public interface RedisService {
|
|||
void setCanCashFlag(Long userId, Long id);
|
||||
|
||||
boolean isCanCash(Long userId);
|
||||
|
||||
boolean setCreateOrderFlagAndCheckLimit(Long userId, Long orderId);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -342,4 +342,13 @@ public class RedisServiceImpl implements RedisService {
|
|||
String s = redisUtils.get(key);
|
||||
return StrUtil.isNotBlank(s);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean setCreateOrderFlagAndCheckLimit(Long userId, Long orderId) {
|
||||
String key = "createOrder:" + userId;
|
||||
redisTemplate.opsForSet().add(key, orderId.toString());
|
||||
redisUtils.expire(key, 60);
|
||||
Set<String> members = redisTemplate.opsForSet().members(key);
|
||||
return members != null && members.size() > 12;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue