From 09cfc2f644473d8b2ca8b68cdc32e8b72ef9f318 Mon Sep 17 00:00:00 2001 From: API Changelog Bot Date: Mon, 15 Jun 2026 09:11:34 +0800 Subject: [PATCH] =?UTF-8?q?docs(changelog):=20=E5=8F=B8=E6=9C=BA=E8=87=AA?= =?UTF-8?q?=E5=8A=A9=E5=BD=95=E5=85=A5=E5=B7=B2=E5=8F=91=E6=94=BE=E9=93=BE?= =?UTF-8?q?=E6=8E=A5=E5=89=8D=E7=AB=AF=E5=86=99=E6=AD=BB=E2=86=92=E6=8E=A5?= =?UTF-8?q?=E7=8E=B0=E6=88=906=E7=AB=AF=E7=82=B9(H5TokenAdminController?= =?UTF-8?q?=E5=B7=B2=E5=AD=98=E5=9C=A8,=E5=AE=9E=E6=B5=8B=E7=9C=9F?= =?UTF-8?q?=E5=AE=9E=E6=95=B0=E6=8D=AE,=E6=97=A0=E9=9C=80=E8=A1=A5)=20[?= =?UTF-8?q?=E5=89=8D=E7=AB=AF=E9=80=9A=E7=9F=A5]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Fable 5 --- ...接前端写死改接现成端点-接口已存在无需补-管理后台.md | 49 +++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 changelogs-v2/2026-06/15_司机自助录入已发放链接前端写死改接现成端点-接口已存在无需补-管理后台.md diff --git a/changelogs-v2/2026-06/15_司机自助录入已发放链接前端写死改接现成端点-接口已存在无需补-管理后台.md b/changelogs-v2/2026-06/15_司机自助录入已发放链接前端写死改接现成端点-接口已存在无需补-管理后台.md new file mode 100644 index 0000000..55a602f --- /dev/null +++ b/changelogs-v2/2026-06/15_司机自助录入已发放链接前端写死改接现成端点-接口已存在无需补-管理后台.md @@ -0,0 +1,49 @@ +# 【前端接线·管理后台】司机自助录入「已发放链接」等整块是前端写死/mock——后端 6 个端点早已存在,请直接接,无需后端补 + +> 服务:hl-fleet-service(H5TokenAdminController,FLEET v1.5 §4.1/§4.6) | 无 PR(后端端点早已存在并部署) | 测试服网关 9443 实测返回真实数据(2026-06-15) +> 背景:wx 在「车务管理→司机自助录入」页看「已发放链接」列表,指出这块是前端写死的,要求改走后端接口、没有就补。经核实**后端接口早已存在且可用**,前端当前展示的是 mock 数据未接线。 + +## ⚠️ 关键判定:前端在用写死数据,不是后端缺接口 + +截图「已发放链接」里 token 是 `kx7m9qz` / `ab3d8fh`(6–7 位短串)、二维码域名 `hr.elujiwo.com/driver-intake/kx7m9qz`(路径式)。而**后端真实数据**是: + +``` +GET /admin/fleet/h5/tokens?page=1&pageSize=5 (测试服实测 code=200) +records[0] = { + "pendingId": "2066323803964637186", + "mode": "new", "modeLabel": "新招", + "token": "18bf0d0208a7459684621727c4511109", // 32 位 UUID,不是 kx7m9qz + "name": "", "phone": "138****0000", + "createTime": "2026-06-15 08:56:00", "expireAt": "2026-07-15 08:56:00", + "status": "VALID_UNSUBMITTED", "statusLabel": "...", + "url": "https://hr.1814.love/driver-intake?t=18bf0d02...", // hr.1814.love + ?t=,不是 elujiwo.com + "shortUrl": "https://web.test.1814.love:9443/s/tRE4y8bc7" // 真实短链 +} +``` + +token 长度、域名、链接格式全对不上 → **前端那几行是写死/mock 的,请替换为下列现成端点**。 + +## 现成端点全清单(base `/admin/fleet/h5`,网关 `/admin/fleet/**` 已覆盖,全部无需后端改动) + +| # | 用途 | 方法 + 路径 | 关键说明 | +|---|------|-----------|---------| +| 1 | 生成录入 token(二维码/链接)| `POST /admin/fleet/h5/token` | 入参 mode(new/renew)/targetDriverId(renew必填)/phoneHint/expireDays;返回 token/url/**shortUrl**/qrCodeUrl(300×300 PNG Base64)/expireAt | +| 2 | **已发放链接列表**(红框这块)| `GET /admin/fleet/h5/tokens` | 过滤 mode/status(6派生态)/keyword(姓名或token);分页 page/pageSize;返回 `PageResult` | +| 3 | 导出 CSV | `GET /admin/fleet/h5/tokens/export` | 同列表入参无分页,返回 text/csv(UTF-8 BOM)| +| 4 | 作废链接 | `POST /admin/fleet/h5/tokens/{pendingId}/void` | 仅 APPROVED 不可作废;已 VOIDED 幂等;600402 不存在/600304 已通过 | +| 5 | 重发录入短信 | `POST /admin/fleet/h5/tokens/{pendingId}/resend` | 仅 VALID_UNSUBMITTED/REJECTED 可重发;走短链;600307 无手机号/600308 状态不可重发 | +| 6 | 重新生成链接 | `POST /admin/fleet/h5/tokens/{pendingId}/regenerate` | SUBMITTED/APPROVED 不可重生;作废旧+建新返新 token/qr;600309 已提交/已通过 | + +## 列表项字段(H5TokenListItemRespVO,端点 #2 返回) + +`pendingId`(String雪花) / `mode`+`modeLabel`(new=新招·renew=续签) / `token`(32位) / `name`(未提交为空串) / `phone`(脱敏 138****2345) / `createTime` / `expireAt` / `submittedAt`(未提交 null) / `reviewStatus`(pending/approved/rejected) / `status`(6派生态 VOIDED/APPROVED/REJECTED/SUBMITTED/EXPIRED/VALID_UNSUBMITTED) / `statusLabel`(中文) / `url`(可复制转发的完整长链) / `shortUrl`(短信实投短链,旧行无短码时 null,前端降级显示 url)。 + +## 前端动作 + +1. 「生成专属链接 + 二维码」改调 #1,二维码用返回的 `qrCodeUrl`、复制用 `url`、短信用 `shortUrl`(别再用 elujiwo.com 域名/短假 token)。 +2. 「已发放链接」表改调 #2(替换写死的 3 行 mock),列直接映射上面字段;操作列「作废/重发/重新生成」接 #4/#5/#6,「导出」接 #3。 +3. 状态列直接用后端 `statusLabel`(已是中文,6 态实时派生),不要前端自己算。 + +## 实测 + +`GET /admin/fleet/h5/tokens?page=1&pageSize=5` → code=200,返回多条真实 VALID_UNSUBMITTED 记录(32 位 token + hr.1814.love?t= 链接 + web.test 短链),数据真实可用。**后端无需任何改动。**