From 17df9b6df178a3959adf1df22f1c42c39001f4fc Mon Sep 17 00:00:00 2001 From: hailin Date: Mon, 2 Mar 2026 04:17:38 -0800 Subject: [PATCH] =?UTF-8?q?feat(admin):=20=E9=A2=84=E7=A7=8D=E7=AE=A1?= =?UTF-8?q?=E7=90=86=E9=A1=B5=E6=B7=BB=E5=8A=A0"=E5=BE=85=E5=90=88?= =?UTF-8?q?=E5=B9=B6=E6=80=BB=E9=87=8F"=E7=BB=9F=E8=AE=A1=E9=A1=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - planting-service stats 端点新增 pendingMergePortions 字段 从 PrePlantingPosition 表聚合 SUM(available_portions) - admin-web 统计卡片区新增"待合并总量(份)"显示 - 网格布局从 4 列调整为 5 列 Co-Authored-By: Claude Opus 4.6 --- .../api/controllers/internal-pre-planting.controller.ts | 3 +++ .../admin-web/src/app/(dashboard)/pre-planting/page.tsx | 6 ++++++ .../app/(dashboard)/pre-planting/pre-planting.module.scss | 2 +- 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/backend/services/planting-service/src/pre-planting/api/controllers/internal-pre-planting.controller.ts b/backend/services/planting-service/src/pre-planting/api/controllers/internal-pre-planting.controller.ts index f28fdc4e..d97a25d6 100644 --- a/backend/services/planting-service/src/pre-planting/api/controllers/internal-pre-planting.controller.ts +++ b/backend/services/planting-service/src/pre-planting/api/controllers/internal-pre-planting.controller.ts @@ -244,6 +244,7 @@ export class InternalPrePlantingController { treesMergedAgg, totalUsers, pendingContracts, + pendingPortionsAgg, ] = await Promise.all([ this.prisma.prePlantingOrder.count(), this.prisma.prePlantingOrder.aggregate({ _sum: { portionCount: true } }), @@ -255,6 +256,7 @@ export class InternalPrePlantingController { this.prisma.prePlantingMerge.aggregate({ _sum: { treeCount: true } }), this.prisma.prePlantingPosition.count(), this.prisma.prePlantingMerge.count({ where: { contractStatus: 'PENDING' } }), + this.prisma.prePlantingPosition.aggregate({ _sum: { availablePortions: true } }), ]); return { @@ -265,6 +267,7 @@ export class InternalPrePlantingController { totalTreesMerged: treesMergedAgg._sum.treeCount ?? 0, totalUsers, pendingContracts, + pendingMergePortions: pendingPortionsAgg._sum.availablePortions ?? 0, }; } diff --git a/frontend/admin-web/src/app/(dashboard)/pre-planting/page.tsx b/frontend/admin-web/src/app/(dashboard)/pre-planting/page.tsx index 02a3c966..5b733f90 100644 --- a/frontend/admin-web/src/app/(dashboard)/pre-planting/page.tsx +++ b/frontend/admin-web/src/app/(dashboard)/pre-planting/page.tsx @@ -280,6 +280,12 @@ export default function PrePlantingPage() {
总金额 (绿积分)
+
+
+ {statsLoading ? '-' : formatNumber(stats?.pendingMergePortions ?? 0)} +
+
待合并总量(份)
+
{statsLoading ? '-' : formatNumber(stats?.totalTreesMerged ?? 0)} diff --git a/frontend/admin-web/src/app/(dashboard)/pre-planting/pre-planting.module.scss b/frontend/admin-web/src/app/(dashboard)/pre-planting/pre-planting.module.scss index efa24fd4..7374ff51 100644 --- a/frontend/admin-web/src/app/(dashboard)/pre-planting/pre-planting.module.scss +++ b/frontend/admin-web/src/app/(dashboard)/pre-planting/pre-planting.module.scss @@ -154,7 +154,7 @@ // 统计卡片网格 &__statsGrid { display: grid; - grid-template-columns: repeat(4, 1fr); + grid-template-columns: repeat(5, 1fr); gap: 16px; @media (max-width: 1200px) {