This commit is contained in:
Leo
2024-12-01 01:52:15 +08:00
parent 05e0bdff96
commit c798d78179

View File

@@ -19,7 +19,7 @@ import com.jd.open.api.sdk.response.kplunion.UnionOpenPromotionCommonGetResponse
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.SetOperations;
import org.springframework.data.redis.core.HashOperations;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
@@ -286,19 +286,27 @@ public class JDUtils {
public UnionOpenOrderRowQueryResponse fetchOrdersForDateTime(LocalDateTime startTime, boolean isRealTime, Integer page) throws Exception {
LocalDateTime endTime = isRealTime ? startTime.plusMinutes(10) : startTime.plusHours(1);
String key = startTime.format(DATE_TIME_FORMATTER);
String hourRange = isRealTime ? "minute" : "hour";
String hourMinuteTag = isRealTime ? "minute" : "hour";
String timeTag = startTime.format(DATE_TIME_FORMATTER);
SetOperations<String, String> setOps = redisTemplate.opsForSet();
HashOperations<String, String, String> hashOps = redisTemplate.opsForHash();
// 检查这个小时或分钟是否已经被处理过
if (hashOps.hasKey(timeTag, hourMinuteTag)) {
return null;
}
// 调用 API 以拉取订单
UnionOpenOrderRowQueryResponse unionOpenOrderRowQueryResponse = getUnionOpenOrderRowQueryResponse(startTime, endTime, page);
// 标记已拉取
setOps.add(key, hourRange);
if (!isRealTime) {
// 标记已拉取
hashOps.put(timeTag, hourMinuteTag, "done");
}
// 打印方法调用和开始结束时间
logger.info("拉取订单:开始时间:{}结束时间:{}", startTime.format(DATE_TIME_FORMATTER), endTime.format(DATE_TIME_FORMATTER));
logger.info("拉取订单:开始时间:{}---结束时间:{}", startTime.format(DATE_TIME_FORMATTER), endTime.format(DATE_TIME_FORMATTER));
return unionOpenOrderRowQueryResponse;
}