Переглянути джерело

chore: 合并远程更新(Java 8 NPE修复 + HealthCircle + PROJECT-OVERVIEW P2-2/P3 状态)

Xiaogang Liao 1 місяць тому
батько
коміт
d382834f88

+ 3 - 2
cfc-backend/src/main/java/com/etotem/cfc/controller/PromotionController.java

@@ -6,6 +6,7 @@ import com.etotem.cfc.entity.FamilyCommission;
 import com.etotem.cfc.entity.PromotionBinding;
 import com.etotem.cfc.service.FamilyCommissionService;
 import org.springframework.web.bind.annotation.*;
+
 import javax.annotation.Resource;
 import java.util.List;
 import java.util.Map;
@@ -18,7 +19,7 @@ public class PromotionController {
     private FamilyCommissionService familyCommissionService;
 
     @PostMapping("/bind")
-    public Result<PromotionBinding> bind(@RequestBody Map<String, Object> params) {
+    public Result<Object> bind(@RequestBody Map<String, Object> params) {
         String inviteCode = params.get("inviteCode") != null ? params.get("inviteCode").toString() : null;
         Long promoterFamilyId = params.get("promoterFamilyId") != null
                 ? Long.valueOf(params.get("promoterFamilyId").toString()) : null;
@@ -60,4 +61,4 @@ public class PromotionController {
         List bindings = familyCommissionService.getBindings(familyId);
         return Result.success(bindings);
     }
-}
+}

+ 4 - 2
cfc-backend/src/main/java/com/etotem/cfc/service/HealthCircleService.java

@@ -186,14 +186,16 @@ public class HealthCircleService {
         LambdaQueryWrapper<HealthCircleMember> mw = new LambdaQueryWrapper<HealthCircleMember>()
                 .eq(HealthCircleMember::getFamilyId, familyId)
                 .eq(HealthCircleMember::getStatus, "active");
-        return (int) (long) healthCircleMemberMapper.selectCount(mw);
+        Long count = healthCircleMemberMapper.selectCount(mw);
+        return count != null ? count.intValue() : 0;
     }
 
     private int countCircleMembers(Long circleId) {
         LambdaQueryWrapper<HealthCircleMember> mw = new LambdaQueryWrapper<HealthCircleMember>()
                 .eq(HealthCircleMember::getCircleId, circleId)
                 .eq(HealthCircleMember::getStatus, "active");
-        return (int) (long) healthCircleMemberMapper.selectCount(mw);
+        Long count = healthCircleMemberMapper.selectCount(mw);
+        return count != null ? count.intValue() : 0;
     }
 
     private String generateInviteCode() {

+ 3 - 3
docs/superpowers/PROJECT-OVERVIEW.md

@@ -381,12 +381,12 @@
 | **P1-1** | 即时多巴胺反馈 | ② 持续坚持 | 动画/声音/AI鼓励提供即时爽点,闭环多巴胺回路 | ✅ |
 | **P1-2** | 健康行为智能预警 | ② 持续坚持 | 趋势解读+触发建议,让死数据变活提醒 | ✅ |
 | **P2-1** | 身份重塑系统 | ④ 身份重塑 | 5级称号+健康积分+时间线叙事,从执行者到健康达人 | ✅ |
-| **P2-2** | 家庭健康互动 | ⑤ 意见领袖化 | 排行榜+点赞+挑战,家庭内部互促 |  |
-| **P3** | 健康社区扩散 | ⑥ 社会扩散 | 健康圈+分享页,家庭→社区扩散 |  |
+| **P2-2** | 家庭健康互动 | ⑤ 意见领袖化 | 排行榜+点赞+挑战,家庭内部互促 | ✅ 后端全完成(FamilyChallenge/HealthInteraction等实体+Controller/Service+schema表全部存在) |
+| **P3** | 健康社区扩散 | ⑥ 社会扩散 | 健康圈+分享页,家庭→社区扩散 | ✅ 后端全完成(HealthCircle/CircleChallenge/Share等实体+Controller/Service+schema表全部存在) |
 
 ### 新增文件总览
 
-**后端(Java):** 约 25 个新建文件(Controller/Service/Entity/Mapper)
+**后端(Java):** 约 25 个文件(Controller/Service/Entity/Mapper)— **全部已实现**
 
 | 优先级 | 新建 Controller | 新建 Service | 新建 Entity |
 |:-------|:----------------|:-------------|:------------|