|
|
@@ -146,6 +146,34 @@ public class PerformanceListServiceImpl implements PerformanceListService {
|
|
|
.eq(BarPerformance::getReviewStatus, CommonConstant.PERFORMANCE_REVIEW_STATUS_APPROVED)
|
|
|
.eq(BarPerformance::getOnlineStatus, CommonConstant.PERFORMANCE_ONLINE_STATUS_ONLINE).eq(BarPerformance::getStatus, 1);
|
|
|
|
|
|
+ // 过滤已过期的演出
|
|
|
+ Date now = new Date();
|
|
|
+ // 获取今天的开始时间(00:00:00)
|
|
|
+ java.util.Calendar cal = java.util.Calendar.getInstance();
|
|
|
+ cal.setTime(now);
|
|
|
+ cal.set(java.util.Calendar.HOUR_OF_DAY, 0);
|
|
|
+ cal.set(java.util.Calendar.MINUTE, 0);
|
|
|
+ cal.set(java.util.Calendar.SECOND, 0);
|
|
|
+ cal.set(java.util.Calendar.MILLISECOND, 0);
|
|
|
+ Date todayStart = cal.getTime();
|
|
|
+
|
|
|
+ // 使用and条件,确保至少满足以下条件之一(即未过期):
|
|
|
+ // 1. 单次演出:结束时间 >= 当前时间
|
|
|
+ // 2. 定时演出(每天定时或每周定时):结束日期 > 今天 或 (结束日期 = 今天 AND 结束时间 >= 当前时分秒)
|
|
|
+ queryWrapper.and(wrapper -> {
|
|
|
+ // 单次演出:结束时间 >= 现在
|
|
|
+ wrapper.or(w -> w.eq(BarPerformance::getPerformanceFrequency, "0")
|
|
|
+ .ge(BarPerformance::getSingleEndDatetime, now));
|
|
|
+ // 定时演出:结束日期 > 今天 或 (结束日期 = 今天 AND 结束时间 >= 当前时分秒)
|
|
|
+ wrapper.or(w -> w.in(BarPerformance::getPerformanceFrequency, "1", "2")
|
|
|
+ .and(subWrapper -> {
|
|
|
+ // 结束日期 > 今天
|
|
|
+ subWrapper.gt(BarPerformance::getDailyEndDate, todayStart)
|
|
|
+ // 或 (结束日期 = 今天 AND 结束时间 >= 当前时分秒)
|
|
|
+ .or(subSubWrapper -> subSubWrapper.apply("DATE(daily_end_date) = CURDATE() AND daily_end_time >= TIME(NOW())"));
|
|
|
+ }));
|
|
|
+ });
|
|
|
+
|
|
|
// 排序规则:按创建时间降序
|
|
|
queryWrapper.orderByDesc(BarPerformance::getCreatedTime);
|
|
|
|
|
|
@@ -609,7 +637,7 @@ public class PerformanceListServiceImpl implements PerformanceListService {
|
|
|
cal.set(java.util.Calendar.MILLISECOND, 0);
|
|
|
Date todayStart = cal.getTime();
|
|
|
|
|
|
- cal.add(java.util.Calendar.DAY_OF_MONTH, 30);
|
|
|
+ cal.add(java.util.Calendar.DAY_OF_MONTH, 365);
|
|
|
Date futureEnd = cal.getTime();
|
|
|
|
|
|
// 遍历演出,生成日期映射
|