diff --git a/changelogs/2026-03/2026-03-31_1300_26ab1bdb_feat.md b/changelogs/2026-03/2026-03-31_1300_26ab1bdb_feat.md new file mode 100644 index 0000000..61366ca --- /dev/null +++ b/changelogs/2026-03/2026-03-31_1300_26ab1bdb_feat.md @@ -0,0 +1,230 @@ +# 接口变更记录 — 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`) — 幼童数 + +
+📁 全部变更文件 (点击展开) + +``` +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 +``` +
\ No newline at end of file