'use strict'; /** * 仓储中心 24 小时发货时效 —— HTTP 路由(2026-10-20 新增) * ──────────────────────────────────────────────────────────────────────────── * GET /api/warehouse-ship-timeliness/list * query: * round 'NOON' | 'AFTERNOON' 手动指定核验轮次;不传按当前时刻自动判定 * limit 明细条数上限(默认 500,最大 2000) * * GET /api/warehouse-ship-timeliness/rounds * 只返回今日两轮的描述(页面顶部提示用,不打订单表,秒回) * * 挂载见 src/index.js:`/api/warehouse-ship-timeliness` + authMiddleware */ const express = require('express'); const { getShipTimeliness } = require('../services/warehouseShipTimelinessService'); const { describeRounds, CENTERS } = require('../services/warehouseShipTimelinessRegistry'); const router = express.Router(); function sendError(res, error, fallback) { const status = Number(error?.statusCode) || 500; console.error('[WarehouseShipTimeliness]', { message: error?.message || fallback, code: error?.code || null, status, }); res.status(status).json({ success: false, error: error.message || fallback }); } // 时效总览:每个主仓「超时未发」数量 + 超时订单明细 router.get('/list', async (req, res) => { try { const data = await getShipTimeliness(req.query || {}); res.json({ success: true, data }); } catch (error) { sendError(res, error, '加载仓储中心发货时效失败'); } }); // 仅轮次信息(不查订单) router.get('/rounds', async (_req, res) => { try { res.json({ success: true, data: { rounds: describeRounds(new Date()), centers: CENTERS.map((c) => ({ key: c.key, name: c.name, placeholder: Boolean(c.placeholder), })), }, }); } catch (error) { sendError(res, error, '加载核验轮次失败'); } }); module.exports = router;