From d158eb66602278d6f02b767b6639463ec4b671cb Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Fri, 23 Jan 2026 10:43:59 +0800
Subject: [PATCH] fix(ai): 解决会员学习数据转换中的空指针异常

---
 src/main/java/cc/mrbird/febs/ai/service/impl/AiMemberServiceImpl.java |   20 +++++++++++++++-----
 1 files changed, 15 insertions(+), 5 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 2da1918..7d97403 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
@@ -270,11 +270,21 @@
             return new FebsResponse().success().data(vos);
         }
 
-        for (AiMemberPoint aiMemberPoint : aiMemberPoints){
-            ApiMemberTeamStudyVo vo = new ApiMemberTeamStudyVo();
-            vo.setTitle(productPointMap.get(aiMemberPoint.getProductPointId()).getTitle());
-            vo.setTotalTime(DateUtil.secondToTime(aiMemberPoint.getTotalTime()));
-            vos.add(vo);
+        for (AiMemberPoint aiMemberPoint : aiMemberPoints) {
+            String productPointId = aiMemberPoint.getProductPointId();
+            AiProductPoint productPoint = productPointMap.get(productPointId);
+
+            // 检查 productPoint 是否存在
+            if (productPoint != null) {
+                ApiMemberTeamStudyVo vo = new ApiMemberTeamStudyVo();
+                vo.setTitle(productPoint.getTitle());
+
+                // 检查 totalTime 是否为 null
+                Integer totalTime = aiMemberPoint.getTotalTime();
+                vo.setTotalTime(DateUtil.secondToTime(totalTime != null ? totalTime : 0));
+
+                vos.add(vo);
+            }
         }
 
         return new FebsResponse().success().data(vos);

--
Gitblit v1.9.1