1
This commit is contained in:
@@ -227,54 +227,47 @@ public class JDUtils {
|
|||||||
public void fetchHistoricalOrders() {
|
public void fetchHistoricalOrders() {
|
||||||
System.out.println("开始拉取历史订单");
|
System.out.println("开始拉取历史订单");
|
||||||
|
|
||||||
// 获取当前时间,并调整为整点开始
|
|
||||||
LocalDateTime now = LocalDateTime.now();
|
LocalDateTime now = LocalDateTime.now();
|
||||||
LocalDateTime lastHour = now.truncatedTo(ChronoUnit.HOURS);
|
LocalDateTime lastHour = now.truncatedTo(ChronoUnit.HOURS);
|
||||||
LocalDateTime startDate = lastHour.minusMonths(2).truncatedTo(ChronoUnit.HOURS);
|
LocalDateTime startDate = lastHour.minusMonths(2).truncatedTo(ChronoUnit.HOURS);
|
||||||
|
|
||||||
// 循环从两个月前到现在最近的整点
|
|
||||||
while (!startDate.isEqual(lastHour)) {
|
while (!startDate.isEqual(lastHour)) {
|
||||||
Integer pageIndex = 1;
|
Integer pageIndex = 1;
|
||||||
Boolean hasMore = true;
|
boolean hasMore = true;
|
||||||
|
|
||||||
while (hasMore) {
|
while (hasMore) {
|
||||||
try {
|
try {
|
||||||
UnionOpenOrderRowQueryResponse response = fetchOrdersForDateTime(startDate, false, pageIndex); // 请求历史订单数据
|
UnionOpenOrderRowQueryResponse response = fetchOrdersForDateTime(startDate, false, pageIndex);
|
||||||
|
if (response != null && response.getQueryResult() != null) {
|
||||||
if (response != null && response.getQueryResult() != null && response.getQueryResult().getCode() == 200) {
|
if (response.getQueryResult().getCode() == 200) {
|
||||||
OrderRowResp[] orderRowResps = response.getQueryResult().getData();
|
OrderRowResp[] orderRowResps = response.getQueryResult().getData();
|
||||||
|
|
||||||
// 安全地获取hasMore信息
|
|
||||||
Boolean tempHasMore = response.getQueryResult().getHasMore();
|
|
||||||
hasMore = tempHasMore != null && tempHasMore;
|
|
||||||
|
|
||||||
if (orderRowResps != null) {
|
if (orderRowResps != null) {
|
||||||
for (OrderRowResp orderRowResp : orderRowResps) {
|
for (OrderRowResp orderRowResp : orderRowResps) {
|
||||||
// 固化到数据库
|
if (orderRowResp != null) { // Check each orderRowResp is not null
|
||||||
OrderRow orderRow = createOrderRow(orderRowResp);
|
OrderRow orderRow = createOrderRow(orderRowResp);
|
||||||
// 订单号不存在就保存,存在就更新订单状态
|
if (orderRow != null) { // Ensure orderRow is not null after creation
|
||||||
orderRowRepository.save(orderRow);
|
orderRowRepository.save(orderRow);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
hasMore = Boolean.TRUE.equals(response.getQueryResult().getHasMore());
|
||||||
} else {
|
} else {
|
||||||
hasMore = false;
|
hasMore = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (hasMore) pageIndex++;
|
|
||||||
} else {
|
} else {
|
||||||
hasMore = false;
|
hasMore = false;
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
// 在这里处理任何抛出的异常,防止它打断整个抓取过程
|
|
||||||
System.err.println("处理时间 " + startDate + " 时出错:" + e.getMessage());
|
System.err.println("处理时间 " + startDate + " 时出错:" + e.getMessage());
|
||||||
// 可以选择继续或中断当前小时的处理
|
hasMore = false; // Optionally break out of the while loop if required
|
||||||
hasMore = false; // 选择中断当前小时的处理
|
|
||||||
}
|
}
|
||||||
|
if (hasMore) pageIndex++;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 每处理完一个小时的数据,递增到下一个小时
|
|
||||||
startDate = startDate.plusHours(1);
|
startDate = startDate.plusHours(1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 手动调用 将订单发送到微信
|
* 手动调用 将订单发送到微信
|
||||||
*/
|
*/
|
||||||
|
|||||||
Reference in New Issue
Block a user