1
This commit is contained in:
@@ -680,13 +680,120 @@ class PlaAccountService {
|
||||
}
|
||||
});
|
||||
|
||||
const taskId = await scheduleManager.taskQueue.addTask(account.sn_code, {
|
||||
taskType: taskType,
|
||||
taskName: `手动任务 - ${taskName}`,
|
||||
taskParams: {
|
||||
keyword: account.keyword,
|
||||
platform: account.platform_type
|
||||
}
|
||||
});
|
||||
|
||||
return {
|
||||
message: '任务已添加到队列',
|
||||
taskId: task.id
|
||||
taskId: taskId
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 创建搜索职位列表任务(支持可选投递)
|
||||
* @param {Object} params - 任务参数
|
||||
* @param {number} params.id - 账号ID
|
||||
* @param {string} params.keyword - 搜索关键词
|
||||
* @param {Object} params.searchParams - 搜索条件(城市、薪资、经验、学历等)
|
||||
* @param {number} params.pageCount - 获取页数
|
||||
* @param {boolean} params.autoDeliver - 是否自动投递(默认false)
|
||||
* @param {Object} params.filterRules - 过滤规则(autoDeliver=true时使用)
|
||||
* @param {number} params.maxCount - 最大投递数量(autoDeliver=true时使用)
|
||||
* @returns {Promise<Object>} 任务创建结果 { taskId, message, jobCount, deliveredCount }
|
||||
*/
|
||||
async createSearchJobListTask(params) {
|
||||
const pla_account = db.getModel('pla_account');
|
||||
const task_status = db.getModel('task_status');
|
||||
|
||||
const {
|
||||
id,
|
||||
keyword,
|
||||
searchParams = {},
|
||||
pageCount = 3,
|
||||
autoDeliver = false,
|
||||
filterRules = {},
|
||||
maxCount = 10
|
||||
} = params;
|
||||
|
||||
// 1. 验证账号和授权
|
||||
if (!id) {
|
||||
throw new Error('账号ID不能为空');
|
||||
}
|
||||
|
||||
const account = await pla_account.findByPk(id);
|
||||
if (!account) {
|
||||
throw new Error('账号不存在');
|
||||
}
|
||||
|
||||
// 检查账号是否启用
|
||||
if (!account.is_enabled) {
|
||||
throw new Error('账号未启用,无法执行任务');
|
||||
}
|
||||
|
||||
// 检查授权状态
|
||||
const authCheck = await authorizationService.checkAuthorization(id, 'id');
|
||||
if (!authCheck.is_authorized) {
|
||||
throw new Error(authCheck.message);
|
||||
}
|
||||
|
||||
// 检查MQTT客户端
|
||||
if (!scheduleManager.mqttClient) {
|
||||
throw new Error('MQTT客户端未初始化');
|
||||
}
|
||||
|
||||
const sn_code = account.sn_code;
|
||||
const platform = account.platform_type || 'boss';
|
||||
|
||||
// 2. 创建任务记录(使用新的搜索任务类型)
|
||||
const taskType = 'search_jobs';
|
||||
const taskName = autoDeliver ? '搜索并投递职位' : '搜索职位列表';
|
||||
|
||||
const task = await task_status.create({
|
||||
sn_code: sn_code,
|
||||
taskType: taskType,
|
||||
taskName: taskName,
|
||||
taskParams: JSON.stringify({
|
||||
keyword: keyword || account.keyword || '',
|
||||
searchParams: searchParams,
|
||||
pageCount: pageCount,
|
||||
autoDeliver: autoDeliver,
|
||||
filterRules: filterRules,
|
||||
maxCount: maxCount,
|
||||
platform: platform
|
||||
}),
|
||||
status: 'pending',
|
||||
progress: 0
|
||||
});
|
||||
|
||||
console.log(`[账号服务] 创建搜索任务: ${taskName} (ID: ${task.id}, 设备: ${sn_code})`);
|
||||
|
||||
// 3. 将任务添加到队列,由 handleSearchJobListTask 处理
|
||||
const taskId = await scheduleManager.taskQueue.addTask(sn_code, {
|
||||
taskType: taskType,
|
||||
taskName: taskName,
|
||||
taskParams: {
|
||||
keyword: keyword || account.keyword || '',
|
||||
searchParams: searchParams,
|
||||
pageCount: pageCount,
|
||||
autoDeliver: autoDeliver,
|
||||
filterRules: filterRules,
|
||||
maxCount: maxCount,
|
||||
platform: platform
|
||||
}
|
||||
});
|
||||
|
||||
return {
|
||||
taskId: taskId,
|
||||
message: `搜索任务已创建,任务ID: ${taskId}`,
|
||||
jobCount: 0,
|
||||
deliveredCount: 0
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user