changelog(mp): 微信小程序 · 我的旅行回忆 travel-memory(含评分字段合并版)

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) <noreply@anthropic.com>
这个提交包含在:
yaosutu 2026-04-21 17:31:10 +08:00
父节点 3268374447
当前提交 98bb0e4b5d

查看文件

@ -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<MpTravelMemoryVO>>`
**`PageResult`**:
| 字段 | 类型 | 说明 |
|---|---|---|
| records | `List<MpTravelMemoryVO>` | 当前页数据 |
| 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 无效 |