From 98bb0e4b5d7b5294bb07f0a76250d245d518ae11 Mon Sep 17 00:00:00 2001 From: yaosutu <770858045@qq.com> Date: Tue, 21 Apr 2026 17:31:10 +0800 Subject: [PATCH] =?UTF-8?q?changelog(mp):=20=E5=BE=AE=E4=BF=A1=E5=B0=8F?= =?UTF-8?q?=E7=A8=8B=E5=BA=8F=20=C2=B7=20=E6=88=91=E7=9A=84=E6=97=85?= =?UTF-8?q?=E8=A1=8C=E5=9B=9E=E5=BF=86=20travel-memory(=E5=90=AB=E8=AF=84?= =?UTF-8?q?=E5=88=86=E5=AD=97=E6=AE=B5=E5=90=88=E5=B9=B6=E7=89=88)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit GET /mp/order/travel-memory 返回 MpTravelMemoryVO 完整字段(含 rating/reviewId),小程序单接口获取 订单+评分数据。对应原型 wwWKT 行程 Tab·回头客卡片墙。 PR #1004 (Closes #1002) · PR #1014 (Closes #1011) Co-Authored-By: Claude Opus 4.7 (1M context) --- .../2026-04/2026-04-21_mp-travel-memory.md | 134 ++++++++++++++++++ 1 file changed, 134 insertions(+) create mode 100644 changelogs/2026-04/2026-04-21_mp-travel-memory.md diff --git a/changelogs/2026-04/2026-04-21_mp-travel-memory.md b/changelogs/2026-04/2026-04-21_mp-travel-memory.md new file mode 100644 index 0000000..0e13064 --- /dev/null +++ b/changelogs/2026-04/2026-04-21_mp-travel-memory.md @@ -0,0 +1,134 @@ +# 微信小程序 · 我的旅行回忆接口 + +**日期**:2026-04-21 +**影响**:**微信小程序** 行程 Tab·回头客态(原型 `wwWKT` 旅行回忆卡片墙) +**PR**:#1004(Closes #1002)· #1014(Closes #1011) + +--- + +## 概述 + +返回用户已完成订单(`status=COMPLETED`)分页列表,按 `departure_date DESC, order_id DESC` 排序。响应中已含评分信息,一次调用拿到订单+评分完整数据。 + +--- + +## 接口 + +``` +GET /mp/order/travel-memory +``` + +**鉴权**:Bearer token(登录态)。`userId` 由后端从 token 取,前端不传。 + +### 入参 + +| 参数 | 位置 | 类型 | 必填 | 默认 | 约束 | 说明 | +|---|---|---|---|---|---|---| +| page | Query | Integer | 否 | 1 | ≥1 | 页码 | +| pageSize | Query | Integer | 否 | 20 | 1~100 | 每页条数 | + +### 请求示例 + +``` +GET /mp/order/travel-memory?page=1&pageSize=10 +``` + +--- + +### 出参 `Result>` + +**`PageResult`**: +| 字段 | 类型 | 说明 | +|---|---|---| +| records | `List` | 当前页数据 | +| total | Integer | 总记录数 | +| page | Integer | 当前页码 | +| pageSize | Integer | 每页条数 | + +**`MpTravelMemoryVO`**: +| 字段 | 类型 | 必有 | 说明 | +|---|---|---|---| +| orderId | Long | ✅ | 订单ID | +| productName | String | ✅ | 产品名(订单快照) | +| productCoverUrl | String | 否 | 产品封面图 URL | +| departureDate | LocalDate | ✅ | 出发日期,`yyyy-MM-dd` | +| returnDate | LocalDate | 否 | 返程日期,`yyyy-MM-dd`(按 `departureDate + tripDays - 1` 推导) | +| tripDays | Integer | 否 | 行程天数 | +| tripNights | Integer | 否 | 行程晚数 | +| reviewed | Boolean | ✅ | 是否已评价(null 兜底为 false) | +| rating | Integer | 否 | 整体评分 1-5;**未评价或评价服务降级时为 null** | +| reviewId | Long | 否 | 评价ID;**未评价或评价服务降级时为 null** | + +### 响应示例(已评价 + 未评价混合) + +```json +{ + "code": 200, + "message": "操作成功", + "data": { + "records": [ + { + "orderId": 2043935542092980226, + "productName": "草原环线·舒适套餐", + "productCoverUrl": "https://cdn.1814.love/product/cover/xxxx.png", + "departureDate": "2026-07-01", + "returnDate": "2026-07-06", + "tripDays": 6, + "tripNights": 5, + "reviewed": true, + "rating": 5, + "reviewId": 6001 + }, + { + "orderId": 2043935542092980211, + "productName": "呼伦贝尔深度游·豪华版", + "productCoverUrl": "https://cdn.1814.love/product/cover/yyyy.png", + "departureDate": "2026-05-15", + "returnDate": "2026-05-20", + "tripDays": 6, + "tripNights": 5, + "reviewed": false, + "rating": null, + "reviewId": null + } + ], + "total": 2, + "page": 1, + "pageSize": 10 + } +} +``` + +### 响应示例(空数据) + +```json +{ + "code": 200, + "message": "操作成功", + "data": { + "records": [], + "total": 0, + "page": 1, + "pageSize": 10 + } +} +``` + +--- + +## 边界行为 + +- **未登录**:401(网关层拦截) +- **分页参数越界**(`page < 1` 或 `pageSize > 100`):400 +- **评价服务降级**:接口仍 200 返回订单数据,`rating` / `reviewId` 统一为 null +- **未完成订单**:不返回(仅 `status=COMPLETED` 进入列表) + +--- + +## 错误码 + +| code | 触发 | +|---|---| +| 200 | 正常(评价服务降级时 code 也是 200,rating/reviewId 为 null)| +| 400 | 分页参数越界 | +| 401 | token 无效 |