From b0edd6c4bd7912e706ef3af5a221caf0d6c78fac Mon Sep 17 00:00:00 2001
From: shinnosuke <tantao@1hoper.com>
Date: 星期四, 27 八月 2026 09:52:44 +0800
Subject: [PATCH] fix: align miniapp services and admin dashboard

---
 talent-card-server/src/main/java/com/talentcard/server/service/AdminWorkbenchStatisticsService.java |   25 ++++++++++++++++++++++++-
 1 files changed, 24 insertions(+), 1 deletions(-)

diff --git a/talent-card-server/src/main/java/com/talentcard/server/service/AdminWorkbenchStatisticsService.java b/talent-card-server/src/main/java/com/talentcard/server/service/AdminWorkbenchStatisticsService.java
index ddf2cb0..3c847f6 100644
--- a/talent-card-server/src/main/java/com/talentcard/server/service/AdminWorkbenchStatisticsService.java
+++ b/talent-card-server/src/main/java/com/talentcard/server/service/AdminWorkbenchStatisticsService.java
@@ -44,6 +44,10 @@
         result.put("talentCompare", number(compareRow.get("talentCompare")));
         result.put("monthlyVerificationCompare", number(compareRow.get("monthlyVerificationCompare")));
         result.put("subsidyCompare", money(number(compareRow.get("subsidyCompareCents"))));
+        List<Map<String, Object>> summaryTrend = mapper.selectSummaryTrend();
+        result.put("talentSpark", trendValues(summaryTrend, "talent"));
+        result.put("verificationSpark", trendValues(summaryTrend, "verification"));
+        result.put("subsidySpark", trendValues(summaryTrend, "subsidy"));
         result.put("budgetConfigured", false);
         result.put("budgetUsageRate", BigDecimal.ZERO.setScale(2));
         result.put("budgetUsageRateText", "0.00%");
@@ -95,6 +99,25 @@
         alerts.add(alert);
     }
 
+    private List<BigDecimal> trendValues(List<Map<String, Object>> rows, String key) {
+        if (rows == null) {
+            return List.of();
+        }
+        return rows.stream()
+                .map(row -> decimal(row.get(key)))
+                .toList();
+    }
+
+    private BigDecimal decimal(Object value) {
+        if (value instanceof BigDecimal decimal) {
+            return decimal;
+        }
+        if (value instanceof Number number) {
+            return BigDecimal.valueOf(number.doubleValue());
+        }
+        return BigDecimal.ZERO;
+    }
+
     private long number(Object value) {
         return value instanceof Number n ? n.longValue() : 0L;
     }
@@ -102,4 +125,4 @@
     private BigDecimal money(long cents) {
         return BigDecimal.valueOf(cents, 2).setScale(2, RoundingMode.HALF_UP);
     }
-}
\ No newline at end of file
+}

--
Gitblit v1.7.1