lobster_tables_ddl.sql 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262
  1. -- ═══════════════════════════════════════════════════════
  2. -- 龙虾引擎统一建表脚本(从 Java 代码散落 CREATE TABLE 迁移至此)
  3. -- 用途: 新租户初始化 / DBA 审核 / 22 库批量执行
  4. -- 日期: 2026-06-04
  5. -- ═══════════════════════════════════════════════════════
  6. -- 1. 合规规则表(原 ComplianceServiceImpl.ensureTable)
  7. CREATE TABLE IF NOT EXISTS lobster_compliance_rule (
  8. id BIGINT AUTO_INCREMENT PRIMARY KEY,
  9. company_id BIGINT DEFAULT NULL,
  10. rule_name VARCHAR(200) NOT NULL,
  11. rule_type VARCHAR(50) DEFAULT 'keyword',
  12. pattern TEXT,
  13. description VARCHAR(500) DEFAULT NULL,
  14. action VARCHAR(50) DEFAULT 'warn',
  15. severity INT DEFAULT 1,
  16. enabled INT DEFAULT 1,
  17. del_flag INT DEFAULT 0,
  18. create_by VARCHAR(64) DEFAULT NULL,
  19. create_time DATETIME DEFAULT NOW(),
  20. update_by VARCHAR(64) DEFAULT NULL,
  21. update_time DATETIME DEFAULT NOW(),
  22. INDEX idx_company (company_id)
  23. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
  24. -- 2. 合规审计轨迹(原 ComplianceService.recordComplianceAudit / LobsterComplianceAudit)
  25. CREATE TABLE IF NOT EXISTS lobster_compliance_audit (
  26. id BIGINT AUTO_INCREMENT PRIMARY KEY,
  27. company_id BIGINT NOT NULL,
  28. rule_name VARCHAR(200) DEFAULT NULL,
  29. severity INT DEFAULT 1,
  30. matched_keyword VARCHAR(200) DEFAULT NULL,
  31. content_snippet VARCHAR(500) DEFAULT NULL,
  32. create_time DATETIME DEFAULT NOW(),
  33. INDEX idx_company (company_id)
  34. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
  35. -- 3. 工作流变量(原 VariableStoreImpl / LobsterWorkflowVariableMapper)
  36. CREATE TABLE IF NOT EXISTS lobster_workflow_variable (
  37. id BIGINT AUTO_INCREMENT PRIMARY KEY,
  38. instance_id BIGINT NOT NULL,
  39. company_id BIGINT DEFAULT NULL,
  40. var_key VARCHAR(200) NOT NULL,
  41. var_value TEXT,
  42. create_time DATETIME DEFAULT NOW(),
  43. update_time DATETIME DEFAULT NOW(),
  44. UNIQUE KEY uk_inst_key (instance_id, var_key)
  45. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
  46. -- 4. 待审知识库(原 PendingAuditKnowledgeServiceImpl)
  47. CREATE TABLE IF NOT EXISTS lobster_pending_knowledge (
  48. id BIGINT AUTO_INCREMENT PRIMARY KEY,
  49. company_id BIGINT NOT NULL,
  50. external_user_id VARCHAR(128) DEFAULT NULL,
  51. knowledge_type VARCHAR(50) DEFAULT 'auto',
  52. content TEXT,
  53. context_snapshot TEXT COMMENT '评分维度/上下文快照JSON',
  54. source_node_code VARCHAR(100) DEFAULT NULL,
  55. status VARCHAR(30) DEFAULT 'pending' COMMENT 'pending/APPROVED/REJECTED',
  56. auditor_id BIGINT DEFAULT NULL,
  57. audit_comment VARCHAR(500) DEFAULT NULL,
  58. audit_time DATETIME DEFAULT NULL,
  59. create_time DATETIME DEFAULT NOW(),
  60. update_time DATETIME DEFAULT NOW(),
  61. INDEX idx_company_status (company_id, status)
  62. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
  63. -- 5. 敏感词表(原 SensitiveWordServiceImpl / LobsterSensitiveWordMapper)
  64. CREATE TABLE IF NOT EXISTS lobster_sensitive_word (
  65. id BIGINT AUTO_INCREMENT PRIMARY KEY,
  66. company_id BIGINT NOT NULL,
  67. word VARCHAR(200) NOT NULL,
  68. category VARCHAR(50) DEFAULT '通用',
  69. level VARCHAR(20) DEFAULT 'warn',
  70. replacement VARCHAR(200) DEFAULT '***',
  71. enabled INT DEFAULT 1,
  72. create_time DATETIME DEFAULT NOW(),
  73. create_by VARCHAR(64) DEFAULT 'SYSTEM',
  74. INDEX idx_company (company_id),
  75. UNIQUE KEY uk_word (company_id, word)
  76. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
  77. -- 6. 用户画像(原 ContextAssemblerImpl / ProfileEnrichmentService)
  78. CREATE TABLE IF NOT EXISTS lobster_user_profile (
  79. id BIGINT AUTO_INCREMENT PRIMARY KEY,
  80. company_id BIGINT NOT NULL,
  81. external_user_id VARCHAR(128) NOT NULL,
  82. nickname VARCHAR(128) DEFAULT NULL,
  83. persona VARCHAR(500) DEFAULT NULL,
  84. current_state VARCHAR(100) DEFAULT NULL,
  85. lifecycle_stage VARCHAR(30) DEFAULT 'NEW' COMMENT 'NEW/ACTIVE/DORMANT/SLEEP/CHURN',
  86. value_score INT DEFAULT 10,
  87. total_purchase DECIMAL(12,2) DEFAULT 0,
  88. interaction_count INT DEFAULT 0,
  89. last_active_time DATETIME DEFAULT NULL,
  90. internal_tags VARCHAR(1000) DEFAULT NULL,
  91. variable_snapshot VARCHAR(2000) DEFAULT NULL,
  92. deleted INT DEFAULT 0,
  93. create_time DATETIME DEFAULT NOW(),
  94. update_time DATETIME DEFAULT NOW(),
  95. UNIQUE KEY uk_user (company_id, external_user_id)
  96. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
  97. -- 7. 多轮对话状态(原 MultiTurnDialogueManagerImpl / LobsterMultiTurnDialogueMapper)
  98. CREATE TABLE IF NOT EXISTS lobster_multi_turn_dialogue (
  99. id BIGINT AUTO_INCREMENT PRIMARY KEY,
  100. company_id BIGINT DEFAULT NULL,
  101. instance_id BIGINT NOT NULL,
  102. node_code VARCHAR(100) NOT NULL,
  103. state_json TEXT,
  104. turn_index INT DEFAULT 0,
  105. direction INT COMMENT '1=客户 2=AI',
  106. content TEXT,
  107. create_time DATETIME DEFAULT NOW(),
  108. update_time DATETIME DEFAULT NOW(),
  109. UNIQUE KEY uk_instance_node (instance_id, node_code),
  110. INDEX idx_company (company_id)
  111. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
  112. -- 8. 客户沟通习惯(原 LobsterEvolutionEngineImpl / CustomerHabitMapper)
  113. CREATE TABLE IF NOT EXISTS customer_habit (
  114. id BIGINT AUTO_INCREMENT PRIMARY KEY,
  115. company_id BIGINT NOT NULL,
  116. external_user_id VARCHAR(128) NOT NULL,
  117. habit_key VARCHAR(64) NOT NULL,
  118. habit_value VARCHAR(512),
  119. confidence DOUBLE DEFAULT 0.5,
  120. source VARCHAR(32) DEFAULT 'AI',
  121. create_time DATETIME DEFAULT NOW(),
  122. update_time DATETIME DEFAULT NOW(),
  123. UNIQUE KEY uk_habit (company_id, external_user_id, habit_key)
  124. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
  125. -- 9. 客户事实记忆(原 SummaryGeneratorImpl / CustomerFactMapper)
  126. CREATE TABLE IF NOT EXISTS customer_fact (
  127. id BIGINT AUTO_INCREMENT PRIMARY KEY,
  128. company_id BIGINT NOT NULL,
  129. external_user_id VARCHAR(128) NOT NULL,
  130. instance_id BIGINT DEFAULT NULL,
  131. fact_key VARCHAR(200) NOT NULL,
  132. fact_value VARCHAR(2000),
  133. fact_type VARCHAR(30) DEFAULT 'EXTRACTED' COMMENT 'EXTRACTED/INFERRED/MANUAL',
  134. confidence DOUBLE DEFAULT 1.0 COMMENT '1.0=新插入, 衰减至<0.3将被清理',
  135. create_time DATETIME DEFAULT NOW(),
  136. update_time DATETIME DEFAULT NOW(),
  137. UNIQUE KEY uk_fact (company_id, external_user_id, instance_id, fact_key),
  138. INDEX idx_company_user (company_id, external_user_id)
  139. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
  140. -- 10. 转人工事件记录(原 LobsterEvolutionEngineImpl / LobsterHandoffEventMapper)
  141. CREATE TABLE IF NOT EXISTS lobster_handoff_events (
  142. id BIGINT AUTO_INCREMENT PRIMARY KEY,
  143. company_id BIGINT NOT NULL,
  144. instance_id BIGINT DEFAULT NULL,
  145. external_user_id VARCHAR(128) DEFAULT NULL,
  146. trigger_type VARCHAR(50) COMMENT 'sensitive_word/sensitive_word_high_risk/semantic_takeover',
  147. trigger_detail VARCHAR(500) DEFAULT NULL,
  148. create_time DATETIME DEFAULT NOW(),
  149. INDEX idx_company (company_id)
  150. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
  151. -- 11. 知识使用反馈日志(原 ContextAssemblerImpl / LobsterKnowledgeUsageLogMapper)
  152. CREATE TABLE IF NOT EXISTS lobster_knowledge_usage_log (
  153. id BIGINT AUTO_INCREMENT PRIMARY KEY,
  154. company_id BIGINT NOT NULL,
  155. instance_id BIGINT DEFAULT NULL,
  156. knowledge_title VARCHAR(200) DEFAULT NULL,
  157. knowledge_text VARCHAR(500) DEFAULT NULL,
  158. retrieval_method VARCHAR(30) COMMENT 'vector/keyword',
  159. source VARCHAR(50) DEFAULT 'context_assembler',
  160. create_time DATETIME DEFAULT NOW(),
  161. INDEX idx_company (company_id),
  162. INDEX idx_company_title (company_id, knowledge_title)
  163. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
  164. -- 12. 智能 API 配置表(原 DynamicNodeExecutorImpl / LobsterSmartApiMapper)
  165. CREATE TABLE IF NOT EXISTS lobster_smart_api (
  166. id BIGINT AUTO_INCREMENT PRIMARY KEY,
  167. company_id BIGINT DEFAULT NULL,
  168. api_code VARCHAR(100) NOT NULL COMMENT 'API唯一标识',
  169. api_name VARCHAR(200) DEFAULT NULL,
  170. api_url VARCHAR(500) NOT NULL,
  171. api_method VARCHAR(10) DEFAULT 'POST',
  172. headers_json VARCHAR(1000) DEFAULT '{}',
  173. body_template TEXT,
  174. description VARCHAR(500) DEFAULT NULL,
  175. enabled INT DEFAULT 1,
  176. create_time DATETIME DEFAULT NOW(),
  177. update_time DATETIME DEFAULT NOW(),
  178. UNIQUE KEY uk_code (company_id, api_code)
  179. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
  180. -- 13. 对话状态追踪(原 LobsterDialogueStateMapper / LobsterEvolutionEngineImpl)
  181. CREATE TABLE IF NOT EXISTS lobster_dialogue_state (
  182. id BIGINT AUTO_INCREMENT PRIMARY KEY,
  183. company_id BIGINT NOT NULL,
  184. instance_id BIGINT NOT NULL,
  185. external_user_id VARCHAR(128) NOT NULL,
  186. node_code VARCHAR(100) DEFAULT NULL,
  187. detected_intent VARCHAR(50) DEFAULT NULL,
  188. sentiment VARCHAR(20) DEFAULT NULL,
  189. last_reply VARCHAR(500) DEFAULT NULL,
  190. create_time DATETIME DEFAULT NOW(),
  191. update_time DATETIME DEFAULT NOW(),
  192. UNIQUE KEY uk_session (company_id, external_user_id, instance_id)
  193. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
  194. -- 14. 支付订单表(PayService)
  195. CREATE TABLE IF NOT EXISTS lobster_pay_order (
  196. id BIGINT AUTO_INCREMENT PRIMARY KEY,
  197. company_id BIGINT NOT NULL,
  198. contact_id BIGINT DEFAULT NULL,
  199. instance_id BIGINT DEFAULT NULL,
  200. order_no VARCHAR(64) NOT NULL,
  201. product_name VARCHAR(256),
  202. amount BIGINT DEFAULT 0 COMMENT '金额(分)',
  203. status VARCHAR(20) DEFAULT 'CREATED',
  204. gateway VARCHAR(20) DEFAULT 'wechat',
  205. transaction_id VARCHAR(128) DEFAULT NULL,
  206. extra TEXT,
  207. create_time DATETIME DEFAULT NOW(),
  208. paid_time DATETIME DEFAULT NULL,
  209. update_time DATETIME DEFAULT NOW(),
  210. UNIQUE KEY uk_order (order_no),
  211. INDEX idx_company_status (company_id, status)
  212. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
  213. -- 15. 用户标签表
  214. CREATE TABLE IF NOT EXISTS customer_tag (
  215. id BIGINT AUTO_INCREMENT PRIMARY KEY,
  216. company_id BIGINT NOT NULL,
  217. external_user_id VARCHAR(128) NOT NULL,
  218. tag_key VARCHAR(100) NOT NULL,
  219. tag_value VARCHAR(500),
  220. create_time DATETIME DEFAULT NOW(),
  221. update_time DATETIME DEFAULT NOW(),
  222. UNIQUE KEY uk_tag (company_id, external_user_id, tag_key)
  223. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
  224. -- 16. 渠道注册表
  225. CREATE TABLE IF NOT EXISTS lobster_channel_type_registry (
  226. id BIGINT AUTO_INCREMENT PRIMARY KEY,
  227. channel_type VARCHAR(30) NOT NULL UNIQUE,
  228. display_name VARCHAR(100),
  229. source_table VARCHAR(100),
  230. user_id_column VARCHAR(100),
  231. enabled TINYINT DEFAULT 1,
  232. create_time DATETIME DEFAULT NOW(),
  233. update_time DATETIME DEFAULT NOW()
  234. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
  235. -- 17. 统一触点映射
  236. CREATE TABLE IF NOT EXISTS lobster_unified_contact (
  237. id BIGINT AUTO_INCREMENT PRIMARY KEY,
  238. company_id BIGINT NOT NULL,
  239. contact_id BIGINT NOT NULL,
  240. channel_type VARCHAR(30) NOT NULL,
  241. channel_user_id VARCHAR(128) NOT NULL,
  242. create_time DATETIME DEFAULT NOW(),
  243. update_time DATETIME DEFAULT NOW(),
  244. UNIQUE KEY uk_contact (company_id, contact_id, channel_type)
  245. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;