Files
hfb_sys/backend/migrations/000008_chat_listing_group.sql
T
ymlandClaude Opus 4.8 423c142967 提交1: 数据层改造 - 发布群与企业微信群二维码
- 新增数据库迁移 000008: chat_conversations 增加 listing_id, 新建 chat_qrcode_pool 表
- 更新 GORM 模型: ChatConversation 新增 ListingID 字段, 新增 ChatQrCode 模型
- 实现二维码池管理后端 API: 创建/列表/统计/更新/删除
- 新增管理后台路由: /api/admin/chats/qrcodes
- 新增系统配置: chat.listing_group_welcome, chat.qrcode_low_stock_threshold
- 更新优化方案文档: 废弃双群方案, 采用单群方案

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-17 15:57:10 +08:00

51 lines
2.3 KiB
SQL

-- +goose Up
-- +goose StatementBegin
-- 1. chat_conversations 表新增 listing_id 列
ALTER TABLE chat_conversations
ADD COLUMN listing_id BIGINT UNSIGNED NULL COMMENT '关联的发布ID(listing_group类型会话使用)',
ADD INDEX idx_chat_conversations_listing (listing_id);
-- 2. 新建 chat_qrcode_pool 表(企业微信群二维码池)
CREATE TABLE IF NOT EXISTS chat_qrcode_pool (
id BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
image_url VARCHAR(512) NOT NULL COMMENT 'MinIO存储的二维码图片URL',
status VARCHAR(16) NOT NULL DEFAULT 'unused' COMMENT '状态: unused/used/disabled',
conversation_id BIGINT UNSIGNED NULL COMMENT '发出后记录到哪个发布群(留痕)',
used_at DATETIME NULL COMMENT '使用时间',
expires_at DATETIME NULL COMMENT '企微群码失效时间(默认创建+7天)',
created_by BIGINT UNSIGNED NOT NULL COMMENT '上传的客服 admin_id',
note VARCHAR(255) NOT NULL DEFAULT '' COMMENT '备注,如"7月企微群A"',
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
INDEX idx_qrcode_status (status),
INDEX idx_qrcode_expires (expires_at),
INDEX idx_qrcode_conversation (conversation_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='企业微信群二维码池';
-- 3. 新增 system_configs 配置项(system_configs 表只有 key/value/description 三列)
INSERT INTO system_configs (`key`, `value`, description) VALUES
('chat.listing_group_welcome', '欢迎加入账号群!请号主扫描下方二维码加入企业微信群,方便客服与您及时联系。', '发布群欢迎语'),
('chat.qrcode_low_stock_threshold', '5', '二维码库存预警阈值')
ON DUPLICATE KEY UPDATE
`value` = VALUES(`value`),
description = VALUES(description);
-- +goose StatementEnd
-- +goose Down
-- +goose StatementBegin
-- 回滚配置项
DELETE FROM system_configs WHERE `key` IN ('chat.listing_group_welcome', 'chat.qrcode_low_stock_threshold');
-- 回滚表
DROP TABLE IF EXISTS chat_qrcode_pool;
-- 回滚列
ALTER TABLE chat_conversations
DROP INDEX idx_chat_conversations_listing,
DROP COLUMN listing_id;
-- +goose StatementEnd