0007暴力拉取
This commit is contained in:
@@ -144,7 +144,7 @@ public class JDScheduleJob {
|
|||||||
* @param startTime 开始时间
|
* @param startTime 开始时间
|
||||||
* isRealTime 是否是实时订单 是的话不会判断是否拉取过
|
* isRealTime 是否是实时订单 是的话不会判断是否拉取过
|
||||||
* page 分页页码
|
* page 分页页码
|
||||||
* isMinutes 是否是分钟级订单 分钟的每次加10分钟,小时每小时加1小时
|
* isRealTime 是否是分钟级订单 分钟的每次加10分钟,小时每小时加1小时
|
||||||
*/
|
*/
|
||||||
public UnionOpenOrderRowQueryResponse fetchOrdersForDateTime(LocalDateTime startTime, boolean isRealTime, Integer page, boolean isMinutes, String appKey, String secretKey) {
|
public UnionOpenOrderRowQueryResponse fetchOrdersForDateTime(LocalDateTime startTime, boolean isRealTime, Integer page, boolean isMinutes, String appKey, String secretKey) {
|
||||||
|
|
||||||
@@ -158,7 +158,8 @@ public class JDScheduleJob {
|
|||||||
|
|
||||||
// 检查这个小时或分钟是否已经被处理过
|
// 检查这个小时或分钟是否已经被处理过
|
||||||
if (hashOps.hasKey(newTimeTag, hourMinuteTag)) {
|
if (hashOps.hasKey(newTimeTag, hourMinuteTag)) {
|
||||||
if (!isMinutes) {
|
// 0007需要暴力拉取
|
||||||
|
if (!isMinutes && !isRealTime) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -212,7 +213,7 @@ public class JDScheduleJob {
|
|||||||
while (hasMore) {
|
while (hasMore) {
|
||||||
try {
|
try {
|
||||||
// 30-60 天 ,非实时,非分钟
|
// 30-60 天 ,非实时,非分钟
|
||||||
UnionOpenOrderRowQueryResponse response = fetchOrdersForDateTime(current, false, pageIndex, false, appKey, secretKey);
|
UnionOpenOrderRowQueryResponse response = fetchOrdersForDateTime(current, strategy.isRealTime(), pageIndex, false, appKey, secretKey);
|
||||||
if (response != null && response.getQueryResult() != null) {
|
if (response != null && response.getQueryResult() != null) {
|
||||||
if (response.getQueryResult().getCode() == 200) {
|
if (response.getQueryResult().getCode() == 200) {
|
||||||
OrderRowResp[] orderRowResps = response.getQueryResult().getData();
|
OrderRowResp[] orderRowResps = response.getQueryResult().getData();
|
||||||
|
|||||||
@@ -9,8 +9,8 @@ import java.time.temporal.ChronoUnit;
|
|||||||
public class Days0007Strategy implements OrderFetchStrategy {
|
public class Days0007Strategy implements OrderFetchStrategy {
|
||||||
@Override
|
@Override
|
||||||
public TimeRange calculateRange(LocalDateTime baseTime) {
|
public TimeRange calculateRange(LocalDateTime baseTime) {
|
||||||
LocalDateTime end = baseTime.minusHours(1).truncatedTo(ChronoUnit.HOURS);
|
LocalDateTime end = baseTime.truncatedTo(ChronoUnit.MINUTES);
|
||||||
LocalDateTime start = end.minusDays(7).truncatedTo(ChronoUnit.HOURS);
|
LocalDateTime start = end.minusDays(7).truncatedTo(ChronoUnit.MINUTES);
|
||||||
if (start.isAfter(end)) { // 防御性校验
|
if (start.isAfter(end)) { // 防御性校验
|
||||||
throw new IllegalArgumentException(strategyName()+"时间范围错误");
|
throw new IllegalArgumentException(strategyName()+"时间范围错误");
|
||||||
}
|
}
|
||||||
@@ -22,4 +22,10 @@ public class Days0007Strategy implements OrderFetchStrategy {
|
|||||||
public String strategyName() {
|
public String strategyName() {
|
||||||
return "00-07天历史订单抓取策略";
|
return "00-07天历史订单抓取策略";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Boolean isRealTime() {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -22,4 +22,10 @@ public class Days0714Strategy implements OrderFetchStrategy {
|
|||||||
public String strategyName() {
|
public String strategyName() {
|
||||||
return "07-14天历史订单抓取策略";
|
return "07-14天历史订单抓取策略";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Boolean isRealTime() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,6 +19,8 @@ public class Days1430Strategy implements OrderFetchStrategy {
|
|||||||
public String strategyName() {
|
public String strategyName() {
|
||||||
return "14-30天历史订单抓取策略";
|
return "14-30天历史订单抓取策略";
|
||||||
}
|
}
|
||||||
|
@Override
|
||||||
|
public Boolean isRealTime() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 其他策略类类似实现
|
|
||||||
|
|||||||
@@ -3,13 +3,14 @@ package cn.van.business.util.jdReq;
|
|||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
import java.time.temporal.ChronoUnit;
|
||||||
|
|
||||||
@Component
|
@Component
|
||||||
public class Days3090Strategy implements OrderFetchStrategy {
|
public class Days3090Strategy implements OrderFetchStrategy {
|
||||||
@Override
|
@Override
|
||||||
public TimeRange calculateRange(LocalDateTime baseTime) {
|
public TimeRange calculateRange(LocalDateTime baseTime) {
|
||||||
LocalDateTime end = baseTime.minusMonths(1);
|
LocalDateTime end = baseTime.minusMonths(1).truncatedTo(ChronoUnit.HOURS);
|
||||||
LocalDateTime start = end.minusMonths(2);
|
LocalDateTime start = end.minusMonths(2).truncatedTo(ChronoUnit.HOURS);
|
||||||
if (start.isAfter(end)) { // 防御性校验
|
if (start.isAfter(end)) { // 防御性校验
|
||||||
throw new IllegalArgumentException(strategyName()+"时间范围错误");
|
throw new IllegalArgumentException(strategyName()+"时间范围错误");
|
||||||
}
|
}
|
||||||
@@ -21,4 +22,9 @@ public class Days3090Strategy implements OrderFetchStrategy {
|
|||||||
public String strategyName() {
|
public String strategyName() {
|
||||||
return "30-90天历史订单抓取策略";
|
return "30-90天历史订单抓取策略";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Boolean isRealTime() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,5 +14,7 @@ public interface OrderFetchStrategy {
|
|||||||
* 策略标识
|
* 策略标识
|
||||||
*/
|
*/
|
||||||
String strategyName();
|
String strategyName();
|
||||||
|
|
||||||
|
Boolean isRealTime() ;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user