From 65bd4f9b653179b997815790c9ba5922c52add56 Mon Sep 17 00:00:00 2001 From: hailin Date: Tue, 13 Jan 2026 01:21:01 -0800 Subject: [PATCH] fix(mining-admin): remove MINING_ENABLED status filter for adoption stats The adoption stats were showing 0 because the synced_adoptions table contains status values directly from 1.0 system (PAID, POOL_INJECTED, etc.) rather than MINING_ENABLED. Since contribution-service doesn't update the status after calculating contributions, we now count all synced adoptions. Changes: - Remove status filter in getAdoptionStatsForUsers - Remove status filter in getUserDetail adoption queries - Remove status filter in getUserAdoptionStats for referral tree - Add order count display in user detail page Co-Authored-By: Claude Opus 4.5 --- .../src/application/services/users.service.ts | 21 +++++++------------ .../users/[accountSequence]/page.tsx | 18 ++++++++++++++-- 2 files changed, 24 insertions(+), 15 deletions(-) diff --git a/backend/services/mining-admin-service/src/application/services/users.service.ts b/backend/services/mining-admin-service/src/application/services/users.service.ts index 266b05eb..479aa8de 100644 --- a/backend/services/mining-admin-service/src/application/services/users.service.ts +++ b/backend/services/mining-admin-service/src/application/services/users.service.ts @@ -111,12 +111,11 @@ export class UsersService { if (accountSequences.length === 0) return result; - // 获取每个用户的个人认种数量和订单数(只统计 MINING_ENABLED 状态) + // 获取每个用户的个人认种数量和订单数(统计所有已同步的认种记录) const personalAdoptions = await this.prisma.syncedAdoption.groupBy({ by: ['accountSequence'], where: { accountSequence: { in: accountSequences }, - status: 'MINING_ENABLED', }, _sum: { treeCount: true }, _count: { id: true }, @@ -159,7 +158,6 @@ export class UsersService { const teamAdoptionStats = await this.prisma.syncedAdoption.aggregate({ where: { accountSequence: { in: teamMembers.map((m) => m.accountSequence) }, - status: 'MINING_ENABLED', }, _sum: { treeCount: true }, _count: { id: true }, @@ -221,9 +219,9 @@ export class UsersService { throw new NotFoundException(`用户 ${accountSequence} 不存在`); } - // 获取个人认种数量(从 synced_adoptions 统计,只统计 MINING_ENABLED 状态) + // 获取个人认种数量(从 synced_adoptions 统计) const personalAdoptionStats = await this.prisma.syncedAdoption.aggregate({ - where: { accountSequence, status: 'MINING_ENABLED' }, + where: { accountSequence }, _sum: { treeCount: true }, _count: { id: true }, }); @@ -235,7 +233,7 @@ export class UsersService { }); const directReferralCount = directReferrals.length; - // 获取直推认种数量(只统计 MINING_ENABLED 状态) + // 获取直推认种数量 let directReferralAdoptions = 0; if (directReferrals.length > 0) { const directAdoptionStats = await this.prisma.syncedAdoption.aggregate({ @@ -243,7 +241,6 @@ export class UsersService { accountSequence: { in: directReferrals.map((r) => r.accountSequence), }, - status: 'MINING_ENABLED', }, _sum: { treeCount: true }, }); @@ -277,7 +274,6 @@ export class UsersService { accountSequence: { in: teamMembers.map((m) => m.accountSequence), }, - status: 'MINING_ENABLED', }, _sum: { treeCount: true }, }); @@ -579,14 +575,14 @@ export class UsersService { } /** - * 获取用户认种统计(只统计 MINING_ENABLED 状态) + * 获取用户认种统计 */ private async getUserAdoptionStats( accountSequence: string, ): Promise<{ personal: number; team: number }> { - // 个人认种(只统计 MINING_ENABLED 状态) + // 个人认种 const personalStats = await this.prisma.syncedAdoption.aggregate({ - where: { accountSequence, status: 'MINING_ENABLED' }, + where: { accountSequence }, _sum: { treeCount: true }, }); @@ -598,7 +594,7 @@ export class UsersService { let teamCount = 0; if (referral?.originalUserId) { - // 团队认种 = 所有下级的认种总和(只统计 MINING_ENABLED 状态) + // 团队认种 = 所有下级的认种总和 const teamMembers = await this.prisma.syncedReferral.findMany({ where: { ancestorPath: { contains: referral.originalUserId.toString() }, @@ -610,7 +606,6 @@ export class UsersService { const teamStats = await this.prisma.syncedAdoption.aggregate({ where: { accountSequence: { in: teamMembers.map((m) => m.accountSequence) }, - status: 'MINING_ENABLED', }, _sum: { treeCount: true }, }); diff --git a/frontend/mining-admin-web/src/app/(dashboard)/users/[accountSequence]/page.tsx b/frontend/mining-admin-web/src/app/(dashboard)/users/[accountSequence]/page.tsx index 5c4eeb33..a6377890 100644 --- a/frontend/mining-admin-web/src/app/(dashboard)/users/[accountSequence]/page.tsx +++ b/frontend/mining-admin-web/src/app/(dashboard)/users/[accountSequence]/page.tsx @@ -145,13 +145,27 @@ export default function UserDetailPage() {

个人认种

-

{formatNumber(user?.personalAdoptions ?? 0)}

+

+ {formatNumber(user?.personalAdoptions ?? 0)} + {(user?.personalAdoptionOrders ?? 0) > 0 && ( + + ({user?.personalAdoptionOrders}单) + + )} +

团队认种

-

{formatNumber(user?.teamAdoptions ?? 0)}

+

+ {formatNumber(user?.teamAdoptions ?? 0)} + {(user?.teamAdoptionOrders ?? 0) > 0 && ( + + ({user?.teamAdoptionOrders}单) + + )} +

团队地址