1
This commit is contained in:
139
_sql/add_pla_account_json_config_fields.sql
Normal file
139
_sql/add_pla_account_json_config_fields.sql
Normal file
@@ -0,0 +1,139 @@
|
||||
-- 为 pla_account 表添加 JSON 配置字段
|
||||
-- 执行时间:2025-01-XX
|
||||
-- 说明:将自动投递、自动沟通、自动回复、自动活跃的配置项统一到 JSON 配置字段中
|
||||
|
||||
-- ============================================
|
||||
-- 添加自动投递配置字段(deliver_config)
|
||||
-- ============================================
|
||||
-- 如果字段已存在则跳过,否则添加
|
||||
SET @exist_deliver_config = (
|
||||
SELECT COUNT(*)
|
||||
FROM INFORMATION_SCHEMA.COLUMNS
|
||||
WHERE TABLE_SCHEMA = DATABASE()
|
||||
AND TABLE_NAME = 'pla_account'
|
||||
AND COLUMN_NAME = 'deliver_config'
|
||||
);
|
||||
|
||||
SET @sql_deliver_config = IF(@exist_deliver_config = 0,
|
||||
'ALTER TABLE `pla_account`
|
||||
ADD COLUMN `deliver_config` JSON COMMENT ''自动投递配置(JSON对象,包含:deliver_interval-投递间隔分钟数, min_salary-最低薪资, max_salary-最高薪资, page_count-滚动获取职位列表次数, max_deliver-每次最多投递数量, filter_keywords-过滤关键词, exclude_keywords-排除关键词)''
|
||||
AFTER `auto_deliver`',
|
||||
'SELECT ''字段 deliver_config 已存在,跳过添加'' AS message'
|
||||
);
|
||||
|
||||
PREPARE stmt FROM @sql_deliver_config;
|
||||
EXECUTE stmt;
|
||||
DEALLOCATE PREPARE stmt;
|
||||
|
||||
-- ============================================
|
||||
-- 添加自动沟通策略配置字段(chat_strategy)
|
||||
-- ============================================
|
||||
SET @exist_chat_strategy = (
|
||||
SELECT COUNT(*)
|
||||
FROM INFORMATION_SCHEMA.COLUMNS
|
||||
WHERE TABLE_SCHEMA = DATABASE()
|
||||
AND TABLE_NAME = 'pla_account'
|
||||
AND COLUMN_NAME = 'chat_strategy'
|
||||
);
|
||||
|
||||
SET @sql_chat_strategy = IF(@exist_chat_strategy = 0,
|
||||
'ALTER TABLE `pla_account`
|
||||
ADD COLUMN `chat_strategy` JSON COMMENT ''自动沟通策略配置(JSON对象,包含:chat_interval-沟通间隔分钟数, is_chat_outsourcing-是否沟通外包岗位, time_range-沟通时间段配置)''
|
||||
AFTER `auto_chat`',
|
||||
'SELECT ''字段 chat_strategy 已存在,跳过添加'' AS message'
|
||||
);
|
||||
|
||||
PREPARE stmt FROM @sql_chat_strategy;
|
||||
EXECUTE stmt;
|
||||
DEALLOCATE PREPARE stmt;
|
||||
|
||||
-- ============================================
|
||||
-- 添加自动回复配置字段(reply_config)
|
||||
-- ============================================
|
||||
SET @exist_reply_config = (
|
||||
SELECT COUNT(*)
|
||||
FROM INFORMATION_SCHEMA.COLUMNS
|
||||
WHERE TABLE_SCHEMA = DATABASE()
|
||||
AND TABLE_NAME = 'pla_account'
|
||||
AND COLUMN_NAME = 'reply_config'
|
||||
);
|
||||
|
||||
SET @sql_reply_config = IF(@exist_reply_config = 0,
|
||||
'ALTER TABLE `pla_account`
|
||||
ADD COLUMN `reply_config` JSON COMMENT ''自动回复配置(JSON对象)''
|
||||
AFTER `auto_reply`',
|
||||
'SELECT ''字段 reply_config 已存在,跳过添加'' AS message'
|
||||
);
|
||||
|
||||
PREPARE stmt FROM @sql_reply_config;
|
||||
EXECUTE stmt;
|
||||
DEALLOCATE PREPARE stmt;
|
||||
|
||||
-- ============================================
|
||||
-- 添加自动活跃动作配置字段(active_actions)
|
||||
-- ============================================
|
||||
SET @exist_active_actions = (
|
||||
SELECT COUNT(*)
|
||||
FROM INFORMATION_SCHEMA.COLUMNS
|
||||
WHERE TABLE_SCHEMA = DATABASE()
|
||||
AND TABLE_NAME = 'pla_account'
|
||||
AND COLUMN_NAME = 'active_actions'
|
||||
);
|
||||
|
||||
SET @sql_active_actions = IF(@exist_active_actions = 0,
|
||||
'ALTER TABLE `pla_account`
|
||||
ADD COLUMN `active_actions` TEXT COMMENT ''自动活跃动作配置(JSON对象,包含:active_interval-活跃间隔分钟数, actions-活跃动作列表)''
|
||||
AFTER `auto_active`',
|
||||
'SELECT ''字段 active_actions 已存在,跳过添加'' AS message'
|
||||
);
|
||||
|
||||
PREPARE stmt FROM @sql_active_actions;
|
||||
EXECUTE stmt;
|
||||
DEALLOCATE PREPARE stmt;
|
||||
|
||||
-- ============================================
|
||||
-- 数据迁移说明
|
||||
-- ============================================
|
||||
-- 如果需要将旧字段数据迁移到新 JSON 配置字段,可以执行以下 SQL:
|
||||
--
|
||||
-- 1. 迁移自动投递配置(如果存在旧字段)
|
||||
-- UPDATE pla_account
|
||||
-- SET deliver_config = JSON_OBJECT(
|
||||
-- 'deliver_interval', 30,
|
||||
-- 'min_salary', COALESCE(min_salary, 0),
|
||||
-- 'max_salary', COALESCE(max_salary, 0),
|
||||
-- 'page_count', COALESCE(page_count, 3),
|
||||
-- 'max_deliver', COALESCE(max_deliver, 10),
|
||||
-- 'filter_keywords', COALESCE(filter_keywords, JSON_ARRAY()),
|
||||
-- 'exclude_keywords', COALESCE(exclude_keywords, JSON_ARRAY())
|
||||
-- )
|
||||
-- WHERE deliver_config IS NULL AND (min_salary IS NOT NULL OR max_salary IS NOT NULL);
|
||||
--
|
||||
-- 2. 迁移自动沟通配置(如果存在旧字段)
|
||||
-- UPDATE pla_account
|
||||
-- SET chat_strategy = JSON_OBJECT(
|
||||
-- 'chat_interval', COALESCE(chat_interval, 30),
|
||||
-- 'is_chat_outsourcing', COALESCE(is_chat_outsourcing, 0),
|
||||
-- 'time_range', JSON_OBJECT(
|
||||
-- 'start_time', '09:00',
|
||||
-- 'end_time', '18:00',
|
||||
-- 'workdays_only', 1
|
||||
-- )
|
||||
-- )
|
||||
-- WHERE chat_strategy IS NULL AND (chat_interval IS NOT NULL OR is_chat_outsourcing IS NOT NULL);
|
||||
--
|
||||
-- 3. 迁移自动活跃配置(如果存在旧字段)
|
||||
-- UPDATE pla_account
|
||||
-- SET active_actions = CONCAT('{"active_interval":', COALESCE(active_interval, 60), ',"actions":[]}')
|
||||
-- WHERE active_actions IS NULL OR active_actions = '' AND active_interval IS NOT NULL;
|
||||
|
||||
-- ============================================
|
||||
-- 注意事项
|
||||
-- ============================================
|
||||
-- 1. deliver_config、chat_strategy、reply_config 使用 JSON 类型(MySQL 5.7+)
|
||||
-- 2. active_actions 使用 TEXT 类型(兼容已有数据库结构)
|
||||
-- 3. 如果 MySQL 版本低于 5.7,请将其他 JSON 类型改为 TEXT 类型
|
||||
-- 4. 执行前建议先备份数据库
|
||||
-- 5. 字段已存在时会自动跳过,不会报错
|
||||
-- 6. 如果需要迁移旧数据,请取消注释上面的数据迁移 SQL 并执行
|
||||
|
||||
79
_sql/add_pla_account_json_config_fields_simple.sql
Normal file
79
_sql/add_pla_account_json_config_fields_simple.sql
Normal file
@@ -0,0 +1,79 @@
|
||||
-- 为 pla_account 表添加 JSON 配置字段(简化版)
|
||||
-- 执行时间:2025-01-XX
|
||||
-- 说明:将自动投递、自动沟通、自动回复、自动活跃的配置项统一到 JSON 配置字段中
|
||||
-- 注意:如果字段已存在,执行会报错,可以忽略或手动删除已存在的字段
|
||||
|
||||
-- ============================================
|
||||
-- 添加自动投递配置字段(deliver_config)
|
||||
-- ============================================
|
||||
ALTER TABLE `pla_account`
|
||||
ADD COLUMN `deliver_config` JSON COMMENT '自动投递配置(JSON对象,包含:deliver_interval-投递间隔分钟数, min_salary-最低薪资, max_salary-最高薪资, page_count-滚动获取职位列表次数, max_deliver-每次最多投递数量, filter_keywords-过滤关键词, exclude_keywords-排除关键词)'
|
||||
AFTER `auto_deliver`;
|
||||
|
||||
-- ============================================
|
||||
-- 添加自动沟通策略配置字段(chat_strategy)
|
||||
-- ============================================
|
||||
ALTER TABLE `pla_account`
|
||||
ADD COLUMN `chat_strategy` JSON COMMENT '自动沟通策略配置(JSON对象,包含:chat_interval-沟通间隔分钟数, is_chat_outsourcing-是否沟通外包岗位, time_range-沟通时间段配置)'
|
||||
AFTER `auto_chat`;
|
||||
|
||||
-- ============================================
|
||||
-- 添加自动回复配置字段(reply_config)
|
||||
-- ============================================
|
||||
ALTER TABLE `pla_account`
|
||||
ADD COLUMN `reply_config` JSON COMMENT '自动回复配置(JSON对象)'
|
||||
AFTER `auto_reply`;
|
||||
|
||||
-- ============================================
|
||||
-- 添加自动活跃动作配置字段(active_actions)
|
||||
-- ============================================
|
||||
-- 如果字段已存在且为 TEXT 类型,则修改注释;如果不存在,则添加
|
||||
ALTER TABLE `pla_account`
|
||||
ADD COLUMN `active_actions` TEXT COMMENT '自动活跃动作配置(JSON对象,包含:active_interval-活跃间隔分钟数, actions-活跃动作列表)'
|
||||
AFTER `auto_active`;
|
||||
|
||||
-- ============================================
|
||||
-- 初始化默认配置值(可选)
|
||||
-- ============================================
|
||||
-- 为已有数据初始化默认配置(如果字段为空)
|
||||
UPDATE `pla_account`
|
||||
SET `deliver_config` = JSON_OBJECT(
|
||||
'deliver_interval', 30,
|
||||
'min_salary', 0,
|
||||
'max_salary', 0,
|
||||
'page_count', 3,
|
||||
'max_deliver', 10,
|
||||
'filter_keywords', JSON_ARRAY(),
|
||||
'exclude_keywords', JSON_ARRAY()
|
||||
)
|
||||
WHERE `deliver_config` IS NULL;
|
||||
|
||||
UPDATE `pla_account`
|
||||
SET `chat_strategy` = JSON_OBJECT(
|
||||
'chat_interval', 30,
|
||||
'is_chat_outsourcing', 0,
|
||||
'time_range', JSON_OBJECT(
|
||||
'start_time', '09:00',
|
||||
'end_time', '18:00',
|
||||
'workdays_only', 1
|
||||
)
|
||||
)
|
||||
WHERE `chat_strategy` IS NULL;
|
||||
|
||||
UPDATE `pla_account`
|
||||
SET `reply_config` = JSON_OBJECT()
|
||||
WHERE `reply_config` IS NULL;
|
||||
|
||||
UPDATE `pla_account`
|
||||
SET `active_actions` = '{"active_interval": 60, "actions": []}'
|
||||
WHERE `active_actions` IS NULL OR `active_actions` = '';
|
||||
|
||||
-- ============================================
|
||||
-- 注意事项
|
||||
-- ============================================
|
||||
-- 1. deliver_config、chat_strategy、reply_config 使用 JSON 类型(MySQL 5.7+)
|
||||
-- 2. active_actions 使用 TEXT 类型(兼容已有数据库结构)
|
||||
-- 3. 如果 MySQL 版本低于 5.7,请将其他 JSON 类型改为 TEXT 类型
|
||||
-- 4. 执行前建议先备份数据库
|
||||
-- 5. 如果字段已存在,ALTER TABLE 会报错,可以忽略或先删除已存在的字段
|
||||
|
||||
Reference in New Issue
Block a user