diff --git a/script/src/main/java/com/xiang/xservice/fwd/service/IPerformServiceHttp.java b/script/src/main/java/com/xiang/xservice/fwd/service/IPerformServiceHttp.java index bcd389d..fe88a32 100644 --- a/script/src/main/java/com/xiang/xservice/fwd/service/IPerformServiceHttp.java +++ b/script/src/main/java/com/xiang/xservice/fwd/service/IPerformServiceHttp.java @@ -31,7 +31,7 @@ public interface IPerformServiceHttp { * @param req 创建请求参数 * @return ProjectOrderCreateResp */ - ProjectOrderCreateResp createProjectOrder(ProjectOrderCreateReq req); + ProjectOrderCreateResp createProjectOrder(ProjectOrderCreateReq req, String token); /** * http请求查询演出票务信息 diff --git a/script/src/main/java/com/xiang/xservice/fwd/service/impl/PerformServiceHttpServiceImpl.java b/script/src/main/java/com/xiang/xservice/fwd/service/impl/PerformServiceHttpServiceImpl.java index 2ea1380..d360601 100644 --- a/script/src/main/java/com/xiang/xservice/fwd/service/impl/PerformServiceHttpServiceImpl.java +++ b/script/src/main/java/com/xiang/xservice/fwd/service/impl/PerformServiceHttpServiceImpl.java @@ -85,8 +85,8 @@ public class PerformServiceHttpServiceImpl implements IPerformServiceHttp { } @Override - public ProjectOrderCreateResp createProjectOrder(ProjectOrderCreateReq req) { - String respStr = HttpUtils.doPost(UrlConstants.PROJECT_ORDER_CREATE_URL, buildFWDHeaders(UrlConstants.token), JsonUtils.toJsonString(req)); + public ProjectOrderCreateResp createProjectOrder(ProjectOrderCreateReq req, String token) { + String respStr = HttpUtils.doPost(UrlConstants.PROJECT_ORDER_CREATE_URL, buildFWDHeaders(token), JsonUtils.toJsonString(req)); if (StringUtils.isBlank(respStr)) { return null; } @@ -100,14 +100,6 @@ public class PerformServiceHttpServiceImpl implements IPerformServiceHttp { } return projectOrderCreateResp; } - if (Objects.nonNull(code) && Objects.equals(code, CodeConstants.LIMIT)) { - try { - Thread.sleep(60000); - } catch (InterruptedException e) { - e.printStackTrace(); - } - return null; - } return null; } @@ -180,16 +172,19 @@ public class PerformServiceHttpServiceImpl implements IPerformServiceHttp { private Map buildFWDHeaders(String token) { Map headers = Maps.newHashMap(); - headers.put("content-type", "application/json"); headers.put("Host", "api.livelab.com.cn"); headers.put("Connection", "keep-alive"); + headers.put("Content-Length", "316"); headers.put("platform-type", "%E7%BA%B7%E7%8E%A9%E5%B2%9B%E5%BE%AE%E4%BF%A1%E5%B0%8F%E7%A8%8B%E5%BA%8F"); + headers.put("content-type", "application/json"); headers.put("x-fwd-anonymousId", "ocXac5C25MY5O3UM_EfL0oTgm7Jw"); - headers.put("User-Agent", "Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.61(0x18003d2e) NetType/WIFI Language/zh_CN"); - headers.put("X-REQUEST-STARTTIME", String.valueOf(System.currentTimeMillis())); + headers.put("platform-version", "3.12.0"); if (StringUtils.isNotBlank(token)) { headers.put("Authorization", token); } + headers.put("Accept-Encoding", "gzip,compress,br,deflate"); + headers.put("User-Agent", "Mozilla/5.0 (iPhone; CPU iPhone OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.61(0x18003d30) NetType/4G Language/zh_CN"); + headers.put("Referer", "https://servicewechat.com/wx5a8f481d967649eb/114/page-frame.html"); return headers; } } diff --git a/script/src/main/java/com/xiang/xservice/fwd/service/impl/PerformServiceImpl.java b/script/src/main/java/com/xiang/xservice/fwd/service/impl/PerformServiceImpl.java index 3980f78..308e20b 100644 --- a/script/src/main/java/com/xiang/xservice/fwd/service/impl/PerformServiceImpl.java +++ b/script/src/main/java/com/xiang/xservice/fwd/service/impl/PerformServiceImpl.java @@ -6,11 +6,13 @@ import com.xiang.xservice.basic.xservice.dingTalk.service.DingTalkService; import com.xiang.xservice.fwd.entity.pojo.FPerformConfig; import com.xiang.xservice.fwd.entity.pojo.FPerformProjectInfo; import com.xiang.xservice.fwd.entity.pojo.FPerformSeatInfo; +import com.xiang.xservice.fwd.entity.pojo.FUserConfig; import com.xiang.xservice.fwd.entity.req.ProjectOrderCreateReq; import com.xiang.xservice.fwd.entity.resp.http.perform.ProjectOrderCreateResp; import com.xiang.xservice.fwd.mapper.FwdPerformConfigMapper; import com.xiang.xservice.fwd.mapper.FwdPerformProjectInfoMapper; import com.xiang.xservice.fwd.mapper.FwdPerformSeatInfoMapper; +import com.xiang.xservice.fwd.mapper.FwdUserConfigMapper; import com.xiang.xservice.fwd.service.IPerformService; import com.xiang.xservice.fwd.service.IPerformServiceHttp; import com.xiang.xservice.http.helper.HttpRequestHelper; @@ -44,6 +46,7 @@ public class PerformServiceImpl implements IPerformService { private final FwdPerformConfigMapper fwdPerformConfigMapper; private final IPerformServiceHttp performServiceHttp; private final DingTalkService dingTalkService; + private final FwdUserConfigMapper fwdUserConfigMapper; @Value("${DingTalk.chatId}") private String chatId; private final HttpRequestHelper httpRequestHelper; @@ -69,6 +72,10 @@ 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; + } FPerformProjectInfo performByProjectId = getPerformByProjectId(projectId); if (Objects.isNull(performByProjectId)) { log.info("该projectId:{}暂无演出信息", projectId); @@ -98,8 +105,8 @@ public class PerformServiceImpl implements IPerformService { projectOrderCreateReq.setBlackBox("0"); projectOrderCreateReq.setCombineTicketVos(null); projectOrderCreateReq.setOrdinaryTicketVos(null); - for (int i = 1; i <= 30; i++) { - ProjectOrderCreateResp projectOrder = httpRequestHelper.fetchWithRetry(() -> performServiceHttp.createProjectOrder(projectOrderCreateReq), "create-project-order"); + for (int i = 1; i <= 10; i++) { + ProjectOrderCreateResp projectOrder = httpRequestHelper.fetchWithRetry(() -> performServiceHttp.createProjectOrder(projectOrderCreateReq, availableUser.get(0).getToken()), "create-project-order"); if (Objects.nonNull(projectOrder)) { log.info("下单成功,订单信息:{}", JSONObject.toJSONString(projectOrder)); String msg = "【芬玩岛】下单成功✅✅✅,演出名称:" + performByProjectId.getProjectName() + ",请在2分钟内完成付款!";