|
|
@@ -11,7 +11,9 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
import com.cyksj.common.exception.BusinessRuntimeException;
|
|
|
import com.cyksj.common.task.GlobalThreadPoolTaskExecutor;
|
|
|
import com.cyksj.common.util.Jsons;
|
|
|
+import com.cyksj.common.util.StringUtil;
|
|
|
import com.cyksj.mapper.*;
|
|
|
+import com.cyksj.model.dto.GptCardTokenDto;
|
|
|
import com.cyksj.model.entity.*;
|
|
|
import com.cyksj.model.response.recharge.CdkValidateResponse;
|
|
|
import com.cyksj.model.response.recharge.RechargeResponse;
|
|
|
@@ -141,9 +143,31 @@ public class CdkRechargeServiceImpl implements CdkRechargeService {
|
|
|
|
|
|
RechargeResponse rechargeResponse = Jsons.parseObject(body, RechargeResponse.class);
|
|
|
Boolean success = rechargeResponse.getSuccess();
|
|
|
+ //这渠道会有几率成功 返回失败
|
|
|
+ //查询卡密状态兜底
|
|
|
+ if (!success) {
|
|
|
+ CdkValidateResponse cdkValidateResponse = validateCardKey(cardKey, accessToken);
|
|
|
+ GptCardTokenDto gptCardTokenDto = Jsons.parseObject(accessToken, GptCardTokenDto.class);
|
|
|
+ //卡密已使用 并且是当前账号
|
|
|
+ if ("used".equals(cdkValidateResponse.getStatus()) && gptCardTokenDto.getUser().getEmail().equals(cdkValidateResponse.getEmail())) {
|
|
|
+ return Boolean.TRUE;
|
|
|
+ }
|
|
|
+ }
|
|
|
return success;
|
|
|
|
|
|
} catch (Exception e) {
|
|
|
+ //睡眠120s 再查询订单状态 这种特殊情况
|
|
|
+ try {
|
|
|
+ Thread.sleep(120000);
|
|
|
+ CdkValidateResponse cdkValidateResponse = validateCardKey(cardKey, accessToken);
|
|
|
+ GptCardTokenDto gptCardTokenDto = Jsons.parseObject(accessToken, GptCardTokenDto.class);
|
|
|
+ //卡密已使用 并且是当前账号
|
|
|
+ if ("used".equals(cdkValidateResponse.getStatus()) && gptCardTokenDto.getUser().getEmail().equals(cdkValidateResponse.getEmail())) {
|
|
|
+ return Boolean.TRUE;
|
|
|
+ }
|
|
|
+ } catch (Exception ex) {
|
|
|
+ log.error("查询卡密{}失败:{}", cardKey, StringUtil.getErrorMsg(e));
|
|
|
+ }
|
|
|
log.error("提交任务失败: {}", e.getMessage(), e);
|
|
|
throw new RuntimeException("提交任务失败: " + e.getMessage(), e);
|
|
|
}
|