From a64174435fff46f547f4417ecf001f5bbc51f6fc Mon Sep 17 00:00:00 2001 From: API Changelog Bot Date: Thu, 19 Mar 2026 12:42:36 +0800 Subject: [PATCH] =?UTF-8?q?changelog:=20055da2c=20-=20feat:=20=E5=AE=9A?= =?UTF-8?q?=E5=88=B6=E9=9C=80=E6=B1=82=E6=8E=A5=E5=8F=A3=E6=96=87=E6=A1=A3?= =?UTF-8?q?=E5=AE=8C=E5=96=84=20=E2=80=94=20Map=20=E6=9B=BF?= =?UTF-8?q?=E6=8D=A2=E4=B8=BA=E5=BC=BA=E7=B1=BB=E5=9E=8B=20DTO/VO?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../2026-03/2026-03-19_1242_055da2c_feat_M.md | 245 ++++++++++++++++++ 1 file changed, 245 insertions(+) create mode 100644 changelogs/2026-03/2026-03-19_1242_055da2c_feat_M.md diff --git a/changelogs/2026-03/2026-03-19_1242_055da2c_feat_M.md b/changelogs/2026-03/2026-03-19_1242_055da2c_feat_M.md new file mode 100644 index 0000000..d36e601 --- /dev/null +++ b/changelogs/2026-03/2026-03-19_1242_055da2c_feat_M.md @@ -0,0 +1,245 @@ +# 接口变更记录 — 2026-03-19 12:42 + +> **提交** `055da2c` · **作者** wx · **时间** 2026-03-19 12:42:36 +0800 +> +> feat: 定制需求接口文档完善 — Map 替换为强类型 DTO/VO + +## 变更总览 + +- **小程序聚合服务** + - MpCustomize (改6) + +--- + +## 小程序聚合服务 + +### MpCustomize + +> 📖 **接口文档**: [http://192.168.100.236:8086/doc.html](http://192.168.100.236:8086/doc.html) → 标签 **「C端 - 定制需求接口」** + +### ✏️ `POST` /mp/custom/submit — 提交定制需求 + +- 返回类型: `Result>` → `Result` +- 🆕 新增请求体 `MpCustomizeSubmitRequest` + +**请求体变更** `MpCustomizeSubmitRequest`: + + - 🆕 `designerId` (`Long`) — 指定定制师ID(可为空=系统分配) + - 🆕 `destination` (`String`) — 目标地区 + - 🆕 `travelPurpose` (`String`) — 旅游目的(字典:travel_purpose) + - 🆕 `requestType` (`String`) — 需求类型(字典:customize_request_type) + - 🆕 `startDate` (`LocalDate`) — 期望出发日期 + - 🆕 `endDate` (`LocalDate`) — 期望结束日期 + - 🆕 `days` (`Integer`) — 期望天数 + - 🆕 `adultCount` (`Integer`) — 成人数 + - 🆕 `childCount` (`Integer`) — 儿童数 + - 🆕 `budget` (`String`) — 预算范围(字典:customize_budget) + - 🆕 `requirements` (`String`) — 详细需求描述 + - 🆕 `contactPhone` (`String`) — 联系电话 + - 🆕 `contactName` (`String`) — 联系人 +- 🆕 新增响应类型 `MpCustomizeRequestVO` + +**响应变更** `MpCustomizeRequestVO`: + + - 🆕 `requestId` (`Long`) — 请求ID + - 🆕 `userId` (`Long`) — 用户ID + - 🆕 `designerId` (`Long`) — 指定定制师ID + - 🆕 `destination` (`String`) — 目标地区 + - 🆕 `travelPurpose` (`String`) — 旅游目的(字典:travel_purpose) + - 🆕 `requestType` (`String`) — 需求类型(字典:customize_request_type) + - 🆕 `startDate` (`LocalDate`) — 期望出发日期 + - 🆕 `endDate` (`LocalDate`) — 期望结束日期 + - 🆕 `days` (`Integer`) — 期望天数 + - 🆕 `adultCount` (`Integer`) — 成人数 + - 🆕 `childCount` (`Integer`) — 儿童数 + - 🆕 `budget` (`String`) — 预算范围(字典:customize_budget) + - 🆕 `requirements` (`String`) — 详细需求描述 + - 🆕 `contactPhone` (`String`) — 联系电话 + - 🆕 `contactName` (`String`) — 联系人 + - 🆕 `status` (`String`) — 状态(字典:customize_request_status):PENDING=待处理, ACCEPTED=已接受, DESIGNING=设计中, QUOTED=已报价, COMPLETED=已完成, CANCELLED=已取消 + - 🆕 `statusLabel` (`String`) — 状态标签(中文) + - 🆕 `designerName` (`String`) — 定制师姓名 + - 🆕 `designerAvatar` (`String`) — 定制师头像URL + - 🆕 `productId` (`Long`) — 关联产品ID(定制完成后返回) + - 🆕 `reply` (`String`) — 定制师回复内容 + - 🆕 `repliedAt` (`LocalDateTime`) — 回复时间 + - 🆕 `createTime` (`LocalDateTime`) — 创建时间 + - 🆕 `updateTime` (`LocalDateTime`) — 更新时间 + +### ✏️ `GET` /mp/custom/list — 定制需求列表 + +- 返回类型: `Result>>` → `Result>` +- 🆕 新增响应类型 `MpCustomizeRequestListVO` + +**响应变更** `MpCustomizeRequestListVO`: + + - 🆕 `requestId` (`Long`) — 请求ID + - 🆕 `userId` (`Long`) — 用户ID + - 🆕 `destination` (`String`) — 目标地区 + - 🆕 `travelPurpose` (`String`) — 旅游目的(字典:travel_purpose) + - 🆕 `requestType` (`String`) — 需求类型(字典:customize_request_type) + - 🆕 `startDate` (`LocalDate`) — 期望出发日期 + - 🆕 `days` (`Integer`) — 期望天数 + - 🆕 `adultCount` (`Integer`) — 成人数 + - 🆕 `childCount` (`Integer`) — 儿童数 + - 🆕 `budget` (`String`) — 预算范围(字典:customize_budget) + - 🆕 `status` (`String`) — 状态(字典:customize_request_status):PENDING=待处理, ACCEPTED=已接受, DESIGNING=设计中, QUOTED=已报价, COMPLETED=已完成, CANCELLED=已取消 + - 🆕 `statusLabel` (`String`) — 状态标签(中文) + - 🆕 `designerName` (`String`) — 定制师姓名 + - 🆕 `designerAvatar` (`String`) — 定制师头像URL + - 🆕 `createTime` (`LocalDateTime`) — 创建时间 + +### ✏️ `GET` /mp/custom/detail — 定制需求详情 + +- 返回类型: `Result>` → `Result` +- 🆕 新增响应类型 `MpCustomizeRequestVO` + +**响应变更** `MpCustomizeRequestVO`: + + - 🆕 `requestId` (`Long`) — 请求ID + - 🆕 `userId` (`Long`) — 用户ID + - 🆕 `designerId` (`Long`) — 指定定制师ID + - 🆕 `destination` (`String`) — 目标地区 + - 🆕 `travelPurpose` (`String`) — 旅游目的(字典:travel_purpose) + - 🆕 `requestType` (`String`) — 需求类型(字典:customize_request_type) + - 🆕 `startDate` (`LocalDate`) — 期望出发日期 + - 🆕 `endDate` (`LocalDate`) — 期望结束日期 + - 🆕 `days` (`Integer`) — 期望天数 + - 🆕 `adultCount` (`Integer`) — 成人数 + - 🆕 `childCount` (`Integer`) — 儿童数 + - 🆕 `budget` (`String`) — 预算范围(字典:customize_budget) + - 🆕 `requirements` (`String`) — 详细需求描述 + - 🆕 `contactPhone` (`String`) — 联系电话 + - 🆕 `contactName` (`String`) — 联系人 + - 🆕 `status` (`String`) — 状态(字典:customize_request_status):PENDING=待处理, ACCEPTED=已接受, DESIGNING=设计中, QUOTED=已报价, COMPLETED=已完成, CANCELLED=已取消 + - 🆕 `statusLabel` (`String`) — 状态标签(中文) + - 🆕 `designerName` (`String`) — 定制师姓名 + - 🆕 `designerAvatar` (`String`) — 定制师头像URL + - 🆕 `productId` (`Long`) — 关联产品ID(定制完成后返回) + - 🆕 `reply` (`String`) — 定制师回复内容 + - 🆕 `repliedAt` (`LocalDateTime`) — 回复时间 + - 🆕 `createTime` (`LocalDateTime`) — 创建时间 + - 🆕 `updateTime` (`LocalDateTime`) — 更新时间 + +### ✏️ `POST` /mp/custom/{requestId}/cancel — 取消定制需求 + +- 返回类型: `Result>` → `Result` +- 🆕 新增响应类型 `MpCustomizeRequestVO` + +**响应变更** `MpCustomizeRequestVO`: + + - 🆕 `requestId` (`Long`) — 请求ID + - 🆕 `userId` (`Long`) — 用户ID + - 🆕 `designerId` (`Long`) — 指定定制师ID + - 🆕 `destination` (`String`) — 目标地区 + - 🆕 `travelPurpose` (`String`) — 旅游目的(字典:travel_purpose) + - 🆕 `requestType` (`String`) — 需求类型(字典:customize_request_type) + - 🆕 `startDate` (`LocalDate`) — 期望出发日期 + - 🆕 `endDate` (`LocalDate`) — 期望结束日期 + - 🆕 `days` (`Integer`) — 期望天数 + - 🆕 `adultCount` (`Integer`) — 成人数 + - 🆕 `childCount` (`Integer`) — 儿童数 + - 🆕 `budget` (`String`) — 预算范围(字典:customize_budget) + - 🆕 `requirements` (`String`) — 详细需求描述 + - 🆕 `contactPhone` (`String`) — 联系电话 + - 🆕 `contactName` (`String`) — 联系人 + - 🆕 `status` (`String`) — 状态(字典:customize_request_status):PENDING=待处理, ACCEPTED=已接受, DESIGNING=设计中, QUOTED=已报价, COMPLETED=已完成, CANCELLED=已取消 + - 🆕 `statusLabel` (`String`) — 状态标签(中文) + - 🆕 `designerName` (`String`) — 定制师姓名 + - 🆕 `designerAvatar` (`String`) — 定制师头像URL + - 🆕 `productId` (`Long`) — 关联产品ID(定制完成后返回) + - 🆕 `reply` (`String`) — 定制师回复内容 + - 🆕 `repliedAt` (`LocalDateTime`) — 回复时间 + - 🆕 `createTime` (`LocalDateTime`) — 创建时间 + - 🆕 `updateTime` (`LocalDateTime`) — 更新时间 + +### ✏️ `GET` /mp/custom/product/{productId} — 查询已完成的定制产品详情 + +- 返回类型: `Result>` → `Result` +- 🆕 新增响应类型 `MpCustomProductDetailVO` + +**响应变更** `MpCustomProductDetailVO`: + + - 🆕 `productId` (`String`) — 产品ID + - 🆕 `productType` (`String`) — 产品类型:CUSTOM=定制产品 + - 🆕 `name` (`String`) — 产品名称 + - 🆕 `subtitle` (`String`) — 副标题 + - 🆕 `tripDays` (`Integer`) — 行程天数 + - 🆕 `tripNights` (`Integer`) — 行程晚数 + - 🆕 `departureCity` (`String`) — 出发城市 + - 🆕 `destinationCity` (`String`) — 目的地城市 + - 🆕 `destinationCities` (`List`) — 途经城市列表 + - 🆕 `adultCount` (`Integer`) — 成人人数 + - 🆕 `childCount` (`Integer`) — 儿童人数 + - 🆕 `youngChildCount` (`Integer`) — 小童人数 + - 🆕 `babyCount` (`Integer`) — 婴儿人数 + - 🆕 `paymentMode` (`String`) — 支付模式:FULL=全款 DEPOSIT=定金+尾款 + - 🆕 `status` (`String`) — 产品状态:COMPLETED=已完成, ORDERED=已下单 + - 🆕 `coverImageUrl` (`String`) — 封面图URL + - 🆕 `carouselImages` (`List`) — 轮播图列表 + - 🆕 `routeMapUrl` (`String`) — 路径图URL + - 🆕 `creatorAvatarUrl` (`String`) — 定制师头像URL + - 🆕 `creatorIntro` (`String`) — 创作者寄语 + - 🆕 `startPrice` (`BigDecimal`) — 起步价 + - 🆕 `tags` (`List`) — 产品标签列表 + - 🆕 `itineraryDays` (`List`) — 行程天列表(包含每天的景点、酒店、餐厅、活动等安排) + - 🆕 `pricing` (`Object`) — 定价配置 + - 🆕 `staffConfigs` (`List`) — 人员配置列表(定制产品专属:导游、领队、摄影师等) + - 🆕 `families` (`List`) — 家庭分组列表(定制产品专属:按家庭分配人员和房间) + - 🆕 `costItems` (`List`) — 成本项列表 + - 🆕 `customFees` (`List`) — 自定义费用项列表 + - 🆕 `createTime` (`LocalDateTime`) — 创建时间 + - 🆕 `id` (`String`) — 记录ID + - 🆕 `staffType` (`String`) — 人员类型:GUIDE=导游, GUIDE_ASSISTANT=助理导游, PHOTOGRAPHER=摄影师, LEADER=领队, OTHER=其他 + - 🆕 `staffTypeName` (`String`) — 人员类型名称(中文) + - 🆕 `quantity` (`Integer`) — 数量 + - 🆕 `sortOrder` (`Integer`) — 排序序号 + - 🆕 `familyIds` (`List`) — 所属家庭ID列表 + - 🆕 `familyId` (`String`) — 家庭ID + - 🆕 `familyName` (`String`) — 家庭名称(如:家庭1) + - 🆕 `adultCount` (`Integer`) — 成人数 + - 🆕 `childCount` (`Integer`) — 儿童数 + - 🆕 `youngChildCount` (`Integer`) — 小童数 + - 🆕 `babyCount` (`Integer`) — 幼童数 + - 🆕 `sortOrder` (`Integer`) — 排序序号 + +### ✏️ `GET` /mp/custom/products — 我的已完成定制产品列表 + +- 返回类型: `Result>>` → `Result>` +- 🆕 新增响应类型 `MpCustomProductListVO` + +**响应变更** `MpCustomProductListVO`: + + - 🆕 `productId` (`String`) — 产品ID + - 🆕 `productType` (`String`) — 产品类型:CUSTOM=定制产品 + - 🆕 `name` (`String`) — 产品名称 + - 🆕 `subtitle` (`String`) — 副标题 + - 🆕 `tripDays` (`Integer`) — 行程天数 + - 🆕 `tripNights` (`Integer`) — 行程晚数 + - 🆕 `departureCity` (`String`) — 出发城市 + - 🆕 `destinationCity` (`String`) — 目的地城市 + - 🆕 `tags` (`List`) — 产品标签列表 + - 🆕 `coverImageUrl` (`String`) — 封面图URL + - 🆕 `startPrice` (`BigDecimal`) — 起步价 + - 🆕 `paymentMode` (`String`) — 支付模式:FULL=全款 DEPOSIT=定金+尾款 + - 🆕 `routeMapUrl` (`String`) — 路径图URL + - 🆕 `creatorAvatarUrl` (`String`) — 定制师头像URL + +--- + +
+📁 全部变更文件 (点击展开) + +``` +M hl-mp-service/src/main/java/com/hulalv/mp/controller/MpCustomizeController.java +A hl-mp-service/src/main/java/com/hulalv/mp/dto/MpCustomizeSubmitRequest.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/feign/MpProductFeignClient.java +M hl-mp-service/src/main/java/com/hulalv/mp/feign/MpProductFeignFallbackFactory.java +A hl-mp-service/src/main/java/com/hulalv/mp/vo/MpCustomProductDetailVO.java +A hl-mp-service/src/main/java/com/hulalv/mp/vo/MpCustomProductListVO.java +A hl-mp-service/src/main/java/com/hulalv/mp/vo/MpCustomizeRequestListVO.java +A hl-mp-service/src/main/java/com/hulalv/mp/vo/MpCustomizeRequestVO.java +``` +
\ No newline at end of file