# 提交会话反馈

`POST` `/api/session/feedback/submit`

用户对整个会话或其中某条消息提交文字反馈。反馈为纯追加写：同一会话允许多次提交，每次生成一条新记录，不做覆盖。会话必须归属当前操作主体，否则返回403；messageId可选，不传表示针对整个会话，传入时必须属于该会话且未删除，否则返回404。lastAssistantMessageId可选，建议前端传入提交时会话中最后一条助手消息ID，便于后台还原反馈时的会话位置。

## 请求参数

### 请求头参数

| 参数名 | 类型 | 必填 | 说明 |
|--------|------|------|------|
| X-Principal-Id | integer | 否 | 身份主体ID（Long类型）。通过API访问时必须传递以标识操作主体；通过页面访问时无需传递。可通过「身份主体」模块的创建接口获取。 |

### 请求体（JSON）

| 参数名 | 类型 | 必填 | 说明 |
|--------|------|------|------|
| sessionId | integer | 是 | 被反馈的会话ID，必须归属当前操作主体 |
| messageId | integer | 否 | 被反馈的消息ID（可选）。不传表示针对整个会话的反馈；传入时必须属于该会话且未删除 |
| lastAssistantMessageId | integer | 否 | 提交反馈时会话中最后一条助手消息ID（可选），用于还原反馈时的会话位置；传入时必须属于该会话且未删除 |
| comment | string | 是 | 用户文字反馈，最长500字 |

## 响应

### 200

| 参数名 | 类型 | 说明 |
|--------|------|------|
| httpStatusCode | integer | HTTP状态码 |
| message | string | 响应消息 |
| data | SessionFeedbackVO | 响应数据 |
|     feedbackId | integer | 反馈ID |
|     sessionId | integer | 被反馈的会话ID |
|     messageId | integer | 被反馈的消息ID；null表示针对整个会话的反馈 |
|     lastAssistantMessageId | integer | 提交反馈时会话中最后一条助手消息ID；未传时为null |
|     comment | string | 用户文字反馈 |
|     gmtCreate | string | 提交时间，ISO格式 |
| success | boolean | 是否成功 |
| requestId | string | 上游请求ID，用于跨系统链路追踪排查问题 |
| errCode | string | 上游错误码，前端可据此做特殊UI处理 |

### 400

| 参数名 | 类型 | 说明 |
|--------|------|------|
| httpStatusCode | integer | HTTP状态码 |
| message | string | 响应消息 |
| data | object | 响应数据 |
| success | boolean | 是否成功 |
| requestId | string | 上游请求ID，用于跨系统链路追踪排查问题 |
| errCode | string | 上游错误码，前端可据此做特殊UI处理 |

### 500

| 参数名 | 类型 | 说明 |
|--------|------|------|
| httpStatusCode | integer | HTTP状态码 |
| message | string | 响应消息 |
| data | object | 响应数据 |
| success | boolean | 是否成功 |
| requestId | string | 上游请求ID，用于跨系统链路追踪排查问题 |
| errCode | string | 上游错误码，前端可据此做特殊UI处理 |

