|
|
@@ -50,6 +50,8 @@ public class SancRechargeServiceImpl implements SancRechargeService {
|
|
|
|
|
|
private final GptUserRechargeRecordService gptUserRechargeRecordService;
|
|
|
|
|
|
+ private static String SAN_CHUAN_LIMIT_KEY = "SAN_CHUAN_LIMIT_KEY";
|
|
|
+
|
|
|
private static final GlobalThreadPoolTaskExecutor TASK_EXECUTOR = GlobalThreadPoolTaskExecutor.getInstance();
|
|
|
|
|
|
@Override
|
|
|
@@ -235,6 +237,9 @@ public class SancRechargeServiceImpl implements SancRechargeService {
|
|
|
private String submitTask(String cardKey, String accessToken) {
|
|
|
log.info("开始提交三川任务 - 卡密: {}", cardKey);
|
|
|
try {
|
|
|
+ if (redisService.hasKey(SAN_CHUAN_LIMIT_KEY)) {
|
|
|
+ throw BusinessRuntimeException.getInstance("库存不足");
|
|
|
+ }
|
|
|
String BASE_URL = gptRechargeCardKeyChannelService.getCardKeyDomain(cardKey);
|
|
|
String url = BASE_URL + "/cards/verify-gpt";
|
|
|
JSONObject requestBody = new JSONObject();
|
|
|
@@ -261,6 +266,12 @@ public class SancRechargeServiceImpl implements SancRechargeService {
|
|
|
return rechargeResponse.getData().getThirdPartyResult();
|
|
|
} catch (Exception e) {
|
|
|
log.error("提交任务失败: {}", e.getMessage(), e);
|
|
|
+ if (StringUtil.getErrorMsg(e).contains("库存不足")) {
|
|
|
+ if (!redisService.hasKey(SAN_CHUAN_LIMIT_KEY)) {
|
|
|
+ //没库存 缓存5分钟
|
|
|
+ redisService.set(SAN_CHUAN_LIMIT_KEY, "1", 60 * 5L);
|
|
|
+ }
|
|
|
+ }
|
|
|
throw new RuntimeException("提交任务失败: " + e.getMessage(), e);
|
|
|
}
|
|
|
}
|