|
|
@@ -100,7 +100,7 @@ const STATUS_MAP = {
|
|
|
// 动态查询订单
|
|
|
router.post('/query', authMiddleware, async (req, res) => {
|
|
|
try {
|
|
|
- const { receiver_name, receiver_phone, order_no, start_date, end_date, status } = req.body;
|
|
|
+ const { receiver_name, receiver_phone, order_no, start_date, end_date, status, page = 1, pageSize = 20 } = req.body;
|
|
|
|
|
|
let sql = `
|
|
|
SELECT
|
|
|
@@ -173,12 +173,19 @@ router.post('/query', authMiddleware, async (req, res) => {
|
|
|
paramIndex++;
|
|
|
}
|
|
|
|
|
|
+ const countSql = sql.replace(/SELECT[\s\S]*?FROM/, 'SELECT COUNT(*) AS total FROM');
|
|
|
+ const countResult = await pool.query(countSql, params);
|
|
|
+ const total = parseInt(countResult.rows[0].total);
|
|
|
+
|
|
|
+ const pageNum = Math.max(1, parseInt(page));
|
|
|
+ const pageSizeNum = Math.max(1, Math.min(100, parseInt(pageSize)));
|
|
|
sql += ' ORDER BY c.batch_no, o.create_time, o.order_no';
|
|
|
+ sql += ` LIMIT $${paramIndex} OFFSET $${paramIndex + 1}`;
|
|
|
+ params.push(pageSizeNum, (pageNum - 1) * pageSizeNum);
|
|
|
|
|
|
const result = await pool.query(sql, params);
|
|
|
- // 记录查询日志
|
|
|
- await logOperation(req.user.username, req.user.role, '查询订单', `条件: 状态=${status||'全部'}, 收货人=${receiver_name||'-'}, 手机号=${receiver_phone||'-'}, 订单号=${order_no||'-'}, 日期=${start_date||'-'}~${end_date||'-'}`, req.ip);
|
|
|
- res.json({ success: true, data: result.rows, total: result.rows.length });
|
|
|
+ await logOperation(req.user.username, req.user.role, '查询订单', `条件: 状态=${status||'全部'}, 收货人=${receiver_name||'-'}, 手机号=${receiver_phone||'-'}, 订单号=${order_no||'-'}, 日期=${start_date||'-'}~${end_date||'-'}, 第${pageNum}页`, req.ip);
|
|
|
+ res.json({ success: true, data: result.rows, total, page: pageNum, pageSize: pageSizeNum });
|
|
|
} catch (err) {
|
|
|
console.error('查询订单失败:', err);
|
|
|
res.status(500).json({ success: false, message: err.message });
|