Kaynağa Gözat

提现每日次数限制

zoujiajian 2 yıl önce
ebeveyn
işleme
c3d591b867

+ 1 - 0
netflix-service/src/main/java/com/cyksj/redis/RedisService.java

@@ -838,6 +838,7 @@ public class RedisService {
         MIDJOURNEY_RELAX_LIMIT("midjourney:relax:limit:", "midjourney relax次数", 60 * 60 * 48L),
         MIDJOURNEY_EXPIRE_TIME("midjourney:expire:time:", "midjourney expire time", 60 * 60 * 48L),
         MIDJOURNEY_USER("midjourney:user:", "midjourney user", 60 * 60 * 2L),
+        APPLY_MONEY_DAY_LIMIT_KEY("apply_money_day_limit_key:%s:%s:%s", "每日提现次数限制", 60 * 60 * 24L),
 
         ;
 

+ 25 - 2
netflix-service/src/main/java/com/cyksj/service/pay/impl/TransferFuncServiceImpl.java

@@ -34,6 +34,7 @@ import com.cyksj.model.entity.*;
 import com.cyksj.model.request.ApplyMoneyReq;
 import com.cyksj.model.request.TransferAccountsReq;
 import com.cyksj.model.request.YhShopApplyMoneyReq;
+import com.cyksj.redis.RedisService;
 import com.cyksj.service.pay.TransferFuncService;
 import com.cyksj.service.user.UserBenefitsService;
 import lombok.RequiredArgsConstructor;
@@ -74,10 +75,22 @@ public class TransferFuncServiceImpl implements TransferFuncService {
 
 	private final DistributeMoneyApplyMapper distributeMoneyApplyMapper;
 
+	private final RedisService redisService;
+
 	@Override
 	public Result distributeApply(ApplyMoneyReq applyMoneyReq) throws Exception {
 		applyMoneyReq.setMType(DistributeMoneyApply.MType.ds);
-		return commonApplyMoney(applyMoneyReq);
+		String key = String.format(RedisService.key.APPLY_MONEY_DAY_LIMIT_KEY.getName(), DateTime.now().toDateStr(), applyMoneyReq.getMType(), applyMoneyReq.getUserId());
+		if (!redisService.setNx(key, applyMoneyReq.getUserId(), RedisService.key.APPLY_MONEY_DAY_LIMIT_KEY.getTimeout())) {
+			throw BusinessRuntimeException.getInstance("每天仅可提现一次");
+		}
+		Result result = commonApplyMoney(applyMoneyReq);
+		if (result.isFlag()) {
+			redisService.set(key, applyMoneyReq.getUserId(), RedisService.key.APPLY_MONEY_DAY_LIMIT_KEY.getTimeout());
+		} else {
+			redisService.del(key);
+		}
+		return result;
 	}
 
 	@Override
@@ -209,7 +222,17 @@ public class TransferFuncServiceImpl implements TransferFuncService {
 	@Override
 	public Result<String> subApplyMoney(ApplyMoneyReq applyMoneyReq) throws Exception {
 		applyMoneyReq.setMType(DistributeMoneyApply.MType.sub);
-		return commonApplyMoney(applyMoneyReq);
+		String key = String.format(RedisService.key.APPLY_MONEY_DAY_LIMIT_KEY.getName(), DateTime.now().toDateStr(), applyMoneyReq.getMType(), applyMoneyReq.getUserId());
+		if (!redisService.setNx(key, applyMoneyReq.getUserId(), RedisService.key.APPLY_MONEY_DAY_LIMIT_KEY.getTimeout())) {
+			throw BusinessRuntimeException.getInstance("每天仅可提现一次");
+		}
+		Result result = commonApplyMoney(applyMoneyReq);
+		if (result.isFlag()) {
+			redisService.set(key, applyMoneyReq.getUserId(), RedisService.key.APPLY_MONEY_DAY_LIMIT_KEY.getTimeout());
+		} else {
+			redisService.del(key);
+		}
+		return result;
 	}
 
 	private AlipayRequest aliPayTransferAccountsRequest(String donNo, String account, String name, BigDecimal money, String remark) {