Files
CKB-Interface/docs/traffic_pool_v2.sql
2026-03-24 10:39:16 +08:00

601 lines
30 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

-- ============================================================================
-- 流量池系统 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=微信ID2=微信号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 '归属客服账号IDs2_wechat_account.id',
`ownerUserId` int(11) DEFAULT NULL COMMENT '归属操盘手ID',
-- 好友关联
`wechatFriendId` int(11) DEFAULT NULL COMMENT '微信好友IDs2_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 '公司ID0=系统默认)',
`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 '公司ID0=系统默认)',
`parentId` int(11) UNSIGNED DEFAULT 0 COMMENT '父类目ID0=顶级类目)',
`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 '公司ID0=系统默认)',
`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条系统默认标签定义
-- ============================================================================