const express = require('express'); const router = express.Router(); const Transaction = require('../models/Transaction'); // 获取群组交易记录(不需要认证) router.get('/transactions', async (req, res) => { try { const { page = 1, limit = 10, groupId } = req.query; if (!groupId) { return res.status(400).json({ message: '缺少群组ID参数' }); } console.log('查询参数:', { page, limit, groupId }); // 获取交易记录 const result = await Transaction.findAll( { groupId: groupId.toString() }, parseInt(page), parseInt(limit) ); console.log('查询结果:', result); // 获取统计数据 const today = new Date(); today.setHours(0, 0, 0, 0); const firstDayOfMonth = new Date(today.getFullYear(), today.getMonth(), 1); // 获取今日收入 const todayResult = await Transaction.findAll( { groupId: groupId.toString(), startDate: today.toISOString().split('T')[0], type: 'deposit' }, 1, 1000000 ); const todayIncome = todayResult.transactions.reduce((sum, t) => sum + parseFloat(t.amount), 0); // 获取本月收入 const monthResult = await Transaction.findAll( { groupId: groupId.toString(), startDate: firstDayOfMonth.toISOString().split('T')[0], type: 'deposit' }, 1, 1000000 ); const monthIncome = monthResult.transactions.reduce((sum, t) => sum + parseFloat(t.amount), 0); // 获取总收入 const totalResult = await Transaction.findAll( { groupId: groupId.toString(), type: 'deposit' }, 1, 1000000 ); const totalIncome = totalResult.transactions.reduce((sum, t) => sum + parseFloat(t.amount), 0); // 获取今日订单数 const todayOrdersResult = await Transaction.findAll( { groupId: groupId.toString(), startDate: today.toISOString().split('T')[0] }, 1, 1000000 ); const todayOrders = todayOrdersResult.transactions.length; // 计算总结数据 const depositCount = totalResult.transactions.length; const withdrawResult = await Transaction.findAll( { groupId: groupId.toString(), type: 'withdrawal' }, 1, 1000000 ); const withdrawCount = withdrawResult.transactions.length; const totalWithdraw = withdrawResult.transactions.reduce((sum, t) => sum + parseFloat(t.amount), 0); // 计算费率(示例:入款费率1%,下发费率0.5%) const depositFeeRate = 1; const withdrawFeeRate = 0.5; const singleWithdrawFee = 1; // 单笔附加费1元 // 计算应下发金额(入款总额 * (1 - 入款费率)) const shouldWithdraw = totalIncome * (1 - depositFeeRate / 100); // 计算下发附加费总额 const totalWithdrawFee = withdrawCount * singleWithdrawFee; // 计算余额(应下发 - 总下发 - 下发附加费总额) const balance = shouldWithdraw - totalWithdraw - totalWithdrawFee; res.json({ transactions: result.transactions, total: result.total, statistics: { todayIncome, monthIncome, totalIncome, todayOrders }, summary: { totalDeposit: totalIncome, depositCount, depositFeeRate, shouldWithdraw, totalWithdraw, withdrawCount, withdrawFeeRate, singleWithdrawFee, totalWithdrawFee, balance } }); } catch (error) { console.error('获取群组交易记录失败:', error); res.status(500).json({ message: '获取群组交易记录失败' }); } }); module.exports = router;