# 工作台服务迁移说明 本仓库承接 `im_server` 中的工作台接口,第一阶段目标是让工作台服务独立编译、独立启动、独立鉴权,并由网关把 `/v1/workbench/*` 分流到本服务。 ## 已迁移接口 | 模块 | 新路径 | |---|---| | 工作台入口 | `GET /v1/workbench` | | 组织架构 | `/v1/workbench/organization/*` | | 考勤 | `/v1/workbench/attendance/*` | | 会议 | `/v1/workbench/meetings*` | | 会议笔记 | `/v1/workbench/meeting-notes`、`/v1/workbench/meetings/{id}/notes*` | | 日报 | `/v1/workbench/reports/daily*` | | 月报 | `/v1/workbench/reports/monthly*` | | 总经理信箱 | `/v1/workbench/executive-mailbox/*` | ## 当前边界 1. 数据库暂不迁移,仍访问现有租户库工作台表。 2. 文件上传仍由 `im_server` 的 `/v0/file/u/` 处理,工作台只保存 `file_id` 引用。 3. C 端实时通知仍由 `im_server` 下发;工作台后续只投 Kafka 业务事件。 4. `im_server` 原工作台代码暂不删除,待本服务联调稳定后再清理。 5. 服务启动不自动创建或修改表结构。 ## 待联调项 1. `im_server` 登录后写入 Redis session:`im:session:token:{sha256(token)}`。 2. Nginx/API Gateway 路由:`/v1/workbench/* -> im_workbench:6061`。 3. 工作台业务事件 Kafka 化:会议、考勤、日报、月报、信箱事件投递给 `im_server`。 4. 数据库专项迁移:接口稳定后再从租户库拆到工作台库。 ## Kafka 事件范围 当前工作台服务生产端统一投递到 `im.workbench.event`,由 `im_server` 后续接入消费组并转为系统通知、未读数或 WS 实时下发。 | 模块 | Action | 触发场景 | |---|---|---| | 考勤 | `attendance.record.updated` | 打卡成功 | | 考勤 | `attendance.appeal.created` | 提交考勤申诉 | | 会议 | `meeting.created` | 创建会议 | | 会议 | `meeting.updated` | 修改会议 | | 会议 | `meeting.canceled` | 取消会议 | | 会议 | `meeting.response.updated` | 参会人更新回执 | | 会议笔记 | `meeting_note.file.created` | 新增会议笔记文件 | | 会议笔记 | `meeting_note.file.replaced` | 替换会议笔记文件 | | 会议笔记 | `meeting_note.file.deleted` | 删除会议笔记文件 | | 日报 | `daily_report.draft.created` | 创建日报草稿 | | 日报 | `daily_report.draft.saved` | 保存日报草稿 | | 日报 | `daily_report.submitted` | 提交日报 | | 日报 | `daily_report.reminded` | 日报提醒 | | 月报 | `monthly_report.draft.created` | 创建月报草稿 | | 月报 | `monthly_report.draft.saved` | 保存月报草稿 | | 月报 | `monthly_report.submitted` | 提交月报 | | 月报 | `monthly_report.reopened` | 重开月报 | | 信箱 | `mailbox.submitted` | 提交总经理信箱 |