提交
This commit is contained in:
@@ -369,35 +369,31 @@ router.get('/:id/merchants', authenticateAdmin, async (req, res) => {
|
||||
const offset = (pageNum - 1) * limitNum;
|
||||
|
||||
// 检查代理是否存在
|
||||
const agentResult = await db.query('SELECT * FROM regional_agents WHERE id = ?', [id]);
|
||||
const agentResult = await db.query(`SELECT * FROM users WHERE id = ? AND (user_type='agent' OR user_type='agent_directly')`, [id]);
|
||||
if (!agentResult || agentResult.length === 0) {
|
||||
return res.status(404).json({ success: false, message: '代理不存在' });
|
||||
}
|
||||
|
||||
// 查询代理的商户列表
|
||||
const merchantsQuery = `
|
||||
SELECT
|
||||
u.id,
|
||||
u.real_name,
|
||||
u.phone,
|
||||
u.created_at,
|
||||
am.created_at as joined_at,
|
||||
COUNT(mo.id) as match_count,
|
||||
COUNT(CASE WHEN mo.status = 'completed' THEN 1 END) as completed_matches
|
||||
FROM agent_merchants am
|
||||
JOIN users u ON am.merchant_id = u.id
|
||||
LEFT JOIN matching_orders mo ON u.id = mo.initiator_id
|
||||
WHERE am.agent_id = ?
|
||||
GROUP BY u.id, am.created_at
|
||||
ORDER BY am.created_at DESC
|
||||
LIMIT ${limitNum} OFFSET ${offset}
|
||||
SELECT u.id,
|
||||
u.real_name,
|
||||
u.phone,
|
||||
u.created_at,
|
||||
u.created_at as joined_at
|
||||
FROM users u
|
||||
WHERE u.inviter = ${id}
|
||||
GROUP BY u.id, u.created_at
|
||||
ORDER BY u.created_at
|
||||
DESC
|
||||
LIMIT ${limitNum} OFFSET ${offset}
|
||||
`;
|
||||
|
||||
const merchants = await db.query(merchantsQuery, [id]);
|
||||
|
||||
// 查询总数
|
||||
const totalResult = await db.query(
|
||||
'SELECT COUNT(*) as total FROM agent_merchants WHERE agent_id = ?',
|
||||
'SELECT COUNT(*) as total FROM users WHERE inviter = ?',
|
||||
[id]
|
||||
);
|
||||
const total = totalResult && totalResult.length > 0 ? totalResult[0].total : 0;
|
||||
@@ -475,13 +471,13 @@ router.get('/:id/merchant-transfers', authenticateAdmin, async (req, res) => {
|
||||
const offset = (pageNum - 1) * limitNum;
|
||||
|
||||
// 检查代理是否存在
|
||||
const agentResult = await db.query('SELECT * FROM regional_agents WHERE id = ?', [id]);
|
||||
if (!agentResult || agentResult.length === 0) {
|
||||
return res.status(404).json({ success: false, message: '代理不存在' });
|
||||
}
|
||||
const agentResult = await db.query(`SELECT * FROM users WHERE id = ? AND (user_type='agent' OR user_type='agent_directly')`, [id]);
|
||||
if (!agentResult || agentResult.length === 0) {
|
||||
return res.status(404).json({ success: false, message: '代理不存在' });
|
||||
}
|
||||
|
||||
// 构建查询条件
|
||||
let whereConditions = ['am.agent_id = ?'];
|
||||
let whereConditions = ['am.inviter = ?'];
|
||||
let queryParams = [id];
|
||||
|
||||
if (merchant_id) {
|
||||
@@ -493,36 +489,35 @@ router.get('/:id/merchant-transfers', authenticateAdmin, async (req, res) => {
|
||||
|
||||
// 查询商户转账记录
|
||||
const transfersQuery = `
|
||||
SELECT
|
||||
t.id,
|
||||
t.from_user_id,
|
||||
t.to_user_id,
|
||||
t.amount,
|
||||
t.status,
|
||||
t.transfer_type,
|
||||
t.description,
|
||||
t.created_at,
|
||||
t.confirmed_at,
|
||||
from_user.real_name as from_real_name,
|
||||
CONCAT(SUBSTRING(from_user.phone, 1, 3), '****', SUBSTRING(from_user.phone, -4)) as from_phone_masked,
|
||||
to_user.real_name as to_real_name,
|
||||
CONCAT(SUBSTRING(to_user.phone, 1, 3), '****', SUBSTRING(to_user.phone, -4)) as to_phone_masked
|
||||
FROM agent_merchants am
|
||||
JOIN transfers t ON am.merchant_id = t.from_user_id
|
||||
LEFT JOIN users from_user ON t.from_user_id = from_user.id
|
||||
LEFT JOIN users to_user ON t.to_user_id = to_user.id
|
||||
WHERE ${whereClause}
|
||||
ORDER BY t.created_at DESC
|
||||
LIMIT ${limitNum} OFFSET ${offset}
|
||||
SELECT t.id,
|
||||
t.from_user_id,
|
||||
t.to_user_id,
|
||||
t.amount,
|
||||
t.status,
|
||||
t.transfer_type,
|
||||
t.description,
|
||||
t.created_at,
|
||||
t.confirmed_at,
|
||||
from_user.real_name as from_real_name,
|
||||
CONCAT(SUBSTRING(from_user.phone, 1, 3), '****', SUBSTRING(from_user.phone, -4)) as from_phone_masked,
|
||||
to_user.real_name as to_real_name,
|
||||
CONCAT(SUBSTRING(to_user.phone, 1, 3), '****', SUBSTRING(to_user.phone, -4)) as to_phone_masked
|
||||
FROM users as am
|
||||
JOIN transfers t ON am.id = t.from_user_id
|
||||
LEFT JOIN users from_user ON t.from_user_id = from_user.id
|
||||
LEFT JOIN users to_user ON t.to_user_id = to_user.id
|
||||
WHERE ${whereClause}
|
||||
ORDER BY t.created_at DESC
|
||||
LIMIT ${limitNum} OFFSET ${offset}
|
||||
`;
|
||||
|
||||
console.log(transfersQuery,queryParams);
|
||||
const transfers = await db.query(transfersQuery, queryParams);
|
||||
|
||||
// 查询总数
|
||||
const totalQuery = `
|
||||
SELECT COUNT(*) as total
|
||||
FROM agent_merchants am
|
||||
JOIN transfers t ON am.merchant_id = t.from_user_id
|
||||
FROM users am
|
||||
JOIN transfers t ON am.id = t.from_user_id
|
||||
WHERE ${whereClause}
|
||||
`;
|
||||
const totalResult = await db.query(totalQuery, queryParams);
|
||||
|
||||
Reference in New Issue
Block a user