# 接口变更记录 — 2026-03-31 13:00

> **提交** `26ab1bdb` · **作者** wx · **时间** 2026-03-31 13:00:15 +0800
>
> feat: 小童/幼童定价模式扩展，支持百分比或固定价

## 变更总览

- **产品服务**
  - InternalProduct (改1)

---

## 产品服务

### InternalProduct

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

### ✏️ `GET` /internal/product/{productId}/simple-quote — 简单报价（内部）

- 参数: childNeedBed(boolean) → productId(Long), childNeedBed(boolean)

---

## 📦 其他数据对象变更

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

### 产品服务

#### ✏️ FamilySaveRequest

  - 🆕 `youngChildCount` (`Integer`) — 小童数
  - 🆕 `babyCount` (`Integer`) — 幼童数

#### ✏️ PricingRequest

  - 🆕 `babyPrice` (`BigDecimal`) — 婴儿固定价格（不随日期变化）
  - 🆕 `childDiscountPercent` (`BigDecimal`) — 小童折扣百分比（小童价=儿童价×此百分比/100，如70表示打7折）
  - 🆕 `youngChildPriceMode` (`String`) — 小童定价模式：PERCENT=按儿童价百分比, FIXED=固定价
  - 🆕 `youngChildFixedPrice` (`BigDecimal`) — 小童固定价格（youngChildPriceMode=FIXED时使用）
  - 🆕 `babyPriceMode` (`String`) — 幼童定价模式：PERCENT=按儿童价百分比, FIXED=固定价
  - 🆕 `babyDiscountPercent` (`BigDecimal`) — 幼童折扣百分比（babyPriceMode=PERCENT时使用）

#### ✏️ ProductCreateRequest

  - 🆕 `youngChildCount` (`Integer`) — 小童人数
  - 🆕 `babyCount` (`Integer`) — 婴儿人数

#### ✏️ ProductFamilyVO

  - 🆕 `youngChildCount` (`Integer`) — 小童数
  - 🆕 `babyCount` (`Integer`) — 幼童数

#### ✏️ ProductListVO

  - 🆕 `youngChildCount` (`Integer`) — 小童数（私人定制/路书）
  - 🆕 `babyCount` (`Integer`) — 幼童数（私人定制/路书）

#### ✏️ ProductPricingVO

  - 🆕 `babyPrice` (`BigDecimal`) — 婴儿价
  - 🆕 `childDiscountPercent` (`BigDecimal`) — 儿童折扣百分比
  - 🆕 `youngChildPriceMode` (`String`) — 小童定价模式: PERCENT/FIXED
  - 🆕 `youngChildFixedPrice` (`BigDecimal`) — 小童固定价格（FIXED模式）
  - 🆕 `babyPriceMode` (`String`) — 幼童定价模式: PERCENT/FIXED
  - 🆕 `babyDiscountPercent` (`BigDecimal`) — 幼童折扣百分比（PERCENT模式）

#### ✏️ ProductSaveRequest

  - 🆕 `youngChildCount` (`Integer`) — 小童人数
  - 🆕 `babyCount` (`Integer`) — 婴儿人数

#### ✏️ ProductUpdateRequest

  - 🆕 `youngChildCount` (`Integer`) — 小童人数
  - 🆕 `babyCount` (`Integer`) — 婴儿人数

#### ✏️ ProductVO

  - 🆕 `youngChildCount` (`Integer`) — 小童人数
  - 🆕 `babyCount` (`Integer`) — 婴儿人数

#### ✏️ QuoteResultVO

  - 🆕 `totalYoungChildCost` (`BigDecimal`) — 小童总成本
  - 🆕 `totalYoungChildSellPrice` (`BigDecimal`) — 小童总售价
  - 🆕 `totalBabyCost` (`BigDecimal`) — 婴儿总成本
  - 🆕 `totalBabySellPrice` (`BigDecimal`) — 婴儿总售价
  - 🆕 `youngChildCount` (`Integer`) — 小童数
  - 🆕 `babyCount` (`Integer`) — 幼童数
  - 🆕 `babyCost` (`BigDecimal`) — 婴儿固定成本
  - ✏️ `personType`: 说明 "人员类型：ADULT/CHILD" → "人员类型：ADULT/CHILD/YOUNG_CHILD/BABY"

### 小程序聚合服务

#### ✏️ MpCreateOrderRequest

  - ✏️ `travelerType`: 说明 "出行人类型（ADULT/CHILD）" → "出行人类型（ADULT/CHILD/YOUNG_CHILD/BABY）"

#### ✏️ MpCustomProductDetailVO

  - 🆕 `youngChildCount` (`Integer`) — 小童数
  - 🆕 `babyCount` (`Integer`) — 幼童数
  - 🆕 `babyPrice` (`BigDecimal`) — 婴儿价
  - 🆕 `childDiscountPercent` (`BigDecimal`) — 儿童折扣百分比
  - 🆕 `youngChildPriceMode` (`String`) — 小童定价模式: PERCENT/FIXED
  - 🆕 `youngChildFixedPrice` (`BigDecimal`) — 小童固定价格
  - 🆕 `babyPriceMode` (`String`) — 幼童定价模式: PERCENT/FIXED
  - 🆕 `babyDiscountPercent` (`BigDecimal`) — 幼童折扣百分比

#### ✏️ MpOrderDetailVO

  - 🆕 `youngChildCount` (`Integer`) — 小童数
  - 🆕 `babyCount` (`Integer`) — 幼童数

#### ✏️ MpOrderListItemVO

  - 🆕 `youngChildCount` (`Integer`) — 小童数
  - 🆕 `babyCount` (`Integer`) — 幼童数

#### ✏️ MpPriceCalendarDayVO

  - 🆕 `youngChildPrice` (`BigDecimal`) — 幼儿价格
  - 🆕 `babyPrice` (`BigDecimal`) — 婴儿价格

#### ✏️ MpProductQuoteRequest

  - 🆕 `youngChildCount` (`Integer`) — 幼儿数量
  - 🆕 `babyCount` (`Integer`) — 婴儿数量

#### ✏️ MpProductQuoteVO

  - 🆕 `youngChildSellPrice` (`BigDecimal`) — 小童单价（儿童价×折扣比例）
  - 🆕 `babySellPrice` (`BigDecimal`) — 幼童单价（固定价）
  - 🆕 `totalYoungChildSellPrice` (`BigDecimal`) — 小童小计
  - 🆕 `totalBabySellPrice` (`BigDecimal`) — 幼童小计

#### ✏️ MpTravelerRequest

  - ✏️ `travelerType`: 说明 "出行人类型: ADULT/CHILD" → "出行人类型: ADULT/CHILD/YOUNG_CHILD/BABY"

#### ✏️ MpTravelerVO

  - ✏️ `travelerType`: 说明 "出行人类型: ADULT/CHILD" → "出行人类型: ADULT/CHILD/YOUNG_CHILD/BABY"

### 订单服务

#### ✏️ AdminUpdateOrderRequest

  - 🆕 `youngChildCount` (`Integer`) — 小童数
  - 🆕 `babyCount` (`Integer`) — 幼童数

#### ✏️ MpOrderListVO

  - 🆕 `youngChildCount` (`Integer`) — 小童数
  - 🆕 `babyCount` (`Integer`) — 幼童数

#### ✏️ OrderDetailVO

  - 🆕 `youngChildCount` (`Integer`) — 小童数
  - 🆕 `babyCount` (`Integer`) — 幼童数

#### ✏️ OrderListVO

  - 🆕 `youngChildCount` (`Integer`) — 小童数
  - 🆕 `babyCount` (`Integer`) — 幼童数

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

```
M	hl-mp-service/src/main/java/com/hulalv/mp/controller/MpProductController.java
M	hl-mp-service/src/main/java/com/hulalv/mp/dto/MpCreateOrderRequest.java
M	hl-mp-service/src/main/java/com/hulalv/mp/dto/MpProductQuoteRequest.java
M	hl-mp-service/src/main/java/com/hulalv/mp/dto/MpTravelerRequest.java
M	hl-mp-service/src/main/java/com/hulalv/mp/feign/MpProductFeignClient.java
M	hl-mp-service/src/main/java/com/hulalv/mp/feign/MpProductFeignFallbackFactory.java
M	hl-mp-service/src/main/java/com/hulalv/mp/vo/MpCustomProductDetailVO.java
M	hl-mp-service/src/main/java/com/hulalv/mp/vo/MpOrderDetailVO.java
M	hl-mp-service/src/main/java/com/hulalv/mp/vo/MpOrderListItemVO.java
M	hl-mp-service/src/main/java/com/hulalv/mp/vo/MpPriceCalendarDayVO.java
M	hl-mp-service/src/main/java/com/hulalv/mp/vo/MpProductQuoteVO.java
M	hl-mp-service/src/main/java/com/hulalv/mp/vo/MpTravelerVO.java
M	hl-order-service/src/main/java/com/hulalv/order/constant/OrderConstants.java
M	hl-order-service/src/main/java/com/hulalv/order/dto/AdminCreateOrderRequest.java
M	hl-order-service/src/main/java/com/hulalv/order/dto/AdminUpdateOrderRequest.java
M	hl-order-service/src/main/java/com/hulalv/order/dto/CreateOrderRequest.java
M	hl-order-service/src/main/java/com/hulalv/order/dto/QuotePreviewRequest.java
M	hl-order-service/src/main/java/com/hulalv/order/entity/OrderInfo.java
M	hl-order-service/src/main/java/com/hulalv/order/feign/ProductFeignClient.java
M	hl-order-service/src/main/java/com/hulalv/order/feign/ProductFeignFallbackFactory.java
M	hl-order-service/src/main/java/com/hulalv/order/service/DashboardStatsService.java
M	hl-order-service/src/main/java/com/hulalv/order/service/OrderCascadeService.java
M	hl-order-service/src/main/java/com/hulalv/order/service/OrderService.java
M	hl-order-service/src/main/java/com/hulalv/order/service/TripService.java
M	hl-order-service/src/main/java/com/hulalv/order/vo/MpOrderListVO.java
M	hl-order-service/src/main/java/com/hulalv/order/vo/OrderDetailVO.java
M	hl-order-service/src/main/java/com/hulalv/order/vo/OrderListVO.java
M	hl-product-service/src/main/java/com/hulalv/product/constant/ProductConstants.java
M	hl-product-service/src/main/java/com/hulalv/product/controller/InternalProductController.java
M	hl-product-service/src/main/java/com/hulalv/product/controller/PricingController.java
M	hl-product-service/src/main/java/com/hulalv/product/controller/QuoteController.java
M	hl-product-service/src/main/java/com/hulalv/product/dto/FamilySaveRequest.java
M	hl-product-service/src/main/java/com/hulalv/product/dto/PricingRequest.java
M	hl-product-service/src/main/java/com/hulalv/product/dto/ProductCreateRequest.java
M	hl-product-service/src/main/java/com/hulalv/product/dto/ProductSaveRequest.java
M	hl-product-service/src/main/java/com/hulalv/product/dto/ProductUpdateRequest.java
M	hl-product-service/src/main/java/com/hulalv/product/dto/QuoteRequest.java
M	hl-product-service/src/main/java/com/hulalv/product/entity/Product.java
M	hl-product-service/src/main/java/com/hulalv/product/entity/ProductFamily.java
M	hl-product-service/src/main/java/com/hulalv/product/entity/ProductPricing.java
M	hl-product-service/src/main/java/com/hulalv/product/feign/InsuranceSchemeFeignClient.java
M	hl-product-service/src/main/java/com/hulalv/product/feign/MaterialRefFeignClient.java
M	hl-product-service/src/main/java/com/hulalv/product/feign/ReviewFeignClient.java
M	hl-product-service/src/main/java/com/hulalv/product/service/CostCalculationService.java
M	hl-product-service/src/main/java/com/hulalv/product/service/PriceCalendarService.java
M	hl-product-service/src/main/java/com/hulalv/product/service/ProductFamilyService.java
M	hl-product-service/src/main/java/com/hulalv/product/service/ProductPricingService.java
M	hl-product-service/src/main/java/com/hulalv/product/service/ProductService.java
M	hl-product-service/src/main/java/com/hulalv/product/service/QuoteCalculatorService.java
M	hl-product-service/src/main/java/com/hulalv/product/vo/ProductFamilyVO.java
M	hl-product-service/src/main/java/com/hulalv/product/vo/ProductListVO.java
M	hl-product-service/src/main/java/com/hulalv/product/vo/ProductPricingVO.java
M	hl-product-service/src/main/java/com/hulalv/product/vo/ProductVO.java
M	hl-product-service/src/main/java/com/hulalv/product/vo/QuoteResultVO.java
A	sql/young_child_baby_price_mode.sql
```
</details>