From 96fa2f024cd89eb10f30394b3c52af4c9e9b0418 Mon Sep 17 00:00:00 2001 From: API Changelog Bot Date: Tue, 17 Mar 2026 12:44:59 +0800 Subject: [PATCH] =?UTF-8?q?changelog:=2087da085=20-=20feat:=20=E4=BA=A7?= =?UTF-8?q?=E5=93=81=E7=BB=9F=E4=B8=80=E4=BF=9D=E5=AD=98=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=20+=20=E8=B5=84=E6=BA=90=E4=BB=B7=E6=A0=BC=E6=97=A5=E5=8E=86?= =?UTF-8?q?=E5=AD=97=E6=AE=B5=E5=A2=9E=E5=BC=BA=20+=20Knife4j=E5=88=86?= =?UTF-8?q?=E7=BB=84=E5=90=8D=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../2026-03/2026-03-17_1244_87da085_feat.md | 181 ++++++++++++++++++ 1 file changed, 181 insertions(+) create mode 100644 changelogs/2026-03/2026-03-17_1244_87da085_feat.md diff --git a/changelogs/2026-03/2026-03-17_1244_87da085_feat.md b/changelogs/2026-03/2026-03-17_1244_87da085_feat.md new file mode 100644 index 0000000..c16a251 --- /dev/null +++ b/changelogs/2026-03/2026-03-17_1244_87da085_feat.md @@ -0,0 +1,181 @@ +# 接口变更记录 — 2026-03-17 12:44 + +> **提交** `87da085` · **作者** wx · **时间** 2026-03-17 12:44:59 +0800 +> +> feat: 产品统一保存接口 + 资源价格日历字段增强 + Knife4j分组名修复 + +## 变更总览 + +- **产品服务** + - Product (+1) + +--- + +## 产品服务 + +### Product + +#### 🆕 `POST` /admin/product/item/save — 保存产品(统一创建/更新) + +**请求体** `ProductSaveRequest` + +| 字段 | 类型 | 说明 | +| --- | --- | --- | +| `productId` | `Long` | 产品ID(传入则更新,不传则创建) | +| `name` | `String` | 产品名称 | +| `subtitle` | `String` | 副标题 | +| `productType` | `String` | 产品类型:CORE=核心产品 ROUTE=线路产品 CUSTOM=定制产品 GROUP=小蒙马拼团(创建时必填,更新时忽略) | +| `tripDays` | `Integer` | 行程天数 | +| `departureCity` | `String` | 出发城市 | +| `destinationCity` | `String` | 目的地城市 | +| `seasons` | `List` | 适用季节列表,如 [\ | +| `tags` | `List` | 产品标签列表,如 [\ | +| `isBooking` | `Boolean` | 是否预约产品 | +| `adultCount` | `Integer` | 成人人数 | +| `childCount` | `Integer` | 儿童人数 | +| `youngChildCount` | `Integer` | 小童人数 | +| `babyCount` | `Integer` | 婴儿人数 | +| `minAdultPerOrder` | `Integer` | 每单最少成人数(不填默认1) | +| `maxAdultPerOrder` | `Integer` | 每单最大成人数(不填则不限制) | +| `maxChildPerOrder` | `Integer` | 每单最大儿童数(不填则不限制) | +| `coverImageUrl` | `String` | 封面图URL | +| `carouselImages` | `List` | 轮播图列表 | +| `carouselVideoUrl` | `String` | 轮播视频URL | +| `folderId` | `String` | 所属文件夹ID | +| `lineId` | `String` | 产品线ID | +| `creatorAvatarUrl` | `String` | 定制师头像URL | +| `creatorIntro` | `String` | 创作者寄语 | +| `groupChatQrUrl` | `String` | 群聊二维码URL | +| `chatMessages` | `List` | 群聊消息列表 | +| `showReview` | `Boolean` | 是否显示评价 | +| `showChatGroup` | `Boolean` | 是否显示群聊入口 | +| `showTripTime` | `Boolean` | 是否显示行程时间 | +| `showTripDistance` | `Boolean` | 是否显示行程距离 | +| `bookingNotice` | `String` | 预定须知 | +| `cancelPolicy` | `String` | 退改政策 | +| `warmTips` | `String` | 温馨提示 | +| `customizerId` | `String` | 定制师ID | +| `sortOrder` | `Integer` | 排序序号 | +| `teamExperienceYears` | `Integer` | 团队经验年数 | +| `lineSubtitle` | `String` | 产品线副标题 | +| `mchId` | `String` | 商户号:shanhe/wenlu | +| `groupRoomId` | `String` | 企微群聊ID(用于会话存档展示群消息) | + +**响应** `Result` + +--- + +## 📦 其他数据对象变更 + +> 以下变更未直接关联到本次接口变更,但可能影响现有接口的请求/响应 + +### 保险服务 + +#### ✏️ PolicyShareVO + + - ✏️ `pdfBase64`: 说明 "merged PDF as base64" → "合并后的PDF(Base64编码)" + - ✏️ `personName`: 说明 "insured person name" → "被保人姓名" + - ✏️ `policyCount`: 说明 "number of policies included" → "包含的保单数量" + - ✏️ `failedCount`: 说明 "number of policies that failed to download (skipped)" → "下载失败的保单数量(已跳过)" + +#### ✏️ SharePolicyRequest + + - ✏️ `orderId`: 说明 "travel order ID" → "旅游订单ID" + - ✏️ `insuredName`: 说明 "insured person name" → "被保人姓名" + - ✏️ `insuredIdCardNo`: 说明 "insured person ID card number" → "被保人证件号码" + +### 资源服务 + +#### ✏️ PriceCalendarDayVO + + - ✏️ `status`: 类型 `Integer` → `String`, 说明 "状态:0=不可租 1=可租" → "日历状态(字典 calendar_status:AVAILABLE=可售 SOLD_OUT=已售罄 CLOSED=已关闭)" + +#### ✏️ PriceCalendarSetRequest + + - ✏️ `status`: 类型 `Integer` → `String`, 说明 "状态:0=不可租 1=可租" → "日历状态(字典 calendar_status:AVAILABLE=可售 SOLD_OUT=已售罄 CLOSED=已关闭)" + +#### ✏️ PriceCalendarStatusRequest + + - ✏️ `status`: 类型 `Integer` → `String`, 说明 "状态:0=不可租 1=可租" → "目标状态(字典 calendar_status:AVAILABLE=可售 SOLD_OUT=已售罄 CLOSED=已关闭)" + +## 📋 实体变更 + +### ✏️ ActivityPriceCalendar + + - ✏️ `status`: 类型 `Integer` → `String` + +### ✏️ CostPriceCalendar + + - ✏️ `status`: 类型 `Integer` → `String` + +### ✏️ RoomPriceCalendar + + - ✏️ `status`: 类型 `Integer` → `String` + +### ✏️ ScenicPriceCalendar + + - ✏️ `status`: 类型 `Integer` → `String` + +### ✏️ ServicePriceCalendar + + - ✏️ `status`: 类型 `Integer` → `String` + +### ✏️ StaffPriceCalendar + + - ✏️ `status`: 类型 `Integer` → `String` + +### ✏️ VehiclePriceCalendar + + - ✏️ `status`: 类型 `Integer` → `String` + +
+📁 全部变更文件 (点击展开) + +``` +M hl-insurance-service/src/main/java/com/hulalv/insurance/config/Knife4jConfig.java +M hl-insurance-service/src/main/java/com/hulalv/insurance/dto/SharePolicyRequest.java +M hl-insurance-service/src/main/java/com/hulalv/insurance/service/BaoyouApiClient.java +M hl-insurance-service/src/main/java/com/hulalv/insurance/service/InsuranceProductSyncService.java +M hl-insurance-service/src/main/java/com/hulalv/insurance/vo/PolicyShareVO.java +M hl-product-service/src/main/java/com/hulalv/product/config/Knife4jConfig.java +M hl-product-service/src/main/java/com/hulalv/product/controller/ProductController.java +A hl-product-service/src/main/java/com/hulalv/product/dto/ProductSaveRequest.java +M hl-product-service/src/main/java/com/hulalv/product/service/ProductService.java +M hl-resource-service/src/main/java/com/hulalv/resource/activity/constant/ActivityConstants.java +M hl-resource-service/src/main/java/com/hulalv/resource/activity/dto/PriceCalendarSetRequest.java +M hl-resource-service/src/main/java/com/hulalv/resource/activity/dto/PriceCalendarStatusRequest.java +M hl-resource-service/src/main/java/com/hulalv/resource/activity/entity/ActivityPriceCalendar.java +M hl-resource-service/src/main/java/com/hulalv/resource/activity/vo/PriceCalendarDayVO.java +M hl-resource-service/src/main/java/com/hulalv/resource/cost/constant/CostConstants.java +M hl-resource-service/src/main/java/com/hulalv/resource/cost/entity/CostPriceCalendar.java +M hl-resource-service/src/main/java/com/hulalv/resource/cost/vo/PriceCalendarDayVO.java +M hl-resource-service/src/main/java/com/hulalv/resource/hotel/constant/HotelConstants.java +M hl-resource-service/src/main/java/com/hulalv/resource/hotel/dto/PriceCalendarSetRequest.java +M hl-resource-service/src/main/java/com/hulalv/resource/hotel/dto/PriceCalendarStatusRequest.java +M hl-resource-service/src/main/java/com/hulalv/resource/hotel/entity/RoomPriceCalendar.java +M hl-resource-service/src/main/java/com/hulalv/resource/hotel/vo/PriceCalendarDayVO.java +M hl-resource-service/src/main/java/com/hulalv/resource/scenic/constant/ScenicConstants.java +M hl-resource-service/src/main/java/com/hulalv/resource/scenic/dto/PriceCalendarSetRequest.java +M hl-resource-service/src/main/java/com/hulalv/resource/scenic/dto/PriceCalendarStatusRequest.java +M hl-resource-service/src/main/java/com/hulalv/resource/scenic/entity/ScenicPriceCalendar.java +M hl-resource-service/src/main/java/com/hulalv/resource/scenic/service/ScenicPriceCalendarService.java +M hl-resource-service/src/main/java/com/hulalv/resource/scenic/vo/PriceCalendarDayVO.java +M hl-resource-service/src/main/java/com/hulalv/resource/service/constant/ServiceConstants.java +M hl-resource-service/src/main/java/com/hulalv/resource/service/dto/PriceCalendarSetRequest.java +M hl-resource-service/src/main/java/com/hulalv/resource/service/dto/PriceCalendarStatusRequest.java +M hl-resource-service/src/main/java/com/hulalv/resource/service/entity/ServicePriceCalendar.java +M hl-resource-service/src/main/java/com/hulalv/resource/service/vo/PriceCalendarDayVO.java +M hl-resource-service/src/main/java/com/hulalv/resource/staff/constant/StaffConstants.java +M hl-resource-service/src/main/java/com/hulalv/resource/staff/dto/PriceCalendarSetRequest.java +M hl-resource-service/src/main/java/com/hulalv/resource/staff/dto/PriceCalendarStatusRequest.java +M hl-resource-service/src/main/java/com/hulalv/resource/staff/entity/StaffPriceCalendar.java +M hl-resource-service/src/main/java/com/hulalv/resource/staff/vo/PriceCalendarDayVO.java +M hl-resource-service/src/main/java/com/hulalv/resource/vehicle/constant/VehicleConstants.java +M hl-resource-service/src/main/java/com/hulalv/resource/vehicle/dto/PriceCalendarSetRequest.java +M hl-resource-service/src/main/java/com/hulalv/resource/vehicle/dto/PriceCalendarStatusRequest.java +M hl-resource-service/src/main/java/com/hulalv/resource/vehicle/entity/VehiclePriceCalendar.java +M hl-resource-service/src/main/java/com/hulalv/resource/vehicle/vo/PriceCalendarDayVO.java +A scripts/api-changelog-sync.py +A scripts/sync-api-docs.py +``` +
\ No newline at end of file