From cd35010f827a0de3f125f714b576c10aab7afc12 Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Mon, 22 Sep 2025 17:11:26 +0800
Subject: [PATCH] ``` feat(ai): 优化会员积分统计逻辑以支持多条记录聚合

---
 src/main/java/cc/mrbird/febs/ai/service/impl/AiMemberServiceImpl.java |   10 +++++++---
 1 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/ai/service/impl/AiMemberServiceImpl.java b/src/main/java/cc/mrbird/febs/ai/service/impl/AiMemberServiceImpl.java
index f7c232f..5dc5c78 100644
--- a/src/main/java/cc/mrbird/febs/ai/service/impl/AiMemberServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/ai/service/impl/AiMemberServiceImpl.java
@@ -251,9 +251,10 @@
         if (CollUtil.isEmpty(aiMemberPoints)){
             return new FebsResponse().success().data(vos);
         }
-        Map<String, AiMemberPoint> aiMemberPointMap = new HashMap<>();
+        Map<String, List<AiMemberPoint>> aiMemberPointMap = new HashMap<>();
         if (CollUtil.isNotEmpty(aiMemberPoints)){
-            aiMemberPoints.forEach(aiMemberPoint -> aiMemberPointMap.put(aiMemberPoint.getProductPointId(),aiMemberPoint));
+            //stream操作aiMemberPoints,返回一个Map<productPointId,List<AiMemberPoint>>
+            aiMemberPointMap = aiMemberPoints.stream().collect(Collectors.groupingBy(AiMemberPoint::getProductPointId));
         }
 
         //stream流操作aiMemberPoints,返回一个productPointId的set集合
@@ -273,7 +274,10 @@
             vo.setTitle(aiProductPoint.getTitle());
             Integer totalTime = 0;
             if (aiMemberPointMap.containsKey(aiProductPoint.getId())){
-                totalTime = aiMemberPointMap.get(aiProductPoint.getId()).getTotalTime();
+                List<AiMemberPoint> memberPoints = aiMemberPointMap.get(aiProductPoint.getId());
+                for (AiMemberPoint memberPoint : memberPoints){
+                    totalTime += memberPoint.getTotalTime();
+                }
             }
             vo.setTotalTime(DateUtil.secondToTime(totalTime));
 

--
Gitblit v1.9.1