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( 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 FROM regional_agents ra
WHERE ra.id = ?`, WHERE ra.id = ?`,
[parseInt(agent_id)] [parseInt(agent_id)]
); );
const regionId = agentInfo[0].region_id; const regionId = agentInfo[0].region_id;
const userId = agentInfo[0].user_id;
if (!agentInfo || agentInfo.length === 0) { if (!agentInfo || agentInfo.length === 0) {
return res.status(404).json({success: false, message: '代理不存在'}); return res.status(404).json({success: false, message: '代理不存在'});
} }
@@ -215,7 +217,7 @@ router.get('/merchants/:agent_id', async (req, res) => {
u.real_name, u.real_name,
u.created_at, u.created_at,
u.audit_status, u.audit_status,
IFNULL(am.created_at, '未关联') as joined_at, IFNULL(u.created_at, '未关联') as joined_at,
CASE CASE
WHEN u.created_at < ? AND u.district_id = ? THEN 1 WHEN u.created_at < ? AND u.district_id = ? THEN 1
ELSE 0 ELSE 0
@@ -227,25 +229,20 @@ router.get('/merchants/:agent_id', async (req, res) => {
(SELECT COUNT(*) (SELECT COUNT(*)
FROM matching_orders FROM matching_orders
WHERE initiator_id = u.id WHERE initiator_id = u.id
AND status = 'completed') as completed_matches, AND status = 'completed') as completed_matches
(SELECT COUNT(*)
FROM agent_commission_records
WHERE merchant_id = u.id
AND agent_id = ?) as commission_count
FROM users u FROM users u
LEFT JOIN agent_merchants am ON u.id = am.merchant_id AND am.agent_id = ? WHERE (u.inviter = ? OR (u.created_at < ? AND u.district_id = ? AND u.role = 'user'))
WHERE (am.agent_id = ? OR (u.created_at < ? AND u.district_id = ? AND u.role = 'user'))
ORDER BY u.created_at DESC ORDER BY u.created_at DESC
LIMIT ${parseInt(limit)} OFFSET ${parseInt(offset)}`, 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( const [countResult] = await getDB().execute(
`SELECT COUNT(*) as total `SELECT COUNT(*) as total
FROM users u FROM users u
LEFT JOIN agent_merchants am ON u.id = am.merchant_id AND am.agent_id = ? WHERE (u.inviter = ? OR (u.created_at < ? AND u.district_id = ? AND u.role = 'user'))`,
WHERE (am.agent_id = ? OR (u.created_at < ? AND u.district_id = ? AND u.role = 'user'))`,
[parseInt(agent_id), parseInt(agent_id), agentCreatedAt, parseInt(regionId)] [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( const [normalMerchantStats] = await getDB().execute(
`SELECT COUNT(*) as normal_merchant_count `SELECT COUNT(*) as normal_merchant_count
FROM users u FROM users u
LEFT JOIN agent_merchants am ON u.id = am.merchant_id AND am.agent_id = ? WHERE (u.inviter = ? AND (u.created_at >= ? OR u.district_id != ?))`,
WHERE (am.agent_id = ? AND (u.created_at >= ? OR u.district_id != ?))`,
[parseInt(agent_id), parseInt(agent_id), agentCreatedAt, parseInt(regionId)] [parseInt(agent_id), parseInt(agent_id), agentCreatedAt, parseInt(regionId)]
); );