# 2026-04-23 工作日志 ## 飞书群消息数据库存储方案升级(已完成) ### 背景 李若松要求为飞书群消息记录增加对 link 消息(引用回复)的支持,参考微信反馈数据库的实现逻辑。 ### 最终实施方案 **使用现有表 `lark_group_message`**(李若松要求),而非新建表。 1. **数据库表结构升级** - 为现有 `lark_group_message` 表添加 3 个新字段: - `parent_id`: 话题父消息 ID - `root_id`: 话题根消息 ID - `quote_message_id`: 引用消息 ID(核心字段,对应微信的 `refer_msg_svrid`) - 为 `quote_message_id` 建立索引支持高效查询 - 执行脚本:`scripts/alter_lark_group_message.sql` 2. **同步脚本更新** - 更新 `skills/feishu-group-msg-sync/scripts/sync_group_to_mysql.py` - 从飞书消息 `body.quote` 字段提取引用消息 ID - 从消息 `parent_id`/`root_id` 提取话题关系 - 媒体文件上传到腾讯 COS - 支持增量同步(基于上次同步时间) 3. **完整历史数据导入** - 创建脚本:`scripts/sync_feishu_full_history.py` - 同步时间范围:2026-04-10 至今 - 成功处理 57 条消息(包含文本、图片、视频等多种类型) - 所有媒体文件已上传到 COS - 数据已全部写入数据库 4. **定时任务配置** - 每 4 小时自动同步「内容测试问题反馈」群消息 - crontab: `0 */4 * * * cd /root/.openclaw/workspace-xiaokui/skills/feishu-group-msg-sync/scripts && python3 sync_group_to_mysql.py` 5. **文档更新** - `feishu-group-msg-sync/SKILL.md`: 说明数据库存储方案和引用回复支持 - `user-feedback-collector/SKILL.md`: 更新飞书反馈数据源为 MySQL - `feishu-group-msg-sync/references/query_examples.md`: 提供引用回复查询示例 ### 技术要点 - **引用回复识别**: 从消息 `body.quote` 字段提取被引用消息的 `message_id` - **去重机制**: 使用 `UNIQUE KEY (chat_id, message_id)` 避免重复记录 - **数据一致性**: 使用 `ON DUPLICATE KEY UPDATE` 处理重复消息 - **媒体文件处理**: 下载飞书媒体文件并上传到腾讯 COS,记录可访问 URL ### 验证结果 - ✅ 数据库表结构已更新(3 个新字段) - ✅ 历史数据已同步(57 条消息) - ✅ 定时任务已配置 - ✅ 文档已更新 - ℹ️ 当前数据中无引用回复消息(quote_message_id 都是 NULL),说明这段时间内群消息都是直接发送的 ### 查询能力 支持以下查询场景: - 查询某条消息的所有回复 - 查询完整对话链(原消息 + 所有回复) - 统计热门话题(被回复最多的消息) - 按时间、发送人、关键词筛选 ### 文件清单 - `scripts/alter_lark_group_message.sql` - 数据库表结构升级脚本 - `scripts/sync_feishu_full_history.py` - 完整历史数据同步脚本 - `skills/feishu-group-msg-sync/scripts/sync_group_to_mysql.py` - 增量同步脚本 - `skills/feishu-group-msg-sync/references/query_examples.md` - 查询示例文档