53 lines
1.7 KiB
JavaScript
53 lines
1.7 KiB
JavaScript
// 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 };
|
|
}
|
|
}
|
|
}; |