This commit is contained in:
dzl
2025-09-17 09:41:18 +08:00
parent 61476e2b8e
commit ecc9e3046e

View File

@@ -194,13 +194,15 @@ router.get('/merchants/:agent_id', async (req, res) => {
// 首先获取代理的注册时间
const [agentInfo] = await getDB().execute(
`SELECT ra.created_at as agent_created_at, ra.region_id
`SELECT ra.created_at as agent_created_at, ra.region_id, ra.user_id
FROM regional_agents ra
WHERE ra.id = ?`,
[parseInt(agent_id)]
);
const regionId = agentInfo[0].region_id;
const userId = agentInfo[0].user_id;
if (!agentInfo || agentInfo.length === 0) {
return res.status(404).json({success: false, message: '代理不存在'});
}
@@ -215,7 +217,7 @@ router.get('/merchants/:agent_id', async (req, res) => {
u.real_name,
u.created_at,
u.audit_status,
IFNULL(am.created_at, '未关联') as joined_at,
IFNULL(u.created_at, '未关联') as joined_at,
CASE
WHEN u.created_at < ? AND u.district_id = ? THEN 1
ELSE 0
@@ -227,25 +229,20 @@ router.get('/merchants/:agent_id', async (req, res) => {
(SELECT COUNT(*)
FROM matching_orders
WHERE initiator_id = u.id
AND status = 'completed') as completed_matches,
(SELECT COUNT(*)
FROM agent_commission_records
WHERE merchant_id = u.id
AND agent_id = ?) as commission_count
AND status = 'completed') as completed_matches
FROM users u
LEFT JOIN agent_merchants am ON u.id = am.merchant_id AND am.agent_id = ?
WHERE (am.agent_id = ? OR (u.created_at < ? AND u.district_id = ? AND u.role = 'user'))
WHERE (u.inviter = ? OR (u.created_at < ? AND u.district_id = ? AND u.role = 'user'))
ORDER BY u.created_at DESC
LIMIT ${parseInt(limit)} OFFSET ${parseInt(offset)}`,
[agentCreatedAt, parseInt(regionId), agentCreatedAt, parseInt(regionId), parseInt(agent_id), parseInt(agent_id), parseInt(agent_id), agentCreatedAt, parseInt(regionId)]
[agentCreatedAt, parseInt(regionId), agentCreatedAt, parseInt(regionId), parseInt(userId), parseInt(agent_id), parseInt(agent_id), agentCreatedAt, parseInt(regionId)]
);
// 获取总数(包括代理关联的商户和符合条件的早期商户)
const [countResult] = await getDB().execute(
`SELECT COUNT(*) as total
FROM users u
LEFT JOIN agent_merchants am ON u.id = am.merchant_id AND am.agent_id = ?
WHERE (am.agent_id = ? OR (u.created_at < ? AND u.district_id = ? AND u.role = 'user'))`,
WHERE (u.inviter = ? OR (u.created_at < ? AND u.district_id = ? AND u.role = 'user'))`,
[parseInt(agent_id), parseInt(agent_id), agentCreatedAt, parseInt(regionId)]
);
@@ -264,8 +261,7 @@ router.get('/merchants/:agent_id', async (req, res) => {
const [normalMerchantStats] = await getDB().execute(
`SELECT COUNT(*) as normal_merchant_count
FROM users u
LEFT JOIN agent_merchants am ON u.id = am.merchant_id AND am.agent_id = ?
WHERE (am.agent_id = ? AND (u.created_at >= ? OR u.district_id != ?))`,
WHERE (u.inviter = ? AND (u.created_at >= ? OR u.district_id != ?))`,
[parseInt(agent_id), parseInt(agent_id), agentCreatedAt, parseInt(regionId)]
);