const express = require('express'); const { getDB } = require('../database'); const router = express.Router(); router.get('/', async (req, res) => { try { const { page = 1, limit = 10, search = '' } = req.query; // 确保参数为有效数字 const pageNum = Math.max(1, parseInt(page) || 1); const limitNum = Math.max(1, Math.min(100, parseInt(limit) || 10)); // 限制最大100条 const offset = Math.max(0, (pageNum - 1) * limitNum); console.log('分页参数:', { pageNum, limitNum, offset, search }); let whereClause = 'WHERE 1=1'; const params = []; if (search) { whereClause += ' AND amount LIKE ?'; params.push(`%${search}%`); } // 获取总数 const countQuery = `SELECT COUNT(*) as total FROM withdrawal ${whereClause}`; const [countResult] = await getDB().execute(countQuery, params); const total = countResult[0].total; // 获取商品列表 const query = ` SELECT id, user_id, amount, status, time FROM withdrawal ${whereClause} ORDER BY time DESC LIMIT ${limitNum} OFFSET ${offset} `; // 确保参数数组正确传递 const queryParams = [...params]; console.log('Query params:', queryParams, 'Query:', query); const [withdrawals] = await getDB().execute(query, queryParams); res.json({ success: true, data: { withdrawals, pagination: { page: pageNum, limit: limitNum, total, pages: Math.ceil(total / limitNum) } } }); } catch (error) { console.error('获取提现列表失败:', error); res.status(500).json({ success: false, message: '获取提现列表失败' }); } });//获取记录 router.post('/:id/approve', async (req, res) => { try { const { id } = req.params; const query = ` UPDATE withdrawal SET status = 'success' WHERE id = ? `; const queryParams = [id]; const [result] = await getDB().execute(query, queryParams); if (result.affectedRows === 0) { return res.status(404).json({ success: false, message: '提现记录不存在' }); } res.json({ success: true, data: { id, status: 'success' } }); } catch (error) { console.error('创建提现记录失败:', error); res.status(500).json({ success: false, message: '创建提现记录失败' }); } });//通过记录 router.post('/:id/reject', async (req, res) => { try { const { id } = req.params; const query = ` UPDATE withdrawal SET status = 'canceled' WHERE id = ? `; const queryParams = [id]; const [result] = await getDB().execute(query, queryParams); if (result.affectedRows === 0) { return res.status(404).json({ success: false, message: '提现记录不存在' }); } res.json({ success: true, data: { id, status: 'canceled' } }); } catch (error) { console.error('创建提现记录失败:', error); res.status(500).json({ success: false, message: '创建提现记录失败' }); } });//拒绝记录 router.post('/', async (req, res) => { try { const { userId, amount } = req.body; if (!userId || !amount) { return res.status(400).json({ success: false, message: '用户ID和金额是必填项' }); } const query = ` INSERT INTO withdrawal (user_id, amount, status, time) VALUES (?, ?, ?, NOW()) `; const queryParams = [userId, amount, 'pending']; const [result] = await getDB().execute(query, queryParams); if (result.affectedRows === 0) { return res.status(404).json({ success: false, message: '提现记录不存在' }); } res.json({ success: true, data: { id: result.insertId, user_id: userId, amount, status: 'pending' } }); } catch (error) { console.error('更新提现记录失败:', error); res.status(500).json({ success: false, message: '更新提现记录失败' }); } }); module.exports = router;