fix: 优化首页活动排序
This commit is contained in:
@@ -204,23 +204,24 @@ public class SysHomeController {
|
||||
FROM sys_home_activity
|
||||
WHERE enable = 1
|
||||
ORDER BY
|
||||
-- 第一优先级:活动状态分组(进行中 → 未开始 → 已结束)
|
||||
-- 第一优先级:活动状态分组(未开始 → 进行中 → 已结束)
|
||||
CASE
|
||||
WHEN startDate <= NOW() AND NOW() <= endDate THEN 0 -- 进行中
|
||||
WHEN startDate > NOW() THEN 1 -- 未开始
|
||||
WHEN startDate <= NOW() AND NOW() <= endDate THEN 1 -- 进行中
|
||||
WHEN startDate > NOW() THEN 0 -- 未开始
|
||||
ELSE 2 -- 已结束
|
||||
END ASC,
|
||||
-- 第二优先级:置顶(如果需要置顶在各自分组内生效)
|
||||
top DESC,
|
||||
-- 第三优先级:每组内按时间排序
|
||||
-- 进行中:按开始时间升序(越早开始的越靠前)
|
||||
-- 未开始:按开始时间升序(快开始的靠前)
|
||||
-- 已结束:按结束时间降序(最近结束的靠前)或开始时间降序
|
||||
-- 第二优先级:进行中、未开始按开始时间升序,已结束按结束时间降序
|
||||
CASE
|
||||
WHEN startDate <= NOW() AND NOW() <= endDate THEN startDate
|
||||
WHEN startDate > NOW() THEN startDate
|
||||
ELSE endDate
|
||||
END ASC;
|
||||
ELSE NULL
|
||||
END ASC,
|
||||
CASE
|
||||
WHEN endDate < NOW() THEN endDate
|
||||
ELSE NULL
|
||||
END DESC,
|
||||
-- 时间相同时置顶优先
|
||||
top DESC;
|
||||
""");
|
||||
List<NutMap> listMap = sysUserService.listMap(activitySql);
|
||||
List<Sys_home_activity> list = listMap.stream()
|
||||
|
||||
Reference in New Issue
Block a user