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