-- MySQL dump 10.13 Distrib 8.0.45, for Linux (x86_64) -- -- Host: localhost Database: lingshu -- ------------------------------------------------------ -- Server version 8.0.45-0ubuntu0.22.04.1 /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; /*!50503 SET NAMES utf8mb4 */; /*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; /*!40103 SET TIME_ZONE='+00:00' */; /*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; /*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; /*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; -- -- Table structure for table `agent_config_versions` -- DROP TABLE IF EXISTS `agent_config_versions`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `agent_config_versions` ( `id` bigint unsigned NOT NULL AUTO_INCREMENT, `agent_id` bigint unsigned NOT NULL, `config_type` enum('soul','memory','both') COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '变更类型', `version_no` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '版本号,如 v1.0.3', `change_summary` varchar(512) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '修改内容摘要', `change_source` enum('manual','agent_optimize','system_auto') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'manual', `snapshot_soul` mediumtext COLLATE utf8mb4_unicode_ci COMMENT 'soul.md 快照内容', `snapshot_memory` json DEFAULT NULL COMMENT 'memory规则列表快照(JSON数组)', `token_before` int unsigned DEFAULT NULL COMMENT '优化前Token数', `token_after` int unsigned DEFAULT NULL COMMENT '优化后Token数', `operator_id` bigint unsigned DEFAULT NULL COMMENT '操作用户ID', `is_security_change` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否涉及安全规则变更', `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (`id`), KEY `operator_id` (`operator_id`), KEY `idx_agent_version` (`agent_id`,`created_at`), CONSTRAINT `agent_config_versions_ibfk_1` FOREIGN KEY (`agent_id`) REFERENCES `agents` (`id`) ON DELETE CASCADE, CONSTRAINT `agent_config_versions_ibfk_2` FOREIGN KEY (`operator_id`) REFERENCES `users` (`id`) ON DELETE SET NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Agent配置版本快照表'; /*!40101 SET character_set_client = @saved_cs_client */; -- -- Dumping data for table `agent_config_versions` -- LOCK TABLES `agent_config_versions` WRITE; /*!40000 ALTER TABLE `agent_config_versions` DISABLE KEYS */; /*!40000 ALTER TABLE `agent_config_versions` ENABLE KEYS */; UNLOCK TABLES; -- -- Table structure for table `agent_memory_rules` -- DROP TABLE IF EXISTS `agent_memory_rules`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `agent_memory_rules` ( `id` bigint unsigned NOT NULL AUTO_INCREMENT, `agent_id` bigint unsigned NOT NULL COMMENT '关联Agent', `rule_category` enum('security','resource','environment','execution','experience','custom') COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '规则类别', `custom_category_name` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '自定义类别名称(rule_category=custom时使用)', `rule_title` varchar(256) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '规则标题/摘要', `rule_content` text COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '规则详细内容', `priority` smallint unsigned NOT NULL DEFAULT '50' COMMENT '优先级(0最高,越小越高)', `is_enabled` tinyint(1) NOT NULL DEFAULT '1' COMMENT '是否启用(安全规则不可禁用)', `is_deletable` tinyint(1) NOT NULL DEFAULT '1' COMMENT '是否可删除', `is_compressible` tinyint(1) NOT NULL DEFAULT '1' COMMENT '是否可压缩', `source` enum('manual','agent_generated','system') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'manual' COMMENT '规则来源', `expires_at` datetime DEFAULT NULL COMMENT '过期时间(经验规则30天未更新自动标记)', `status` enum('active','pending_verify','archived') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'active', `last_verified_at` datetime DEFAULT NULL COMMENT '最后验证时间', `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, `updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (`id`), KEY `idx_agent_category` (`agent_id`,`rule_category`), KEY `idx_priority` (`agent_id`,`priority`), CONSTRAINT `agent_memory_rules_ibfk_1` FOREIGN KEY (`agent_id`) REFERENCES `agents` (`id`) ON DELETE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Agent纪律约束规则表(memory.md)'; /*!40101 SET character_set_client = @saved_cs_client */; -- -- Dumping data for table `agent_memory_rules` -- LOCK TABLES `agent_memory_rules` WRITE; /*!40000 ALTER TABLE `agent_memory_rules` DISABLE KEYS */; /*!40000 ALTER TABLE `agent_memory_rules` ENABLE KEYS */; UNLOCK TABLES; -- -- Table structure for table `agent_soul_configs` -- DROP TABLE IF EXISTS `agent_soul_configs`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `agent_soul_configs` ( `id` bigint unsigned NOT NULL AUTO_INCREMENT, `agent_id` bigint unsigned NOT NULL COMMENT '关联Agent', `role_name` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '角色名称', `role_type` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '角色类型:文本分析/数据采集/信息检索/安全审查 等', `duty_scope` text COLLATE utf8mb4_unicode_ci COMMENT '职责范围与能力边界', `interaction_style` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '交互风格:简洁执行者/分析顾问 等', `allowed_skills` json DEFAULT NULL COMMENT '授权调用的Skill类别列表', `soul_markdown` mediumtext COLLATE utf8mb4_unicode_ci COMMENT 'soul.md 完整Markdown内容', `token_count` int unsigned DEFAULT NULL COMMENT '当前soul.md Token数量', `current_version_id` bigint unsigned DEFAULT NULL COMMENT '指向最新版本快照ID(外键延后设置)', `updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (`id`), UNIQUE KEY `agent_id` (`agent_id`), KEY `fk_soul_current_version` (`current_version_id`), CONSTRAINT `agent_soul_configs_ibfk_1` FOREIGN KEY (`agent_id`) REFERENCES `agents` (`id`) ON DELETE CASCADE, CONSTRAINT `fk_soul_current_version` FOREIGN KEY (`current_version_id`) REFERENCES `agent_config_versions` (`id`) ON DELETE SET NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Agent角色定位配置(soul.md)'; /*!40101 SET character_set_client = @saved_cs_client */; -- -- Dumping data for table `agent_soul_configs` -- LOCK TABLES `agent_soul_configs` WRITE; /*!40000 ALTER TABLE `agent_soul_configs` DISABLE KEYS */; /*!40000 ALTER TABLE `agent_soul_configs` ENABLE KEYS */; UNLOCK TABLES; -- -- Table structure for table `agents` -- DROP TABLE IF EXISTS `agents`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `agents` ( `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT 'AgentID', `agent_code` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'Agent唯一代号,如 a1-qwen-summarize', `name` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'Agent显示名称', `provider` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '提供方/来源单位', `category` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '能力分类,如:大语言模型/计算机视觉', `description` text COLLATE utf8mb4_unicode_ci COMMENT '功能描述', `api_endpoint` varchar(512) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'Agent API 调用端点 (相对路径或完整URL)', `api_method` varchar(8) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'POST' COMMENT 'HTTP方法', `tags` json DEFAULT NULL COMMENT '标签列表 ["情报","摘要"]', `usage_count` int unsigned NOT NULL DEFAULT '0' COMMENT '累计调用次数', `is_public` tinyint(1) NOT NULL DEFAULT '1' COMMENT '是否在智能体广场公开', `owner_id` bigint unsigned DEFAULT NULL COMMENT '上传者用户ID (NULL=系统内置)', `team_id` bigint unsigned DEFAULT NULL COMMENT '所属团队ID (NULL=公共广场)', `status` enum('active','inactive','deprecated') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'active', `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, `updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (`id`), UNIQUE KEY `agent_code` (`agent_code`), KEY `team_id` (`team_id`), KEY `idx_category` (`category`), KEY `idx_owner` (`owner_id`), FULLTEXT KEY `ft_name_desc` (`name`,`description`), CONSTRAINT `agents_ibfk_1` FOREIGN KEY (`owner_id`) REFERENCES `users` (`id`) ON DELETE SET NULL, CONSTRAINT `agents_ibfk_2` FOREIGN KEY (`team_id`) REFERENCES `teams` (`id`) ON DELETE SET NULL ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Agent智能体基础信息表'; /*!40101 SET character_set_client = @saved_cs_client */; -- -- Dumping data for table `agents` -- LOCK TABLES `agents` WRITE; /*!40000 ALTER TABLE `agents` DISABLE KEYS */; INSERT INTO `agents` VALUES (1,'a1-qwen-summarize','Qwen3.5 军事情报摘要','本地大模型中台','大语言模型','基于Qwen3.5对军事情报文本进行智能摘要,自动提取关键目标、时间、地点信息','/api/v1/agents/invoke','POST',NULL,1205,1,NULL,NULL,'active','2026-04-15 19:14:37','2026-04-15 19:14:37'),(2,'a2-cv-target-detect','高空侦察目标实时识别','视觉分析中心','计算机视觉','针对无人机高空图像进行实时目标检测,支持多目标跟踪与威胁等级分类','/api/v1/agents/invoke','POST',NULL,856,1,NULL,NULL,'active','2026-04-15 19:14:37','2026-04-15 19:14:37'),(3,'a3-db-statistics','数据库统计分析','数据管理中心','数据分析','对接结构化数据库,执行周期性统计查询,生成装备完好率/任务完成率等指标报告','/api/v1/agents/invoke','POST',NULL,423,1,NULL,NULL,'active','2026-04-15 19:14:37','2026-04-15 19:14:37'),(4,'a4-drone-dispatch','无人机调度API','无人平台控制中心','指令控制','通过标准化接口下发无人机巡逻路线、目标标记及返航指令','/api/v1/agents/invoke','POST',NULL,312,1,NULL,NULL,'active','2026-04-15 19:14:37','2026-04-15 19:14:37'); /*!40000 ALTER TABLE `agents` ENABLE KEYS */; UNLOCK TABLES; -- -- Table structure for table `ai_engines` -- DROP TABLE IF EXISTS `ai_engines`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `ai_engines` ( `id` bigint unsigned NOT NULL AUTO_INCREMENT, `engine_type` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '引擎类型:ollama/dify/openclaw', `name` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '显示名称', `endpoint` varchar(512) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '服务地址,如 http://localhost:11434', `description` varchar(256) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '描述,如"已挂载4x RTX 3090"', `status` enum('ready','offline','error') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'offline', `last_checked_at` datetime DEFAULT NULL COMMENT '最后一次健康检查时间', `config_json` json DEFAULT NULL COMMENT '附加配置(模型列表/端口等)', `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, `updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='本地AI引擎注册表'; /*!40101 SET character_set_client = @saved_cs_client */; -- -- Dumping data for table `ai_engines` -- LOCK TABLES `ai_engines` WRITE; /*!40000 ALTER TABLE `ai_engines` DISABLE KEYS */; INSERT INTO `ai_engines` VALUES (1,'ollama','Ollama 离线大模型推理框架','http://localhost:11434','已挂载 4x RTX 3090','ready',NULL,NULL,'2026-04-15 19:14:37','2026-04-15 19:14:37'),(2,'openclaw','OpenClaw Gateway','http://localhost:18789','任务调度与Skill执行引擎','ready',NULL,NULL,'2026-04-15 19:14:37','2026-04-15 19:14:37'),(3,'dify','Dify AI 开发中台','http://localhost:8080','v0.6.x 微服务集群','ready',NULL,NULL,'2026-04-15 19:14:37','2026-04-15 19:14:37'); /*!40000 ALTER TABLE `ai_engines` ENABLE KEYS */; UNLOCK TABLES; -- -- Table structure for table `alert_notifications` -- DROP TABLE IF EXISTS `alert_notifications`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `alert_notifications` ( `id` bigint unsigned NOT NULL AUTO_INCREMENT, `target_user_id` bigint unsigned NOT NULL COMMENT '接收告警的用户ID', `task_id` bigint unsigned DEFAULT NULL COMMENT '关联任务ID', `execution_id` bigint unsigned DEFAULT NULL COMMENT '关联执行记录ID', `alert_type` enum('task_fail','timeout','resource_exceed','system','custom') COLLATE utf8mb4_unicode_ci NOT NULL, `title` varchar(256) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '告警标题', `content` text COLLATE utf8mb4_unicode_ci COMMENT '告警详情', `is_read` tinyint(1) NOT NULL DEFAULT '0', `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (`id`), KEY `task_id` (`task_id`), KEY `execution_id` (`execution_id`), KEY `idx_user_unread` (`target_user_id`,`is_read`,`created_at` DESC), CONSTRAINT `alert_notifications_ibfk_1` FOREIGN KEY (`target_user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE, CONSTRAINT `alert_notifications_ibfk_2` FOREIGN KEY (`task_id`) REFERENCES `tasks` (`id`) ON DELETE SET NULL, CONSTRAINT `alert_notifications_ibfk_3` FOREIGN KEY (`execution_id`) REFERENCES `task_executions` (`id`) ON DELETE SET NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='系统告警与通知表'; /*!40101 SET character_set_client = @saved_cs_client */; -- -- Dumping data for table `alert_notifications` -- LOCK TABLES `alert_notifications` WRITE; /*!40000 ALTER TABLE `alert_notifications` DISABLE KEYS */; /*!40000 ALTER TABLE `alert_notifications` ENABLE KEYS */; UNLOCK TABLES; -- -- Table structure for table `daily_stats` -- DROP TABLE IF EXISTS `daily_stats`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `daily_stats` ( `id` bigint unsigned NOT NULL AUTO_INCREMENT, `stat_date` date NOT NULL COMMENT '统计日期', `user_id` bigint unsigned DEFAULT NULL COMMENT '用户ID(NULL=全局)', `total_executions` int unsigned NOT NULL DEFAULT '0' COMMENT '当日总执行次数', `success_count` int unsigned NOT NULL DEFAULT '0', `fail_count` int unsigned NOT NULL DEFAULT '0', `timeout_count` int unsigned NOT NULL DEFAULT '0', `avg_duration_ms` int unsigned DEFAULT NULL COMMENT '平均耗时(毫秒)', PRIMARY KEY (`id`), UNIQUE KEY `uk_date_user` (`stat_date`,`user_id`), KEY `user_id` (`user_id`), CONSTRAINT `daily_stats_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE ) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='每日任务执行统计快照(供工作台图表)'; /*!40101 SET character_set_client = @saved_cs_client */; -- -- Dumping data for table `daily_stats` -- LOCK TABLES `daily_stats` WRITE; /*!40000 ALTER TABLE `daily_stats` DISABLE KEYS */; INSERT INTO `daily_stats` VALUES (1,'2026-04-09',1,12,11,1,0,1200),(2,'2026-04-10',1,18,17,1,0,1100),(3,'2026-04-11',1,15,15,0,0,980),(4,'2026-04-12',1,22,20,2,0,1350),(5,'2026-04-13',1,19,18,1,0,1050),(6,'2026-04-14',1,25,24,1,0,1080),(7,'2026-04-15',1,20,19,1,0,1150); /*!40000 ALTER TABLE `daily_stats` ENABLE KEYS */; UNLOCK TABLES; -- -- Table structure for table `datasources` -- DROP TABLE IF EXISTS `datasources`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `datasources` ( `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '数据源ID', `owner_id` bigint unsigned NOT NULL COMMENT '所属用户ID', `team_id` bigint unsigned DEFAULT NULL COMMENT '所属团队ID(NULL=个人私有)', `name` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '数据源名称,如"核心战情数据库(MySQL)"', `ds_type` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '数据源类型:mysql/postgresql/redis/http_api/file 等', `host` varchar(256) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '主机地址+端口,如 192.168.1.100:3306', `database_name` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '数据库名', `username` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '用户名(明文,保存时由后端加密)', `credential_enc` text COLLATE utf8mb4_unicode_ci COMMENT 'AES-256加密后的密码/Token密文', `extra_config` json DEFAULT NULL COMMENT '额外连接参数(SSL/连接池大小等)', `connection_status` enum('ok','error','unknown') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'unknown' COMMENT '连通测试结果', `last_tested_at` datetime DEFAULT NULL COMMENT '最后一次连通测试时间', `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, `updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (`id`), KEY `team_id` (`team_id`), KEY `idx_owner` (`owner_id`), CONSTRAINT `datasources_ibfk_1` FOREIGN KEY (`owner_id`) REFERENCES `users` (`id`) ON DELETE CASCADE, CONSTRAINT `datasources_ibfk_2` FOREIGN KEY (`team_id`) REFERENCES `teams` (`id`) ON DELETE SET NULL ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='数据源与外部凭证表(密码AES-256加密存储)'; /*!40101 SET character_set_client = @saved_cs_client */; -- -- Dumping data for table `datasources` -- LOCK TABLES `datasources` WRITE; /*!40000 ALTER TABLE `datasources` DISABLE KEYS */; INSERT INTO `datasources` VALUES (1,1,1,'核心战情数据库 (MySQL)','mysql','192.168.1.100:3306','lingshu','db_admin','cGxhY2Vob2xkZXI=',NULL,'ok',NULL,'2026-04-15 19:14:37','2026-04-15 19:14:37'); /*!40000 ALTER TABLE `datasources` ENABLE KEYS */; UNLOCK TABLES; -- -- Table structure for table `plaza_ratings` -- DROP TABLE IF EXISTS `plaza_ratings`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `plaza_ratings` ( `id` bigint unsigned NOT NULL AUTO_INCREMENT, `resource_type` enum('task_template','agent') COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '资源类型', `resource_id` bigint unsigned NOT NULL COMMENT '资源ID', `user_id` bigint unsigned NOT NULL, `rating` tinyint unsigned DEFAULT NULL COMMENT '评分 1-5', `is_favorite` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否收藏', `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (`id`), UNIQUE KEY `uk_user_resource` (`resource_type`,`resource_id`,`user_id`), KEY `user_id` (`user_id`), CONSTRAINT `plaza_ratings_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='广场资源评分与收藏表'; /*!40101 SET character_set_client = @saved_cs_client */; -- -- Dumping data for table `plaza_ratings` -- LOCK TABLES `plaza_ratings` WRITE; /*!40000 ALTER TABLE `plaza_ratings` DISABLE KEYS */; /*!40000 ALTER TABLE `plaza_ratings` ENABLE KEYS */; UNLOCK TABLES; -- -- Table structure for table `skills` -- DROP TABLE IF EXISTS `skills`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `skills` ( `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT 'SkillID', `skill_code` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'Skill唯一标识,如 text_summarize', `name` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'Skill显示名称', `category` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'Skill类别:文本分析/图像处理/数据采集/指令下发 等', `description` text COLLATE utf8mb4_unicode_ci COMMENT '功能描述', `input_schema` json DEFAULT NULL COMMENT '输入参数JSON Schema', `output_schema` json DEFAULT NULL COMMENT '输出参数JSON Schema', `owner_id` bigint unsigned DEFAULT NULL COMMENT '创建者用户ID', `team_id` bigint unsigned DEFAULT NULL COMMENT '所属团队ID (NULL=全局公共)', `is_public` tinyint(1) NOT NULL DEFAULT '1', `usage_count` int unsigned NOT NULL DEFAULT '0', `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, `updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (`id`), UNIQUE KEY `skill_code` (`skill_code`), KEY `owner_id` (`owner_id`), KEY `team_id` (`team_id`), CONSTRAINT `skills_ibfk_1` FOREIGN KEY (`owner_id`) REFERENCES `users` (`id`) ON DELETE SET NULL, CONSTRAINT `skills_ibfk_2` FOREIGN KEY (`team_id`) REFERENCES `teams` (`id`) ON DELETE SET NULL ) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Skill技能定义表'; /*!40101 SET character_set_client = @saved_cs_client */; -- -- Dumping data for table `skills` -- LOCK TABLES `skills` WRITE; /*!40000 ALTER TABLE `skills` DISABLE KEYS */; INSERT INTO `skills` VALUES (1,'text_summarize','文本摘要','文本分析','调用LLM对输入文本进行摘要压缩',NULL,NULL,NULL,NULL,1,0,'2026-04-15 19:14:37','2026-04-15 19:14:37'),(2,'image_detect','图像目标检测','图像处理','对图像帧进行实时目标检测并返回坐标与置信度',NULL,NULL,NULL,NULL,1,0,'2026-04-15 19:14:37','2026-04-15 19:14:37'),(3,'db_query','数据库查询','数据采集','执行SQL查询并返回结构化结果',NULL,NULL,NULL,NULL,1,0,'2026-04-15 19:14:37','2026-04-15 19:14:37'),(4,'db_write','数据库写入','数据存储','将结果数据写入指定数据库表',NULL,NULL,NULL,NULL,1,0,'2026-04-15 19:14:37','2026-04-15 19:14:37'),(5,'send_notification','发送通知','指令下发','通过企业微信/邮件/系统消息推送告警或报告',NULL,NULL,NULL,NULL,1,0,'2026-04-15 19:14:37','2026-04-15 19:14:37'),(6,'file_archive','数据归档','文件处理','将执行结果序列化并归档到指定路径',NULL,NULL,NULL,NULL,1,0,'2026-04-15 19:14:37','2026-04-15 19:14:37'),(7,'drone_command','无人机指令下发','指令控制','调用无人机控制API下发路线或动作指令',NULL,NULL,NULL,NULL,1,0,'2026-04-15 19:14:37','2026-04-15 19:14:37'); /*!40000 ALTER TABLE `skills` ENABLE KEYS */; UNLOCK TABLES; -- -- Table structure for table `task_executions` -- DROP TABLE IF EXISTS `task_executions`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `task_executions` ( `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '执行记录ID', `task_id` bigint unsigned NOT NULL COMMENT '关联任务ID', `trigger_type` enum('cron','manual','webhook') COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '本次触发方式', `trigger_user_id` bigint unsigned DEFAULT NULL COMMENT '手动触发的用户ID(定时触发为NULL)', `status` enum('pending','running','success','failed','timeout') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'pending', `started_at` datetime DEFAULT NULL COMMENT '实际开始时间', `ended_at` datetime DEFAULT NULL COMMENT '实际结束时间', `duration_ms` int unsigned DEFAULT NULL COMMENT '执行耗时(毫秒)', `input_params` json DEFAULT NULL COMMENT '本次执行的输入参数快照', `output_result` json DEFAULT NULL COMMENT '执行输出结果', `error_message` text COLLATE utf8mb4_unicode_ci COMMENT '失败时的错误信息', `retry_attempt` tinyint unsigned NOT NULL DEFAULT '0' COMMENT '当前是第几次重试(0=首次)', `openclaw_job_id` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'OpenClaw调度引擎返回的任务ID', `cpu_usage_pct` decimal(5,2) DEFAULT NULL COMMENT '执行期间CPU使用率峰值(%)', `memory_usage_pct` decimal(5,2) DEFAULT NULL COMMENT '执行期间内存使用率峰值(%)', `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (`id`), KEY `idx_task_status` (`task_id`,`status`), KEY `idx_task_time` (`task_id`,`started_at` DESC), KEY `trigger_user_id` (`trigger_user_id`), CONSTRAINT `task_executions_ibfk_1` FOREIGN KEY (`task_id`) REFERENCES `tasks` (`id`) ON DELETE CASCADE, CONSTRAINT `task_executions_ibfk_2` FOREIGN KEY (`trigger_user_id`) REFERENCES `users` (`id`) ON DELETE SET NULL ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='任务执行记录表'; /*!40101 SET character_set_client = @saved_cs_client */; -- -- Dumping data for table `task_executions` -- LOCK TABLES `task_executions` WRITE; /*!40000 ALTER TABLE `task_executions` DISABLE KEYS */; INSERT INTO `task_executions` VALUES (1,1,'cron',NULL,'success','2026-04-15 17:14:37','2026-04-15 17:14:38',1150,NULL,NULL,NULL,0,NULL,42.50,68.30,'2026-04-15 19:14:37'),(2,1,'cron',NULL,'success','2026-04-15 15:14:37','2026-04-15 15:14:38',1080,NULL,NULL,NULL,0,NULL,38.20,65.10,'2026-04-15 19:14:37'),(3,1,'cron',NULL,'failed','2026-04-15 13:14:37','2026-04-15 13:14:42',NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,'2026-04-15 19:14:37'); /*!40000 ALTER TABLE `task_executions` ENABLE KEYS */; UNLOCK TABLES; -- -- Table structure for table `task_logs` -- DROP TABLE IF EXISTS `task_logs`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `task_logs` ( `id` bigint unsigned NOT NULL AUTO_INCREMENT, `execution_id` bigint unsigned NOT NULL COMMENT '关联执行记录ID', `task_id` bigint unsigned NOT NULL COMMENT '冗余任务ID便于快速查询', `log_level` enum('info','warn','error','success','debug') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'info', `log_time` datetime(3) NOT NULL COMMENT '日志时间(精确到毫秒)', `message` text COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '日志内容', `node_name` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '产生日志的工作流节点名称', PRIMARY KEY (`id`), KEY `idx_exec` (`execution_id`,`log_time`), KEY `idx_task_level` (`task_id`,`log_level`), CONSTRAINT `task_logs_ibfk_1` FOREIGN KEY (`execution_id`) REFERENCES `task_executions` (`id`) ON DELETE CASCADE ) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='任务执行日志表'; /*!40101 SET character_set_client = @saved_cs_client */; -- -- Dumping data for table `task_logs` -- LOCK TABLES `task_logs` WRITE; /*!40000 ALTER TABLE `task_logs` DISABLE KEYS */; INSERT INTO `task_logs` VALUES (1,3,1,'info','2026-04-15 17:14:37.000','Task Workflow Triggered','Cron定时触发'),(2,3,1,'info','2026-04-15 17:14:38.000','Initializing node context... OK','Cron定时触发'),(3,3,1,'info','2026-04-15 17:14:39.000','Fetching UAV data stream... 32 frames','图像目标检测'),(4,3,1,'info','2026-04-15 17:14:40.000','Invoking Vision AI Agent (CV-Model)...','图像目标检测'),(5,3,1,'success','2026-04-15 17:14:41.000','Agent analysis complete. Targets found: 2','图像目标检测'),(6,3,1,'info','2026-04-15 17:14:42.000','Writing results to database...','写入数据库'),(7,3,1,'success','2026-04-15 17:14:43.000','Task workflow finished in 1.15 seconds','写入数据库'); /*!40000 ALTER TABLE `task_logs` ENABLE KEYS */; UNLOCK TABLES; -- -- Table structure for table `task_templates` -- DROP TABLE IF EXISTS `task_templates`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `task_templates` ( `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '模板ID', `title` varchar(256) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '模板名称', `description` text COLLATE utf8mb4_unicode_ci COMMENT '模板说明', `category` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '分类:情报处理/装备监控/侦察任务/后勤统计/指挥简报', `tags` json DEFAULT NULL COMMENT '标签列表', `contributor_id` bigint unsigned NOT NULL COMMENT '贡献者用户ID', `contributor_alias` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '贡献者展示昵称(发布时自填)', `task_config` json NOT NULL COMMENT '模板任务配置快照(名称/cron/skill参数/workflow_json等)', `usage_count` int unsigned NOT NULL DEFAULT '0' COMMENT '被导入次数', `is_active` tinyint(1) NOT NULL DEFAULT '1' COMMENT '是否在广场展示', `published_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '发布时间', `updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (`id`), KEY `contributor_id` (`contributor_id`), KEY `idx_category` (`category`), KEY `idx_usage` (`usage_count` DESC), FULLTEXT KEY `ft_title_desc` (`title`,`description`), CONSTRAINT `task_templates_ibfk_1` FOREIGN KEY (`contributor_id`) REFERENCES `users` (`id`) ON DELETE RESTRICT ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='任务模板广场表'; /*!40101 SET character_set_client = @saved_cs_client */; -- -- Dumping data for table `task_templates` -- LOCK TABLES `task_templates` WRITE; /*!40000 ALTER TABLE `task_templates` DISABLE KEYS */; INSERT INTO `task_templates` VALUES (1,'每日天气预报 [模板]','自动处理数据,请导入后配置自身凭证。','情报处理',NULL,4,'小头兵','{}',0,1,'2026-04-15 20:27:14','2026-04-15 20:27:14'); /*!40000 ALTER TABLE `task_templates` ENABLE KEYS */; UNLOCK TABLES; -- -- Table structure for table `tasks` -- DROP TABLE IF EXISTS `tasks`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `tasks` ( `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '任务ID', `owner_id` bigint unsigned NOT NULL COMMENT '创建用户ID', `team_id` bigint unsigned DEFAULT NULL COMMENT '所属团队ID(NULL=个人私有)', `name` varchar(256) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '任务名称', `description` text COLLATE utf8mb4_unicode_ci COMMENT '任务描述', `category` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '任务分类:情报处理/装备监控/侦察任务/后勤统计/指挥简报', `trigger_type` enum('cron','manual','webhook') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'cron' COMMENT '触发方式', `cron_expression` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'Cron表达式,如 0 */2 * * *', `cron_description` varchar(256) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'Cron的自然语言描述', `agent_id` bigint unsigned DEFAULT NULL COMMENT '主关联Agent ID', `skill_id` bigint unsigned DEFAULT NULL COMMENT '主调用Skill ID', `skill_params` json DEFAULT NULL COMMENT 'Skill输入参数配置(JSON)', `datasource_id` bigint unsigned DEFAULT NULL COMMENT '绑定的数据源凭证ID', `timeout_seconds` smallint unsigned NOT NULL DEFAULT '60' COMMENT '超时时间(秒)', `retry_count` tinyint unsigned NOT NULL DEFAULT '3' COMMENT '失败重试次数', `alert_on_fail` tinyint(1) NOT NULL DEFAULT '1' COMMENT '失败是否告警', `status` enum('draft','stopped','running','error') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'stopped' COMMENT '任务状态', `workflow_json` json DEFAULT NULL COMMENT 'Drawflow画布JSON序列化数据', `source_template_id` bigint unsigned DEFAULT NULL COMMENT '从任务广场导入时的模板ID', `published_template_id` bigint unsigned DEFAULT NULL COMMENT '已发布到广场的模板ID', `last_run_at` datetime DEFAULT NULL COMMENT '最后一次执行时间', `next_run_at` datetime DEFAULT NULL COMMENT '下次计划执行时间', `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, `updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (`id`), KEY `agent_id` (`agent_id`), KEY `skill_id` (`skill_id`), KEY `idx_owner_status` (`owner_id`,`status`), KEY `idx_team` (`team_id`), FULLTEXT KEY `ft_name` (`name`), CONSTRAINT `tasks_ibfk_1` FOREIGN KEY (`owner_id`) REFERENCES `users` (`id`) ON DELETE RESTRICT, CONSTRAINT `tasks_ibfk_2` FOREIGN KEY (`team_id`) REFERENCES `teams` (`id`) ON DELETE SET NULL, CONSTRAINT `tasks_ibfk_3` FOREIGN KEY (`agent_id`) REFERENCES `agents` (`id`) ON DELETE SET NULL, CONSTRAINT `tasks_ibfk_4` FOREIGN KEY (`skill_id`) REFERENCES `skills` (`id`) ON DELETE SET NULL ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='任务主表'; /*!40101 SET character_set_client = @saved_cs_client */; -- -- Dumping data for table `tasks` -- LOCK TABLES `tasks` WRITE; /*!40000 ALTER TABLE `tasks` DISABLE KEYS */; INSERT INTO `tasks` VALUES (1,1,1,'边境巡逻无人机数据处理与告警',NULL,NULL,'cron','0 */2 * * *',NULL,2,NULL,NULL,NULL,60,3,1,'running',NULL,NULL,NULL,NULL,NULL,'2026-04-15 19:14:37','2026-04-15 19:14:37'),(2,1,1,'每日战备情报自动分发',NULL,NULL,'cron','0 6 * * *',NULL,1,NULL,NULL,NULL,60,3,1,'running',NULL,NULL,NULL,NULL,NULL,'2026-04-15 19:14:37','2026-04-15 19:14:37'),(3,1,1,'某型装备健康度定时评估',NULL,NULL,'cron','0 0 * * 0',NULL,3,NULL,NULL,NULL,60,3,1,'stopped',NULL,NULL,NULL,NULL,NULL,'2026-04-15 19:14:37','2026-04-15 19:14:37'),(4,4,1,'每日天气预报',NULL,NULL,'cron','每天早上八点',NULL,NULL,NULL,NULL,NULL,60,3,1,'stopped','{\"timeout\": 300, \"category\": \"\", \"skill_name\": \"文件推送\", \"description\": \"推送每天天气\", \"retry_count\": 3, \"skill_params\": {}, \"datasource_id\": null}',NULL,NULL,NULL,NULL,'2026-04-15 20:27:09','2026-04-15 20:27:09'); /*!40000 ALTER TABLE `tasks` ENABLE KEYS */; UNLOCK TABLES; -- -- Table structure for table `team_audit_logs` -- DROP TABLE IF EXISTS `team_audit_logs`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `team_audit_logs` ( `id` bigint unsigned NOT NULL AUTO_INCREMENT, `team_id` bigint unsigned NOT NULL, `user_id` bigint unsigned NOT NULL COMMENT '操作人', `action` varchar(512) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '操作描述,如"创建了任务「...」"', `resource_type` varchar(32) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '操作对象类型', `resource_id` bigint unsigned DEFAULT NULL COMMENT '操作对象ID', `ip_address` varchar(45) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '操作者IP', `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (`id`), KEY `user_id` (`user_id`), KEY `idx_team_time` (`team_id`,`created_at` DESC), CONSTRAINT `team_audit_logs_ibfk_1` FOREIGN KEY (`team_id`) REFERENCES `teams` (`id`) ON DELETE CASCADE, CONSTRAINT `team_audit_logs_ibfk_2` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE RESTRICT ) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='团队操作审计日志表'; /*!40101 SET character_set_client = @saved_cs_client */; -- -- Dumping data for table `team_audit_logs` -- LOCK TABLES `team_audit_logs` WRITE; /*!40000 ALTER TABLE `team_audit_logs` DISABLE KEYS */; INSERT INTO `team_audit_logs` VALUES (1,1,1,'创建了任务「边境巡逻无人机数据处理与告警」','task',NULL,NULL,'2026-04-15 19:14:37'),(2,1,2,'修改了流程编排「情报分发流程」','task',NULL,NULL,'2026-04-15 19:14:37'),(3,1,3,'查看了监控日志','task_log',NULL,NULL,'2026-04-15 19:14:37'),(4,1,1,'发布了模板到任务广场','task_template',NULL,NULL,'2026-04-15 19:14:37'),(5,1,2,'启动了任务「每日战备情报自动分发」','task',NULL,NULL,'2026-04-15 19:14:37'),(6,1,4,'创建了任务「每日天气预报」','task',4,NULL,'2026-04-15 20:27:09'); /*!40000 ALTER TABLE `team_audit_logs` ENABLE KEYS */; UNLOCK TABLES; -- -- Table structure for table `team_comments` -- DROP TABLE IF EXISTS `team_comments`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `team_comments` ( `id` bigint unsigned NOT NULL AUTO_INCREMENT, `team_id` bigint unsigned NOT NULL, `user_id` bigint unsigned NOT NULL COMMENT '发言者', `parent_id` bigint unsigned DEFAULT NULL COMMENT '回复的评论ID(NULL=顶级留言)', `content` text COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '留言内容', `is_deleted` tinyint(1) NOT NULL DEFAULT '0' COMMENT '逻辑删除', `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (`id`), KEY `user_id` (`user_id`), KEY `parent_id` (`parent_id`), KEY `idx_team_time` (`team_id`,`created_at`), CONSTRAINT `team_comments_ibfk_1` FOREIGN KEY (`team_id`) REFERENCES `teams` (`id`) ON DELETE CASCADE, CONSTRAINT `team_comments_ibfk_2` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE RESTRICT, CONSTRAINT `team_comments_ibfk_3` FOREIGN KEY (`parent_id`) REFERENCES `team_comments` (`id`) ON DELETE SET NULL ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='团队讨论留言表'; /*!40101 SET character_set_client = @saved_cs_client */; -- -- Dumping data for table `team_comments` -- LOCK TABLES `team_comments` WRITE; /*!40000 ALTER TABLE `team_comments` DISABLE KEYS */; INSERT INTO `team_comments` VALUES (1,1,2,NULL,'今天的情报摘要格式需要调整一下,加上来源标注。',0,'2026-04-15 19:14:37'),(2,1,1,NULL,'已修改模板,增加了一个来源字段节点。',0,'2026-04-15 19:14:37'); /*!40000 ALTER TABLE `team_comments` ENABLE KEYS */; UNLOCK TABLES; -- -- Table structure for table `team_members` -- DROP TABLE IF EXISTS `team_members`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `team_members` ( `id` bigint unsigned NOT NULL AUTO_INCREMENT, `team_id` bigint unsigned NOT NULL COMMENT '团队ID', `user_id` bigint unsigned NOT NULL COMMENT '用户ID', `role` enum('admin','editor','viewer') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'viewer' COMMENT '成员角色', `is_online` tinyint(1) NOT NULL DEFAULT '0' COMMENT '当前是否在线(心跳更新)', `joined_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '加入时间', PRIMARY KEY (`id`), UNIQUE KEY `uk_team_user` (`team_id`,`user_id`), KEY `idx_user` (`user_id`), CONSTRAINT `team_members_ibfk_1` FOREIGN KEY (`team_id`) REFERENCES `teams` (`id`) ON DELETE CASCADE, CONSTRAINT `team_members_ibfk_2` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='团队成员表'; /*!40101 SET character_set_client = @saved_cs_client */; -- -- Dumping data for table `team_members` -- LOCK TABLES `team_members` WRITE; /*!40000 ALTER TABLE `team_members` DISABLE KEYS */; INSERT INTO `team_members` VALUES (4,1,4,'viewer',0,'2026-04-15 19:31:49'); /*!40000 ALTER TABLE `team_members` ENABLE KEYS */; UNLOCK TABLES; -- -- Table structure for table `team_shared_resources` -- DROP TABLE IF EXISTS `team_shared_resources`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `team_shared_resources` ( `id` bigint unsigned NOT NULL AUTO_INCREMENT, `team_id` bigint unsigned NOT NULL, `resource_type` enum('task_template','agent','skill','datasource') COLLATE utf8mb4_unicode_ci NOT NULL, `resource_id` bigint unsigned NOT NULL COMMENT '对应各资源表的ID', `resource_name` varchar(256) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '冗余资源名称,方便展示', `shared_by` bigint unsigned NOT NULL COMMENT '共享操作者用户ID', `usage_count` int unsigned NOT NULL DEFAULT '0' COMMENT '团队内使用次数', `is_active` tinyint(1) NOT NULL DEFAULT '1', `shared_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (`id`), UNIQUE KEY `uk_team_resource` (`team_id`,`resource_type`,`resource_id`), KEY `shared_by` (`shared_by`), CONSTRAINT `team_shared_resources_ibfk_1` FOREIGN KEY (`team_id`) REFERENCES `teams` (`id`) ON DELETE CASCADE, CONSTRAINT `team_shared_resources_ibfk_2` FOREIGN KEY (`shared_by`) REFERENCES `users` (`id`) ON DELETE RESTRICT ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='团队共享资源表'; /*!40101 SET character_set_client = @saved_cs_client */; -- -- Dumping data for table `team_shared_resources` -- LOCK TABLES `team_shared_resources` WRITE; /*!40000 ALTER TABLE `team_shared_resources` DISABLE KEYS */; /*!40000 ALTER TABLE `team_shared_resources` ENABLE KEYS */; UNLOCK TABLES; -- -- Table structure for table `teams` -- DROP TABLE IF EXISTS `teams`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `teams` ( `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '团队ID', `team_code` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '团队隔离空间ID,如 T-9082', `team_name` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '团队名称', `description` text COLLATE utf8mb4_unicode_ci COMMENT '团队简介', `owner_id` bigint unsigned NOT NULL COMMENT '创建者/管理员用户ID', `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, `updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (`id`), UNIQUE KEY `team_code` (`team_code`), KEY `idx_owner` (`owner_id`), CONSTRAINT `teams_ibfk_1` FOREIGN KEY (`owner_id`) REFERENCES `users` (`id`) ON DELETE RESTRICT ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='团队表'; /*!40101 SET character_set_client = @saved_cs_client */; -- -- Dumping data for table `teams` -- LOCK TABLES `teams` WRITE; /*!40000 ALTER TABLE `teams` DISABLE KEYS */; INSERT INTO `teams` VALUES (1,'T-9082','灵枢作战团队','负责全域智能任务编排与情报处理',1,'2026-04-15 19:14:37','2026-04-15 19:14:37'); /*!40000 ALTER TABLE `teams` ENABLE KEYS */; UNLOCK TABLES; -- -- Table structure for table `users` -- DROP TABLE IF EXISTS `users`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!50503 SET character_set_client = utf8mb4 */; CREATE TABLE `users` ( `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '用户ID', `username` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '登录用户名', `display_name` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '显示姓名/职务', `password_hash` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'bcrypt哈希密码', `avatar_color` char(7) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '#3b82f6' COMMENT '头像背景色(十六进制)', `is_active` tinyint(1) NOT NULL DEFAULT '1' COMMENT '账号是否启用', `last_login_at` datetime DEFAULT NULL COMMENT '最后登录时间', `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, `updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (`id`), UNIQUE KEY `username` (`username`), KEY `idx_username` (`username`) ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户表'; /*!40101 SET character_set_client = @saved_cs_client */; -- -- Dumping data for table `users` -- LOCK TABLES `users` WRITE; /*!40000 ALTER TABLE `users` DISABLE KEYS */; INSERT INTO `users` VALUES (1,'wangpai','王牌参谋','$2b$12$OA1rvEsgDgUYhbf/bN/aLemddJfoirHMW6T7Y9IJfRPvqf2W.9ixW','#3b82f6',1,NULL,'2026-04-15 19:14:37','2026-04-15 19:30:41'),(2,'liming','李明','$2b$12$Xcdlvf3TWErEmx66gOW/XuMbDktGEe.8y6wxcsrV1aNzCuRt.hA/y','#8b5cf6',1,NULL,'2026-04-15 19:14:37','2026-04-15 19:30:41'),(3,'zhaoqiang','赵强','$2b$12$ojsmrfaYTftpmxN/kAumCushmIoqARLiD0RHns/b8jnx4J3WIiCYO','#10b981',1,NULL,'2026-04-15 19:14:37','2026-04-15 19:30:41'),(4,'1+','小头兵','$2b$12$cjgVOBMUBCCQ1kZzbL/CIOG.ufLXYIJ4ywD5vketHg2RmFBs2e7MW','#3b82f6',1,NULL,'2026-04-15 19:31:49','2026-04-15 19:31:49'); /*!40000 ALTER TABLE `users` ENABLE KEYS */; UNLOCK TABLES; -- -- Temporary view structure for view `v_dashboard_kpi` -- DROP TABLE IF EXISTS `v_dashboard_kpi`; /*!50001 DROP VIEW IF EXISTS `v_dashboard_kpi`*/; SET @saved_cs_client = @@character_set_client; /*!50503 SET character_set_client = utf8mb4 */; /*!50001 CREATE VIEW `v_dashboard_kpi` AS SELECT 1 AS `owner_id`, 1 AS `total_tasks`, 1 AS `running_tasks`, 1 AS `error_tasks`, 1 AS `monthly_executions`, 1 AS `unread_alerts`*/; SET character_set_client = @saved_cs_client; -- -- Temporary view structure for view `v_recent_executions` -- DROP TABLE IF EXISTS `v_recent_executions`; /*!50001 DROP VIEW IF EXISTS `v_recent_executions`*/; SET @saved_cs_client = @@character_set_client; /*!50503 SET character_set_client = utf8mb4 */; /*!50001 CREATE VIEW `v_recent_executions` AS SELECT 1 AS `id`, 1 AS `task_id`, 1 AS `trigger_type`, 1 AS `status`, 1 AS `started_at`, 1 AS `ended_at`, 1 AS `duration_ms`, 1 AS `retry_attempt`, 1 AS `error_message`, 1 AS `task_name`, 1 AS `trigger_user`*/; SET character_set_client = @saved_cs_client; -- -- Temporary view structure for view `v_tasks_full` -- DROP TABLE IF EXISTS `v_tasks_full`; /*!50001 DROP VIEW IF EXISTS `v_tasks_full`*/; SET @saved_cs_client = @@character_set_client; /*!50503 SET character_set_client = utf8mb4 */; /*!50001 CREATE VIEW `v_tasks_full` AS SELECT 1 AS `id`, 1 AS `name`, 1 AS `description`, 1 AS `category`, 1 AS `trigger_type`, 1 AS `cron_expression`, 1 AS `status`, 1 AS `timeout_seconds`, 1 AS `retry_count`, 1 AS `last_run_at`, 1 AS `next_run_at`, 1 AS `created_at`, 1 AS `updated_at`, 1 AS `owner_name`, 1 AS `agent_name`, 1 AS `agent_code`, 1 AS `skill_name`, 1 AS `team_name`*/; SET character_set_client = @saved_cs_client; -- -- Final view structure for view `v_dashboard_kpi` -- /*!50001 DROP VIEW IF EXISTS `v_dashboard_kpi`*/; /*!50001 SET @saved_cs_client = @@character_set_client */; /*!50001 SET @saved_cs_results = @@character_set_results */; /*!50001 SET @saved_col_connection = @@collation_connection */; /*!50001 SET character_set_client = utf8mb4 */; /*!50001 SET character_set_results = utf8mb4 */; /*!50001 SET collation_connection = utf8mb4_0900_ai_ci */; /*!50001 CREATE ALGORITHM=UNDEFINED */ /*!50013 DEFINER=`root`@`localhost` SQL SECURITY DEFINER */ /*!50001 VIEW `v_dashboard_kpi` AS select `t`.`owner_id` AS `owner_id`,count(`t`.`id`) AS `total_tasks`,sum((`t`.`status` = 'running')) AS `running_tasks`,sum((`t`.`status` = 'error')) AS `error_tasks`,(select count(0) from (`task_executions` `e2` join `tasks` `t2` on((`e2`.`task_id` = `t2`.`id`))) where ((`t2`.`owner_id` = `t`.`owner_id`) and (month(`e2`.`started_at`) = month(curdate())) and (year(`e2`.`started_at`) = year(curdate())))) AS `monthly_executions`,(select count(0) from `alert_notifications` `an` where ((`an`.`target_user_id` = `t`.`owner_id`) and (`an`.`is_read` = 0))) AS `unread_alerts` from `tasks` `t` group by `t`.`owner_id` */; /*!50001 SET character_set_client = @saved_cs_client */; /*!50001 SET character_set_results = @saved_cs_results */; /*!50001 SET collation_connection = @saved_col_connection */; -- -- Final view structure for view `v_recent_executions` -- /*!50001 DROP VIEW IF EXISTS `v_recent_executions`*/; /*!50001 SET @saved_cs_client = @@character_set_client */; /*!50001 SET @saved_cs_results = @@character_set_results */; /*!50001 SET @saved_col_connection = @@collation_connection */; /*!50001 SET character_set_client = utf8mb4 */; /*!50001 SET character_set_results = utf8mb4 */; /*!50001 SET collation_connection = utf8mb4_0900_ai_ci */; /*!50001 CREATE ALGORITHM=UNDEFINED */ /*!50013 DEFINER=`root`@`localhost` SQL SECURITY DEFINER */ /*!50001 VIEW `v_recent_executions` AS select `e`.`id` AS `id`,`e`.`task_id` AS `task_id`,`e`.`trigger_type` AS `trigger_type`,`e`.`status` AS `status`,`e`.`started_at` AS `started_at`,`e`.`ended_at` AS `ended_at`,`e`.`duration_ms` AS `duration_ms`,`e`.`retry_attempt` AS `retry_attempt`,`e`.`error_message` AS `error_message`,`t`.`name` AS `task_name`,`u`.`display_name` AS `trigger_user` from ((`task_executions` `e` left join `tasks` `t` on((`e`.`task_id` = `t`.`id`))) left join `users` `u` on((`e`.`trigger_user_id` = `u`.`id`))) order by `e`.`started_at` desc */; /*!50001 SET character_set_client = @saved_cs_client */; /*!50001 SET character_set_results = @saved_cs_results */; /*!50001 SET collation_connection = @saved_col_connection */; -- -- Final view structure for view `v_tasks_full` -- /*!50001 DROP VIEW IF EXISTS `v_tasks_full`*/; /*!50001 SET @saved_cs_client = @@character_set_client */; /*!50001 SET @saved_cs_results = @@character_set_results */; /*!50001 SET @saved_col_connection = @@collation_connection */; /*!50001 SET character_set_client = utf8mb4 */; /*!50001 SET character_set_results = utf8mb4 */; /*!50001 SET collation_connection = utf8mb4_0900_ai_ci */; /*!50001 CREATE ALGORITHM=UNDEFINED */ /*!50013 DEFINER=`root`@`localhost` SQL SECURITY DEFINER */ /*!50001 VIEW `v_tasks_full` AS select `t`.`id` AS `id`,`t`.`name` AS `name`,`t`.`description` AS `description`,`t`.`category` AS `category`,`t`.`trigger_type` AS `trigger_type`,`t`.`cron_expression` AS `cron_expression`,`t`.`status` AS `status`,`t`.`timeout_seconds` AS `timeout_seconds`,`t`.`retry_count` AS `retry_count`,`t`.`last_run_at` AS `last_run_at`,`t`.`next_run_at` AS `next_run_at`,`t`.`created_at` AS `created_at`,`t`.`updated_at` AS `updated_at`,`u`.`display_name` AS `owner_name`,`a`.`name` AS `agent_name`,`a`.`agent_code` AS `agent_code`,`s`.`name` AS `skill_name`,`tm`.`team_name` AS `team_name` from ((((`tasks` `t` left join `users` `u` on((`t`.`owner_id` = `u`.`id`))) left join `agents` `a` on((`t`.`agent_id` = `a`.`id`))) left join `skills` `s` on((`t`.`skill_id` = `s`.`id`))) left join `teams` `tm` on((`t`.`team_id` = `tm`.`id`))) */; /*!50001 SET character_set_client = @saved_cs_client */; /*!50001 SET character_set_results = @saved_cs_results */; /*!50001 SET collation_connection = @saved_col_connection */; /*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; /*!40101 SET SQL_MODE=@OLD_SQL_MODE */; /*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; /*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; /*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; -- Dump completed on 2026-04-15 20:32:34