feat:zlb接口

This commit is contained in:
Xiang
2026-05-08 09:19:04 +08:00
parent 582beb13db
commit c387f81225
6 changed files with 555 additions and 45 deletions

View File

@@ -2,8 +2,10 @@ package com.xiang.service.module.jntyzx.zlb.schedule;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.xiang.common.enums.ScheduleEnums;
import com.xiang.common.exception.BusinessException;
import com.xiang.common.factory.JntyzxDingTalkFactory;
import com.xiang.common.factory.schedule.BaseScheduleTaskTemplate;
import com.xiang.common.pojo.jntyzx.zlb.ZlbTokenInfo;
@@ -18,12 +20,9 @@ import com.xiang.service.module.jntyzx.zlb.service.ZlbService;
import com.xiang.service.module.jntyzx.zlb.service.ZlbTokenInfoService;
import com.xiang.service.module.jntyzx.zlb.service.ZlbUserInfoService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.io.IOException;
import java.time.Duration;
import java.time.LocalTime;
import java.util.Date;
@@ -101,6 +100,10 @@ public class ZlbOrderTask extends BaseScheduleTaskTemplate {
String siteOrderDetailsStr = zlbService.buildSiteOrder(zlbUserInfo, secretKey, day);
Map<String, String> headers = zlbService.getHeaders(zlbTokenInfo.getTokenId());
String newOrderJson = zlbService.buildNewOrder(siteOrderDetailsStr, client);
if (StringUtils.isBlank(newOrderJson)) {
log.info("构建订单参数异常:{}", siteOrderDetailsStr);
throw new BusinessException("");
}
ScheduledExecutorService executorService = Executors.newScheduledThreadPool(1);
//计算9点到现在的时间差
//获取江体当前时间

View File

@@ -8,9 +8,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.google.common.collect.Lists;
import com.xiang.common.factory.JntyzxDingTalkFactory;
import com.xiang.common.pojo.TrackPoint;
import com.xiang.common.pojo.jntyzx.zlb.ZlbCaptchaResp;
import com.xiang.common.pojo.jntyzx.zlb.ZlbOrderInfo;
import com.xiang.common.pojo.jntyzx.zlb.ZlbOrderJson;
@@ -25,7 +23,7 @@ import com.xiang.common.utils.AESECBUtils;
import com.xiang.common.utils.Base64ImageScaler;
import com.xiang.common.utils.DateUtils;
import com.xiang.common.utils.OkHttpUtil;
import com.xiang.common.utils.TrajectoryUtil;
import com.xiang.common.utils.ZlbCaptchaTrackUtil;
import com.xiang.service.module.jntyzx.zlb.constants.ZlbUrlConstants;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
@@ -420,43 +418,7 @@ public class ZlbServiceImpl implements ZlbService {
}
private List<ZlbOrderInfo.ZlbData.TrackList> convert(List<String> trackList) {
int t = 0;
List<ZlbOrderInfo.ZlbData.TrackList> result = Lists.newArrayList();
for (int i = 0; i < trackList.size(); i++) {
String currentTrack = trackList.get(i);
String nextTrack = null;
if (i != trackList.size() - 1) {
nextTrack = trackList.get(i + 1);
}
t += 100;
Integer currentX = Integer.parseInt(currentTrack.split(",")[0]);
Integer currentY = Integer.parseInt(currentTrack.split(",")[1]);
List<TrackPoint> trackPoints = TrajectoryUtil.generateClick(currentX, currentY, t);
for (TrackPoint trackPoint : trackPoints) {
if (StringUtils.equals(trackPoint.getType(), "click")) {
ZlbOrderInfo.ZlbData.TrackList data = new ZlbOrderInfo.ZlbData.TrackList();
data.setX(trackPoint.getX());
data.setY(trackPoint.getY());
data.setT(trackPoint.getT());
data.setType(trackPoint.getType());
result.add(data);
}
}
t += 500;
if (StringUtils.isNotBlank(nextTrack)) {
Integer nextX = Integer.parseInt(nextTrack.split(",")[0]);
Integer nextY = Integer.parseInt(nextTrack.split(",")[1]);
List<TrackPoint> nextTrackPoints = TrajectoryUtil.generateMove(currentX, currentY, nextX, nextY, t, 1200, 10);
TrackPoint trackPoint = nextTrackPoints.get(i + 1);
ZlbOrderInfo.ZlbData.TrackList data = new ZlbOrderInfo.ZlbData.TrackList();
data.setX(trackPoint.getX());
data.setY(trackPoint.getY());
data.setT(trackPoint.getT());
data.setType(trackPoint.getType());
result.add(data);
}
}
List<ZlbOrderInfo.ZlbData.TrackList> result = ZlbCaptchaTrackUtil.generateBezierTrackList(trackList);
log.info("生成的轨迹点结果:{}", JSON.toJSONString(result));
return result;
}
@@ -688,5 +650,3 @@ public class ZlbServiceImpl implements ZlbService {
}
}
}