From d2ae741b9ea611659e19902088fa57b3137f9066 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=88=90?= Date: Tue, 30 Dec 2025 17:47:07 +0800 Subject: [PATCH] 1 --- _sql/add_pla_account_auto_search_fields.sql | 66 +++++++++++++++++++ .../schedule/tasks/autoActiveTask.js | 7 +- api/middleware/schedule/tasks/autoChatTask.js | 7 +- .../schedule/tasks/autoDeliverTask.js | 7 +- .../schedule/tasks/autoSearchTask.js | 7 +- 5 files changed, 78 insertions(+), 16 deletions(-) create mode 100644 _sql/add_pla_account_auto_search_fields.sql diff --git a/_sql/add_pla_account_auto_search_fields.sql b/_sql/add_pla_account_auto_search_fields.sql new file mode 100644 index 0000000..e02b33d --- /dev/null +++ b/_sql/add_pla_account_auto_search_fields.sql @@ -0,0 +1,66 @@ +-- 为 pla_account 表添加自动搜索相关字段 +-- 执行时间:2025-01-XX +-- 说明:添加自动搜索开关和搜索配置字段 + +-- ============================================ +-- 添加自动搜索开关字段(auto_search) +-- ============================================ +ALTER TABLE `pla_account` +ADD COLUMN `auto_search` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '自动搜索开关(1=启用,0=禁用)' +AFTER `auto_deliver`; + +-- ============================================ +-- 添加自动搜索配置字段(search_config) +-- ============================================ +ALTER TABLE `pla_account` +ADD COLUMN `search_config` JSON COMMENT '自动搜索配置(JSON对象,包含:search_interval-搜索间隔分钟数, city-城市, cityName-城市名称, salary-薪资, experience-经验, education-学历)' +AFTER `auto_search`; + +-- ============================================ +-- 为已有账号设置默认配置 +-- ============================================ +-- 为所有账号设置默认的 search_config(如果为 NULL) +UPDATE `pla_account` +SET `search_config` = JSON_OBJECT( + 'search_interval', 30, + 'city', '', + 'cityName', '', + 'salary', '', + 'experience', '', + 'education', '' +) +WHERE `search_config` IS NULL; + +-- ============================================ +-- 验证字段是否添加成功 +-- ============================================ +SELECT + COLUMN_NAME AS '字段名', + COLUMN_TYPE AS '字段类型', + IS_NULLABLE AS '允许空', + COLUMN_DEFAULT AS '默认值', + COLUMN_COMMENT AS '注释' +FROM INFORMATION_SCHEMA.COLUMNS +WHERE TABLE_SCHEMA = DATABASE() +AND TABLE_NAME = 'pla_account' +AND COLUMN_NAME IN ('auto_search', 'search_config') +ORDER BY ORDINAL_POSITION; + +-- ============================================ +-- 注意事项 +-- ============================================ +-- 1. auto_search 使用 TINYINT(1) 类型,默认值为 0(关闭) +-- 2. search_config 使用 JSON 类型(MySQL 5.7+) +-- 3. 如果 MySQL 版本低于 5.7,请将 JSON 类型改为 TEXT 类型 +-- 4. 执行前建议先备份数据库 +-- 5. 如果字段已存在会报错,请先删除字段再执行: +-- ALTER TABLE `pla_account` DROP COLUMN `auto_search`; +-- ALTER TABLE `pla_account` DROP COLUMN `search_config`; +-- 6. search_config 默认值包含以下字段: +-- - search_interval: 30(搜索间隔,单位:分钟) +-- - city: ''(城市代码) +-- - cityName: ''(城市名称) +-- - salary: ''(薪资范围) +-- - experience: ''(工作经验要求) +-- - education: ''(学历要求) + diff --git a/api/middleware/schedule/tasks/autoActiveTask.js b/api/middleware/schedule/tasks/autoActiveTask.js index b8447a3..4f1aaf1 100644 --- a/api/middleware/schedule/tasks/autoActiveTask.js +++ b/api/middleware/schedule/tasks/autoActiveTask.js @@ -166,15 +166,14 @@ class AutoActiveTask extends BaseTask { console.log(`[自动活跃] 已为设备 ${sn_code} 添加活跃任务,间隔: ${active_interval} 分钟`); - // 10. 释放任务锁 - this.releaseTaskLock(sn_code); - return { success: true }; } catch (error) { console.error(`[自动活跃] 添加任务失败:`, error); - this.releaseTaskLock(sn_code); return { success: false, reason: error.message }; + } finally { + // 统一释放任务锁 + this.releaseTaskLock(sn_code); } } } diff --git a/api/middleware/schedule/tasks/autoChatTask.js b/api/middleware/schedule/tasks/autoChatTask.js index b403095..4fa3da9 100644 --- a/api/middleware/schedule/tasks/autoChatTask.js +++ b/api/middleware/schedule/tasks/autoChatTask.js @@ -165,15 +165,14 @@ class AutoChatTask extends BaseTask { console.log(`[自动沟通] 已为设备 ${sn_code} 添加沟通任务,间隔: ${chat_interval} 分钟`); - // 10. 释放任务锁 - this.releaseTaskLock(sn_code); - return { success: true }; } catch (error) { console.error(`[自动沟通] 添加任务失败:`, error); - this.releaseTaskLock(sn_code); return { success: false, reason: error.message }; + } finally { + // 统一释放任务锁 + this.releaseTaskLock(sn_code); } } } diff --git a/api/middleware/schedule/tasks/autoDeliverTask.js b/api/middleware/schedule/tasks/autoDeliverTask.js index d1d1e78..81f339d 100644 --- a/api/middleware/schedule/tasks/autoDeliverTask.js +++ b/api/middleware/schedule/tasks/autoDeliverTask.js @@ -287,15 +287,14 @@ class AutoDeliverTask extends BaseTask { console.log(`[自动投递] 已为设备 ${sn_code} 添加投递任务,间隔: ${deliverConfig.deliver_interval} 分钟`); - // 10. 释放任务锁 - this.releaseTaskLock(sn_code); - return { success: true }; } catch (error) { console.error(`[自动投递] 添加任务失败:`, error); - this.releaseTaskLock(sn_code); return { success: false, reason: error.message }; + } finally { + // 统一释放任务锁 + this.releaseTaskLock(sn_code); } } diff --git a/api/middleware/schedule/tasks/autoSearchTask.js b/api/middleware/schedule/tasks/autoSearchTask.js index e72681d..0e8a08e 100644 --- a/api/middleware/schedule/tasks/autoSearchTask.js +++ b/api/middleware/schedule/tasks/autoSearchTask.js @@ -217,15 +217,14 @@ class AutoSearchTask extends BaseTask { console.log(`[自动搜索] 已为设备 ${sn_code} 添加搜索任务,间隔: ${searchConfig.search_interval} 分钟`); - // 10. 释放任务锁 - this.releaseTaskLock(sn_code); - return { success: true }; } catch (error) { console.error(`[自动搜索] 添加任务失败:`, error); - this.releaseTaskLock(sn_code); return { success: false, reason: error.message }; + } finally { + // 统一释放任务锁 + this.releaseTaskLock(sn_code); } } }