# 接口变更记录 — 2026-03-18 18:06 > **提交** `f4ff123` · **作者** wx · **时间** 2026-03-18 18:06:03 +0800 > > feat: 预订须知模块重构 — 退款政策改产品绑定 + 新增预订条款/温馨提示模板 ## 变更总览 - **产品服务** - 🆕 AdminBookingTerms (+7 接口) - 🆕 AdminWarmTips (+7 接口) - **订单服务** - AdminRefundPolicy (+1) --- ## 产品服务 ### 🆕 新增: AdminBookingTerms > 📖 **接口文档**: [http://192.168.100.236:8085/doc.html](http://192.168.100.236:8085/doc.html) → 标签 **「预订条款管理」** ### 📌 `GET` /admin/product/booking-terms/list — 预订条款列表 > 返回所有预订条款(含禁用),按创建时间倒序 **响应** `Result>` | 字段 | 类型 | 说明 | | --- | --- | --- | | `termsId` | `Long` | 预订条款ID | | `termsName` | `String` | 条款名称 | | `content` | `String` | 条款内容(富文本) | | `enabled` | `Boolean` | 是否启用 | | `remark` | `String` | 备注 | | `createdBy` | `Long` | 创建人ID | | `createTime` | `LocalDateTime` | 创建时间 | | `updateTime` | `LocalDateTime` | 更新时间 | ### 📌 `GET` /admin/product/booking-terms/enabled — 启用的预订条款列表 > 仅返回启用状态的条款,供产品设计时选择 **响应** `Result>` | 字段 | 类型 | 说明 | | --- | --- | --- | | `termsId` | `Long` | 预订条款ID | | `termsName` | `String` | 条款名称 | | `content` | `String` | 条款内容(富文本) | | `enabled` | `Boolean` | 是否启用 | | `remark` | `String` | 备注 | | `createdBy` | `Long` | 创建人ID | | `createTime` | `LocalDateTime` | 创建时间 | | `updateTime` | `LocalDateTime` | 更新时间 | ### 📌 `GET` /admin/product/booking-terms/{termsId} — 预订条款详情 **参数** - `{termsId}` (`Long`) — 路径参数:预订条款ID **响应** `Result` | 字段 | 类型 | 说明 | | --- | --- | --- | | `termsId` | `Long` | 预订条款ID | | `termsName` | `String` | 条款名称 | | `content` | `String` | 条款内容(富文本) | | `enabled` | `Boolean` | 是否启用 | | `remark` | `String` | 备注 | | `createdBy` | `Long` | 创建人ID | | `createTime` | `LocalDateTime` | 创建时间 | | `updateTime` | `LocalDateTime` | 更新时间 | ### 📌 `POST` /admin/product/booking-terms — 创建预订条款 > 创建后默认启用 **请求体** `BookingTermsRequest` | 字段 | 类型 | 说明 | | --- | --- | --- | | `termsName` | `String` | 条款名称 | | `content` | `String` | 条款内容(富文本) | | `remark` | `String` | 备注 | **响应** `Result` | 字段 | 类型 | 说明 | | --- | --- | --- | | `termsId` | `Long` | 预订条款ID | | `termsName` | `String` | 条款名称 | | `content` | `String` | 条款内容(富文本) | | `enabled` | `Boolean` | 是否启用 | | `remark` | `String` | 备注 | | `createdBy` | `Long` | 创建人ID | | `createTime` | `LocalDateTime` | 创建时间 | | `updateTime` | `LocalDateTime` | 更新时间 | ### 📌 `PUT` /admin/product/booking-terms/{termsId} — 修改预订条款 **参数** - `{termsId}` (`Long`) — 路径参数:预订条款ID **请求体** `BookingTermsRequest` | 字段 | 类型 | 说明 | | --- | --- | --- | | `termsName` | `String` | 条款名称 | | `content` | `String` | 条款内容(富文本) | | `remark` | `String` | 备注 | **响应** `Result` | 字段 | 类型 | 说明 | | --- | --- | --- | | `termsId` | `Long` | 预订条款ID | | `termsName` | `String` | 条款名称 | | `content` | `String` | 条款内容(富文本) | | `enabled` | `Boolean` | 是否启用 | | `remark` | `String` | 备注 | | `createdBy` | `Long` | 创建人ID | | `createTime` | `LocalDateTime` | 创建时间 | | `updateTime` | `LocalDateTime` | 更新时间 | ### 📌 `DELETE` /admin/product/booking-terms/{termsId} — 删除预订条款 > 软删除,已绑定的产品不受影响(产品详情会显示为空) **参数** - `{termsId}` (`Long`) — 路径参数:预订条款ID **响应** `Result` ### 📌 `PUT` /admin/product/booking-terms/{termsId}/toggle — 启用/禁用预订条款 > 禁用后不再出现在产品设计的可选列表中,已绑定的产品不受影响 **参数** - `{termsId}` (`Long`) — 路径参数:预订条款ID - `enabled` (`boolean`) — 查询参数:是否启用 **响应** `Result` ### 🆕 新增: AdminWarmTips > 📖 **接口文档**: [http://192.168.100.236:8085/doc.html](http://192.168.100.236:8085/doc.html) → 标签 **「温馨提示管理」** ### 📌 `GET` /admin/product/warm-tips/list — 温馨提示列表 > 返回所有温馨提示(含禁用),按创建时间倒序 **响应** `Result>` | 字段 | 类型 | 说明 | | --- | --- | --- | | `tipsId` | `Long` | 温馨提示ID | | `tipsName` | `String` | 提示名称 | | `content` | `String` | 提示内容(富文本) | | `enabled` | `Boolean` | 是否启用 | | `remark` | `String` | 备注 | | `createdBy` | `Long` | 创建人ID | | `createTime` | `LocalDateTime` | 创建时间 | | `updateTime` | `LocalDateTime` | 更新时间 | ### 📌 `GET` /admin/product/warm-tips/enabled — 启用的温馨提示列表 > 仅返回启用状态的提示,供产品设计时选择 **响应** `Result>` | 字段 | 类型 | 说明 | | --- | --- | --- | | `tipsId` | `Long` | 温馨提示ID | | `tipsName` | `String` | 提示名称 | | `content` | `String` | 提示内容(富文本) | | `enabled` | `Boolean` | 是否启用 | | `remark` | `String` | 备注 | | `createdBy` | `Long` | 创建人ID | | `createTime` | `LocalDateTime` | 创建时间 | | `updateTime` | `LocalDateTime` | 更新时间 | ### 📌 `GET` /admin/product/warm-tips/{tipsId} — 温馨提示详情 **参数** - `{tipsId}` (`Long`) — 路径参数:温馨提示ID **响应** `Result` | 字段 | 类型 | 说明 | | --- | --- | --- | | `tipsId` | `Long` | 温馨提示ID | | `tipsName` | `String` | 提示名称 | | `content` | `String` | 提示内容(富文本) | | `enabled` | `Boolean` | 是否启用 | | `remark` | `String` | 备注 | | `createdBy` | `Long` | 创建人ID | | `createTime` | `LocalDateTime` | 创建时间 | | `updateTime` | `LocalDateTime` | 更新时间 | ### 📌 `POST` /admin/product/warm-tips — 创建温馨提示 > 创建后默认启用 **请求体** `WarmTipsRequest` | 字段 | 类型 | 说明 | | --- | --- | --- | | `tipsName` | `String` | 提示名称 | | `content` | `String` | 提示内容(富文本) | | `remark` | `String` | 备注 | **响应** `Result` | 字段 | 类型 | 说明 | | --- | --- | --- | | `tipsId` | `Long` | 温馨提示ID | | `tipsName` | `String` | 提示名称 | | `content` | `String` | 提示内容(富文本) | | `enabled` | `Boolean` | 是否启用 | | `remark` | `String` | 备注 | | `createdBy` | `Long` | 创建人ID | | `createTime` | `LocalDateTime` | 创建时间 | | `updateTime` | `LocalDateTime` | 更新时间 | ### 📌 `PUT` /admin/product/warm-tips/{tipsId} — 修改温馨提示 **参数** - `{tipsId}` (`Long`) — 路径参数:温馨提示ID **请求体** `WarmTipsRequest` | 字段 | 类型 | 说明 | | --- | --- | --- | | `tipsName` | `String` | 提示名称 | | `content` | `String` | 提示内容(富文本) | | `remark` | `String` | 备注 | **响应** `Result` | 字段 | 类型 | 说明 | | --- | --- | --- | | `tipsId` | `Long` | 温馨提示ID | | `tipsName` | `String` | 提示名称 | | `content` | `String` | 提示内容(富文本) | | `enabled` | `Boolean` | 是否启用 | | `remark` | `String` | 备注 | | `createdBy` | `Long` | 创建人ID | | `createTime` | `LocalDateTime` | 创建时间 | | `updateTime` | `LocalDateTime` | 更新时间 | ### 📌 `DELETE` /admin/product/warm-tips/{tipsId} — 删除温馨提示 > 软删除,已绑定的产品不受影响(产品详情会显示为空) **参数** - `{tipsId}` (`Long`) — 路径参数:温馨提示ID **响应** `Result` ### 📌 `PUT` /admin/product/warm-tips/{tipsId}/toggle — 启用/禁用温馨提示 > 禁用后不再出现在产品设计的可选列表中,已绑定的产品不受影响 **参数** - `{tipsId}` (`Long`) — 路径参数:温馨提示ID - `enabled` (`boolean`) — 查询参数:是否启用 **响应** `Result` --- ## 订单服务 ### AdminRefundPolicy > 📖 **接口文档**: [http://192.168.100.236:8084/doc.html](http://192.168.100.236:8084/doc.html) → 分组 **「3.1 订单管理」** → 标签 **「退款政策管理」** ### 🆕 `GET` /admin/order/refund-policy/enabled — 启用的退款政策列表 > 仅返回启用状态的政策,供产品设计时选择绑定 **响应** `Result>` | 字段 | 类型 | 说明 | | --- | --- | --- | | `policyId` | `Long` | 政策ID | | `policyName` | `String` | 政策名称 | | `isDefault` | `Boolean` | 是否为默认政策 | | `enabled` | `Boolean` | 是否启用 | | `remark` | `String` | 备注 | | `createdBy` | `Long` | 创建人ID | | `createTime` | `LocalDateTime` | 创建时间 | | `updateTime` | `LocalDateTime` | 更新时间 | | `rules` | `List` | 退款规则列表 | | `ruleId` | `Long` | 规则ID | | `minDays` | `Integer` | 距出发最少天数 | | `refundRatio` | `Integer` | 退款比例(百分比) | --- ## 📦 其他数据对象变更 > 以下变更未直接关联到本次接口变更,但可能影响现有接口的请求/响应 ### 产品服务 #### ✏️ ProductCreateRequest - 🆕 `bookingTermsId` (`String`) — 预订条款ID(关联预订条款模板) - 🆕 `refundPolicyId` (`String`) — 退款政策ID(关联退款政策模板) - 🆕 `warmTipsId` (`String`) — 温馨提示ID(关联温馨提示模板) - ❌ ~~`bookingNotice`~~ (`String`) — 预定须知 - ❌ ~~`cancelPolicy`~~ (`String`) — 退改政策 - ❌ ~~`warmTips`~~ (`String`) — 温馨提示 #### ✏️ ProductSaveRequest - 🆕 `bookingTermsId` (`String`) — 预订条款ID(关联预订条款模板) - 🆕 `refundPolicyId` (`String`) — 退款政策ID(关联退款政策模板) - 🆕 `warmTipsId` (`String`) — 温馨提示ID(关联温馨提示模板) - ❌ ~~`bookingNotice`~~ (`String`) — 预定须知 - ❌ ~~`cancelPolicy`~~ (`String`) — 退改政策 - ❌ ~~`warmTips`~~ (`String`) — 温馨提示 #### ✏️ ProductUpdateRequest - 🆕 `bookingTermsId` (`String`) — 预订条款ID(关联预订条款模板) - 🆕 `refundPolicyId` (`String`) — 退款政策ID(关联退款政策模板) - 🆕 `warmTipsId` (`String`) — 温馨提示ID(关联温馨提示模板) - ❌ ~~`bookingNotice`~~ (`String`) — 预定须知 - ❌ ~~`cancelPolicy`~~ (`String`) — 退改政策 - ❌ ~~`warmTips`~~ (`String`) — 温馨提示 #### ✏️ ProductVO - 🆕 `bookingTermsId` (`String`) — 预订条款ID - 🆕 `bookingTermsName` (`String`) — 预订条款名称 - 🆕 `bookingTermsContent` (`String`) — 预订条款内容 - 🆕 `refundPolicyId` (`String`) — 退款政策ID - 🆕 `refundPolicyName` (`String`) — 退款政策名称 - 🆕 `warmTipsId` (`String`) — 温馨提示ID - 🆕 `warmTipsName` (`String`) — 温馨提示名称 - 🆕 `warmTipsContent` (`String`) — 温馨提示内容 - ❌ ~~`bookingNotice`~~ (`String`) — 预定须知 - ❌ ~~`cancelPolicy`~~ (`String`) — 退改政策 - ❌ ~~`warmTips`~~ (`String`) — 温馨提示 ### 订单服务 #### ✏️ RefundPolicyRequest - ❌ ~~`refundType`~~ (`String`) — 退款类型 - ❌ ~~`startDate`~~ (`LocalDate`) — 生效开始日期 - ❌ ~~`endDate`~~ (`LocalDate`) — 生效结束日期 - ✏️ `isDefault`: 说明 "是否为默认政策" → "是否为默认政策(产品未绑定退款政策时使用默认政策)"
📁 全部变更文件 (点击展开) ``` M hl-order-service/src/main/java/com/hulalv/order/controller/AdminRefundPolicyController.java M hl-order-service/src/main/java/com/hulalv/order/dto/RefundPolicyRequest.java M hl-order-service/src/main/java/com/hulalv/order/entity/OrderInfo.java M hl-order-service/src/main/java/com/hulalv/order/entity/RefundPolicy.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/RefundApplicationService.java M hl-order-service/src/main/java/com/hulalv/order/service/RefundPolicyService.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/RefundPolicyVO.java M hl-order-service/src/test/java/com/hulalv/order/service/RefundApplicationServiceTest.java M hl-order-service/src/test/java/com/hulalv/order/service/RefundPolicyServiceTest.java A hl-product-service/src/main/java/com/hulalv/product/controller/AdminBookingTermsController.java A hl-product-service/src/main/java/com/hulalv/product/controller/AdminWarmTipsController.java A hl-product-service/src/main/java/com/hulalv/product/dto/BookingTermsRequest.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 A hl-product-service/src/main/java/com/hulalv/product/dto/WarmTipsRequest.java A hl-product-service/src/main/java/com/hulalv/product/entity/BookingTerms.java M hl-product-service/src/main/java/com/hulalv/product/entity/Product.java A hl-product-service/src/main/java/com/hulalv/product/entity/WarmTips.java A hl-product-service/src/main/java/com/hulalv/product/mapper/BookingTermsMapper.java A hl-product-service/src/main/java/com/hulalv/product/mapper/WarmTipsMapper.java A hl-product-service/src/main/java/com/hulalv/product/service/BookingTermsService.java M hl-product-service/src/main/java/com/hulalv/product/service/ProductService.java A hl-product-service/src/main/java/com/hulalv/product/service/WarmTipsService.java A hl-product-service/src/main/java/com/hulalv/product/vo/BookingTermsVO.java M hl-product-service/src/main/java/com/hulalv/product/vo/ProductVO.java A hl-product-service/src/main/java/com/hulalv/product/vo/WarmTipsVO.java M hl-product-service/src/test/java/com/hulalv/product/service/MpProductServiceTest.java M hl-product-service/src/test/java/com/hulalv/product/service/ProductServiceTest.java A sql/booking_notice_refactor.sql ```