This commit is contained in:
雷欧(林平凡)
2024-12-06 16:02:54 +08:00
parent 8a65c3f21f
commit 2cedbd49f4

View File

@@ -4,7 +4,6 @@ package cn.van.business.util;
import cn.van.business.model.jd.GoodsInfoVO;
import cn.van.business.model.jd.OrderRow;
import cn.van.business.repository.OrderRowRepository;
import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.util.DateUtils;
import com.jd.open.api.sdk.DefaultJdClient;
import com.jd.open.api.sdk.JdClient;
@@ -12,9 +11,7 @@ import com.jd.open.api.sdk.domain.kplunion.OrderService.request.query.OrderRowRe
import com.jd.open.api.sdk.domain.kplunion.OrderService.response.query.GoodsInfo;
import com.jd.open.api.sdk.domain.kplunion.OrderService.response.query.OrderRowResp;
import com.jd.open.api.sdk.request.kplunion.UnionOpenOrderRowQueryRequest;
import com.jd.open.api.sdk.request.kplunion.UnionOpenPromotionBysubunionidGetRequest;
import com.jd.open.api.sdk.response.kplunion.UnionOpenOrderRowQueryResponse;
import com.jd.open.api.sdk.response.kplunion.UnionOpenPromotionCommonGetResponse;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@@ -312,14 +309,14 @@ public class JDUtils {
}
/**
* 每10分钟拉取最近14天的订单
* 每10分钟拉取07-14天的订单
*/
@Scheduled(cron = "0 */10 * * * ?")
public void fetchHistoricalOrders0014() {
public void fetchHistoricalOrders0714() {
LocalDateTime now = LocalDateTime.now();
logger.info("拉取历史订单---> , {} 点,{} 分", now.getHour(), now.getMinute());
LocalDateTime lastHour = now.truncatedTo(ChronoUnit.HOURS);
LocalDateTime lastHour = now.truncatedTo(ChronoUnit.HOURS).minusDays(7);
LocalDateTime startDate = lastHour.minusDays(14).truncatedTo(ChronoUnit.HOURS);
while (!startDate.isEqual(lastHour)) {
@@ -357,7 +354,49 @@ public class JDUtils {
startDate = startDate.plusMinutes(10);
}
}
@Scheduled(cron = "0 */2 * * * ?")
public void fetchHistoricalOrders0007() {
LocalDateTime now = LocalDateTime.now();
logger.info("拉取历史订单---> , {} 点,{} 分", now.getHour(), now.getMinute());
LocalDateTime lastHour = now.truncatedTo(ChronoUnit.HOURS);
LocalDateTime startDate = lastHour.minusDays(7).truncatedTo(ChronoUnit.HOURS);
while (!startDate.isEqual(lastHour)) {
Integer pageIndex = 1;
boolean hasMore = true;
while (hasMore) {
try {
UnionOpenOrderRowQueryResponse response = fetchOrdersForDateTime(startDate, false, pageIndex, true);
if (response != null && response.getQueryResult() != null) {
if (response.getQueryResult().getCode() == 200) {
OrderRowResp[] orderRowResps = response.getQueryResult().getData();
if (orderRowResps != null) {
for (OrderRowResp orderRowResp : orderRowResps) {
if (orderRowResp != null) { // Check each orderRowResp is not null
OrderRow orderRow = createOrderRow(orderRowResp);
if (orderRow != null) { // Ensure orderRow is not null after creation
orderRowRepository.save(orderRow);
}
}
}
}
hasMore = Boolean.TRUE.equals(response.getQueryResult().getHasMore());
} else {
hasMore = false;
}
} else {
hasMore = false;
}
} catch (Exception e) {
hasMore = false; // Optionally break out of the while loop if required
}
if (hasMore) pageIndex++;
}
startDate = startDate.plusMinutes(2);
}
}
/**
* 根据指定的日期时间拉取订单
@@ -425,7 +464,7 @@ public class JDUtils {
content.append("刷新三天\r");
content.append("刷新3060\r\n");
content.append("刷新1430\r\n");
content.append("刷新0014\r\n");
content.append("刷新0714\r\n");
content.append(":::高级菜单:::\r");
content.append("菜单:京+高级+命令 \n 如: 京高级违规30\r");
@@ -663,9 +702,9 @@ public class JDUtils {
content.append("刷新1430,耗时: ").append(time).append("ms, ").append((time) / 1000).append(" s\r");
break;
}
case "刷新0014": {
case "刷新0714": {
long start = System.currentTimeMillis();
fetchHistoricalOrders0014();
fetchHistoricalOrders0714();
long time = System.currentTimeMillis() - start;
content.append("刷新0014,耗时: ").append(time).append("ms, ").append((time) / 1000).append(" s\r");
break;