-- ============================================================================ -- 流量池系统 V2 数据库迁移脚本 -- 版本: V2.0 -- 日期: 2026-01-30 -- 说明: -- 1. 将旧流量池表重命名为 _v1 后缀(保留历史数据) -- 2. 创建全新的流量池表结构 -- 3. 标签系统由独立系统维护,本脚本不包含标签相关表 -- ============================================================================ -- ============================================================================ -- 第一部分:旧表重命名(添加 _v1 后缀标识) -- ============================================================================ -- 重命名前先检查表是否存在,避免报错 -- 旧流量池总表 → ck_traffic_pool_v1 RENAME TABLE `ck_traffic_pool` TO `ck_traffic_pool_v1`; -- 旧流量来源表 → ck_traffic_source_v1 RENAME TABLE `ck_traffic_source` TO `ck_traffic_source_v1`; -- 旧流量池包表 → ck_traffic_source_package_v1 RENAME TABLE `ck_traffic_source_package` TO `ck_traffic_source_package_v1`; -- 旧流量池包成员表 → ck_traffic_source_package_item_v1 RENAME TABLE `ck_traffic_source_package_item` TO `ck_traffic_source_package_item_v1`; -- 旧流量标签表 → ck_traffic_tag_v1 RENAME TABLE `ck_traffic_tag` TO `ck_traffic_tag_v1`; -- 旧流量用户信息表 → ck_traffic_profile_v1 RENAME TABLE `ck_traffic_profile` TO `ck_traffic_profile_v1`; -- 旧流量订单表 → ck_traffic_order_v1 RENAME TABLE `ck_traffic_order` TO `ck_traffic_order_v1`; -- ============================================================================ -- 第二部分:创建新流量池表 -- ============================================================================ -- ---------------------------- -- 1. 流量池总表 ck_traffic_pool -- 用途:存储全局唯一的流量标识,不区分公司 -- ---------------------------- DROP TABLE IF EXISTS `ck_traffic_pool`; CREATE TABLE `ck_traffic_pool` ( `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键ID', `identifier` varchar(64) NOT NULL COMMENT '流量唯一标识(微信ID优先)', `identifierType` tinyint(2) NOT NULL DEFAULT 1 COMMENT '标识类型:1=微信ID,2=微信号,3=手机号', `wechatId` varchar(64) DEFAULT NULL COMMENT '微信ID', `wechatAlias` varchar(64) DEFAULT NULL COMMENT '微信号', `mobile` varchar(20) DEFAULT NULL COMMENT '手机号', `nickname` varchar(100) DEFAULT NULL COMMENT '昵称', `avatar` varchar(500) DEFAULT NULL COMMENT '头像URL', `gender` tinyint(1) DEFAULT 0 COMMENT '性别:0=未知,1=男,2=女', `region` varchar(100) DEFAULT NULL COMMENT '地区', `country` varchar(50) DEFAULT NULL COMMENT '国家', `province` varchar(50) DEFAULT NULL COMMENT '省份', `city` varchar(50) DEFAULT NULL COMMENT '城市', `signature` varchar(500) DEFAULT NULL COMMENT '个性签名', `firstSeenTime` int(11) DEFAULT NULL COMMENT '首次出现时间', `lastSeenTime` int(11) DEFAULT NULL COMMENT '最后活跃时间', `createTime` int(11) NOT NULL COMMENT '创建时间', `updateTime` int(11) DEFAULT NULL COMMENT '更新时间', PRIMARY KEY (`id`), UNIQUE KEY `uk_identifier` (`identifier`), KEY `idx_wechatId` (`wechatId`), KEY `idx_wechatAlias` (`wechatAlias`), KEY `idx_mobile` (`mobile`), KEY `idx_createTime` (`createTime`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='流量池总表(全局唯一)'; -- ---------------------------- -- 2. 公司流量详情表 ck_traffic_pool_company -- 用途:存储流量在各公司的详细信息,支持多租户 -- ---------------------------- DROP TABLE IF EXISTS `ck_traffic_pool_company`; CREATE TABLE `ck_traffic_pool_company` ( `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键ID', `poolId` int(11) UNSIGNED NOT NULL COMMENT '流量池总表ID', `identifier` varchar(64) NOT NULL COMMENT '流量标识(冗余)', `companyId` int(11) UNSIGNED NOT NULL COMMENT '公司ID', -- 归属信息 `ownerWechatId` varchar(64) DEFAULT NULL COMMENT '归属客服微信ID', `ownerAccountId` int(11) DEFAULT NULL COMMENT '归属客服账号ID(s2_wechat_account.id)', `ownerUserId` int(11) DEFAULT NULL COMMENT '归属操盘手ID', -- 好友关联 `wechatFriendId` int(11) DEFAULT NULL COMMENT '微信好友ID(s2_wechat_friend.id)', `friendStatus` tinyint(2) DEFAULT 0 COMMENT '好友状态:0=未加,1=待通过,2=已通过,3=已删除,4=被删除', `friendPassTime` int(11) DEFAULT NULL COMMENT '好友通过时间', -- 客户属性 `realName` varchar(50) DEFAULT NULL COMMENT '真实姓名', `idCard` varchar(18) DEFAULT NULL COMMENT '身份证号', `phone` varchar(20) DEFAULT NULL COMMENT '联系电话', `email` varchar(100) DEFAULT NULL COMMENT '邮箱', `birthday` date DEFAULT NULL COMMENT '生日', `address` varchar(255) DEFAULT NULL COMMENT '地址', `company` varchar(100) DEFAULT NULL COMMENT '所在公司', `position` varchar(50) DEFAULT NULL COMMENT '职位', `remark` varchar(500) DEFAULT NULL COMMENT '备注', `customFields` json DEFAULT NULL COMMENT '自定义字段', -- 客户等级 `level` tinyint(2) DEFAULT 0 COMMENT '客户等级:0=普通,1=重要,2=VIP', `intentionLevel` tinyint(2) DEFAULT 0 COMMENT '意向度:0=未知,1=低,2=中,3=高', -- RFM模型 `lastInteractTime` int(11) DEFAULT NULL COMMENT '最后互动时间戳(R值动态计算)', `rfmF` int(11) DEFAULT 0 COMMENT 'F值-互动频次', `rfmM` decimal(12,2) DEFAULT 0.00 COMMENT 'M值-消费金额', `rfmScore` int(11) DEFAULT 0 COMMENT 'RFM综合评分', `rfmType` varchar(20) DEFAULT NULL COMMENT 'RFM客户类型', -- 统计信息 `totalOrderCount` int(11) DEFAULT 0 COMMENT '累计订单数', `totalOrderAmount` decimal(12,2) DEFAULT 0.00 COMMENT '累计订单金额', `lastOrderTime` int(11) DEFAULT NULL COMMENT '最后下单时间', `totalMsgCount` int(11) DEFAULT 0 COMMENT '累计消息数', `lastMsgTime` int(11) DEFAULT NULL COMMENT '最后消息时间', -- 来源追溯 `firstSourceType` tinyint(2) DEFAULT NULL COMMENT '首次来源类型', `firstSourceTime` int(11) DEFAULT NULL COMMENT '首次来源时间', -- 生命周期 `lifecycle` tinyint(2) DEFAULT 1 COMMENT '生命周期:1=新流量,2=跟进中,3=已成交,4=沉默,5=流失', -- 状态管理 `status` tinyint(2) DEFAULT 1 COMMENT '状态:0=禁用,1=正常,2=黑名单', `allocateStatus` tinyint(2) DEFAULT 0 COMMENT '分配状态:0=未分配,1=已分配,2=已回收', `allocateTime` int(11) DEFAULT NULL COMMENT '分配时间', `expireTime` int(11) DEFAULT NULL COMMENT '到期时间', -- 时间戳 `createTime` int(11) NOT NULL COMMENT '创建时间', `updateTime` int(11) DEFAULT NULL COMMENT '更新时间', `isDel` tinyint(1) DEFAULT 0 COMMENT '是否删除', `deleteTime` int(11) DEFAULT NULL COMMENT '删除时间', PRIMARY KEY (`id`), UNIQUE KEY `uk_identifier_company` (`identifier`, `companyId`), KEY `idx_poolId` (`poolId`), KEY `idx_companyId` (`companyId`), KEY `idx_ownerWechatId` (`ownerWechatId`), KEY `idx_wechatFriendId` (`wechatFriendId`), KEY `idx_friendStatus` (`friendStatus`), KEY `idx_status` (`status`), KEY `idx_level` (`level`), KEY `idx_allocateStatus` (`allocateStatus`), KEY `idx_lifecycle` (`lifecycle`), KEY `idx_lastInteractTime` (`lastInteractTime`), KEY `idx_createTime` (`createTime`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='公司流量详情表(多租户)'; -- ---------------------------- -- 3. 流量池分组表 ck_traffic_pool_group -- 用途:管理流量池分组(如:高价值客户池、潜在客户池等) -- ---------------------------- DROP TABLE IF EXISTS `ck_traffic_pool_group`; CREATE TABLE `ck_traffic_pool_group` ( `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键ID', `companyId` int(11) UNSIGNED NOT NULL DEFAULT 0 COMMENT '公司ID(0=系统默认)', `groupCode` varchar(50) NOT NULL COMMENT '分组编码(唯一标识)', `groupName` varchar(50) NOT NULL COMMENT '分组名称', `groupIcon` varchar(255) DEFAULT NULL COMMENT '分组图标', `groupColor` varchar(20) DEFAULT NULL COMMENT '分组颜色', `description` varchar(255) DEFAULT NULL COMMENT '分组描述', `isSystem` tinyint(1) DEFAULT 0 COMMENT '是否系统默认:0=否,1=是', `isDefault` tinyint(1) DEFAULT 0 COMMENT '是否默认展示:0=否,1=是', `ruleType` tinyint(2) DEFAULT 1 COMMENT '规则类型:1=动态规则,2=手动添加', `ruleConfig` json DEFAULT NULL COMMENT '规则配置(JSON)', `memberCount` int(11) DEFAULT 0 COMMENT '成员数量(缓存)', `sort` int(11) DEFAULT 0 COMMENT '排序(数值越小越靠前)', `status` tinyint(1) DEFAULT 1 COMMENT '状态:0=禁用,1=启用', `userId` int(11) DEFAULT NULL COMMENT '创建用户ID', `createTime` int(11) NOT NULL COMMENT '创建时间', `updateTime` int(11) DEFAULT NULL COMMENT '更新时间', `isDel` tinyint(1) DEFAULT 0 COMMENT '是否删除', `deleteTime` int(11) DEFAULT NULL COMMENT '删除时间', PRIMARY KEY (`id`), UNIQUE KEY `uk_company_code` (`companyId`, `groupCode`), KEY `idx_companyId` (`companyId`), KEY `idx_isSystem` (`isSystem`), KEY `idx_status` (`status`), KEY `idx_sort` (`sort`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='流量池分组表'; -- ---------------------------- -- 4. 流量池分组成员表 ck_traffic_pool_group_member -- 用途:手动添加到分组的成员(ruleType=2时使用) -- ---------------------------- DROP TABLE IF EXISTS `ck_traffic_pool_group_member`; CREATE TABLE `ck_traffic_pool_group_member` ( `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键ID', `groupId` int(11) UNSIGNED NOT NULL COMMENT '分组ID', `poolCompanyId` int(11) UNSIGNED NOT NULL COMMENT '公司流量详情表ID', `identifier` varchar(64) NOT NULL COMMENT '流量标识(冗余)', `companyId` int(11) UNSIGNED NOT NULL COMMENT '公司ID', `addType` tinyint(2) DEFAULT 1 COMMENT '添加方式:1=手动,2=批量导入', `operatorId` int(11) DEFAULT NULL COMMENT '操作人ID', `createTime` int(11) NOT NULL COMMENT '创建时间', `isDel` tinyint(1) DEFAULT 0 COMMENT '是否删除', `deleteTime` int(11) DEFAULT NULL COMMENT '删除时间', PRIMARY KEY (`id`), UNIQUE KEY `uk_group_pool` (`groupId`, `poolCompanyId`), KEY `idx_companyId` (`companyId`), KEY `idx_identifier` (`identifier`), KEY `idx_groupId` (`groupId`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='流量池分组成员表(手动添加)'; -- ---------------------------- -- 5. 流量来源表 ck_traffic_pool_source -- 用途:记录流量的获取渠道和来源路径 -- ---------------------------- DROP TABLE IF EXISTS `ck_traffic_pool_source`; CREATE TABLE `ck_traffic_pool_source` ( `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键ID', `poolCompanyId` int(11) UNSIGNED NOT NULL COMMENT '公司流量详情表ID', `identifier` varchar(64) NOT NULL COMMENT '流量标识(冗余)', `companyId` int(11) UNSIGNED NOT NULL COMMENT '公司ID', -- 来源类型 `sourceType` tinyint(2) NOT NULL COMMENT '来源类型:1=好友添加,2=群成员,3=海报获客,4=电话获客,5=订单获客,6=API导入,7=手动导入,8=裂变活动', `sourceSubType` varchar(50) DEFAULT NULL COMMENT '来源子类型', -- 来源详情 `sourceId` varchar(100) DEFAULT NULL COMMENT '来源ID', `sourceName` varchar(255) DEFAULT NULL COMMENT '来源名称', `sourceWechatId` varchar(64) DEFAULT NULL COMMENT '来源微信ID', `sourceChatroomId` varchar(64) DEFAULT NULL COMMENT '来源群ID', `sourceSceneId` int(11) DEFAULT NULL COMMENT '来源场景ID', `sourceChannelId` int(11) DEFAULT NULL COMMENT '来源渠道ID', -- 关联任务 `friendTaskId` int(11) DEFAULT NULL COMMENT '加好友任务ID', `taskCustomerId` int(11) DEFAULT NULL COMMENT '获客任务客户ID', -- 状态 `isFirstSource` tinyint(1) DEFAULT 0 COMMENT '是否首次来源:0=否,1=是', `extra` json DEFAULT NULL COMMENT '额外信息', `remark` varchar(255) DEFAULT NULL COMMENT '备注', `createTime` int(11) NOT NULL COMMENT '创建时间', `updateTime` int(11) DEFAULT NULL COMMENT '更新时间', PRIMARY KEY (`id`), KEY `idx_poolCompanyId` (`poolCompanyId`), KEY `idx_identifier_company` (`identifier`, `companyId`), KEY `idx_sourceType` (`sourceType`), KEY `idx_sourceWechatId` (`sourceWechatId`), KEY `idx_sourceChatroomId` (`sourceChatroomId`), KEY `idx_createTime` (`createTime`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='流量来源记录表'; -- ---------------------------- -- 6. 流量行为表 ck_traffic_pool_behavior -- 用途:记录流量的各种行为(包括所有消息互动) -- ---------------------------- DROP TABLE IF EXISTS `ck_traffic_pool_behavior`; CREATE TABLE `ck_traffic_pool_behavior` ( `id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键ID', `poolCompanyId` int(11) UNSIGNED NOT NULL COMMENT '公司流量详情表ID', `identifier` varchar(64) NOT NULL COMMENT '流量标识(冗余)', `companyId` int(11) UNSIGNED NOT NULL COMMENT '公司ID', -- 行为信息 `behaviorType` tinyint(2) NOT NULL COMMENT '行为类型:1=发送消息,2=接收消息,3=浏览,4=点击,5=咨询,6=下单,7=支付,8=退款,9=点赞朋友圈,10=评论朋友圈', `behaviorSubType` varchar(50) DEFAULT NULL COMMENT '行为子类型', `behaviorName` varchar(100) DEFAULT NULL COMMENT '行为名称', -- 行为详情 `targetType` varchar(50) DEFAULT NULL COMMENT '目标类型', `targetId` varchar(100) DEFAULT NULL COMMENT '目标ID', `targetName` varchar(255) DEFAULT NULL COMMENT '目标名称', `amount` decimal(12,2) DEFAULT 0.00 COMMENT '金额', -- 关联信息(只记录ID,通过ID关联查询详情) `wechatAccountId` int(11) DEFAULT NULL COMMENT '客服微信账号ID', `messageId` bigint(20) DEFAULT NULL COMMENT '消息ID(关联s2_wechat_message.id)', `momentsId` int(11) DEFAULT NULL COMMENT '朋友圈ID(关联s2_wechat_moments.id)', `orderId` varchar(50) DEFAULT NULL COMMENT '订单号', `extra` json DEFAULT NULL COMMENT '额外信息', `remark` varchar(255) DEFAULT NULL COMMENT '备注', `behaviorTime` int(11) NOT NULL COMMENT '行为时间', `createTime` int(11) NOT NULL COMMENT '创建时间', PRIMARY KEY (`id`), KEY `idx_poolCompanyId` (`poolCompanyId`), KEY `idx_identifier_company` (`identifier`, `companyId`), KEY `idx_behaviorType` (`behaviorType`), KEY `idx_behaviorTime` (`behaviorTime`), KEY `idx_messageId` (`messageId`), KEY `idx_createTime` (`createTime`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='流量行为记录表'; -- ---------------------------- -- 7. 流量分配记录表 ck_traffic_pool_allot_record -- 用途:记录流量的分配历史 -- ---------------------------- DROP TABLE IF EXISTS `ck_traffic_pool_allot_record`; CREATE TABLE `ck_traffic_pool_allot_record` ( `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键ID', `poolCompanyId` int(11) UNSIGNED NOT NULL COMMENT '公司流量详情表ID', `identifier` varchar(64) NOT NULL COMMENT '流量标识(冗余)', `companyId` int(11) UNSIGNED NOT NULL COMMENT '公司ID', -- 分配信息 `allotType` tinyint(2) DEFAULT 1 COMMENT '分配类型:1=首次分配,2=重新分配,3=回收后分配', `allotRuleId` int(11) DEFAULT NULL COMMENT '分配规则ID', -- 分配前 `fromWechatId` varchar(64) DEFAULT NULL COMMENT '原归属客服微信ID', `fromAccountId` int(11) DEFAULT NULL COMMENT '原归属账号ID', `fromUserId` int(11) DEFAULT NULL COMMENT '原归属操盘手ID', -- 分配后 `toWechatId` varchar(64) NOT NULL COMMENT '新归属客服微信ID', `toAccountId` int(11) DEFAULT NULL COMMENT '新归属账号ID', `toUserId` int(11) DEFAULT NULL COMMENT '新归属操盘手ID', -- 有效期 `expireDays` int(11) DEFAULT 30 COMMENT '有效期(天)', `expireTime` int(11) DEFAULT NULL COMMENT '到期时间', `status` tinyint(2) DEFAULT 1 COMMENT '状态:1=生效中,2=已过期,3=已回收', `operatorId` int(11) DEFAULT NULL COMMENT '操作人ID', `remark` varchar(255) DEFAULT NULL COMMENT '备注', `createTime` int(11) NOT NULL COMMENT '创建时间', `updateTime` int(11) DEFAULT NULL COMMENT '更新时间', PRIMARY KEY (`id`), KEY `idx_poolCompanyId` (`poolCompanyId`), KEY `idx_identifier_company` (`identifier`, `companyId`), KEY `idx_toWechatId` (`toWechatId`), KEY `idx_status` (`status`), KEY `idx_expireTime` (`expireTime`), KEY `idx_createTime` (`createTime`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='流量分配记录表'; -- ---------------------------- -- 8. 标签类目表 ck_traffic_pool_tag_category -- 用途:管理标签的类目/分组,支持多级分类 -- ---------------------------- DROP TABLE IF EXISTS `ck_traffic_pool_tag_category`; CREATE TABLE `ck_traffic_pool_tag_category` ( `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键ID', `companyId` int(11) UNSIGNED NOT NULL DEFAULT 0 COMMENT '公司ID(0=系统默认)', `parentId` int(11) UNSIGNED DEFAULT 0 COMMENT '父类目ID(0=顶级类目)', `tagType` tinyint(2) NOT NULL COMMENT '标签类型:1=微信标签,2=站内标签,3=AI标签', `categoryCode` varchar(50) NOT NULL COMMENT '类目编码', `categoryName` varchar(50) NOT NULL COMMENT '类目名称', `categoryIcon` varchar(255) DEFAULT NULL COMMENT '类目图标', `categoryColor` varchar(20) DEFAULT NULL COMMENT '类目颜色', `description` varchar(255) DEFAULT NULL COMMENT '类目描述', `isSystem` tinyint(1) DEFAULT 0 COMMENT '是否系统默认:0=否,1=是', `sort` int(11) DEFAULT 0 COMMENT '排序(数值越小越靠前)', `status` tinyint(1) DEFAULT 1 COMMENT '状态:0=禁用,1=启用', `userId` int(11) DEFAULT NULL COMMENT '创建用户ID', `createTime` int(11) NOT NULL COMMENT '创建时间', `updateTime` int(11) DEFAULT NULL COMMENT '更新时间', `isDel` tinyint(1) DEFAULT 0 COMMENT '是否删除', `deleteTime` int(11) DEFAULT NULL COMMENT '删除时间', PRIMARY KEY (`id`), UNIQUE KEY `uk_company_code` (`companyId`, `categoryCode`), KEY `idx_companyId` (`companyId`), KEY `idx_parentId` (`parentId`), KEY `idx_tagType` (`tagType`), KEY `idx_status` (`status`), KEY `idx_sort` (`sort`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='标签类目表'; -- ---------------------------- -- 9. 标签定义表 ck_traffic_pool_tag_define -- 用途:定义具体的标签 -- ---------------------------- DROP TABLE IF EXISTS `ck_traffic_pool_tag_define`; CREATE TABLE `ck_traffic_pool_tag_define` ( `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键ID', `companyId` int(11) UNSIGNED NOT NULL DEFAULT 0 COMMENT '公司ID(0=系统默认)', `categoryId` int(11) UNSIGNED DEFAULT 0 COMMENT '所属类目ID', `tagType` tinyint(2) NOT NULL COMMENT '标签类型:1=微信标签,2=站内标签,3=AI标签', `tagCode` varchar(50) NOT NULL COMMENT '标签编码', `tagName` varchar(50) NOT NULL COMMENT '标签名称', `tagIcon` varchar(255) DEFAULT NULL COMMENT '标签图标', `tagColor` varchar(20) DEFAULT NULL COMMENT '标签颜色', `description` varchar(255) DEFAULT NULL COMMENT '标签描述', `isSystem` tinyint(1) DEFAULT 0 COMMENT '是否系统默认:0=否,1=是', `isExclusive` tinyint(1) DEFAULT 0 COMMENT '是否互斥标签:0=否,1=是(同类目下只能选一个)', `sort` int(11) DEFAULT 0 COMMENT '排序(数值越小越靠前)', `status` tinyint(1) DEFAULT 1 COMMENT '状态:0=禁用,1=启用', `useCount` int(11) DEFAULT 0 COMMENT '使用次数(缓存)', `syncFromWechat` tinyint(1) DEFAULT 0 COMMENT '是否来自微信同步:0=否,1=是', `userId` int(11) DEFAULT NULL COMMENT '创建用户ID', `createTime` int(11) NOT NULL COMMENT '创建时间', `updateTime` int(11) DEFAULT NULL COMMENT '更新时间', `isDel` tinyint(1) DEFAULT 0 COMMENT '是否删除', `deleteTime` int(11) DEFAULT NULL COMMENT '删除时间', PRIMARY KEY (`id`), UNIQUE KEY `uk_company_code` (`companyId`, `tagCode`), KEY `idx_companyId` (`companyId`), KEY `idx_categoryId` (`categoryId`), KEY `idx_tagType` (`tagType`), KEY `idx_tagName` (`tagName`), KEY `idx_status` (`status`), KEY `idx_sort` (`sort`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='标签定义表'; -- ---------------------------- -- 10. 流量标签关联表 ck_traffic_pool_tag -- 用途:记录流量与标签的关联关系 -- ---------------------------- DROP TABLE IF EXISTS `ck_traffic_pool_tag`; CREATE TABLE `ck_traffic_pool_tag` ( `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键ID', `poolCompanyId` int(11) UNSIGNED NOT NULL COMMENT '公司流量详情表ID', `identifier` varchar(64) NOT NULL COMMENT '流量标识(冗余)', `companyId` int(11) UNSIGNED NOT NULL COMMENT '公司ID', -- 标签信息 `tagDefineId` int(11) UNSIGNED NOT NULL COMMENT '标签定义ID', `tagType` tinyint(2) NOT NULL COMMENT '标签类型:1=微信标签,2=站内标签,3=AI标签', `categoryId` int(11) UNSIGNED DEFAULT 0 COMMENT '类目ID(冗余)', `tagName` varchar(50) NOT NULL COMMENT '标签名称(冗余,方便查询)', `tagValue` varchar(255) DEFAULT NULL COMMENT '标签值(部分标签需要值,如:消费金额=1000)', -- 来源信息 `source` tinyint(2) DEFAULT 1 COMMENT '打标来源:1=手动,2=规则自动,3=AI自动,4=微信同步', `sourceId` varchar(100) DEFAULT NULL COMMENT '来源ID(规则ID/AI任务ID等)', `sourceRemark` varchar(255) DEFAULT NULL COMMENT '来源备注', -- 操作信息 `operatorId` int(11) DEFAULT NULL COMMENT '操作人ID', `score` decimal(5,2) DEFAULT NULL COMMENT 'AI标签置信度(0-100,仅AI标签使用)', `expireTime` int(11) DEFAULT NULL COMMENT '过期时间(部分标签有时效性)', `createTime` int(11) NOT NULL COMMENT '创建时间', `updateTime` int(11) DEFAULT NULL COMMENT '更新时间', `isDel` tinyint(1) DEFAULT 0 COMMENT '是否删除', `deleteTime` int(11) DEFAULT NULL COMMENT '删除时间', PRIMARY KEY (`id`), UNIQUE KEY `uk_pool_tag` (`poolCompanyId`, `tagDefineId`), KEY `idx_identifier_company` (`identifier`, `companyId`), KEY `idx_tagDefineId` (`tagDefineId`), KEY `idx_tagType` (`tagType`), KEY `idx_categoryId` (`categoryId`), KEY `idx_tagName` (`tagName`), KEY `idx_createTime` (`createTime`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='流量标签关联表'; -- ============================================================================ -- 第三部分:初始化系统默认数据 -- ============================================================================ -- ---------------------------- -- 初始化系统默认流量池分组 -- ---------------------------- INSERT INTO `ck_traffic_pool_group` (`companyId`, `groupCode`, `groupName`, `description`, `isSystem`, `isDefault`, `ruleType`, `ruleConfig`, `sort`, `status`, `createTime`) VALUES -- 全部好友流量池 (0, 'all_friends', '全部好友流量池', '所有已添加的好友', 1, 1, 1, '{"logic":"AND","conditions":[{"type":"field","field":"friendStatus","operator":"=","value":2,"valueType":"number"}]}', 1, 1, UNIX_TIMESTAMP()), -- 高价值客户池:已通过好友 AND (消费>=1000 OR 等级=VIP) (0, 'high_value', '高价值客户池', '消费金额高的客户', 1, 0, 1, '{"logic":"AND","conditions":[{"type":"field","field":"friendStatus","operator":"=","value":2,"valueType":"number"},{"type":"group","logic":"OR","conditions":[{"type":"field","field":"rfmM","operator":">=","value":1000,"valueType":"number"},{"type":"field","field":"level","operator":"=","value":2,"valueType":"number"}]}]}', 2, 1, UNIX_TIMESTAMP()), -- 潜在客户池:已通过好友 AND 意向度>=中 AND 订单数=0 (0, 'potential', '潜在客户池', '有意向但未成交的客户', 1, 0, 1, '{"logic":"AND","conditions":[{"type":"field","field":"friendStatus","operator":"=","value":2,"valueType":"number"},{"type":"field","field":"intentionLevel","operator":">=","value":2,"valueType":"number"},{"type":"field","field":"totalOrderCount","operator":"=","value":0,"valueType":"number"}]}', 3, 1, UNIX_TIMESTAMP()), -- 高互动客户池:已通过好友 AND 消息数>=50 (0, 'high_interact', '高互动客户池', '互动频繁的客户', 1, 0, 1, '{"logic":"AND","conditions":[{"type":"field","field":"friendStatus","operator":"=","value":2,"valueType":"number"},{"type":"field","field":"totalMsgCount","operator":">=","value":50,"valueType":"number"}]}', 4, 1, UNIX_TIMESTAMP()); -- ---------------------------- -- 初始化系统默认标签类目 -- ---------------------------- INSERT INTO `ck_traffic_pool_tag_category` (`companyId`, `parentId`, `tagType`, `categoryCode`, `categoryName`, `description`, `isSystem`, `sort`, `status`, `createTime`) VALUES -- 微信标签类目(tagType=1) (0, 0, 1, 'wechat_default', '微信默认标签', '从微信同步的标签', 1, 1, 1, UNIX_TIMESTAMP()), -- 站内标签类目(tagType=2) (0, 0, 2, 'customer_level', '客户等级', '普通/重要/VIP', 1, 1, 1, UNIX_TIMESTAMP()), (0, 0, 2, 'customer_intention', '客户意向', '低意向/中意向/高意向', 1, 2, 1, UNIX_TIMESTAMP()), (0, 0, 2, 'customer_stage', '客户阶段', '新客户/跟进中/已成交/已流失', 1, 3, 1, UNIX_TIMESTAMP()), (0, 0, 2, 'customer_source', '客户来源', '海报/电话/群聊/好友推荐等', 1, 4, 1, UNIX_TIMESTAMP()), (0, 0, 2, 'customer_industry', '所属行业', '行业分类标签', 1, 5, 1, UNIX_TIMESTAMP()), (0, 0, 2, 'customer_preference', '客户偏好', '产品偏好/服务偏好等', 1, 6, 1, UNIX_TIMESTAMP()), -- AI标签类目(tagType=3) (0, 0, 3, 'ai_portrait', 'AI画像标签', 'AI分析的用户画像', 1, 1, 1, UNIX_TIMESTAMP()), (0, 0, 3, 'ai_behavior', 'AI行为标签', 'AI分析的行为特征', 1, 2, 1, UNIX_TIMESTAMP()), (0, 0, 3, 'ai_prediction', 'AI预测标签', 'AI预测的标签(如:高转化潜力)', 1, 3, 1, UNIX_TIMESTAMP()); -- ---------------------------- -- 初始化系统默认标签定义 -- ---------------------------- INSERT INTO `ck_traffic_pool_tag_define` (`companyId`, `categoryId`, `tagType`, `tagCode`, `tagName`, `description`, `isSystem`, `isExclusive`, `sort`, `status`, `createTime`) VALUES -- 客户等级标签(categoryId 需要根据实际插入后的ID调整,这里假设为2) (0, 2, 2, 'level_normal', '普通客户', '普通等级客户', 1, 1, 1, 1, UNIX_TIMESTAMP()), (0, 2, 2, 'level_important', '重要客户', '重要等级客户', 1, 1, 2, 1, UNIX_TIMESTAMP()), (0, 2, 2, 'level_vip', 'VIP客户', 'VIP等级客户', 1, 1, 3, 1, UNIX_TIMESTAMP()), -- 客户意向标签(categoryId=3) (0, 3, 2, 'intention_low', '低意向', '购买意向较低', 1, 1, 1, 1, UNIX_TIMESTAMP()), (0, 3, 2, 'intention_medium', '中意向', '购买意向一般', 1, 1, 2, 1, UNIX_TIMESTAMP()), (0, 3, 2, 'intention_high', '高意向', '购买意向较高', 1, 1, 3, 1, UNIX_TIMESTAMP()), -- 客户阶段标签(categoryId=4) (0, 4, 2, 'stage_new', '新客户', '新进入的客户', 1, 1, 1, 1, UNIX_TIMESTAMP()), (0, 4, 2, 'stage_following', '跟进中', '正在跟进的客户', 1, 1, 2, 1, UNIX_TIMESTAMP()), (0, 4, 2, 'stage_converted', '已成交', '已经成交的客户', 1, 1, 3, 1, UNIX_TIMESTAMP()), (0, 4, 2, 'stage_lost', '已流失', '已流失的客户', 1, 1, 4, 1, UNIX_TIMESTAMP()), -- 客户来源标签(categoryId=5) (0, 5, 2, 'source_poster', '海报获客', '通过海报获取的客户', 1, 0, 1, 1, UNIX_TIMESTAMP()), (0, 5, 2, 'source_phone', '电话获客', '通过电话获取的客户', 1, 0, 2, 1, UNIX_TIMESTAMP()), (0, 5, 2, 'source_group', '群聊获客', '通过群聊获取的客户', 1, 0, 3, 1, UNIX_TIMESTAMP()), (0, 5, 2, 'source_referral', '好友推荐', '通过好友推荐的客户', 1, 0, 4, 1, UNIX_TIMESTAMP()), (0, 5, 2, 'source_api', 'API导入', '通过API导入的客户', 1, 0, 5, 1, UNIX_TIMESTAMP()), -- AI预测标签(categoryId=10) (0, 10, 3, 'ai_high_potential', '高转化潜力', 'AI预测的高转化潜力客户', 1, 0, 1, 1, UNIX_TIMESTAMP()), (0, 10, 3, 'ai_churn_risk', '流失风险', 'AI预测的有流失风险客户', 1, 0, 2, 1, UNIX_TIMESTAMP()), (0, 10, 3, 'ai_active', '活跃用户', 'AI分析的活跃用户', 1, 0, 3, 1, UNIX_TIMESTAMP()); -- ============================================================================ -- 第四部分:修改工作台配置表中流量池相关字段的注释(可选) -- ============================================================================ -- 如果需要更新工作台配置表的字段注释,可以执行以下语句 -- ALTER TABLE `ck_workbench_traffic_config` -- MODIFY COLUMN `pools` json DEFAULT NULL COMMENT '流量池分组ID数组(关联ck_traffic_pool_group.id)'; -- ALTER TABLE `ck_workbench_import_contact` -- MODIFY COLUMN `pools` json DEFAULT NULL COMMENT '流量池分组ID数组(关联ck_traffic_pool_group.id)'; -- ALTER TABLE `ck_workbench_group_create` -- MODIFY COLUMN `poolGroups` json DEFAULT NULL COMMENT '流量池分组ID数组(关联ck_traffic_pool_group.id)'; -- ============================================================================ -- 完成提示 -- ============================================================================ -- 执行完成后,旧表已重命名为 xxx_v1 后缀,新表已创建完成 -- -- 旧表(已重命名): -- - ck_traffic_pool_v1 -- - ck_traffic_source_v1 -- - ck_traffic_source_package_v1 -- - ck_traffic_source_package_item_v1 -- - ck_traffic_tag_v1 -- - ck_traffic_profile_v1 -- - ck_traffic_order_v1 -- -- 新表(共10张): -- - ck_traffic_pool (流量池总表) -- - ck_traffic_pool_company (公司流量详情表) -- - ck_traffic_pool_group (流量池分组表) -- - ck_traffic_pool_group_member (流量池分组成员表) -- - ck_traffic_pool_source (流量来源记录表) -- - ck_traffic_pool_behavior (流量行为记录表) -- - ck_traffic_pool_allot_record (流量分配记录表) -- - ck_traffic_pool_tag_category (标签类目表) -- - ck_traffic_pool_tag_define (标签定义表) -- - ck_traffic_pool_tag (流量标签关联表) -- -- 初始化数据: -- - 4条系统默认流量池分组 -- - 10条系统默认标签类目(微信1条、站内6条、AI3条) -- - 18条系统默认标签定义 -- ============================================================================