From ccc29fee66bd26fc32a0d10a3a3da3d2e7d080f5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B0=8C=E5=85=88=E8=88=9C?= <2499071264@qq.com> Date: Fri, 11 Sep 2026 15:18:20 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BC=98=E5=8C=96=E9=A6=96=E9=A1=B5?= =?UTF-8?q?=E6=B4=BB=E5=8A=A8=E6=8E=92=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../app/sys/controller/SysHomeController.java | 23 ++++++++++--------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/src/main/java/com/budwk/app/sys/controller/SysHomeController.java b/src/main/java/com/budwk/app/sys/controller/SysHomeController.java index 7dea3d5..02d5e1f 100644 --- a/src/main/java/com/budwk/app/sys/controller/SysHomeController.java +++ b/src/main/java/com/budwk/app/sys/controller/SysHomeController.java @@ -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 listMap = sysUserService.listMap(activitySql); List list = listMap.stream()