From bd05d67780c835266904c925c1e578bc9b09c568 Mon Sep 17 00:00:00 2001 From: API Changelog Bot Date: Thu, 19 Mar 2026 15:46:08 +0800 Subject: [PATCH] =?UTF-8?q?changelog:=2006a925b=20-=20feat:=20=E5=B0=8F?= =?UTF-8?q?=E7=A8=8B=E5=BA=8F=E4=BA=A7=E5=93=81=E8=AF=A6=E6=83=85=E8=BF=94?= =?UTF-8?q?=E5=9B=9E=E9=80=80=E6=AC=BE=E6=94=BF=E7=AD=96=E5=AE=8C=E6=95=B4?= =?UTF-8?q?=E5=86=85=E5=AE=B9=EF=BC=88=E5=90=AB=E9=80=80=E6=AC=BE=E8=A7=84?= =?UTF-8?q?=E5=88=99=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../2026-03/2026-03-19_1546_06a925b_feat.md | 192 ++++++++++++++++++ 1 file changed, 192 insertions(+) create mode 100644 changelogs/2026-03/2026-03-19_1546_06a925b_feat.md diff --git a/changelogs/2026-03/2026-03-19_1546_06a925b_feat.md b/changelogs/2026-03/2026-03-19_1546_06a925b_feat.md new file mode 100644 index 0000000..ac920b3 --- /dev/null +++ b/changelogs/2026-03/2026-03-19_1546_06a925b_feat.md @@ -0,0 +1,192 @@ +# 接口变更记录 — 2026-03-19 15:46 + +> **提交** `06a925b` · **作者** wx · **时间** 2026-03-19 15:46:08 +0800 +> +> feat: 小程序产品详情返回退款政策完整内容(含退款规则) + +## 变更总览 + +- **订单服务** + - InternalRefund (+1) + +--- + +## 订单服务 + +### InternalRefund + +> 📖 **接口文档**: [http://192.168.100.236:8084/doc.html](http://192.168.100.236:8084/doc.html) → 标签 **「【内部接口】退款(Feign调用)」** + +### 🆕 `GET` /internal/order/refund-policy/batch — 批量获取退款政策详情 + +> 根据政策ID列表批量获取退款政策详情(含退款规则)。 + +**响应** `Result>` + +| 字段 | 类型 | 说明 | +| --- | --- | --- | +| `policyId` | `Long` | 政策ID | +| `policyName` | `String` | 政策名称 | +| `refundType` | `String` | 退款类型(字典:refund_type)DEPOSIT(定金)/BALANCE(尾款)/FULL(全款) | +| `isDefault` | `Boolean` | 是否为默认政策 | +| `enabled` | `Boolean` | 是否启用 | +| `remark` | `String` | 备注 | +| `createdBy` | `Long` | 创建人ID | +| `createTime` | `LocalDateTime` | 创建时间 | +| `updateTime` | `LocalDateTime` | 更新时间 | +| `rules` | `List` | 退款规则列表 | +| `ruleId` | `Long` | 规则ID | +| `minDays` | `Integer` | 距出发最少天数 | +| `refundRatio` | `Integer` | 退款比例(百分比) | + +**关联字典** + +- `refund_type`(退款类型):FULL=全款, DEPOSIT=定金, BALANCE=尾款 + +--- + +## 📦 其他数据对象变更 + +> 以下变更未直接关联到本次接口变更,但可能影响现有接口的请求/响应 + +### 小程序聚合服务 + +#### ✏️ MpCustomProductDetailVO + + - 🆕 `productNo` (`String`) — 产品编号 + - 🆕 `seasons` (`List`) — 适用季节列表(编码) + - 🆕 `seasonLabels` (`List`) — 适用季节列表(中文) + - 🆕 `isBooking` (`Boolean`) — 是否预约产品 + - 🆕 `minAdultPerOrder` (`Integer`) — 每单最少成人数(null=默认1) + - 🆕 `maxAdultPerOrder` (`Integer`) — 每单最大成人数(null=不限) + - 🆕 `maxChildPerOrder` (`Integer`) — 每单最大儿童数(null=不限) + - 🆕 `carouselVideoUrl` (`String`) — 轮播视频URL + - 🆕 `folderId` (`String`) — 所属文件夹ID + - 🆕 `lineId` (`String`) — 产品线ID + - 🆕 `lineName` (`String`) — 产品线名称 + - 🆕 `groupChatQrUrl` (`String`) — 群聊二维码URL + - 🆕 `chatMessages` (`List`) — 群聊消息列表 + - 🆕 `showReview` (`Boolean`) — 是否显示评价 + - 🆕 `showChatGroup` (`Boolean`) — 是否显示群聊入口 + - 🆕 `showTripTime` (`Boolean`) — 是否显示行程时间 + - 🆕 `showTripDistance` (`Boolean`) — 是否显示行程距离 + - 🆕 `bookingTermsId` (`String`) — 预订条款ID + - 🆕 `bookingTermsName` (`String`) — 预订条款名称 + - 🆕 `bookingTermsContent` (`String`) — 预订条款内容 + - 🆕 `refundPolicyIds` (`Map`) — 退款政策映射(按退款类型绑定不同政策)。key=退款类型(FULL/DEPOSIT/BALANCE), value=政策ID + - 🆕 `refundPolicies` (`Map`) — 退款政策详情(按退款类型分组)。key=退款类型(FULL/DEPOSIT/BALANCE),value=政策详情(含policyName、rules等) + - 🆕 `warmTipsId` (`String`) — 温馨提示ID + - 🆕 `warmTipsName` (`String`) — 温馨提示名称 + - 🆕 `warmTipsContent` (`String`) — 温馨提示内容 + - 🆕 `customizerId` (`String`) — 定制师ID + - 🆕 `customerName` (`String`) — 客户姓名(定制产品) + - 🆕 `contactPhone` (`String`) — 联系电话(定制产品) + - 🆕 `departureDate` (`LocalDate`) — 出发日期(定制产品) + - 🆕 `publishedAt` (`LocalDateTime`) — 发布时间 + - 🆕 `teamExperienceYears` (`Integer`) — 团队经验年数 + - 🆕 `lineSubtitle` (`String`) — 产品线副标题 + - 🆕 `createBy` (`String`) — 创建人ID + - 🆕 `mchId` (`String`) — 商户号 + - 🆕 `groupRoomId` (`String`) — 企微群聊ID + - 🆕 `suppliesList` (`List`) — 物资列表 + - 🆕 `benefitsDescription` (`List`) — 权益说明(静态,所有产品相同) + - 🆕 `updateTime` (`LocalDateTime`) — 更新时间 + - 🆕 `dayId` (`String`) — 所属行程天ID + - 🆕 `dayNumber` (`Integer`) — 天数编号(scope=DAY时生效) + - 🆕 `dayTitle` (`String`) — 天标题 + - 🆕 `routeSummary` (`String`) — 路线概览 + - 🆕 `nodes` (`List`) — 行程节点列表(含资源详情和图片) + - 🆕 `hotels` (`List`) — 当日酒店列表 + - 🆕 `restaurants` (`List`) — 当日用餐列表 + - 🆕 `nodeId` (`String`) — 节点ID + - 🆕 `nodeType` (`String`) — 节点类型:TRANSPORT/SCENIC/RESTAURANT/ACTIVITY/PHOTOGRAPHY/HOTEL/FREE/CUSTOM/SERVICE/NOTE + - 🆕 `nodeName` (`String`) — 节点名称 + - 🆕 `startTime` (`String`) — 开始时间 + - 🆕 `durationMinutes` (`Integer`) — 时长(分钟) + - 🆕 `distanceKm` (`BigDecimal`) — 距离(公里) + - 🆕 `longitude` (`BigDecimal`) — 经度 + - 🆕 `latitude` (`BigDecimal`) — 纬度 + - 🆕 `resourceType` (`String`) — 关联资源类型:SCENIC/HOTEL/RESTAURANT/ACTIVITY/VEHICLE/SERVICE/STAFF + - 🆕 `resourceId` (`String`) — 关联资源ID + - 🆕 `resourceName` (`String`) — 关联资源名称 + - 🆕 `description` (`String`) — 说明,如:含全部景点儿童票 + - 🆕 `images` (`List`) — 节点图片列表 + - 🆕 `emojiIcon` (`String`) — 表情图标 + - 🆕 `extraData` (`String`) — 扩展数据(JSON格式) + - 🆕 `resourceDetail` (`ResourceDetailDTO`) — 绑定资源的详细信息(含封面图cover、轮播图images、地址address等) + - 🆕 `costPrice` (`BigDecimal`) — 资源成本价(来自资源价格日历) + - 🆕 `hotelId` (`String`) — 酒店ID + - 🆕 `hotelName` (`String`) — 酒店名称 + - 🆕 `coverUrl` (`String`) — 封面图URL + - 🆕 `roomTypeId` (`String`) — 房型ID + - 🆕 `roomTypeName` (`String`) — 房型名称 + - 🆕 `roomCount` (`Integer`) — 房间数量 + - 🆕 `isDefault` (`Boolean`) — 是否默认酒店 + - 🆕 `familyRoomConfig` (`Map`) — 家庭房间分配:{familyId: roomCount} + - 🆕 `restaurantId` (`String`) — 餐厅ID + - 🆕 `restaurantName` (`String`) — 餐厅/餐食名称 + - 🆕 `mealTypes` (`String`) — 餐次:早餐/午餐/晚餐 + - 🆕 `priceInfo` (`String`) — 价格信息 + - 🆕 `unitPrice` (`BigDecimal`) — 餐食单价(元) + - 🆕 `pricingId` (`String`) — 定价配置ID + - 🆕 `pricingMode` (`String`) — 定价模式:AUTO=自动计算 MANUAL=手动定价 CUSTOM=定制定价 + - 🆕 `profitMode` (`String`) — 利润模式:FIXED=固定金额 PERCENT=百分比 + - 🆕 `profitAmount` (`BigDecimal`) — 利润金额(FIXED模式下使用) + - 🆕 `markupPercent` (`BigDecimal`) — 加价百分比(PERCENT模式下使用) + - 🆕 `adultExtraBed` (`BigDecimal`) — 成人加床费 + - 🆕 `insuranceFee` (`BigDecimal`) — 保险费用 + - 🆕 `mealBudget` (`BigDecimal`) — 餐费预算 + - 🆕 `childWithBed` (`BigDecimal`) — 儿童占床价 + - 🆕 `childNoBed` (`BigDecimal`) — 儿童不占床价 + - 🆕 `babyPrice` (`BigDecimal`) — 婴儿价 + - 🆕 `childDiscountPercent` (`BigDecimal`) — 儿童折扣百分比 + - 🆕 `vehicleModelIds` (`List`) — 车型ID列表 + - 🆕 `extraCostPerPerson` (`BigDecimal`) — 每人额外成本 + - 🆕 `singleRoomDiff` (`BigDecimal`) — 单房差 + - 🆕 `companionPrice` (`BigDecimal`) — 陪同人员价格 + - 🆕 `customTotalPrice` (`BigDecimal`) — 定制产品总价(CUSTOM模式下使用) + - 🆕 `minGroupSize` (`Integer`) — 最小成团人数 + - 🆕 `maxGroupSize` (`Integer`) — 最大成团人数 + - 🆕 `paymentType` (`String`) — 支付方式:FULL=全款 DEPOSIT=定金+尾款 + - 🆕 `depositRatio` (`Integer`) — 定金比例(百分比) + - 🆕 `depositAmount` (`BigDecimal`) — 定金金额 + - 🆕 `balanceDueDays` (`Integer`) — 尾款支付截止天数(出发前N天) + - 🆕 `type` (`String`) — 消息类型: user/creator + - 🆕 `category` (`String`) — 类别,如:门票、住宿、餐饮 + - 🆕 `title` (`String`) — 分组标题,如:儿童权益 (1.2m以下) + - 🆕 `feeName` (`String`) — 费用项名称 + - 🆕 `feeAmount` (`BigDecimal`) — 费用金额 + - 🆕 `feeUnit` (`String`) — 费用单位 + - 🆕 `suppliesId` (`String`) — 物资ID + - 🆕 `suppliesName` (`String`) — 物资名称 + - 🆕 `billingType` (`String`) — 计费方式:BY_PERSON=按人头 BY_COUNT=按次/按件 + - 🆕 `scope` (`String`) — 适用范围:ALL=整个行程 DAY=指定天 + - 🆕 `costPerPerson` (`BigDecimal`) — 每人成本 + - 🆕 `items` (`List`) — 权益项列表 + - 🆕 `text` (`String`) — 消息内容 + - 🆕 `avatar` (`String`) — 用户头像URL(type=user时有效) + - ✏️ `destinationCities`: 说明 "途经城市列表" → "途经城市列表(从行程节点资源去重提取)" + - ✏️ `itineraryDays`: 类型 `List` → `List`, 说明 "行程天列表(包含每天的景点、酒店、餐厅、活动等安排)" → "行程天列表(包含每天的景点、酒店、餐厅、活动等安排,含资源图片)" + - ✏️ `pricing`: 类型 `Object` → `PricingItem` + - ✏️ `costItems`: 类型 `List` → `List`, 说明 "成本项列表" → "成本项列表(费用包含/不含/自理)" + - ✏️ `customFees`: 类型 `List` → `List` + - ✏️ `staffConfigs`: 说明 "人员配置列表(定制产品专属:导游、领队、摄影师等)" → "人员配置列表(导游、领队、摄影师等)" + - ✏️ `families`: 说明 "家庭分组列表(定制产品专属:按家庭分配人员和房间)" → "家庭分组列表(按家庭分配人员和房间)" + +#### ✏️ MpProductDetailVO + + - 🆕 `refundPolicies` (`Map`) — 退款政策详情(按退款类型分组)。key=退款类型(FULL/DEPOSIT/BALANCE),value=政策详情(含policyName、rules等) + +
+📁 全部变更文件 (点击展开) + +``` +M hl-mp-service/src/main/java/com/hulalv/mp/controller/MpCustomizeController.java +M hl-mp-service/src/main/java/com/hulalv/mp/feign/MpOrderFeignClient.java +M hl-mp-service/src/main/java/com/hulalv/mp/feign/MpOrderFeignFallbackFactory.java +M hl-mp-service/src/main/java/com/hulalv/mp/service/ProductAggregationService.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/MpProductDetailVO.java +M hl-order-service/src/main/java/com/hulalv/order/controller/InternalRefundController.java +``` +
\ No newline at end of file