Files
QihuAI Design 82afe14a23 fix(wechat/token/market): 修复微信对话时间、Token数据重置、技能市场复活、媒体内联
1. 微信Bot对话记录时间按北京时间渲染(ImBotHub/WechatHistory 的 formatTime 显式 +08:00 + Asia/Shanghai);
2. 新增 /app/api/chat/media/relay 媒体中转端点(白名单 agnES 域名, 经香港代理代取),
   改写 _wechat_send_media 用平台中转地址,微信/iLink 可内联播放图片/视频;
3. 删除 014_clean_test_data.sql:该迁移每次重启重跑并 DELETE token_usage_logs/
   messages/conversations/knowledge 等,导致 Token 驾驶舱数据每次重启被清空;
4. 002_init_data.sql 移除 market_apps 自动播种(原 WHERE COUNT=0 在用户删空后重启复活),
   技能市场交由用户后台维护,重启不再复活。
2026-07-16 09:19:23 +08:00

85 lines
5.5 KiB
SQL

-- AIFlow 智能自动化PaaS平台 - 初始化数据(幂等)
USE aiflow;
-- ============================================================
-- 初始化管理员账号
-- 密码: admin123 (bcrypt hash)
-- ============================================================
INSERT IGNORE INTO users (id, username, email, password_hash, role, status, membership_level, membership_expire_at) VALUES
('admin-001', 'admin', 'admin@aiflow.com', '$2b$12$Gqf3M1WJH54pTIWxg9Mztu7W3.NSO6i.H1IITWO7/EDRS4.tqJFyC', 'admin', 'active', 3, '2099-12-31 23:59:59');
-- 幂等修正:覆盖旧数据卷中可能存在的无效密码哈希,确保 admin 密码始终为 admin123
UPDATE users SET password_hash = '$2b$12$Gqf3M1WJH54pTIWxg9Mztu7W3.NSO6i.H1IITWO7/EDRS4.tqJFyC' WHERE username = 'admin';
-- ============================================================
-- 初始化注册设置
-- ============================================================
INSERT IGNORE INTO register_settings (id, phone_required, phone_sms_required, email_required, email_verify_required, real_name_required) VALUES
('reg-default', 0, 0, 0, 0, 0);
-- ============================================================
-- 初始化网站基础设置
-- ============================================================
INSERT IGNORE INTO site_settings (id, `key`, `value`) VALUES
('d1d0c711-598a-11f1-a868-f201d42a48f4', 'logo', ''),
('d1d0c904-598a-11f1-a868-f201d42a48f4', 'site_name', 'AIFlow'),
('d1d0ca18-598a-11f1-a868-f201d42a48f4', 'announcement', '欢迎使用AIFlow智能自动化PaaS平台!'),
('d1d0cadf-598a-11f1-a868-f201d42a48f4', 'icp_number', '京ICP备2026000001号'),
('d1d0cb5c-598a-11f1-a868-f201d42a48f4', 'contact_email', 'support@aiflow.com'),
('d1d0cbf8-598a-11f1-a868-f201d42a48f4', 'contact_phone', '400-000-0000');
-- ============================================================
-- 初始化默认资产分类
-- ============================================================
INSERT IGNORE INTO asset_categories (id, name, type, icon, color, is_default) VALUES
('cat-file', '文件', 'file', 'file', '#4A90D9', 1),
('cat-novel', '小说', 'novel', 'book', '#7B68EE', 1),
('cat-image', '图片', 'image', 'image', '#50C878', 1),
('cat-video', '视频', 'video', 'video', '#FF6347', 1),
('cat-audio', '音频', 'audio', 'audio', '#FFD700', 1),
('cat-custom', '自定义', 'custom', 'folder', '#A9A9A9', 1);
-- ============================================================
-- 初始化默认风控规则
-- ============================================================
INSERT IGNORE INTO risk_rules (id, name, type, threshold, duration, is_enabled) VALUES
('risk-rate-limit', 'API调用频率限制', 'rate_limit', 60, 60, 1),
('risk-token-limit', 'Token日消耗上限', 'rate_limit', 1000000, 86400, 1),
('risk-alert', '异常调用告警', 'alert', 1000, 3600, 1);
-- ============================================================
-- 模型供应商 / 模型 初始化(已移除自动 seeding)
-- ------------------------------------------------------------
-- 说明:默认供应商(DeepSeek/OpenAI/通义千问/SiliconFlow)与默认模型由用户在
-- 后台「大模型库」中自行维护,不再通过迁移脚本强制写入。此前每次容器重启都会
-- 因 INSERT IGNORE 把已删除的默认供应商/模型重新复活,导致用户需反复手动清理。
-- 现仅保留数据表结构(由其他迁移负责),种子数据交由用户管理,重启不再复活。
-- ============================================================
-- ============================================================
-- 初始化会员套餐
-- ============================================================
INSERT IGNORE INTO membership_plans (id, name, level, duration_type, price, daily_free_tokens, features, free_app_ids, free_model_ids, is_active) VALUES
('plan-free', 'Free', 0, 'month', 0.00, 5000, '["基础AI对话", "知识库1GB", "每日5000免费Token"]', NULL, NULL, 1),
('plan-pro', 'Pro', 2, 'month', 99.00, 50000, '["高级AI对话", "知识库10GB", "每日50000免费Token", "专属模型", "会员免费应用"]', NULL, NULL, 1),
('plan-enterprise', 'Enterprise', 3, 'month', 299.00, 200000, '["无限AI对话", "知识库100GB", "每日200000免费Token", "全部专属模型", "全部会员免费应用", "API密钥管理"]', NULL, NULL, 1);
-- ============================================================
-- 初始化官方市场应用
-- ============================================================
-- 注意:market_apps 不再在此自动播种。原因:run.sh 每次重启都会重跑全部迁移脚本,
-- 原 `WHERE (SELECT COUNT(*) FROM market_apps) = 0` 逻辑会在"用户删空技能市场"后
-- 于重启时把官方应用重新插回(即用户反馈的"删除的技能又复活")。
-- 现在完全交由用户在后台「技能市场」维护,重启不再复活。
-- 如需全新库预置官方应用,请由管理员在后台手动添加。
-- ============================================================
-- 初始化广告Banner
-- ============================================================
INSERT IGNORE INTO ad_banners (id, title, image_url, link_app_id, link_app_name, sort_order, click_count, status) VALUES
('ad-001', '智能客服Agent - 零代码搭建', '', 'app-001', '智能客服Agent', 1, 0, 'active'),
('ad-002', '数据分析工具箱 - 让数据说话', '', 'app-002', '数据分析工具箱', 2, 0, 'active'),
('ad-003', 'PPT生成器 - 一键生成精美演示', '', 'app-005', 'PPT生成器', 3, 0, 'active'),
('ad-004', 'MCP数据库连接器 - 无缝对接', '', 'app-003', 'MCP数据库连接器', 4, 0, 'active');