# 接口变更记录 — 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>