diff --git a/changelogs/2026-04/2026-04-02_1043_cf91698a_feat.md b/changelogs/2026-04/2026-04-02_1043_cf91698a_feat.md new file mode 100644 index 0000000..228baee --- /dev/null +++ b/changelogs/2026-04/2026-04-02_1043_cf91698a_feat.md @@ -0,0 +1,176 @@ +# 接口变更记录 — 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` + +### 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` + +| 字段 | 类型 | 说明 | +| --- | --- | --- | +| `photos` | `List` | 混合排序后的图片列表(当前页) | +| `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>` + +| 字段 | 类型 | 说明 | +| --- | --- | --- | +| `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` + +### 🆕 `GET` /internal/mp/album/product/{productId}/shared-photos — 按产品查已授权共享的相册图片(分页) + +> 用于产品详情页的旅行相册模块,返回所有用户授权公开的相册图片 + +**参数** + + - `{productId}` (`Long`) — 路径参数 + - `page` (`int`) — 查询参数 + - `size` (`int`) — 查询参数 + +**响应** `Result>` + +| 字段 | 类型 | 说明 | +| --- | --- | --- | +| `ossUrl` | `String` | 文件访问URL | +| `thumbnailUrl` | `String` | 缩略图URL | +| `fileType` | `String` | 文件类型: IMAGE/VIDEO | +| `resourceName` | `String` | 资源名称(拍摄地点) | +| `description` | `String` | 文件描述 | +| `createdAt` | `LocalDateTime` | 创建时间 | + +--- + +## 📦 其他数据对象变更 + +> 以下变更未直接关联到本次接口变更,但可能影响现有接口的请求/响应 + +### 订单服务 + +#### ✏️ AlbumFolderVO + + - 🆕 `shareAuthorized` (`Boolean`) — 是否已授权公开展示 + +
+📁 全部变更文件 (点击展开) + +``` +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 +``` +
\ No newline at end of file