import globalConfig from '../config/globalConfig' import servicesReportData from '../services/reportData' import servicescommon from '../services/common' import msgContorl from '../services/msgController' import commonData from '../store/data' import serverRequest from '../api/scrm/serverRequest' // 定义任务 const moduleTasks = [ { id: 'getWorkTime', name: '获取坐班时间', interval: 30, isEnabled: true, execute: async (): Promise => { try { await servicescommon.checkLoginStatus() await servicescommon.getWorkTime() } catch (error) { console.log((error as Error).message) } } }, { id: 'stayWorkStatus', name: '坐班触发和在线状态', interval: 1, isEnabled: true, execute: (): void => { // 判断坐班状态变化,开始坐班时调用接口 servicescommon.checkBeinStatus() // 在线状态上报 serverRequest.setOnLineV2() } }, // 消息类型(normal:正常消息,exact:精准匹配消息,sys:系统类型消息) { id: 'msgContorl', name: '消息获取和发送', interval: globalConfig.msgContorl.interval, isEnabled: globalConfig.msgContorl.isStart, execute: (): void => { msgContorl(['exact', 'sys']) } }, { id: 'normalMsgContorl', name: '消息获取和发送-normal(定时消息)', interval: globalConfig.normalMsg.interval, isEnabled: globalConfig.normalMsg.isStart, execute: (): void => { msgContorl(['normal']) } }, { id: 'reportBasicDataTask', name: '同步上报基本信息', // 账号信息、群信息 interval: globalConfig.syncDataBasic.interval, isEnabled: globalConfig.syncDataBasic.isStart, execute: async (): Promise => { await servicesReportData.fetchAndReportBasicData() } }, { id: 'reportMemberDataTask', name: '同步上报群成员信息', interval: globalConfig.syncDataMember.interval, isEnabled: globalConfig.syncDataMember.isStart, execute: (): void => { console.log('开始同步上报群成员信息', (commonData.get<[]>('globalGroupList') || []).length) servicesReportData.fetchAndReportMemberData(commonData.get('globalGroupList') || []) } } ] async function executeModuleTaskById(taskId: string): Promise { const task = moduleTasks.find((t) => t.id === taskId) if (task) { if (task.isEnabled) { await task.execute() } // else { // console.log(`Task "${taskId}" is not enabled.`) // } } else { console.log(`Task "${taskId}" not found.`) } } export { moduleTasks, executeModuleTaskById }