# 退役行程编辑历史接口——删除 edit-log/page 端点 + 7 个写接口响应删 editLogId 字段

> 端类型：管理后台
> 变更类型：删除接口（⚠️ 破坏性，前端需清理依赖）
> 涉及接口：
> - `GET /v3/admin/order/{orderId}/itinerary/edit-log/page`（已下线，调用返 404）
> - `POST /v3/admin/order/{orderId}/itinerary/days`（响应删 `editLogId`）
> - `PUT /v3/admin/order/{orderId}/itinerary/days/{dayId}`（响应删 `editLogId`）
> - `DELETE /v3/admin/order/{orderId}/itinerary/days/{dayId}`（响应删 `editLogId`）
> - `POST /v3/admin/order/{orderId}/itinerary/nodes`（响应删 `editLogId`）
> - `PUT /v3/admin/order/{orderId}/itinerary/nodes/{nodeId}`（响应删 `editLogId`）
> - `DELETE /v3/admin/order/{orderId}/itinerary/nodes/{nodeId}`（响应删 `editLogId`）
> - `POST /v3/admin/order/{orderId}/itinerary/save`（响应删 `editLogIds` 数组）

---

## ① 接口背景

搭建期行程节点的单点编辑历史（`order_itinerary_edit_log` 表）已退役：搭建阶段的编辑操作不再留痕，后续调整记录改由「调整记录」（`order_adjustment_record`）承接（见 PR #4556）。本次退役操作包含：
1. 下线「行程编辑历史分页」查询端点。
2. 7 个行程写操作的响应 VO 删除 `editLogId` / `editLogIds` 字段（原用于记录 Tab 跳转定位，不再有意义）。

---

## ② 变更清单

| 编号 | 类型 | 说明 |
|---|---|---|
| 1 | ⚠️ 删除接口 | `GET /v3/admin/order/{orderId}/itinerary/edit-log/page` **已下线，调用返 404** |
| 2 | ⚠️ 删除字段 | `ItineraryDayRespVO` 删除 `editLogId`（Long/String）字段 |
| 3 | ⚠️ 删除字段 | `ItineraryNodeRespVO` 删除 `editLogId`（Long/String）字段 |
| 4 | ⚠️ 删除字段 | `ItinerarySaveRespVO` 删除 `editLogIds`（Long 数组）字段 |
| 5 | 保留入参 | `editReason` 入参字段**保留**（后端接受但不再审计落库，不影响前端调用） |

---

## ③ 接口详情

### 已下线接口：GET /v3/admin/order/{orderId}/itinerary/edit-log/page

⚠️ **本接口已永久下线。调用时网关/服务返回 404 Not Found，不再响应任何请求。**

| 项目 | 说明 |
|---|---|
| 方法 | GET（已下线） |
| 路径 | `/v3/admin/order/{orderId}/itinerary/edit-log/page` |
| 状态 | **已删除，请勿调用** |

### 保留接口（响应字段有变）：行程写操作接口群

以下 7 个接口**路径和方法不变**，仅出参删字段：

| 方法 | 路径 | 接口名 | 删除字段 |
|---|---|---|---|
| POST | `/v3/admin/order/{orderId}/itinerary/days` | 新增行程天 | `editLogId` |
| PUT | `/v3/admin/order/{orderId}/itinerary/days/{dayId}` | 修改行程天 | `editLogId` |
| DELETE | `/v3/admin/order/{orderId}/itinerary/days/{dayId}` | 删除行程天 | `editLogId` |
| POST | `/v3/admin/order/{orderId}/itinerary/nodes` | 新增行程节点 | `editLogId` |
| PUT | `/v3/admin/order/{orderId}/itinerary/nodes/{nodeId}` | 修改行程节点 | `editLogId` |
| DELETE | `/v3/admin/order/{orderId}/itinerary/nodes/{nodeId}` | 删除行程节点 | `editLogId` |
| POST | `/v3/admin/order/{orderId}/itinerary/save` | 批量保存行程 | `editLogIds`（数组） |

---

## ④ 接口入参

7 个保留接口的入参**无变化**。`editReason` 字段仍可传（接受但不落库）。

---

## ⑤ 出参字段

### ItineraryDayRespVO（删 editLogId）

以下字段已从新增/修改/删除行程天的响应中移除：

| 字段 | 原类型 | 变更 |
|---|---|---|
| `editLogId` | String（Long 序列化） | ⚠️ **已删除** |

其余字段（`id` / `dayNumber` / `dayDate` / `theme` / `description` / `nodes[]` / `adjustmentId` / `createTime` 等）不变。

### ItineraryNodeRespVO（删 editLogId）

| 字段 | 原类型 | 变更 |
|---|---|---|
| `editLogId` | String（Long 序列化） | ⚠️ **已删除** |

其余字段不变。

### ItinerarySaveRespVO（删 editLogIds）

| 字段 | 原类型 | 变更 |
|---|---|---|
| `editLogIds` | List&lt;Long&gt; | ⚠️ **已删除** |

现有出参字段（`savedDayIds` / `savedNodeIds` / `deletedDayIds` / `deletedNodeIds`）不变。

---

## ⑥ 枚举 / 数据字典

无新增枚举变更。

---

## ⑦ 错误码

| 接口 | code | message | 说明 |
|---|---|---|---|
| 已下线端点 | 404 | 接口不存在 | 调用旧路径返回此错误 |

---

## ⑧ 示例

### 8.1 典型成功——新增行程天响应（editLogId 已不存在）

**请求**

```http
POST /v3/admin/order/7910000000001/itinerary/days
Authorization: Bearer <token>
Content-Type: application/json

{
  "theme": "天池徒步",
  "description": "长白山天池观景台",
  "editReason": "补充行程细节"
}
```

**响应（editLogId 字段已删除）**

```json
{
  "code": 200,
  "message": "success",
  "data": {
    "id": "8801234567890",
    "dayNumber": 3,
    "dayDate": "2026-08-03",
    "theme": "天池徒步",
    "description": "长白山天池观景台",
    "nodes": [],
    "adjustmentId": null,
    "createTime": "2026-06-28T15:30:00"
  }
}
```

> 注意：响应中**不含 `editLogId` 字段**，原来前端读取的 `data.editLogId` 现在为 `undefined`，请清理相关依赖。

### 8.2 边界情况——批量保存响应（editLogIds 已不存在）

**请求**

```http
POST /v3/admin/order/7910000000001/itinerary/save
Authorization: Bearer <token>
Content-Type: application/json

{
  "days": [ ... ]
}
```

**响应（editLogIds 数组已删除）**

```json
{
  "code": 200,
  "message": "success",
  "data": {
    "savedDayIds": ["8801234567890"],
    "savedNodeIds": ["8811234567890", "8811234567891"],
    "deletedDayIds": [],
    "deletedNodeIds": []
  }
}
```

### 8.3 业务失败——调用已下线的旧路径

**请求**

```http
GET /v3/admin/order/7910000000001/itinerary/edit-log/page
Authorization: Bearer <token>
```

**响应（404，旧路径已删）**

```json
{
  "code": 404,
  "message": "接口不存在: GET /v3/admin/order/{id}/itinerary/edit-log/page",
  "data": null
}
```

---

## ⑨ 业务边界

**不适用：**
- 旧的「行程编辑历史」分页功能已永久下线，无法通过任何方式恢复调用。
- 搭建期单点编辑操作不再审计留痕（若需调整记录，使用调整弹窗 submit，走「调整记录」接口 PR #4556）。

**特殊边界：**
- `editReason` 入参字段可以继续传（后端不报错），但值被忽略，不再写入任何审计表。前端无需改传参代码，但继续传入对服务端无实际效果。

---

## ⑩ 修改前后对比

### 接口变更

| 接口 | 修改前 | 修改后 |
|---|---|---|
| `GET .../itinerary/edit-log/page` | 正常返回 PageResult&lt;EditLogVO&gt; | **已下线，返回 404** |
| 行程写操作 7 个接口 | 响应含 `editLogId` / `editLogIds` | **响应不含该字段** |

### 字段级对比

#### ItineraryDayRespVO / ItineraryNodeRespVO

| 字段 | 修改前 | 修改后 |
|---|---|---|
| `editLogId` | String，本次写入的 edit_log 主键 | ⚠️ **已删除，不存在** |

#### ItinerarySaveRespVO

| 字段 | 修改前 | 修改后 |
|---|---|---|
| `editLogIds` | List&lt;Long&gt;，本次产生的 edit_log id 列表 | ⚠️ **已删除，不存在** |

---

## ⑪ 影响评估 / 回滚

**前端需做的改造：**
1. 删除对 `GET .../itinerary/edit-log/page` 的调用及相关 UI（行程编辑历史列表）。
2. 删除读取 `data.editLogId` 的代码（行程天/节点写操作响应）。
3. 删除读取 `data.editLogIds` 的代码（批量保存行程响应）。

**回滚方案：**
本次是纯删除，字段/端点已从代码移除。若需回滚，需后端重新发版恢复，前端无单独回滚方案。**建议前端同步本次上线部署后立即清理依赖，避免读 undefined 字段引发运行时错误。**

---

## ⑫ 注意事项

1. **旧路径 404**：`edit-log/page` 已彻底下线，务必在本次联调前删除调用代码，否则页面会出现 404 请求错误。
2. **editLogId 变 undefined**：行程写操作响应不再包含 `editLogId`，若前端曾用此值做「记录 Tab 跳转定位」，该功能需同步下线或改用时间线接口。
3. **editLogIds 变 undefined**：批量保存响应中 `editLogIds` 数组已删，若前端有读取逻辑需一并清理。
4. **editReason 入参可保留**：入参字段 `editReason` 仍可传（后端不报错），不强制移除，但其值不再产生任何审计记录。

---

## ⑬ 关联 / 联系人

- Issue：[#4565](https://git.1814.love:8443/wx/HL/issues/4565)
- PR：[#4569](https://git.1814.love:8443/wx/HL/pulls/4569)
- Commit：[a5a321ebe](https://git.1814.love:8443/wx/HL/commit/a5a321ebecb58b0b656d2889b00612ee28ef3862)
- 后端负责人：腰苏图（yst）
