// client/ai/pub/doReviewTimer.js module.exports = { main: async (event) => { let { data = {} } = event; const { record_id, file_id, user_id, file_name, file_size } = data; if (!record_id || !file_id) return { code: -1, msg: '参数错误' }; const db = uniCloud.database(); // 检查是否已经在审查中(防止重复触发) const record = await db.collection('jjx-review-records').doc(record_id).get(); if (record.data.length && record.data[0].status === 'reviewing') { // 检查是否刚触发(5分钟内不重复触发) const lastUpdate = record.data[0].update_time; if (lastUpdate && (Date.now() - new Date(lastUpdate).getTime() < 5 * 60 * 1000)) { return { code: 0, msg: '已在审查中,跳过' }; } } // 更新状态为审查中 await db.collection('jjx-review-records').doc(record_id).update({ status: 'reviewing', review_started_at: new Date(), update_time: new Date() }); // 调用实际的审查逻辑 try { const doReview = require('./jjxDoReview.js'); await doReview.main({ data: { record_id, file_id, user_id: user_id || 'anonymous', file_name: file_name || '', file_size: file_size || 0 } }); return { code: 0, msg: '审查完成' }; } catch (e) { console.error('审查失败:', e); // 更新状态为失败 await db.collection('jjx-review-records').doc(record_id).update({ status: 'failed', result: '审查失败: ' + e.message, error: e.message, update_time: new Date() }); return { code: -1, msg: '审查失败: ' + e.message }; } } };