|
@@ -775,34 +775,42 @@ public class PredictModelServiceImpl implements PredictModelService {
|
|
|
*
|
|
*
|
|
|
* @return true-当前时间在6点之后且为节日,false-不满足条件
|
|
* @return true-当前时间在6点之后且为节日,false-不满足条件
|
|
|
*/
|
|
*/
|
|
|
- public boolean isEarlyMorningHoliday() {
|
|
|
|
|
- try {
|
|
|
|
|
- // 获取当前小时
|
|
|
|
|
- int currentHour = DateUtils.getCurrentHour();
|
|
|
|
|
-
|
|
|
|
|
- // 判断时间是否在6点之后
|
|
|
|
|
- if (currentHour >= 6) {
|
|
|
|
|
- log.info("当前时间{}点在6点之后,开始检查是否为节日", currentHour);
|
|
|
|
|
-
|
|
|
|
|
- // 调用节日服务判断今日是否为节日
|
|
|
|
|
- boolean isHoliday = holidayService.isTodayHoliday();
|
|
|
|
|
-
|
|
|
|
|
- if (isHoliday) {
|
|
|
|
|
- log.info("当前时间{}点6点之后且今日是节日,返回true", currentHour);
|
|
|
|
|
- return true;
|
|
|
|
|
- } else {
|
|
|
|
|
- log.info("当前时间{}点在6点之后但今日不是节日,返回false", currentHour);
|
|
|
|
|
- return false;
|
|
|
|
|
- }
|
|
|
|
|
- } else {
|
|
|
|
|
- log.debug("当前时间{}点不在6点之后,返回false", currentHour);
|
|
|
|
|
- return false;
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- } catch (Exception e) {
|
|
|
|
|
- log.error("判断早晨节日时间异常", e);
|
|
|
|
|
- // 异常情况下返回false,确保系统稳定性
|
|
|
|
|
- return false;
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ public boolean isEarlyMorningHoliday() {
|
|
|
|
|
+ try {
|
|
|
|
|
+ // 获取当前小时,6点之前直接返回 false,无需查询节日服务或缓存
|
|
|
|
|
+ int currentHour = DateUtils.getCurrentHour();
|
|
|
|
|
+ if (currentHour < 6) {
|
|
|
|
|
+ return false;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ String day = DateTimeFormatter.ofPattern("yyyyMMdd").format(LocalDateTime.now());
|
|
|
|
|
+ String redisKey = String.format(RedisPrefixEnum.ADVANCE_HOLIDAY_FLAG.getPrefix(), day);
|
|
|
|
|
+ String flag = adRedisHelper.get(redisKey);
|
|
|
|
|
+
|
|
|
|
|
+ // 先从缓存读取当日节日标记
|
|
|
|
|
+ if (StringUtils.isNotBlank(flag)) {
|
|
|
|
|
+ boolean isHoliday = StringUtils.equals("1", flag);
|
|
|
|
|
+ return isHoliday;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 调用节日服务判断今日是否为节日
|
|
|
|
|
+ boolean isHoliday = holidayService.isTodayHoliday();
|
|
|
|
|
+
|
|
|
|
|
+ // 查询结果回种缓存,保存 10 小时
|
|
|
|
|
+ String cacheVal = isHoliday ? "1" : "0";
|
|
|
|
|
+ boolean cacheResult = adRedisHelper.set(redisKey, cacheVal, 10 * 60 * 60);
|
|
|
|
|
+ log.info("写入早晨节日标记缓存: {} -> {}, ttl=10h, success={}", redisKey, cacheVal, cacheResult);
|
|
|
|
|
+
|
|
|
|
|
+ if (isHoliday) {
|
|
|
|
|
+ return true;
|
|
|
|
|
+ } else {
|
|
|
|
|
+ return false;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
|
+ log.error("判断早晨节日时间异常", e);
|
|
|
|
|
+ // 异常情况下返回false,确保系统稳定性
|
|
|
|
|
+ return false;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|