From c3b32f068fd33918040b4b826231d823ed097d5e Mon Sep 17 00:00:00 2001 From: API Changelog Bot Date: Tue, 14 Apr 2026 11:00:15 +0800 Subject: [PATCH] =?UTF-8?q?changelog:=200eb66fcb=20-=20feat(product-v2):?= =?UTF-8?q?=20=E5=AE=9E=E7=8E=B010=E4=B8=AAinternal=E6=8E=A5=E5=8F=A3(VO?= =?UTF-8?q?=E8=BF=94=E5=9B=9E)=20+=20order-v2=20Feign=E6=94=B9=E6=8C=87v2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...026-04-14_1135_0eb66fcb_feat_product-v2.md | 191 ++++++++++++++++++ 1 file changed, 191 insertions(+) create mode 100644 changelogs/2026-04/2026-04-14_1135_0eb66fcb_feat_product-v2.md diff --git a/changelogs/2026-04/2026-04-14_1135_0eb66fcb_feat_product-v2.md b/changelogs/2026-04/2026-04-14_1135_0eb66fcb_feat_product-v2.md new file mode 100644 index 0000000..398b762 --- /dev/null +++ b/changelogs/2026-04/2026-04-14_1135_0eb66fcb_feat_product-v2.md @@ -0,0 +1,191 @@ +# 接口变更记录 — 2026-04-14 11:35 + +> **提交** `0eb66fcb` · **作者** wx · **时间** 2026-04-14 11:00:15 +0800 +> +> feat(product-v2): 实现10个internal接口(VO返回) + order-v2 Feign改指v2 + +## 变更总览 + +- **hl-product-service-v2** + - AdminProduct (改1) + - 🆕 InternalProduct (+6 接口) + +--- + +## hl-product-service-v2 + +### AdminProduct + +### ✏️ `GET` /admin/product/item/{id}/suggest-price — 建议售价 + +- 返回类型: `Result>` → `Result` +- 🆕 新增响应类型 `ResourceSuggestPriceRespVO` + +**响应变更** `ResourceSuggestPriceRespVO`: + + - 🆕 `adultPrice` (`BigDecimal`) — 成人建议售价(含酒店) + - 🆕 `childPrice` (`BigDecimal`) — 儿童建议售价(不含酒店) + - 🆕 `resourceCost` (`BigDecimal`) — 资源成本(景区+活动+服务) + - 🆕 `hotelCost` (`BigDecimal`) — 酒店成本 + - 🆕 `suppliesCost` (`BigDecimal`) — 备品成本 + - 🆕 `extraCost` (`BigDecimal`) — 额外成本 + - 🆕 `tripDays` (`Integer`) — 行程天数 + - 🆕 `costDetails` (`List>`) — 成本明细列表 + +### 🆕 新增: InternalProduct + +### 📌 `GET` /internal/product/internal/product + +### 📌 `GET` /internal/product/{productId}/detail — 获取产品详情(内部) + +> 不过滤状态,供order-service创建订单时获取快照。 + +**参数** + + - `{productId}` (`Long`) — 路径参数:产品ID + +**响应** `Result` + +| 字段 | 类型 | 说明 | +| --- | --- | --- | +| `productId` | `Long` | 产品ID | +| `name` | `String` | 产品名称 | +| `subtitle` | `String` | 副标题 | +| `productType` | `String` | 产品类型(CORE/GROUP/CUSTOM) | +| `category` | `String` | 产品分类(family/honeymoon/photography/experience/driving) | +| `status` | `String` | 产品状态(DRAFT/PUBLISHED等) | +| `tripDays` | `Integer` | 行程天数 | +| `tripNights` | `Integer` | 行程晚数 | +| `coverImageUrl` | `String` | 封面图URL | +| `lineId` | `Long` | 产品线ID | +| `tiers` | `Object` | 档位列表JSON | +| `seasons` | `Object` | 适用季节 | +| `tags` | `Object` | 产品标签 | +| `carouselImages` | `Object` | 轮播图JSON | +| `itinerary` | `List` | 行程天列表 | + +### 📌 `GET` /internal/product/{productId}/simple-quote — 简单报价(内部) + +> 从价格日历取售价乘以人数,返回各人群小计和总价。 + +**参数** + + - `{productId}` (`Long`) — 路径参数:产品ID + - `childNeedBed` (`boolean`) — 查询参数:儿童加床 + +**响应** `Result` + +| 字段 | 类型 | 说明 | +| --- | --- | --- | +| `adultPrice` | `BigDecimal` | 成人单价 | +| `childPrice` | `BigDecimal` | 儿童单价 | +| `toddlerPrice` | `BigDecimal` | 小童单价 | +| `infantPrice` | `BigDecimal` | 幼童单价 | +| `adultCount` | `Integer` | 成人数量 | +| `childCount` | `Integer` | 儿童数量 | +| `youngChildCount` | `Integer` | 小童数量 | +| `babyCount` | `Integer` | 幼童数量 | +| `adultTotal` | `BigDecimal` | 成人小计 | +| `childTotal` | `BigDecimal` | 儿童小计 | +| `toddlerTotal` | `BigDecimal` | 小童小计 | +| `infantTotal` | `BigDecimal` | 幼童小计 | +| `totalPrice` | `BigDecimal` | 总价 | +| `paymentType` | `String` | 支付方式(FULL/DEPOSIT) | +| `depositRatio` | `Integer` | 订金比例(%) | +| `depositAmount` | `BigDecimal` | 订金金额 | +| `stock` | `Integer` | 剩余库存 | + +### 📌 `GET` /internal/product/{productId}/automation-config — 获取自动化配置(内部) + +> 供order-service创建订单时获取保险方案、合同配置和支付方式。 + +**参数** + + - `{productId}` (`Long`) — 路径参数:产品ID + +**响应** `Result` + +| 字段 | 类型 | 说明 | +| --- | --- | --- | +| `insuranceSchemeId` | `Long` | 保险方案ID | +| `contractSchemeId` | `Long` | 合同方案ID | +| `bookingTermsId` | `Long` | 预订条款ID | +| `warmTipsId` | `Long` | 温馨提示ID | +| `paymentType` | `String` | 支付方式(FULL/DEPOSIT) | +| `depositRatio` | `Integer` | 订金比例(%) | +| `depositAmount` | `BigDecimal` | 订金固定额 | + +### 📌 `GET` /internal/product/batch/{batchId}/info — 获取班期信息(内部) + +> 供order-service创建订单时获取班期快照。 + +**参数** + + - `{batchId}` (`Long`) — 路径参数:班期ID + +**响应** `Result` + +| 字段 | 类型 | 说明 | +| --- | --- | --- | +| `batchId` | `Long` | 班期ID | +| `productId` | `Long` | 产品ID | +| `batchNo` | `String` | 班期编号 | +| `batchName` | `String` | 班期名称 | +| `departureDate` | `String` | 出发日期 | +| `endDate` | `String` | 结束日期 | +| `enrollmentDeadline` | `String` | 报名截止日 | +| `batchStatus` | `String` | 班期状态(ENROLLING/CONFIRMED/FULL等) | +| `maxParticipants` | `Integer` | 最大参与人数 | +| `enrolledCount` | `Integer` | 已报名人数 | +| `remainingSlots` | `Integer` | 剩余名额 | +| `maxRooms` | `Integer` | 最大房间数 | +| `bookedRooms` | `Integer` | 已预订房间数 | +| `remainingRooms` | `Integer` | 剩余房间数 | +| `adultPrice` | `BigDecimal` | 成人价 | +| `childPrice` | `BigDecimal` | 儿童价 | + +### 📌 `GET` /internal/product/batch/{batchId}/quote — 班期报价(内部) + +> 供order-service获取GROUP产品按人数/房间的报价。 + +**参数** + + - `{batchId}` (`Long`) — 路径参数:班期ID + +**响应** `Result` + +| 字段 | 类型 | 说明 | +| --- | --- | --- | +| `adultPrice` | `BigDecimal` | 成人单价 | +| `childPrice` | `BigDecimal` | 儿童单价 | +| `adultCount` | `Integer` | 成人数量 | +| `childCount` | `Integer` | 儿童数量 | +| `roomCount` | `Integer` | 房间数量 | +| `adultTotal` | `BigDecimal` | 成人小计 | +| `childTotal` | `BigDecimal` | 儿童小计 | +| `grandTotal` | `BigDecimal` | 总价 | + +--- + +
+📁 全部变更文件 (点击展开) + +``` +M hl-order-service-v2/src/main/java/com/hulalv/shared/feign/ProductFeignClient.java +M hl-product-service-v2/src/main/java/com/hulalv/controller/admin/AdminProductController.java +A hl-product-service-v2/src/main/java/com/hulalv/controller/internal/InternalProductController.java +A hl-product-service-v2/src/main/java/com/hulalv/feign/ResourceDetailFeignClient.java +M hl-product-service-v2/src/main/java/com/hulalv/mapper/GroupTourBatchMapper.java +M hl-product-service-v2/src/main/java/com/hulalv/mapper/ProductPriceCalendarMapper.java +M hl-product-service-v2/src/main/java/com/hulalv/service/admin/AmapDrivingService.java +M hl-product-service-v2/src/main/java/com/hulalv/service/admin/ProductPricingService.java +A hl-product-service-v2/src/main/java/com/hulalv/service/internal/InternalProductService.java +A hl-product-service-v2/src/main/java/com/hulalv/vo/admin/ResourceSuggestPriceRespVO.java +A hl-product-service-v2/src/main/java/com/hulalv/vo/internal/InternalAutomationConfigVO.java +A hl-product-service-v2/src/main/java/com/hulalv/vo/internal/InternalBatchInfoVO.java +A hl-product-service-v2/src/main/java/com/hulalv/vo/internal/InternalBatchQuoteVO.java +A hl-product-service-v2/src/main/java/com/hulalv/vo/internal/InternalProductDetailVO.java +A hl-product-service-v2/src/main/java/com/hulalv/vo/internal/InternalSimpleQuoteVO.java +M hl-product-service-v2/src/test/java/com/hulalv/service/admin/AmapDrivingServiceTest.java +``` +
\ No newline at end of file