From 70224d4c3ef67b7d648ed2fabb499e6461eb79fa Mon Sep 17 00:00:00 2001 From: Xiang Date: Wed, 12 Nov 2025 16:42:35 +0800 Subject: [PATCH] =?UTF-8?q?perf:=E4=B8=8B=E5=8D=95=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 1 - .../script/fwd/schedule/TicketGrabTask.java | 2 +- .../script/fwd/server/FwdOuterController.java | 3 ++- .../script/fwd/service/IPerformService.java | 2 +- .../service/impl/PerformServiceHttpServiceImpl.java | 5 ++++- .../script/fwd/service/impl/PerformServiceImpl.java | 12 ++++-------- 6 files changed, 12 insertions(+), 13 deletions(-) diff --git a/pom.xml b/pom.xml index a194a5c..287aa46 100644 --- a/pom.xml +++ b/pom.xml @@ -16,7 +16,6 @@ pom script - sda_stock_center diff --git a/script/src/main/java/com/xiang/xservice/application/script/fwd/schedule/TicketGrabTask.java b/script/src/main/java/com/xiang/xservice/application/script/fwd/schedule/TicketGrabTask.java index 8506f60..2a77473 100644 --- a/script/src/main/java/com/xiang/xservice/application/script/fwd/schedule/TicketGrabTask.java +++ b/script/src/main/java/com/xiang/xservice/application/script/fwd/schedule/TicketGrabTask.java @@ -45,7 +45,7 @@ public class TicketGrabTask implements Runnable { for (FUserConfig userConfig : availableUser) { List audiences = audienceConfigMapper.getAudienceByUserId(userConfig.getId()); try { - performService.createProjectOrder(param.getProjectId(), audiences.stream().map(FAudienceConfig::getFrequentId).collect(Collectors.toList())); + performService.createProjectOrder(param.getProjectId(), audiences.stream().map(FAudienceConfig::getFrequentId).collect(Collectors.toList()), userConfig.getToken()); dynamicTaskSchedulerService.finishTask(param.getTaskId()); } catch (Exception e) { log.error("创建订单失败", e); diff --git a/script/src/main/java/com/xiang/xservice/application/script/fwd/server/FwdOuterController.java b/script/src/main/java/com/xiang/xservice/application/script/fwd/server/FwdOuterController.java index 658fdce..2c9278e 100644 --- a/script/src/main/java/com/xiang/xservice/application/script/fwd/server/FwdOuterController.java +++ b/script/src/main/java/com/xiang/xservice/application/script/fwd/server/FwdOuterController.java @@ -55,7 +55,8 @@ public class FwdOuterController { @PostMapping("/createOrder") public Result createOrder(Long projectId) throws Exception { - if (performService.createProjectOrder(projectId, FREQUENT_IDS)) { + String token = fwdUserConfigMapper.getAvailableUser().get(0).getToken(); + if (performService.createProjectOrder(projectId, FREQUENT_IDS, token)) { return Result.success("下单成功!"); } return Result.error("下单失败!"); diff --git a/script/src/main/java/com/xiang/xservice/application/script/fwd/service/IPerformService.java b/script/src/main/java/com/xiang/xservice/application/script/fwd/service/IPerformService.java index 029407e..43dbd4b 100644 --- a/script/src/main/java/com/xiang/xservice/application/script/fwd/service/IPerformService.java +++ b/script/src/main/java/com/xiang/xservice/application/script/fwd/service/IPerformService.java @@ -16,7 +16,7 @@ public interface IPerformService { List getPerformSeatInfoByProjectId(Long projectId); - Boolean createProjectOrder(Long projectId, List frequentIds) throws Exception; + Boolean createProjectOrder(Long projectId, List frequentIds, String token) throws Exception; List getAvailablePerform(); diff --git a/script/src/main/java/com/xiang/xservice/application/script/fwd/service/impl/PerformServiceHttpServiceImpl.java b/script/src/main/java/com/xiang/xservice/application/script/fwd/service/impl/PerformServiceHttpServiceImpl.java index c5106c2..4d9360e 100644 --- a/script/src/main/java/com/xiang/xservice/application/script/fwd/service/impl/PerformServiceHttpServiceImpl.java +++ b/script/src/main/java/com/xiang/xservice/application/script/fwd/service/impl/PerformServiceHttpServiceImpl.java @@ -104,7 +104,10 @@ public class PerformServiceHttpServiceImpl implements IPerformServiceHttp { return projectOrderCreateResp; } if (Objects.nonNull(code) && Objects.equals(code, CodeConstants.LIMIT)) { - Integer waitTime = new Random().nextInt(5); + int waitTime = new Random().nextInt(3); + if (Objects.equals(waitTime, 0)) { + waitTime = 3; + } try { log.info("触发FWD限流机制,等待:{}秒后重新发送。", waitTime); Thread.sleep((long) waitTime * 1000); diff --git a/script/src/main/java/com/xiang/xservice/application/script/fwd/service/impl/PerformServiceImpl.java b/script/src/main/java/com/xiang/xservice/application/script/fwd/service/impl/PerformServiceImpl.java index f1ee85c..c564bd1 100644 --- a/script/src/main/java/com/xiang/xservice/application/script/fwd/service/impl/PerformServiceImpl.java +++ b/script/src/main/java/com/xiang/xservice/application/script/fwd/service/impl/PerformServiceImpl.java @@ -75,11 +75,7 @@ public class PerformServiceImpl implements IPerformService { } @Override - public Boolean createProjectOrder(Long projectId, List frequentIds) throws Exception { - List availableUser = fwdUserConfigMapper.getAvailableUser(); - if (CollectionUtils.isEmpty(availableUser)) { - return Boolean.FALSE; - } + public Boolean createProjectOrder(Long projectId, List frequentIds, String token) throws Exception { FPerformProjectInfo performByProjectId = getPerformByProjectId(projectId); if (Objects.isNull(performByProjectId)) { log.info("该projectId:{}暂无演出信息", projectId); @@ -118,11 +114,11 @@ public class PerformServiceImpl implements IPerformService { .map(FPerformSeatInfo::getSeatPlanId) .collect(Collectors.toList()); ProjectOrderCreateReq projectOrderCreateReq = buildReqV2(projectId, frequentIds, seatIds, performId, price); - for (int i = 1; i <= 10; i++) { - ProjectOrderCreateResp projectOrder = httpRequestHelper.fetchWithRetry(() -> performServiceHttp.createProjectOrder(projectOrderCreateReq, availableUser.get(0).getToken()), "create-project-order"); + for (int i = 1; i <= 100; i++) { + ProjectOrderCreateResp projectOrder = httpRequestHelper.fetchWithRetry(() -> performServiceHttp.createProjectOrder(projectOrderCreateReq, token), "create-project-order"); if (Objects.nonNull(projectOrder)) { log.info("下单成功,订单信息:{}", JSONObject.toJSONString(projectOrder)); - String msg = "【芬玩岛】下单成功✅✅✅,演出名称:" + performByProjectId.getProjectName() + ",请在5分钟内完成付款!"; + String msg = "【芬玩岛】下单成功✅✅✅,演出名称:" + performByProjectId.getProjectName() + ",请在5分钟内完成付款!订单号:" + projectOrder.getOrderNo(); dingTalkService.sendScriptMsg(msg); return Boolean.TRUE; }