'use strict'; const express = require('express'); const { listPresaleTasks } = require('../services/presaleTaskService'); const { requireExternalAutomationApiKey, requireDesktopPageAccess, } = require('../services/externalAutomationAuth'); const router = express.Router(); const requirePresaleAccess = requireDesktopPageAccess('planning_upload'); function handleError(res, error, fallbackMessage) { const statusCode = error.statusCode || error.status || 500; if (statusCode >= 500) { console.error('[PresaleExternalAPI] 请求失败:', error); } return res.status(statusCode).json({ success: false, error: error.message || fallbackMessage, data: error.data || undefined, }); } router.get('/tasks', requireExternalAutomationApiKey, requirePresaleAccess, async (req, res) => { try { const query = { ...(req.query || {}) }; if (req.externalApiKey?.authType === 'jwt') { query.dingtalkUserName = String(req.user?.name || req.user?.username || '').trim(); } const data = await listPresaleTasks(query); res.setHeader('Cache-Control', 'no-store'); return res.json({ success: true, data }); } catch (error) { return handleError(res, error, '查询预售处理数据失败'); } }); module.exports = router;