hl-api-changelog/changelogs/2026-04/2026-04-20_order-v2_mp-travel-memory.md
yaosutu c9cd0ca886 changelog(order-v2): C 端我的旅行回忆 travel-memory 接口 + 评分字段
- GET /mp/order/travel-memory 接口首发 (PR #1004 / Issue #1002)
- MpTravelMemoryVO 补 rating + reviewId 字段 (PR #1014 / Issue #1011)
- 对应原型 wwWKT 行程 Tab·回头客

本地已有两份完整 changelog 但此前未推送,本次一并推送远程。

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-21 17:19:35 +08:00

141 行
4.1 KiB
Markdown

此文件含有模棱两可的 Unicode 字符

此文件含有可能会与其他字符混淆的 Unicode 字符。 如果您是想特意这样的,可以安全地忽略该警告。 使用 Escape 按钮显示他们。

# C端「我的旅行回忆」接口新增 — 2026-04-20
> **服务** hl-order-service-v2端口 8094· **类型** feat · **关联** Issue #1002 / PR #1004
> **前端调用路径**: 网关(8080) → hl-mp-service(8085) → hl-order-service-v2(8094)
> **前端实际请求前缀**: `GET /mp/order/travel-memory`mp-service 需同步新增 BFF 转发层)
---
## 一、新增接口1 个)
### 🆕 `GET /mp/order/travel-memory` — 我的旅行回忆
**功能**:返回用户已完成订单(`status=COMPLETED`)分页列表,按 `departure_date DESC, order_id DESC` 排序。
**请求参数**
| 参数 | 位置 | 类型 | 必填 | 默认值 | 约束 | 说明 |
| --- | --- | --- | --- | --- | --- | --- |
| `page` | Query | `Integer` | 否 | 1 | ≥1 | 页码 |
| `pageSize` | Query | `Integer` | 否 | 20 | 1~100 | 每页条数 |
> `userId` 由 mp-service 从 token 中获取后透传给 order-service,前端不传。
**返回值** `Result<PageResult<MpTravelMemoryVO>>`
| 字段 | 类型 | 必有 | 说明 |
| --- | --- | --- | --- |
| `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 |
**请求示例**
```
GET /mp/order/travel-memory?page=1&pageSize=10
```
**响应示例**(有数据):
```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
}
],
"total": 1,
"page": 1,
"pageSize": 10
}
}
```
**响应示例**(空数据):
```json
{
"code": 200,
"message": "操作成功",
"data": {
"records": [],
"total": 0,
"page": 1,
"pageSize": 10
}
}
```
---
## 二、阶段 2 增量字段预告
当前响应 **不含** `rating`1-5 星) 和 `reviewId`。评分数据存 user-service 的 `review` 表,order-service-v2 当前无 `ReviewFeignClient`,跨服务 Feign 拆到阶段 2。
阶段 2 上线后将**在 `MpTravelMemoryVO` 增量新增**以下字段,**不会破坏现有字段**
| 字段 | 类型 | 说明 |
| --- | --- | --- |
| `rating` | `Integer` | 评分1-5,未评价为 null |
| `reviewId` | `Long` | 评价记录 ID,未评价为 null |
---
## 三、mp-service BFF 层需同步新增
| 前端调用 | mp-service 转发到 |
| --- | --- |
| `GET /mp/order/travel-memory?page=&pageSize=` | `GET /internal/mp/order/travel-memory?userId={token.userId}&page=&pageSize=` |
> mp-service 从用户 token 中提取 `userId`,作为查询参数透传给 order-service。
> `page` / `pageSize` 直接透传,校验由下游 `PageParam` 负责。
---
## 四、数据库变更
**无**。所有字段均已存在 `order_info` 表。
---
## 五、错误码
HTTP 始终返回 200,错误码在 `Result.code` 中。
| code | 触发 | 说明 |
| --- | --- | --- |
| 200 | 正常 | 成功 |
| 400 | `page < 1``pageSize > 100` | 分页参数越界(`PageParam` 校验) |
| 401 | token 无效 | mp-service 网关层拦截 |
---
## 六、关联
- Issue: [wx/HL#1002](https://git.1814.love:8443/wx/HL/issues/1002)
- PR: [wx/HL#1004](https://git.1814.love:8443/wx/HL/pulls/1004)(已合并到 dev