# 接口变更记录 — 2026-04-02 10:43

> **提交** `cf91698a` · **作者** wx · **时间** 2026-04-02 10:43:03 +0800
>
> feat: 产品旅行相册功能——用户授权相册+好评图片聚合

## 变更总览

- **小程序聚合服务**
  - MpAlbum (+1)
  - MpProduct (+1)
- **用户服务**
  - InternalReview (+1)
- **订单服务**
  - InternalAlbum (+2)

---

## 小程序聚合服务

### MpAlbum

> 📖 **接口文档**: [http://192.168.100.236:8086/doc.html](http://192.168.100.236:8086/doc.html) → 标签 **「C端 - 相册接口」**

### 🆕 `PUT` /mp/album/folder/{folderId}/authorize — 授权/取消授权相册文件夹公开展示

> 用户主动授权将相册文件夹分享到产品旅行相册中展示。

**参数**

  - `{folderId}` (`Long`) — 路径参数
  - `authorized` (`boolean`) — 查询参数

**响应** `Result<Void>`

### MpProduct

> 📖 **接口文档**: [http://192.168.100.236:8086/doc.html](http://192.168.100.236:8086/doc.html) → 标签 **「C端 - 产品接口」**

### 🆕 `GET` /mp/product/{productId}/travel-album — 产品旅行相册（分页）

> 聚合用户授权的订单相册图片 + 好评评价图片，按时间倒序返回。

**参数**

  - `{productId}` (`Long`) — 路径参数：产品ID
  - `page` (`int`) — 查询参数：页码，默认1
  - `size` (`int`) — 查询参数：每页数量，默认20

**响应** `Result<MpTravelAlbumVO>`

| 字段 | 类型 | 说明 |
| --- | --- | --- |
| `photos` | `List<TravelPhotoVO>` | 混合排序后的图片列表（当前页） |
| `total` | `long` | 总图片数（两个来源合计） |
| `page` | `int` | 当前页 |
| `size` | `int` | 每页大小 |
| `albumTotal` | `long` | 相册图片总数 |
| `reviewTotal` | `long` | 评价图片总数 |
| `ossUrl` | `String` | 图片访问URL |
| `thumbnailUrl` | `String` | 缩略图URL |
| `fileType` | `String` | 文件类型: IMAGE/VIDEO |
| `source` | `String` | 来源: ALBUM=订单相册 / REVIEW=用户评价 |
| `authorName` | `String` | 作者名（相册为资源名称，评价为用户昵称） |
| `description` | `String` | 描述 |
| `createdAt` | `LocalDateTime` | 创建时间 |

**关联字典**

- `album_file_type`（fileType）：IMAGE=图片, VIDEO=视频

---

## 用户服务

### InternalReview

> 📖 **接口文档**: [http://192.168.100.236:8081/doc.html](http://192.168.100.236:8081/doc.html) → 标签 **「【内部接口】评价统计（Feign调用）」**

### 🆕 `GET` /internal/review/product/{productId}/good-review-images — 按产品查好评图片（分页）

> 用于产品详情页旅行相册模块，返回已审核好评中的图片

**参数**

  - `{productId}` (`Long`) — 路径参数
  - `page` (`Integer`) — 查询参数
  - `size` (`Integer`) — 查询参数

**响应** `Result<PageResult<ReviewImageVO>>`

| 字段 | 类型 | 说明 |
| --- | --- | --- |
| `imageUrl` | `String` | 图片URL |
| `userNickname` | `String` | 用户昵称 |
| `userAvatar` | `String` | 用户头像URL |
| `createdAt` | `LocalDateTime` | 创建时间 |

---

## 订单服务

### InternalAlbum

> 📖 **接口文档**: [http://192.168.100.236:8084/doc.html](http://192.168.100.236:8084/doc.html) → 标签 **「【内部接口】小程序相册（Feign调用）」**

### 🆕 `PUT` /internal/mp/album/folder/{folderId}/authorize — 用户授权/取消授权相册文件夹公开展示

> 用户在小程序中主动授权将相册分享到产品旅行相册

**参数**

  - `{folderId}` (`Long`) — 路径参数
  - `userId` (`Long`) — 查询参数
  - `authorized` (`boolean`) — 查询参数

**响应** `Result<Void>`

### 🆕 `GET` /internal/mp/album/product/{productId}/shared-photos — 按产品查已授权共享的相册图片（分页）

> 用于产品详情页的旅行相册模块，返回所有用户授权公开的相册图片

**参数**

  - `{productId}` (`Long`) — 路径参数
  - `page` (`int`) — 查询参数
  - `size` (`int`) — 查询参数

**响应** `Result<PageResult<SharedAlbumPhotoVO>>`

| 字段 | 类型 | 说明 |
| --- | --- | --- |
| `ossUrl` | `String` | 文件访问URL |
| `thumbnailUrl` | `String` | 缩略图URL |
| `fileType` | `String` | 文件类型: IMAGE/VIDEO |
| `resourceName` | `String` | 资源名称(拍摄地点) |
| `description` | `String` | 文件描述 |
| `createdAt` | `LocalDateTime` | 创建时间 |

---

## 📦 其他数据对象变更

> 以下变更未直接关联到本次接口变更，但可能影响现有接口的请求/响应

### 订单服务

#### ✏️ AlbumFolderVO

  - 🆕 `shareAuthorized` (`Boolean`) — 是否已授权公开展示

<details>
<summary>📁 全部变更文件 (点击展开)</summary>

```
M	hl-gateway/src/main/java/com/hulalv/gateway/filter/JwtAuthFilter.java
M	hl-mp-service/src/main/java/com/hulalv/mp/controller/MpAlbumController.java
M	hl-mp-service/src/main/java/com/hulalv/mp/controller/MpProductController.java
M	hl-mp-service/src/main/java/com/hulalv/mp/feign/MpAlbumFeignClient.java
M	hl-mp-service/src/main/java/com/hulalv/mp/feign/MpAlbumFeignFallbackFactory.java
M	hl-mp-service/src/main/java/com/hulalv/mp/feign/MpReviewFeignClient.java
M	hl-mp-service/src/main/java/com/hulalv/mp/feign/MpReviewFeignFallbackFactory.java
A	hl-mp-service/src/main/java/com/hulalv/mp/vo/MpTravelAlbumVO.java
M	hl-order-service/src/main/java/com/hulalv/order/controller/InternalAlbumController.java
M	hl-order-service/src/main/java/com/hulalv/order/entity/AlbumFolder.java
M	hl-order-service/src/main/java/com/hulalv/order/service/AlbumService.java
M	hl-order-service/src/main/java/com/hulalv/order/vo/AlbumFolderVO.java
A	hl-order-service/src/main/java/com/hulalv/order/vo/SharedAlbumPhotoVO.java
M	hl-order-service/src/test/java/com/hulalv/order/service/AlbumServiceTest.java
M	hl-user-service/src/main/java/com/hulalv/review/controller/InternalReviewController.java
M	hl-user-service/src/main/java/com/hulalv/review/service/ReviewService.java
A	hl-user-service/src/main/java/com/hulalv/review/vo/ReviewImageVO.java
M	hl-user-service/src/test/java/com/hulalv/review/service/ReviewServiceTest.java
A	sql/album_travel_album.sql
```
</details>