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