From cffa47bc4631195e41fba682a27ce5bbddbf2eba Mon Sep 17 00:00:00 2001 From: API Changelog Bot Date: Fri, 18 Sep 2026 15:34:56 +0800 Subject: [PATCH] =?UTF-8?q?docs(changelog):=20=E5=9B=A2=E6=9C=9F=E7=9C=8B?= =?UTF-8?q?=E6=9D=BF=E6=9C=88=E4=BB=BD=E5=88=86=E7=BB=84=E5=80=92=E5=BA=8F?= =?UTF-8?q?=E5=BA=94=E6=8C=89=E5=87=BA=E5=8F=91=E6=97=A5=E6=AD=A3=E5=BA=8F?= =?UTF-8?q?=EF=BC=88=E5=89=8D=E7=AB=AF=E7=BC=BA=E9=99=B7=EF=BC=8C=E4=BA=A4?= =?UTF-8?q?=E6=8E=A5=20mmg=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 现象:班期列表按月份分组时 11 月排在 10 月之前,与原型「6 月 → 7 月」正序相反。 定位:GET /v3/admin/order/group-batch/board 测试环境实测返回 10 行, 原始次序 2026-08-20 → 2026-11-26 严格递增,与 GroupBatchQueryController:79 javadoc 承诺的「按出发日期升序」一致;该接口入参只有 productId 与 scope, 无任何排序开关。故倒序由前端分组渲染引入,后端零改动。 Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_01Mg1eNKoacprUHNvuEKxjqq --- ...œˆ份分组倒序应按出发日正序-前端缺陷-管理后台.md | 106 ++++++++++++++++++ 1 file changed, 106 insertions(+) create mode 100644 changelogs-v2/2026-09/18_frontend_团期看板月份分组倒序应按出发日正序-前端缺陷-管理后台.md diff --git a/changelogs-v2/2026-09/18_frontend_团期看板月份分组倒序应按出发日正序-前端缺陷-管理后台.md b/changelogs-v2/2026-09/18_frontend_团期看板月份分组倒序应按出发日正序-前端缺陷-管理后台.md new file mode 100644 index 00000000..0b076569 --- /dev/null +++ b/changelogs-v2/2026-09/18_frontend_团期看板月份分组倒序应按出发日正序-前端缺陷-管理后台.md @@ -0,0 +1,106 @@ +--- +schema: "hl-changelog/v2" +ticket: "frontend" +title: "团期看板月份分组倒序,应按出发日正序" +consumer: "admin" +author: "wx(GIT)" +change_type: "前端缺陷" +backend_status: "not_required" +gateway_status: "not_required" +frontend_status: "pending" +frontend_owner: "mmg" +frontend_ref: "" +target_release: "" +verified_at: "" +status_note: "纯前端条目,后端零改动。团期看板按月份分组渲染时,月份组的顺序是倒序(11 月排在 10 月之前),与原型「6 月 → 7 月」的正序要求相反。后端 GET /v3/admin/order/group-batch/board 返回的行本身是按出发日期升序的(2026-09-18 测试环境实测,10 行原始顺序 2026-08-20 → 2026-11-26 严格递增),且该接口只有 productId 与 scope 两个入参、不提供任何排序开关,因此倒序是前端分组渲染环节引入的。请前端在按月份聚合后,对月份组按月份升序排列,组内保持后端给的顺序。" +updated_at: "2026-09-18" +base: "dev-v3" +--- + +# 团期看板月份分组倒序,应按出发日正序(前端缺陷) + +> **服务**: hl-order-service-v3(**后端零改动**) +> **页面**: 管理后台 团期订单 → 选中某产品 → 右侧「班期总览」列表 +> **接口**: `GET /v3/admin/order/group-batch/board` +> **日期**: 2026-09-18 +> **影响范围**: 仅前台渲染顺序;无端点、无出入参、无路由、无 DDL 变化 + +--- + +## ⚠️ 关键结论 + +🔵 **后端返回的顺序是对的,倒序是前端分组时引入的。** 无需等后端改动即可修复。 + +--- + +## 一、现象 + +选中产品后,右侧班期列表按月份分组,月份组的排列是**倒序**: + +``` +2026 年 11 月 4 期 +2026 年 10 月 4 期 +``` + +而原型要求的是按出发日**正序**: + +``` +6 月 · 2026 2 期 +7 月 · 2026 8 期 +``` + +月份越早越靠上,与「按出发日期升序」的业务直觉一致。用户看班期列表通常是为了找最近要出的团, +倒序会把最远的团顶到最上面。 + +## 二、后端已确认正确(实测证据) + +2026-09-18 在测试环境对产品 `2100839045562077186`(「王骁测试团期产品」,10 个班期)实测 +`GET /v3/admin/order/group-batch/board?productId=2100839045562077186`, +**不做任何本地排序**,直接打印响应数组的原始次序: + +``` +2026-08-20 | 2026-09-03 | 2026-10-08 | 2026-10-15 | 2026-10-22 +| 2026-10-29 | 2026-11-05 | 2026-11-12 | 2026-11-19 | 2026-11-26 +``` + +严格递增,与接口 javadoc 的承诺一致: + +> `GroupBatchQueryController.java:79` —— 「返回命中/未命中/孤儿三类行,**按出发日期升序**」 + +传 `scope=ALL` 与不传 `scope` 两种情况下顺序相同。 + +## 三、后端没有可以把顺序倒过来的开关 + +`GroupBatchQueryController.java:85-88` 该接口的全部入参只有两个: + +| 参数 | 类型 | 必填 | 说明 | +|---|---|---|---| +| `productId` | Long | 是 | 产品 ID | +| `scope` | String | 否 | `ONGOING` / `FINISHED` / `ALL`,缺省 `ALL`;只影响**过滤**,不影响排序 | + +**没有 `sort` / `order` / `direction` 这类排序入参。** 因此前端拿到的一定是升序数组, +倒序只可能来自前端自己的分组或排序逻辑。 + +页面上那个「排序」下拉框如果是前端本地排序,请一并检查它的默认值。 + +## 四、期望的修复 + +前端按月份聚合之后: + +1. **月份组按月份升序排列**(2026-10 在 2026-11 之前); +2. **组内保持后端返回的原顺序**(后端已是出发日升序,不要再排一次,也不要反转)。 + +## 五、后端需要做的 + +**无。** 本条目不涉及任何后端改动、接口变更或网关路由调整。 + +--- + +## 相关 + +- 同一页面另有一条**后端**问题已立单:统计条 `GET /v3/admin/order/group-batch/summary` + 在 `productId` 有值时缺省把班期范围收窄为 `ONGOING`(只算未结束的), + 而响应不声明自己过滤过,导致左侧产品卡片显示「10 期」、右侧总览显示「共 8 期」两个数字打架。 + 见 `wx/HL` 工单 **#7939**(已指派 jw)。该单会给 `summary` 响应补 `effectiveScope` + 与 `filteredOutCount` 两个字段,前端届时需要消费并提示「仅显示未结束班期(另有 N 期已结束)」。 + **本条目与 #7939 是两件独立的事**,排序问题不依赖 #7939 落地即可修。