changelog: ff42bed5 - feat(product-v2): VO/DTO层(含完整Swagger注解+字典标注)
这个提交包含在:
父节点
3c11dcf60a
当前提交
5fe3b39daa
@ -0,0 +1,602 @@
|
|||||||
|
# 接口变更记录 — 2026-04-12 15:38
|
||||||
|
|
||||||
|
> **提交** `ff42bed5` · **作者** wx · **时间** 2026-04-12 15:38:39 +0800
|
||||||
|
>
|
||||||
|
> feat(product-v2): VO/DTO层(含完整Swagger注解+字典标注)
|
||||||
|
|
||||||
|
## 📦 其他数据对象变更
|
||||||
|
|
||||||
|
> 以下变更未直接关联到本次接口变更,但可能影响现有接口的请求/响应
|
||||||
|
|
||||||
|
### hl-product-service-v2
|
||||||
|
|
||||||
|
#### 🆕 BookingTermsVO
|
||||||
|
|
||||||
|
| 字段 | 类型 | 说明 |
|
||||||
|
| --- | --- | --- |
|
||||||
|
| `termsId` | `Long` | 条款ID |
|
||||||
|
| `termsName` | `String` | 条款名称 |
|
||||||
|
|
||||||
|
#### 🆕 FeeDeductionPreviewVO
|
||||||
|
|
||||||
|
| 字段 | 类型 | 说明 |
|
||||||
|
| --- | --- | --- |
|
||||||
|
| `feeType` | `String` | 费用类型标签 |
|
||||||
|
| `name` | `String` | 费用名称 |
|
||||||
|
| `source` | `String` | 来源(AUTO=自动推导) |
|
||||||
|
| `sourceNodeName` | `String` | 来源节点名称 |
|
||||||
|
|
||||||
|
#### 🆕 ItineraryDayDeleteReqVO
|
||||||
|
|
||||||
|
| 字段 | 类型 | 说明 |
|
||||||
|
| --- | --- | --- |
|
||||||
|
| `productId` | `Long` | 产品ID |
|
||||||
|
| `dayNumber` | `Integer` | 天序号 |
|
||||||
|
|
||||||
|
#### 🆕 MpPriceCalendarReqVO
|
||||||
|
|
||||||
|
| 字段 | 类型 | 说明 |
|
||||||
|
| --- | --- | --- |
|
||||||
|
| `productId` | `Long` | 产品ID |
|
||||||
|
| `month` | `String` | 月份(yyyy-MM) |
|
||||||
|
|
||||||
|
#### 🆕 MpPriceCalendarRespVO
|
||||||
|
|
||||||
|
| 字段 | 类型 | 说明 |
|
||||||
|
| --- | --- | --- |
|
||||||
|
| `days` | `List<CalendarDay>` | 日历列表 |
|
||||||
|
| `date` | `String` | 日期(yyyy-MM-dd) |
|
||||||
|
| `priceType` | `String` | 价格类型 |
|
||||||
|
| `adultPrice` | `BigDecimal` | 成人售价 |
|
||||||
|
| `childPrice` | `BigDecimal` | 儿童售价 |
|
||||||
|
| `isSelectable` | `Boolean` | 是否可选(有库存且未过期) |
|
||||||
|
| `remainStock` | `Integer` | 剩余库存(NULL=不限量) |
|
||||||
|
|
||||||
|
#### 🆕 MpProductDetailRespVO
|
||||||
|
|
||||||
|
| 字段 | 类型 | 说明 |
|
||||||
|
| --- | --- | --- |
|
||||||
|
| `productId` | `Long` | 产品ID |
|
||||||
|
| `productType` | `String` | 产品类型 |
|
||||||
|
| `name` | `String` | 产品名称 |
|
||||||
|
| `subtitle` | `String` | 副标题 |
|
||||||
|
| `introduction` | `String` | 产品简介 |
|
||||||
|
| `coverImageUrl` | `String` | 封面图 |
|
||||||
|
| `carouselImages` | `List<String>` | 轮播图 |
|
||||||
|
| `tripDays` | `Integer` | 行程天数 |
|
||||||
|
| `tripNights` | `Integer` | 行程晚数 |
|
||||||
|
| `itinerary` | `List<DayInfo>` | 行程天列表 |
|
||||||
|
| `includedFees` | `List<FeeInfo>` | 费用包含 |
|
||||||
|
| `excludedFees` | `List<FeeInfo>` | 费用不含 |
|
||||||
|
| `crowdBenefit` | `CrowdBenefitInfo` | 人群优惠 |
|
||||||
|
| `routeMapUrl` | `String` | 路线图URL |
|
||||||
|
| `creatorAvatarUrl` | `String` | 创建者头像 |
|
||||||
|
| `creatorIntro` | `String` | 创建者简介 |
|
||||||
|
| `dayNumber` | `Integer` | 天序号 |
|
||||||
|
| `dayTitle` | `String` | 标题 |
|
||||||
|
| `description` | `String` | 描述 |
|
||||||
|
| `coverImageUrl` | `String` | 封面图 |
|
||||||
|
| `breakfast` | `String` | 早餐 |
|
||||||
|
| `lunch` | `String` | 午餐 |
|
||||||
|
| `dinner` | `String` | 晚餐 |
|
||||||
|
| `nodes` | `List<NodeInfo>` | 节点列表 |
|
||||||
|
| `nodeType` | `String` | 节点类型 |
|
||||||
|
| `nodeName` | `String` | 节点名称 |
|
||||||
|
| `startTime` | `String` | 开始时间 |
|
||||||
|
| `durationMinutes` | `Integer` | 时长(分钟) |
|
||||||
|
| `description` | `String` | 描述 |
|
||||||
|
| `childTicket` | `String` | 儿童门票 |
|
||||||
|
| `childAccommodation` | `String` | 儿童住宿 |
|
||||||
|
| `childMeal` | `String` | 儿童餐饮 |
|
||||||
|
| `elderTicket` | `String` | 老人门票 |
|
||||||
|
| `tips` | `String` | 温馨提示 |
|
||||||
|
| `name` | `String` | 名称 |
|
||||||
|
| `description` | `String` | 说明 |
|
||||||
|
|
||||||
|
#### 🆕 MpProductLineQueryReqVO
|
||||||
|
|
||||||
|
| 字段 | 类型 | 说明 |
|
||||||
|
| --- | --- | --- |
|
||||||
|
| `lineId` | `Long` | 产品线ID |
|
||||||
|
| `tag` | `String` | 标签筛选(可选) |
|
||||||
|
|
||||||
|
#### 🆕 MpProductListRespVO
|
||||||
|
|
||||||
|
| 字段 | 类型 | 说明 |
|
||||||
|
| --- | --- | --- |
|
||||||
|
| `productId` | `Long` | 产品ID |
|
||||||
|
| `name` | `String` | 产品名称 |
|
||||||
|
| `subtitle` | `String` | 副标题 |
|
||||||
|
| `coverImageUrl` | `String` | 封面图 |
|
||||||
|
| `tripDays` | `Integer` | 行程天数 |
|
||||||
|
| `productType` | `String` | 产品类型 |
|
||||||
|
|
||||||
|
#### 🆕 OperationLogReqVO
|
||||||
|
|
||||||
|
| 字段 | 类型 | 说明 |
|
||||||
|
| --- | --- | --- |
|
||||||
|
| `productId` | `Long` | 产品ID |
|
||||||
|
| `actionCode` | `String` | 操作动作编码 |
|
||||||
|
| `detail` | `String` | 操作详情 |
|
||||||
|
| `step` | `String` | 步骤编码 |
|
||||||
|
|
||||||
|
#### 🆕 PriceCalendarBatchReqVO
|
||||||
|
|
||||||
|
| 字段 | 类型 | 说明 |
|
||||||
|
| --- | --- | --- |
|
||||||
|
| `productId` | `Long` | 产品ID |
|
||||||
|
| `version` | `Integer` | 版本号(草稿用version/已上架用priceVersion) |
|
||||||
|
| `startDate` | `LocalDate` | 开始日期 |
|
||||||
|
| `endDate` | `LocalDate` | 结束日期 |
|
||||||
|
| `tierSeq` | `Integer` | 档位序号(默认1) |
|
||||||
|
| `priceType` | `String` | 价格类型(NORMAL/PEAK/HOLIDAY/SPECIAL) |
|
||||||
|
| `adultSellPrice` | `BigDecimal` | 成人售价 |
|
||||||
|
| `childSellPrice` | `BigDecimal` | 儿童售价 |
|
||||||
|
| `toddlerDiscount` | `BigDecimal` | 小童优惠额(负数) |
|
||||||
|
| `infantPrice` | `BigDecimal` | 幼童售价(0=免费) |
|
||||||
|
| `dailyStock` | `Integer` | 每日库存上限(NULL=不限量) |
|
||||||
|
|
||||||
|
#### 🆕 PriceCalendarQueryReqVO
|
||||||
|
|
||||||
|
| 字段 | 类型 | 说明 |
|
||||||
|
| --- | --- | --- |
|
||||||
|
| `productId` | `Long` | 产品ID |
|
||||||
|
| `month` | `String` | 月份(yyyy-MM) |
|
||||||
|
| `tierSeq` | `Integer` | 档位序号(默认1) |
|
||||||
|
|
||||||
|
#### 🆕 ProductActionReqVO
|
||||||
|
|
||||||
|
| 字段 | 类型 | 说明 |
|
||||||
|
| --- | --- | --- |
|
||||||
|
| `productId` | `Long` | 产品ID |
|
||||||
|
| `action` | `String` | 操作动作(SUBMIT_PUBLISH/WITHDRAW/DIRECT_PUBLISH/UNPUBLISH/FORCE_UNPUBLISH/COMPLETE) |
|
||||||
|
| `remark` | `String` | 备注/驳回原因(可选) |
|
||||||
|
|
||||||
|
#### 🆕 ProductBasicSaveReqVO
|
||||||
|
|
||||||
|
| 字段 | 类型 | 说明 |
|
||||||
|
| --- | --- | --- |
|
||||||
|
| `productId` | `Long` | 产品ID(路径参数自动设入,前端不传) |
|
||||||
|
| `version` | `Integer` | 乐观锁版本号(从详情接口获取,提交时传回做并发校验) |
|
||||||
|
| `name` | `String` | 产品名称(≤30字) |
|
||||||
|
| `subtitle` | `String` | 副标题(一句话卖点,≤128字) |
|
||||||
|
| `introduction` | `String` | 产品简介(富文本HTML) |
|
||||||
|
| `lineId` | `Long` | 产品线ID(从产品线下拉接口获取,私人定制可空) |
|
||||||
|
| `tripDays` | `Integer` | 行程天数(≥1,晚数自动=天数-1) |
|
||||||
|
| `tripNights` | `Integer` | 行程晚数(通常=天数-1,不传自动计算) |
|
||||||
|
| `tiers` | `List<TierItem>` | 档位列表(JSON数组,如标准/舒适/豪华3档) |
|
||||||
|
| `seasons` | `List<String>` | 适用季节(字典product_season: spring=春, summer=夏, autumn=秋, winter=冬) |
|
||||||
|
| `tags` | `List<String>` | 产品标签(字典product_tag,多选) |
|
||||||
|
| `coverImageUrl` | `String` | 封面图URL |
|
||||||
|
| `carouselImages` | `List<String>` | 轮播图URL列表(≤10张) |
|
||||||
|
| `infantAgeMax` | `Integer` | 幼童年龄上限(默认1岁,幼童≤此值免费或特价) |
|
||||||
|
| `toddlerAgeMax` | `Integer` | 小童年龄上限(默认3岁,幼童<小童<儿童) |
|
||||||
|
| `childAgeMin` | `Integer` | 儿童年龄下限(默认4岁) |
|
||||||
|
| `childAgeMax` | `Integer` | 儿童年龄上限(默认12岁,超过按成人算) |
|
||||||
|
| `infantDefaultPrice` | `BigDecimal` | 幼童默认价(元,0=免费) |
|
||||||
|
| `isBooking` | `Boolean` | 是否预约产品(true=订金可不填出行人,false=正常下单) |
|
||||||
|
| `paymentType` | `String` | 支付方式(字典payment_type: FULL=全款支付, DEPOSIT=订金+尾款) |
|
||||||
|
| `depositRatio` | `Integer` | 订金比例(%,支付方式=DEPOSIT时使用,与固定额二选一) |
|
||||||
|
| `depositAmount` | `BigDecimal` | 订金固定额(元,支付方式=DEPOSIT时使用,与比例二选一) |
|
||||||
|
| `balanceDueDays` | `Integer` | 尾款支付期限(天,出发前N天需付清尾款) |
|
||||||
|
| `defaultDailyStock` | `Integer` | 每日库存默认值(NULL=不限量,用于价格日历预填) |
|
||||||
|
| `defaultRoomCount` | `Integer` | 默认房间数(小蒙马跟团游用,每个班期的初始房间数) |
|
||||||
|
| `minGroupSize` | `Integer` | 最低成团人数(0=不限,小蒙马用) |
|
||||||
|
| `minAdultPerOrder` | `Integer` | 每单最少成人数 |
|
||||||
|
| `maxAdultPerOrder` | `Integer` | 每单最多成人数 |
|
||||||
|
| `maxChildPerOrder` | `Integer` | 每单最多儿童数 |
|
||||||
|
| `showReview` | `Boolean` | 展示用户评价(true=产品详情页显示评价模块) |
|
||||||
|
| `showChatGroup` | `Boolean` | 展示群聊入口(true=显示加入群聊按钮) |
|
||||||
|
| `showTripTime` | `Boolean` | 展示行程时间(true=行程天显示起止时间) |
|
||||||
|
| `showTripDistance` | `Boolean` | 展示行程距离(true=行程天显示里程数) |
|
||||||
|
| `creatorAvatarUrl` | `String` | 创建者头像URL(产品详情页展示的领队/设计师头像) |
|
||||||
|
| `creatorIntro` | `String` | 创建者简介(≤512字) |
|
||||||
|
| `customizerId` | `Long` | 定制师ID(私人定制产品关联的定制师) |
|
||||||
|
| `customerName` | `String` | 客户姓名(私人定制的客户) |
|
||||||
|
| `contactPhone` | `String` | 联系电话(加密存储) |
|
||||||
|
| `departureDate` | `LocalDate` | 出发日期(私人定制的固定出发日期,格式yyyy-MM-dd) |
|
||||||
|
| `mchId` | `String` | 商户ID(微信支付商户号,多商户时指定) |
|
||||||
|
| `safetyItems` | `List<Object>` | 安全保障项(JSON数组 [{icon,title,description}]) |
|
||||||
|
| `photographyItems` | `List<Object>` | 摄影跟拍项(JSON数组 [{name,description}]) |
|
||||||
|
| `diningHighlights` | `List<Object>` | 餐饮亮点(JSON数组 [{name,description}]) |
|
||||||
|
| `tierSeq` | `Integer` | 档位序号(1=标准,2=舒适,3=豪华) |
|
||||||
|
| `tierName` | `String` | 档位名称 |
|
||||||
|
|
||||||
|
#### 🆕 ProductDetailRespVO
|
||||||
|
|
||||||
|
| 字段 | 类型 | 说明 |
|
||||||
|
| --- | --- | --- |
|
||||||
|
| `productId` | `Long` | 产品ID |
|
||||||
|
| `productNo` | `String` | 产品编号 |
|
||||||
|
| `productType` | `String` | 产品类型 |
|
||||||
|
| `status` | `String` | 产品状态 |
|
||||||
|
| `version` | `Integer` | 乐观锁版本号 |
|
||||||
|
| `priceVersion` | `Integer` | 调价版本号 |
|
||||||
|
| `createBy` | `Long` | 创建人ID |
|
||||||
|
| `publishedAt` | `LocalDateTime` | 上架时间 |
|
||||||
|
| `createTime` | `LocalDateTime` | 创建时间 |
|
||||||
|
| `name` | `String` | 产品名称 |
|
||||||
|
| `subtitle` | `String` | 副标题 |
|
||||||
|
| `introduction` | `String` | 产品简介 |
|
||||||
|
| `lineId` | `Long` | 产品线ID |
|
||||||
|
| `tripDays` | `Integer` | 行程天数 |
|
||||||
|
| `tripNights` | `Integer` | 行程晚数 |
|
||||||
|
| `coverImageUrl` | `String` | 封面图 |
|
||||||
|
| `tiers` | `Object` | 档位列表 |
|
||||||
|
| `seasons` | `Object` | 产品季节 |
|
||||||
|
| `tags` | `Object` | 产品标签 |
|
||||||
|
| `carouselImages` | `Object` | 轮播图 |
|
||||||
|
| `infantAgeMax` | `Integer` | 幼童年龄上限 |
|
||||||
|
| `toddlerAgeMax` | `Integer` | 小童年龄上限 |
|
||||||
|
| `childAgeMin` | `Integer` | 儿童年龄下限 |
|
||||||
|
| `childAgeMax` | `Integer` | 儿童年龄上限 |
|
||||||
|
| `isBooking` | `Boolean` | 是否预约产品 |
|
||||||
|
| `paymentType` | `String` | 支付方式 |
|
||||||
|
| `depositRatio` | `Integer` | 订金比例 |
|
||||||
|
| `depositAmount` | `BigDecimal` | 订金固定额 |
|
||||||
|
| `showReview` | `Boolean` | 展示评价 |
|
||||||
|
| `creatorAvatarUrl` | `String` | 创建者头像 |
|
||||||
|
| `creatorIntro` | `String` | 创建者简介 |
|
||||||
|
| `customizerId` | `Long` | 定制师ID |
|
||||||
|
| `customerName` | `String` | 客户姓名 |
|
||||||
|
| `departureDate` | `LocalDate` | 出发日期(定制) |
|
||||||
|
| `mchId` | `String` | 商户ID |
|
||||||
|
| `itinerary` | `List<Object>` | 行程天列表 |
|
||||||
|
| `routeInfo` | `ProductRouteInfoDO` | 路线信息 |
|
||||||
|
| `supplies` | `List<ProductSuppliesDO>` | 备品列表 |
|
||||||
|
| `extraCosts` | `List<ProductFeeItemDO>` | 额外成本项 |
|
||||||
|
| `schedules` | `List<GroupTourBatchDO>` | 班期列表 |
|
||||||
|
| `includedFees` | `List<ProductFeeItemDO>` | 费用包含 |
|
||||||
|
| `excludedFees` | `List<ProductFeeItemDO>` | 费用不含 |
|
||||||
|
| `customFees` | `List<ProductFeeItemDO>` | 自定义费用 |
|
||||||
|
| `crowdBenefit` | `ProductCrowdBenefitDO` | 人群优惠 |
|
||||||
|
| `supplement` | `ProductSupplementDO` | 补充配置 |
|
||||||
|
|
||||||
|
#### 🆕 ProductItinerarySaveReqVO
|
||||||
|
|
||||||
|
| 字段 | 类型 | 说明 |
|
||||||
|
| --- | --- | --- |
|
||||||
|
| `productId` | `Long` | 产品ID |
|
||||||
|
| `version` | `Integer` | 乐观锁版本号 |
|
||||||
|
| `days` | `List<DayItem>` | 行程天列表 |
|
||||||
|
| `dayId` | `Long` | 行程天ID(已有则传,新增不传) |
|
||||||
|
| `dayNumber` | `Integer` | 天序号 |
|
||||||
|
| `dayTitle` | `String` | 当日标题 |
|
||||||
|
| `quoteText` | `String` | 当日金句 |
|
||||||
|
| `description` | `String` | 行程描述 |
|
||||||
|
| `coverImageUrl` | `String` | 当日封面图 |
|
||||||
|
| `breakfast` | `String` | 早餐(HOTEL/CAMP/SPECIAL/SELF) |
|
||||||
|
| `lunch` | `String` | 午餐 |
|
||||||
|
| `dinner` | `String` | 晚餐 |
|
||||||
|
| `diningRemark` | `String` | 餐饮备注 |
|
||||||
|
| `dailyMileage` | `BigDecimal` | 当日里程(km) |
|
||||||
|
| `mileageManualOverride` | `Boolean` | 里程是否手动覆盖 |
|
||||||
|
| `photoUrls` | `List<String>` | 照片集 |
|
||||||
|
| `customFields` | `Object` | 自定义概况 |
|
||||||
|
| `nodes` | `List<NodeItem>` | 活动节点列表 |
|
||||||
|
| `hotels` | `List<HotelItem>` | 住宿列表 |
|
||||||
|
| `routePoints` | `List<RoutePointItem>` | 途经路线点列表 |
|
||||||
|
| `nodeId` | `Long` | 节点ID(已有则传,新增不传) |
|
||||||
|
| `sortOrder` | `Integer` | 排序 |
|
||||||
|
| `nodeType` | `String` | 节点类型(SCENIC/ACTIVITY/RESTAURANT/SERVICE/CUSTOM等) |
|
||||||
|
| `nodeName` | `String` | 节点名称 |
|
||||||
|
| `resourceType` | `String` | 资源类型 |
|
||||||
|
| `resourceId` | `Long` | 资源ID |
|
||||||
|
| `startTime` | `String` | 开始时间(如10:00) |
|
||||||
|
| `durationMinutes` | `Integer` | 时长(分钟) |
|
||||||
|
| `description` | `String` | 描述 |
|
||||||
|
| `images` | `List<String>` | 图片列表 |
|
||||||
|
| `emojiIcon` | `String` | 图标 |
|
||||||
|
| `extraData` | `Object` | 扩展数据 |
|
||||||
|
| `id` | `Long` | 住宿ID(已有则传,新增不传) |
|
||||||
|
| `tierSeq` | `Integer` | 档位序号(无档位=1) |
|
||||||
|
| `hotelId` | `Long` | 酒店ID |
|
||||||
|
| `roomTypeId` | `Long` | 房型ID(私人定制用) |
|
||||||
|
| `roomCount` | `Integer` | 房间数(私人定制用) |
|
||||||
|
| `isDefault` | `Boolean` | 是否默认推荐 |
|
||||||
|
| `sortOrder` | `Integer` | 排序 |
|
||||||
|
| `resourceId` | `Long` | 资源ID(可空=自定义地点) |
|
||||||
|
| `name` | `String` | 地点名称 |
|
||||||
|
| `longitude` | `BigDecimal` | 经度 |
|
||||||
|
| `latitude` | `BigDecimal` | 纬度 |
|
||||||
|
| `sortOrder` | `Integer` | 排序 |
|
||||||
|
|
||||||
|
#### 🆕 ProductLineDropdownVO
|
||||||
|
|
||||||
|
| 字段 | 类型 | 说明 |
|
||||||
|
| --- | --- | --- |
|
||||||
|
| `lineId` | `Long` | 产品线ID |
|
||||||
|
| `name` | `String` | 产品线名称 |
|
||||||
|
|
||||||
|
#### 🆕 ProductLinePageReqVO
|
||||||
|
|
||||||
|
| 字段 | 类型 | 说明 |
|
||||||
|
| --- | --- | --- |
|
||||||
|
| `keyword` | `String` | 关键词 |
|
||||||
|
| `status` | `String` | 状态(ACTIVE/INACTIVE) |
|
||||||
|
|
||||||
|
#### 🆕 ProductLineRespVO
|
||||||
|
|
||||||
|
| 字段 | 类型 | 说明 |
|
||||||
|
| --- | --- | --- |
|
||||||
|
| `lineId` | `Long` | 产品线ID |
|
||||||
|
| `name` | `String` | 产品线名称 |
|
||||||
|
| `productType` | `String` | 绑定产品类型 |
|
||||||
|
| `description` | `String` | 描述 |
|
||||||
|
| `seasons` | `Object` | 适用季节 |
|
||||||
|
| `tags` | `Object` | 产品线标签 |
|
||||||
|
| `coverImageUrl` | `String` | 封面图 |
|
||||||
|
| `sortOrder` | `Integer` | 排序 |
|
||||||
|
| `status` | `String` | 状态 |
|
||||||
|
| `createBy` | `Long` | 创建人ID |
|
||||||
|
| `createTime` | `LocalDateTime` | 创建时间 |
|
||||||
|
|
||||||
|
#### 🆕 ProductLineSaveReqVO
|
||||||
|
|
||||||
|
| 字段 | 类型 | 说明 |
|
||||||
|
| --- | --- | --- |
|
||||||
|
| `lineId` | `Long` | 产品线ID(修改时传) |
|
||||||
|
| `name` | `String` | 名称 |
|
||||||
|
| `productType` | `String` | 绑定产品类型 |
|
||||||
|
| `description` | `String` | 描述 |
|
||||||
|
| `seasons` | `List<String>` | 适用季节 |
|
||||||
|
| `tags` | `List<String>` | 标签 |
|
||||||
|
| `coverImageUrl` | `String` | 封面图 |
|
||||||
|
| `sortOrder` | `Integer` | 排序 |
|
||||||
|
| `status` | `String` | 状态(ACTIVE/INACTIVE) |
|
||||||
|
|
||||||
|
#### 🆕 ProductListRespVO
|
||||||
|
|
||||||
|
| 字段 | 类型 | 说明 |
|
||||||
|
| --- | --- | --- |
|
||||||
|
| `productId` | `Long` | 产品ID |
|
||||||
|
| `productNo` | `String` | 产品编号 |
|
||||||
|
| `productType` | `String` | 产品类型 |
|
||||||
|
| `name` | `String` | 产品名称 |
|
||||||
|
| `coverImageUrl` | `String` | 封面图 |
|
||||||
|
| `tripDays` | `Integer` | 行程天数 |
|
||||||
|
| `status` | `String` | 产品状态 |
|
||||||
|
| `version` | `Integer` | 版本号 |
|
||||||
|
| `createBy` | `Long` | 创建人ID |
|
||||||
|
| `publishedAt` | `LocalDateTime` | 上架时间 |
|
||||||
|
| `createTime` | `LocalDateTime` | 创建时间 |
|
||||||
|
| `updateTime` | `LocalDateTime` | 更新时间 |
|
||||||
|
|
||||||
|
#### 🆕 ProductOperationLogRespVO
|
||||||
|
|
||||||
|
| 字段 | 类型 | 说明 |
|
||||||
|
| --- | --- | --- |
|
||||||
|
| `id` | `Long` | 记录ID |
|
||||||
|
| `action` | `String` | 操作类型 |
|
||||||
|
| `detail` | `String` | 详情/驳回原因 |
|
||||||
|
| `step` | `String` | 步骤号 |
|
||||||
|
| `operatorId` | `Long` | 操作人ID |
|
||||||
|
| `operatorName` | `String` | 操作人名称 |
|
||||||
|
| `createTime` | `LocalDateTime` | 操作时间 |
|
||||||
|
|
||||||
|
#### 🆕 ProductPageReqVO
|
||||||
|
|
||||||
|
| 字段 | 类型 | 说明 |
|
||||||
|
| --- | --- | --- |
|
||||||
|
| `keyword` | `String` | 关键词(名称/编号) |
|
||||||
|
| `productType` | `String` | 产品类型(CORE/GROUP/CUSTOM) |
|
||||||
|
| `lineId` | `Long` | 产品线ID |
|
||||||
|
| `status` | `String` | 产品状态 |
|
||||||
|
|
||||||
|
#### 🆕 ProductRouteSaveReqVO
|
||||||
|
|
||||||
|
| 字段 | 类型 | 说明 |
|
||||||
|
| --- | --- | --- |
|
||||||
|
| `productId` | `Long` | 产品ID |
|
||||||
|
| `version` | `Integer` | 乐观锁版本号 |
|
||||||
|
| `routeName` | `String` | 路线名称 |
|
||||||
|
| `routeMapUrl` | `String` | 路线图URL(手动上传) |
|
||||||
|
| `totalMileage` | `BigDecimal` | 总里程(km) |
|
||||||
|
| `routeDescription` | `String` | 线路描述 |
|
||||||
|
| `vehicleModelId` | `Long` | 实际用车车型ID |
|
||||||
|
| `staffCostIds` | `List<Long>` | 服务人员成本ID列表 |
|
||||||
|
| `supplies` | `List<SuppliesItem>` | 备品列表 |
|
||||||
|
| `extraCosts` | `List<FeeItem>` | 额外成本项列表 |
|
||||||
|
| `id` | `Long` | 备品ID(已有则传,新增不传) |
|
||||||
|
| `suppliesResourceId` | `Long` | 备品资源ID(可空=自定义) |
|
||||||
|
| `suppliesName` | `String` | 备品名称 |
|
||||||
|
| `category` | `String` | 分类 |
|
||||||
|
| `hasCost` | `Boolean` | 是否涉及成本 |
|
||||||
|
| `billingType` | `String` | 计费方式(PER_PERSON/PER_QUANTITY) |
|
||||||
|
| `unitPrice` | `BigDecimal` | 单价 |
|
||||||
|
| `quantity` | `Integer` | 数量 |
|
||||||
|
| `sortOrder` | `Integer` | 排序 |
|
||||||
|
| `id` | `Long` | 费用项ID(已有则传,新增不传) |
|
||||||
|
| `resourceType` | `String` | 资源类型 |
|
||||||
|
| `resourceId` | `Long` | 资源ID |
|
||||||
|
| `costItemId` | `Long` | 费用项ID |
|
||||||
|
| `name` | `String` | 名称 |
|
||||||
|
| `description` | `String` | 说明 |
|
||||||
|
| `unitPrice` | `BigDecimal` | 单价 |
|
||||||
|
| `quantity` | `Integer` | 数量 |
|
||||||
|
| `daily` | `Boolean` | 是否按天计费 |
|
||||||
|
| `sortOrder` | `Integer` | 排序 |
|
||||||
|
|
||||||
|
#### 🆕 ProductSaveReqVO
|
||||||
|
|
||||||
|
| 字段 | 类型 | 说明 |
|
||||||
|
| --- | --- | --- |
|
||||||
|
| `name` | `String` | 产品名称(≤30字) |
|
||||||
|
| `productType` | `String` | 产品类型(字典product_type: CORE=核心产品, GROUP=小蒙马跟团游, CUSTOM=私人定制) |
|
||||||
|
| `lineId` | `Long` | 产品线ID(从 /admin/product/line/simple-list 下拉获取,私人定制可空) |
|
||||||
|
| `tripDays` | `Integer` | 行程天数(可选,创建后可在Step1修改) |
|
||||||
|
|
||||||
|
#### 🆕 ProductSupplementSaveReqVO
|
||||||
|
|
||||||
|
| 字段 | 类型 | 说明 |
|
||||||
|
| --- | --- | --- |
|
||||||
|
| `productId` | `Long` | 产品ID |
|
||||||
|
| `version` | `Integer` | 乐观锁版本号 |
|
||||||
|
| `includedFees` | `List<FeeItem>` | 费用包含列表 |
|
||||||
|
| `excludedFees` | `List<FeeItem>` | 费用不含列表 |
|
||||||
|
| `customFees` | `List<FeeItem>` | 自定义费用列表 |
|
||||||
|
| `feeIgnoredTypes` | `List<String>` | 费用推导已忽略类型 |
|
||||||
|
| `childTicket` | `String` | 儿童门票优惠(FREE/HALF_PRICE/FULL_PRICE) |
|
||||||
|
| `childAccommodation` | `String` | 儿童住宿(BED/NO_BED) |
|
||||||
|
| `childMeal` | `String` | 儿童餐饮(FULL/HALF) |
|
||||||
|
| `elderTicket` | `String` | 老人门票优惠 |
|
||||||
|
| `elderAccommodation` | `String` | 老人住宿 |
|
||||||
|
| `crowdBenefitTips` | `String` | 人群优惠温馨提示 |
|
||||||
|
| `vehicleModelIds` | `List<Long>` | 展示车型ID列表 |
|
||||||
|
| `vehicleRuleText` | `String` | 用车规则说明 |
|
||||||
|
| `refundPolicyIds` | `Object` | 退改政策映射 |
|
||||||
|
| `bookingTermsId` | `Long` | 预订条款ID |
|
||||||
|
| `warmTipsId` | `Long` | 温馨提示ID |
|
||||||
|
| `equipmentAdvice` | `String` | 装备建议(富文本) |
|
||||||
|
| `insuranceNotice` | `String` | 保险告知(INCLUDED/EXCLUDED/OPTIONAL) |
|
||||||
|
| `insuranceSchemeId` | `Long` | 保险方案ID |
|
||||||
|
| `contractSchemeId` | `Long` | 合同方案ID |
|
||||||
|
| `quickUnderstand` | `Object` | 快速理解 |
|
||||||
|
| `childExperience` | `Object` | 孩子经历 |
|
||||||
|
| `growthGains` | `List<Object>` | 成长收获 |
|
||||||
|
| `id` | `Long` | 费用项ID(已有则传) |
|
||||||
|
| `feeType` | `String` | 费用类型 |
|
||||||
|
| `source` | `String` | 来源(AUTO/MANUAL) |
|
||||||
|
| `name` | `String` | 名称 |
|
||||||
|
| `description` | `String` | 说明 |
|
||||||
|
| `unitPrice` | `BigDecimal` | 单价(自定义费用) |
|
||||||
|
| `unit` | `String` | 单位(自定义费用) |
|
||||||
|
| `sortOrder` | `Integer` | 排序 |
|
||||||
|
|
||||||
|
#### 🆕 ProductTransferReqVO
|
||||||
|
|
||||||
|
| 字段 | 类型 | 说明 |
|
||||||
|
| --- | --- | --- |
|
||||||
|
| `productId` | `Long` | 产品ID |
|
||||||
|
| `newCreatorId` | `Long` | 新创建人ID |
|
||||||
|
|
||||||
|
#### 🆕 QuoteReqVO
|
||||||
|
|
||||||
|
| 字段 | 类型 | 说明 |
|
||||||
|
| --- | --- | --- |
|
||||||
|
| `productId` | `Long` | 产品ID |
|
||||||
|
| `departureDate` | `LocalDate` | 出发日期 |
|
||||||
|
| `adultCount` | `Integer` | 成人数 |
|
||||||
|
| `batchId` | `Long` | 班期ID(小蒙马用) |
|
||||||
|
|
||||||
|
#### 🆕 QuoteResultVO
|
||||||
|
|
||||||
|
| 字段 | 类型 | 说明 |
|
||||||
|
| --- | --- | --- |
|
||||||
|
| `totalAdultPrice` | `BigDecimal` | 成人总价 |
|
||||||
|
| `totalChildPrice` | `BigDecimal` | 儿童总价 |
|
||||||
|
| `grandTotal` | `BigDecimal` | 总价合计 |
|
||||||
|
| `dailyDetails` | `List<DailyDetail>` | 每日价格明细 |
|
||||||
|
| `date` | `String` | 日期 |
|
||||||
|
| `adultPrice` | `BigDecimal` | 成人价 |
|
||||||
|
| `childPrice` | `BigDecimal` | 儿童价 |
|
||||||
|
|
||||||
|
#### 🆕 SafetyTemplateVO
|
||||||
|
|
||||||
|
| 字段 | 类型 | 说明 |
|
||||||
|
| --- | --- | --- |
|
||||||
|
| `templateId` | `Long` | 模板ID |
|
||||||
|
| `name` | `String` | 模板名称 |
|
||||||
|
| `items` | `String` | 具体条目(JSON) |
|
||||||
|
|
||||||
|
#### 🆕 ScheduleBatchCreateReqVO
|
||||||
|
|
||||||
|
| 字段 | 类型 | 说明 |
|
||||||
|
| --- | --- | --- |
|
||||||
|
| `productId` | `Long` | 产品ID |
|
||||||
|
| `startDate` | `LocalDate` | 开始日期 |
|
||||||
|
| `endDate` | `LocalDate` | 结束日期 |
|
||||||
|
| `repeatMode` | `String` | 重复模式(WEEKLY/BIWEEKLY/MONTHLY) |
|
||||||
|
| `dayOfWeek` | `Integer` | 星期几(1=周一...7=周日) |
|
||||||
|
| `adultPrice` | `BigDecimal` | 成人价 |
|
||||||
|
| `childPrice` | `BigDecimal` | 儿童价 |
|
||||||
|
| `maxParticipants` | `Integer` | 最大参与人数 |
|
||||||
|
| `maxRooms` | `Integer` | 总房间数 |
|
||||||
|
|
||||||
|
#### 🆕 ScheduleOperateReqVO
|
||||||
|
|
||||||
|
| 字段 | 类型 | 说明 |
|
||||||
|
| --- | --- | --- |
|
||||||
|
| `productId` | `Long` | 产品ID |
|
||||||
|
| `batchId` | `Long` | 班期ID |
|
||||||
|
|
||||||
|
#### 🆕 ScheduleSaveReqVO
|
||||||
|
|
||||||
|
| 字段 | 类型 | 说明 |
|
||||||
|
| --- | --- | --- |
|
||||||
|
| `productId` | `Long` | 产品ID |
|
||||||
|
| `batchId` | `Long` | 班期ID(修改时传) |
|
||||||
|
| `batchName` | `String` | 班期名称 |
|
||||||
|
| `departureDate` | `LocalDate` | 出发日期 |
|
||||||
|
| `enrollmentDeadline` | `LocalDate` | 报名截止日(默认出发前1天) |
|
||||||
|
| `adultPrice` | `BigDecimal` | 成人价 |
|
||||||
|
| `childPrice` | `BigDecimal` | 儿童价 |
|
||||||
|
| `toddlerDiscount` | `BigDecimal` | 小童优惠额(负数) |
|
||||||
|
| `infantPrice` | `BigDecimal` | 幼童价 |
|
||||||
|
| `maxParticipants` | `Integer` | 最大参与人数 |
|
||||||
|
| `maxRooms` | `Integer` | 总房间数(0=不限) |
|
||||||
|
| `productStockLimit` | `Integer` | 产品库存上限 |
|
||||||
|
| `remark` | `String` | 备注 |
|
||||||
|
|
||||||
|
#### 🆕 ScheduleTeamQueryReqVO
|
||||||
|
|
||||||
|
#### 🆕 ScheduleTeamSaveReqVO
|
||||||
|
|
||||||
|
| 字段 | 类型 | 说明 |
|
||||||
|
| --- | --- | --- |
|
||||||
|
| `staffList` | `List<StaffItem>` | 团队成员列表 |
|
||||||
|
| `staffId` | `Long` | 员工ID |
|
||||||
|
| `staffRole` | `String` | 员工角色 |
|
||||||
|
| `staffName` | `String` | 员工名称 |
|
||||||
|
| `staffPhone` | `String` | 员工电话 |
|
||||||
|
| `remark` | `String` | 备注 |
|
||||||
|
| `sortOrder` | `Integer` | 排序 |
|
||||||
|
|
||||||
|
#### 🆕 WarmTipsVO
|
||||||
|
|
||||||
|
| 字段 | 类型 | 说明 |
|
||||||
|
| --- | --- | --- |
|
||||||
|
| `tipsId` | `Long` | 提示ID |
|
||||||
|
| `tipsName` | `String` | 提示名称 |
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary>📁 全部变更文件 (点击展开)</summary>
|
||||||
|
|
||||||
|
```
|
||||||
|
A hl-product-service-v2/src/main/java/com/hulalv/product/vo/admin/BookingTermsVO.java
|
||||||
|
A hl-product-service-v2/src/main/java/com/hulalv/product/vo/admin/FeeDeductionPreviewVO.java
|
||||||
|
A hl-product-service-v2/src/main/java/com/hulalv/product/vo/admin/ItineraryDayDeleteReqVO.java
|
||||||
|
A hl-product-service-v2/src/main/java/com/hulalv/product/vo/admin/OperationLogReqVO.java
|
||||||
|
A hl-product-service-v2/src/main/java/com/hulalv/product/vo/admin/PriceCalendarBatchReqVO.java
|
||||||
|
A hl-product-service-v2/src/main/java/com/hulalv/product/vo/admin/PriceCalendarQueryReqVO.java
|
||||||
|
A hl-product-service-v2/src/main/java/com/hulalv/product/vo/admin/ProductActionReqVO.java
|
||||||
|
A hl-product-service-v2/src/main/java/com/hulalv/product/vo/admin/ProductBasicSaveReqVO.java
|
||||||
|
A hl-product-service-v2/src/main/java/com/hulalv/product/vo/admin/ProductDetailRespVO.java
|
||||||
|
A hl-product-service-v2/src/main/java/com/hulalv/product/vo/admin/ProductItinerarySaveReqVO.java
|
||||||
|
A hl-product-service-v2/src/main/java/com/hulalv/product/vo/admin/ProductLineDropdownVO.java
|
||||||
|
A hl-product-service-v2/src/main/java/com/hulalv/product/vo/admin/ProductLinePageReqVO.java
|
||||||
|
A hl-product-service-v2/src/main/java/com/hulalv/product/vo/admin/ProductLineRespVO.java
|
||||||
|
A hl-product-service-v2/src/main/java/com/hulalv/product/vo/admin/ProductLineSaveReqVO.java
|
||||||
|
A hl-product-service-v2/src/main/java/com/hulalv/product/vo/admin/ProductListRespVO.java
|
||||||
|
A hl-product-service-v2/src/main/java/com/hulalv/product/vo/admin/ProductOperationLogRespVO.java
|
||||||
|
A hl-product-service-v2/src/main/java/com/hulalv/product/vo/admin/ProductPageReqVO.java
|
||||||
|
A hl-product-service-v2/src/main/java/com/hulalv/product/vo/admin/ProductRouteSaveReqVO.java
|
||||||
|
A hl-product-service-v2/src/main/java/com/hulalv/product/vo/admin/ProductSaveReqVO.java
|
||||||
|
A hl-product-service-v2/src/main/java/com/hulalv/product/vo/admin/ProductSupplementSaveReqVO.java
|
||||||
|
A hl-product-service-v2/src/main/java/com/hulalv/product/vo/admin/ProductTransferReqVO.java
|
||||||
|
A hl-product-service-v2/src/main/java/com/hulalv/product/vo/admin/QuoteReqVO.java
|
||||||
|
A hl-product-service-v2/src/main/java/com/hulalv/product/vo/admin/QuoteResultVO.java
|
||||||
|
A hl-product-service-v2/src/main/java/com/hulalv/product/vo/admin/SafetyTemplateVO.java
|
||||||
|
A hl-product-service-v2/src/main/java/com/hulalv/product/vo/admin/ScheduleBatchCreateReqVO.java
|
||||||
|
A hl-product-service-v2/src/main/java/com/hulalv/product/vo/admin/ScheduleOperateReqVO.java
|
||||||
|
A hl-product-service-v2/src/main/java/com/hulalv/product/vo/admin/ScheduleSaveReqVO.java
|
||||||
|
A hl-product-service-v2/src/main/java/com/hulalv/product/vo/admin/ScheduleTeamQueryReqVO.java
|
||||||
|
A hl-product-service-v2/src/main/java/com/hulalv/product/vo/admin/ScheduleTeamSaveReqVO.java
|
||||||
|
A hl-product-service-v2/src/main/java/com/hulalv/product/vo/admin/WarmTipsVO.java
|
||||||
|
A hl-product-service-v2/src/main/java/com/hulalv/product/vo/mp/MpPriceCalendarReqVO.java
|
||||||
|
A hl-product-service-v2/src/main/java/com/hulalv/product/vo/mp/MpPriceCalendarRespVO.java
|
||||||
|
A hl-product-service-v2/src/main/java/com/hulalv/product/vo/mp/MpProductDetailRespVO.java
|
||||||
|
A hl-product-service-v2/src/main/java/com/hulalv/product/vo/mp/MpProductLineQueryReqVO.java
|
||||||
|
A hl-product-service-v2/src/main/java/com/hulalv/product/vo/mp/MpProductListRespVO.java
|
||||||
|
```
|
||||||
|
</details>
|
||||||
正在加载...
x
在新工单中引用
屏蔽一个用户