SFT/mock-server/routes/order.js

45 lines
1.9 KiB
JavaScript

// 订单管理路由:/api/summary-order/*(汇总订单)+ /api/original-order/*(原始订单)。
// 严格对齐真实接口能力:summary-order/page 仅支持 orderNo;original-order/page 仅支持
// originalOrderNo(不支持按 summaryOrderId 过滤);export 响应结构未文档化,沿用
// {fileData: base64} 假设。
import express from 'express'
import { summaryOrders, originalOrders } from '../db/seedOrder.js'
import { paginate } from '../utils/pagination.js'
import { sendOk, sendFail } from '../utils/response.js'
import { requireAuth } from '../middleware/requireAuth.js'
const router = express.Router()
router.use(requireAuth)
// ---------------- 汇总订单 ----------------
router.post('/summary-order/page', (req, res) => {
const { orderNo, page, pageSize } = req.body || {}
let list = summaryOrders
if (orderNo) list = list.filter((o) => o.orderNo.includes(orderNo))
sendOk(res, paginate(list, page, pageSize))
})
router.post('/summary-order/detail', (req, res) => {
const { id } = req.body || {}
const order = summaryOrders.find((o) => o.id === id)
if (!order) return sendFail(res, '汇总订单不存在', 404)
sendOk(res, order)
})
// ---------------- 原始订单 ----------------
router.post('/original-order/page', (req, res) => {
const { originalOrderNo, page, pageSize } = req.body || {}
let list = originalOrders
if (originalOrderNo) list = list.filter((o) => o.originalOrderNo.includes(originalOrderNo))
sendOk(res, paginate(list, page, pageSize))
})
router.post('/original-order/export', (req, res) => {
// 响应结构未文档化,mock 沿用项目既有 {fileData: base64} 约定,返回一个可直接被
// xlsx 解析工具识别的最小占位内容(此处用简单文本 base64 编码模拟,仅用于打通下载流程)。
const placeholderContent = Buffer.from('mock-original-order-export-placeholder').toString('base64')
sendOk(res, { fileData: placeholderContent }, '导出成功')
})
export default router