---
author: Claude
created_at: 2026-05-25
purpose: 在管理后台调用日志列表中增加"调用用户"列,显示用户昵称+ID,方便排查用户反馈问题
---
# 调用日志列表增加用户字段设计
## 背景
管理后台 `/aiconfig/list` AI 配置管理页面的"调用日志"tab 中,列表当前不显示调用用户信息。运营人员排查用户反馈问题时,需要点开每条日志的详情弹窗才能看到 userId,效率低。
## 改动范围
### 1. 后端 — 实体新增字段
**文件**: `backend-single/src/main/java/com/emotion/entity/AiCallLog.java`
在 `userId` 字段下方新增:
```java
@TableField("user_name")
private String userName;
```
### 2. 数据库 — 表新增列
```sql
ALTER TABLE t_ai_call_log ADD COLUMN user_name VARCHAR(100) COMMENT '用户昵称' AFTER user_id;
```
### 3. 后端 — 日志保存时写入 userName
**文件**: `backend-single/src/main/java/com/emotion/service/impl/AiRuntimeServiceImpl.java`
两处日志创建位置(第 68-73 行 `invokeStream` 方法、第 219-225 行 `invokeEndpointStream` 方法),在 `callLog.setUserId(...)` 之后补充:
```java
callLog.setUserName(request.getUserName());
```
- `invokeStream` 方法:`request` 已由 `AiRoutingController.withCurrentUser()` 注入 `userName`
- `invokeEndpointStream` 方法:`request` 在 `invokeEndpointStream` 内部创建(第 214 行),已通过 `UserContextHolder.getCurrentUsername()` 注入 `userName`
### 4. 前端 — 类型定义
**文件**: `web-admin/src/types/aiconfig.ts`
`AiCallLog` 接口中 `userId` 字段下方新增:
```typescript
userName?: string
```
### 5. 前端 — 列表新增列
**文件**: `web-admin/src/views/aiconfig/AiRoutingList.vue`
在调用日志表格的"调用时间"列之后、"场景"列之前,新增一列:
```vue