changelog: 0a38703 - feat: 路径图环形布局 + 定制产品详情完整返回 + 手机号查定制产品

这个提交包含在:
API Changelog Bot 2026-03-19 15:32:23 +08:00
父节点 057e1a57e7
当前提交 2b4213e0f4
共有 3 个文件被更改,包括 799 次插入629 次删除

文件差异内容过多而无法显示 加载差异

查看文件

@ -4839,7 +4839,7 @@
"行程管理"
],
"summary": "添加行程节点",
"description": "在指定天添加一个行程节点。节点是行程的最小单元,可关联资源服务中的景区、酒店、活动等。\n\n**节点类型**TRANSPORT(交通)/SCENIC(景区)/RESTAURANT(餐厅)/ACTIVITY(活动)/PHOTOGRAPHY(摄影)/HOTEL(酒店)/FREE(自由活动)/CUSTOM(自定义)\n\n**CUSTOM 定制产品特有**:可通过 familyIds 指定节点所属的家庭分组,实现按家庭分配行程。\n新建节点自动追加到当天最后位置,可通过排序接口调整顺序。\n\n**关联字典**\n- city城市,资源面板筛选用用于在添加节点时按城市筛选可选资源",
"description": "在指定天添加一个行程节点。节点是行程的最小单元,可关联资源服务中的景区、酒店、活动等。\n\n**节点类型**TRANSPORT(交通)/SCENIC(景区)/RESTAURANT(餐厅)/ACTIVITY(活动)/PHOTOGRAPHY(摄影)/HOTEL(酒店)/FREE(自由活动)/CUSTOM(自定义)/SERVICE(服务)/NOTE(备注)\n\n**CUSTOM 定制产品特有**:可通过 familyIds 指定节点所属的家庭分组,实现按家庭分配行程。\n新建节点自动追加到当天最后位置,可通过排序接口调整顺序。\n\n**关联字典**\n- city城市,资源面板筛选用用于在添加节点时按城市筛选可选资源",
"operationId": "createNodeUsingPOST",
"consumes": [
"application/json"
@ -9688,6 +9688,10 @@
"format": "int32",
"description": "儿童人数"
},
"contactPhone": {
"type": "string",
"description": "联系电话(定制产品)"
},
"costItems": {
"type": "array",
"description": "成本项列表",
@ -9725,6 +9729,10 @@
"originalRef": "产品自定义费用项VO"
}
},
"customerName": {
"type": "string",
"description": "客户姓名(定制产品)"
},
"customizerId": {
"type": "string",
"description": "定制师ID"
@ -9733,6 +9741,11 @@
"type": "string",
"description": "出发城市"
},
"departureDate": {
"type": "string",
"format": "date",
"description": "出发日期(定制产品)"
},
"destinationCities": {
"type": "array",
"description": "途经城市列表(从行程节点资源去重提取)",
@ -9839,11 +9852,18 @@
},
"refundPolicyId": {
"type": "string",
"description": "退款政策ID"
"description": "退款政策ID已废弃,用refundPolicyIds替代"
},
"refundPolicyIds": {
"type": "object",
"description": "退款政策映射按退款类型绑定不同政策。key=退款类型(FULL/DEPOSIT/BALANCE), value=政策ID",
"additionalProperties": {
"type": "string"
}
},
"refundPolicyName": {
"type": "string",
"description": "退款政策名称"
"description": "退款政策名称(已废弃)"
},
"routeMapUrl": {
"type": "string",
@ -10163,6 +10183,11 @@
"example": 1,
"description": "儿童人数"
},
"contactPhone": {
"type": "string",
"example": 13800138000,
"description": "联系电话(定制产品)"
},
"coverImageUrl": {
"type": "string",
"example": "https://oss.example.com/cover.jpg",
@ -10178,6 +10203,11 @@
"example": "带你体验最地道的丽江风情",
"description": "创作者寄语"
},
"customerName": {
"type": "string",
"example": "张三",
"description": "客户姓名(定制产品)"
},
"customizerId": {
"type": "string",
"example": 1893012345678901234,
@ -10188,6 +10218,12 @@
"example": "昆明",
"description": "出发城市"
},
"departureDate": {
"type": "string",
"format": "date",
"example": "2026-07-01",
"description": "出发日期(定制产品)"
},
"destinationCity": {
"type": "string",
"example": "丽江",
@ -10264,7 +10300,18 @@
"refundPolicyId": {
"type": "string",
"example": 1893012345678901234,
"description": "退款政策ID关联退款政策模板"
"description": "退款政策ID已废弃,用refundPolicyIds替代"
},
"refundPolicyIds": {
"type": "object",
"example": {
"FULL": "1893012345678901234",
"DEPOSIT": "1893012345678901235"
},
"description": "退款政策映射按退款类型绑定不同政策。key=退款类型(FULL/DEPOSIT/BALANCE), value=政策ID",
"additionalProperties": {
"type": "string"
}
},
"seasons": {
"type": "array",
@ -10900,6 +10947,11 @@
"example": 1,
"description": "儿童人数"
},
"contactPhone": {
"type": "string",
"example": 13800138000,
"description": "联系电话(定制产品)"
},
"creatorAvatarUrl": {
"type": "string",
"example": "https://oss.example.com/avatar.jpg",
@ -10910,6 +10962,11 @@
"example": "带你体验最地道的丽江风情",
"description": "创作者寄语"
},
"customerName": {
"type": "string",
"example": "张三",
"description": "客户姓名(定制产品)"
},
"customizerId": {
"type": "string",
"example": 1893012345678901234,
@ -10920,6 +10977,12 @@
"example": "昆明",
"description": "出发城市"
},
"departureDate": {
"type": "string",
"format": "date",
"example": "2026-07-01",
"description": "出发日期(定制产品)"
},
"destinationCity": {
"type": "string",
"example": "丽江",
@ -10985,7 +11048,18 @@
"refundPolicyId": {
"type": "string",
"example": 1893012345678901234,
"description": "退款政策ID关联退款政策模板"
"description": "退款政策ID已废弃,用refundPolicyIds替代"
},
"refundPolicyIds": {
"type": "object",
"example": {
"FULL": "1893012345678901234",
"DEPOSIT": "1893012345678901235"
},
"description": "退款政策映射按退款类型绑定不同政策。key=退款类型(FULL/DEPOSIT/BALANCE), value=政策ID",
"additionalProperties": {
"type": "string"
}
},
"seasons": {
"type": "array",
@ -11200,7 +11274,7 @@
"nodeType": {
"type": "string",
"example": "SCENIC",
"description": "节点类型TRANSPORT(交通)/SCENIC(景区)/RESTAURANT(餐厅)/ACTIVITY(活动)/PHOTOGRAPHY(摄影)/HOTEL(酒店)/FREE(自由活动)/CUSTOM(自定义)"
"description": "节点类型TRANSPORT(交通)/SCENIC(景区)/RESTAURANT(餐厅)/ACTIVITY(活动)/PHOTOGRAPHY(摄影)/HOTEL(酒店)/FREE(自由活动)/CUSTOM(自定义)/SERVICE(服务)/NOTE(备注)"
},
"quantity": {
"type": "integer",
@ -12326,6 +12400,11 @@
"example": 1,
"description": "儿童人数"
},
"contactPhone": {
"type": "string",
"example": 13800138000,
"description": "联系电话(定制产品)"
},
"creatorAvatarUrl": {
"type": "string",
"example": "https://oss.example.com/avatar.jpg",
@ -12336,6 +12415,11 @@
"example": "带你体验最地道的丽江风情",
"description": "创作者寄语"
},
"customerName": {
"type": "string",
"example": "张三",
"description": "客户姓名(定制产品)"
},
"customizerId": {
"type": "string",
"example": 1893012345678901234,
@ -12346,6 +12430,12 @@
"example": "昆明",
"description": "出发城市"
},
"departureDate": {
"type": "string",
"format": "date",
"example": "2026-07-01",
"description": "出发日期(定制产品)"
},
"destinationCity": {
"type": "string",
"example": "丽江",
@ -12411,7 +12501,18 @@
"refundPolicyId": {
"type": "string",
"example": 1893012345678901234,
"description": "退款政策ID关联退款政策模板"
"description": "退款政策ID已废弃,用refundPolicyIds替代"
},
"refundPolicyIds": {
"type": "object",
"example": {
"FULL": "1893012345678901234",
"DEPOSIT": "1893012345678901235"
},
"description": "退款政策映射按退款类型绑定不同政策。key=退款类型(FULL/DEPOSIT/BALANCE), value=政策ID",
"additionalProperties": {
"type": "string"
}
},
"seasons": {
"type": "array",
@ -12617,7 +12718,7 @@
"nodeType": {
"type": "string",
"example": "SCENIC",
"description": "节点类型TRANSPORT(交通)/SCENIC(景区)/RESTAURANT(餐厅)/ACTIVITY(活动)/PHOTOGRAPHY(摄影)/HOTEL(酒店)/FREE(自由活动)/CUSTOM(自定义)"
"description": "节点类型TRANSPORT(交通)/SCENIC(景区)/RESTAURANT(餐厅)/ACTIVITY(活动)/PHOTOGRAPHY(摄影)/HOTEL(酒店)/FREE(自由活动)/CUSTOM(自定义)/SERVICE(服务)/NOTE(备注)"
},
"quantity": {
"type": "integer",
@ -14696,7 +14797,7 @@
},
"nodeType": {
"type": "string",
"description": "节点类型TRANSPORT(交通)/SCENIC(景区)/RESTAURANT(餐厅)/ACTIVITY(活动)/PHOTOGRAPHY(摄影)/HOTEL(酒店)/FREE(自由活动)/CUSTOM(自定义)"
"description": "节点类型TRANSPORT(交通)/SCENIC(景区)/RESTAURANT(餐厅)/ACTIVITY(活动)/PHOTOGRAPHY(摄影)/HOTEL(酒店)/FREE(自由活动)/CUSTOM(自定义)/SERVICE(服务)/NOTE(备注)"
},
"quantity": {
"type": "integer",

查看文件

@ -0,0 +1,69 @@
# 接口变更记录 — 2026-03-19 15:32
> **提交** `0a38703` · **作者** wx · **时间** 2026-03-19 15:32:23 +0800
>
> feat: 路径图环形布局 + 定制产品详情完整返回 + 手机号查定制产品
## 变更总览
- **产品服务**
- InternalMpProduct (+1)
---
## 产品服务
### InternalMpProduct
> 📖 **接口文档**: [http://192.168.100.236:8085/doc.html](http://192.168.100.236:8085/doc.html) → 标签 **「【内部接口】小程序产品Feign调用」**
### 🆕 `GET` /internal/mp/product/custom-by-phone — 按联系电话查询定制产品列表
> 根据手机号查询已完成COMPLETED/ORDERED的定制产品。
**参数**
- `phone` (`String`) — 查询参数
**响应** `Result<List<MpProductListVO>>`
| 字段 | 类型 | 说明 |
| --- | --- | --- |
| `productId` | `String` | 产品ID |
| `productType` | `String` | 产品类型CORE=核心产品 ROUTE=线路产品 CUSTOM=定制产品 GROUP=小蒙马拼团 |
| `name` | `String` | 产品名称 |
| `subtitle` | `String` | 副标题 |
| `tripDays` | `Integer` | 行程天数 |
| `tripNights` | `Integer` | 行程晚数 |
| `departureCity` | `String` | 出发城市 |
| `destinationCity` | `String` | 目的地城市 |
| `tags` | `List<String>` | 产品标签列表 |
| `seasons` | `List<String>` | 适用季节列表(编码) |
| `seasonLabels` | `List<String>` | 适用季节列表(中文) |
| `coverImageUrl` | `String` | 封面图URL |
| `lineName` | `String` | 产品线名称 |
| `startPrice` | `BigDecimal` | 起步价(来自定价配置) |
| `paymentMode` | `String` | 支付模式FULL=全款 DEPOSIT=定金+尾款 |
| `routeMapUrl` | `String` | 路径图URL |
| `creatorAvatarUrl` | `String` | 定制师头像URL |
**关联字典**
- `product_type`产品类型CUSTOM=定制产品
- `product_status`产品状态COMPLETED=已完成, ORDERED=已下单
---
<details>
<summary>📁 全部变更文件 (点击展开)</summary>
```
M hl-mp-service/src/main/java/com/hulalv/mp/controller/MpCustomizeController.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
M hl-product-service/src/main/java/com/hulalv/product/controller/InternalMpProductController.java
M hl-product-service/src/main/java/com/hulalv/product/service/ProductService.java
M hl-product-service/src/main/java/com/hulalv/product/service/RouteMapGenerator.java
M hl-product-service/src/main/java/com/hulalv/product/service/RouteMapService.java
```
</details>