Răsfoiți Sursa

fix: childId→familyMemberId 引用统一(19处TaskService)

Ultraworked with Sisyphus

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
asus 2 luni în urmă
părinte
comite
c5fbdb505b

+ 15 - 14
cfc-backend/src/main/java/com/etotem/cfc/service/TaskService.java

@@ -172,6 +172,7 @@ public class TaskService implements TaskServiceInterface {
         
         if ("child".equals(executorType)) {
             task.setExecutorId(memberId);
+            task.setFamilyMemberId(memberId);
             task.setChildId(memberId);
         } else if ("member".equals(executorType)) {
             task.setExecutorId(memberId);
@@ -317,7 +318,7 @@ public List<Task> getTodayTasks(Long memberId, String dimensionCode) {
         Date endOfDay = calendar.getTime();
 
         LambdaQueryWrapper<Task> wrapper = new LambdaQueryWrapper<Task>()
-            .eq(Task::getChildId, memberId)
+            .eq(Task::getFamilyMemberId, memberId)
             .ge(Task::getDeadline, startOfDay)
             .lt(Task::getDeadline, endOfDay)
             .in(Task::getStatus, Arrays.asList("pending", "completed", "locked"))
@@ -381,7 +382,7 @@ public List<Task> getTodayTasks(Long memberId, String dimensionCode) {
         Date endOfDay = calendar.getTime();
 
         return filterLockedChildren(taskMapper.selectList(new LambdaQueryWrapper<Task>()
-                .eq(Task::getChildId, memberId)
+                .eq(Task::getFamilyMemberId, memberId)
                 .eq(Task::getCategory, category)
                 .ge(Task::getDeadline, startOfDay)
                 .lt(Task::getDeadline, endOfDay)
@@ -413,7 +414,7 @@ public List<Task> getTodayTasks(Long memberId, String dimensionCode) {
 
         List<Task> allTasks = taskMapper.selectList(
             new LambdaQueryWrapper<Task>()
-                .eq(Task::getChildId, memberId)
+                .eq(Task::getFamilyMemberId, memberId)
                 .between(Task::getDeadline, todayStart, todayEnd)
         );
 
@@ -425,7 +426,7 @@ public List<Task> getTodayTasks(Long memberId, String dimensionCode) {
 
         List<Task> pendingReview = taskMapper.selectList(
             new LambdaQueryWrapper<Task>()
-                .eq(Task::getChildId, memberId)
+                .eq(Task::getFamilyMemberId, memberId)
                 .eq(Task::getNeedReview, 1)
                 .eq(Task::getStatus, "pending")
         );
@@ -450,7 +451,7 @@ public List<Task> getTodayTasks(Long memberId, String dimensionCode) {
     @Transactional
     public Map<String, Object> startTask(Long taskId, Long memberId) {
         Task task = taskMapper.selectById(taskId);
-        if (task == null || !task.getChildId().equals(memberId)) {
+        if (task == null || !task.getFamilyMemberId().equals(memberId)) {
             throw new IllegalArgumentException("任务不存在或不属于该成员");
         }
         if ("completed".equals(task.getStatus())) {
@@ -500,7 +501,7 @@ public List<Task> getTodayTasks(Long memberId, String dimensionCode) {
     @Transactional
     public Map<String, Object> completeTask(Long taskId, Long memberId, String photoUrl, String content, String contentType) {
         Task task = taskMapper.selectById(taskId);
-        if (task == null || !task.getChildId().equals(memberId)) {
+        if (task == null || !task.getFamilyMemberId().equals(memberId)) {
             return null;
         }
 
@@ -754,14 +755,14 @@ return result;
     public Page<Task> getTaskHistory(Long memberId, Integer page, Integer size) {
         Page<Task> pageParam = new Page<>(page, size);
         return taskMapper.selectPage(pageParam, new LambdaQueryWrapper<Task>()
-                .eq(Task::getChildId, memberId)
+                .eq(Task::getFamilyMemberId, memberId)
                 .orderByDesc(Task::getCreatedAt));
     }
 
     public Page<Task> getTaskHistoryByCategory(Long memberId, Integer page, Integer size, String category) {
         Page<Task> pageParam = new Page<>(page, size);
         return taskMapper.selectPage(pageParam, new LambdaQueryWrapper<Task>()
-                .eq(Task::getChildId, memberId)
+                .eq(Task::getFamilyMemberId, memberId)
                 .eq(Task::getCategory, category)
                 .orderByDesc(Task::getCreatedAt));
     }
@@ -870,7 +871,7 @@ return result;
 
         // 记录积分流水
         PointsLog log = new PointsLog();
-        log.setChildId(task.getChildId());
+        log.setChildId(task.getFamilyMemberId());
         log.setAmount(pointsEarned);
         log.setType(isEarly ? "earn" : "earn");
         log.setDescription("完成任务: " + task.getTitle());
@@ -880,7 +881,7 @@ return result;
         Map<String, Object> result = new HashMap<>();
         result.put("pointsEarned", pointsEarned);
 
-        try { FamilyMember child = familyMemberMapper.selectById(task.getChildId()); if (child != null) { onboardingService.completeTask(child.getUserId(), "FIRST_TASK"); } } catch (Exception e) { /* onboarding trigger failure should not block task completion */ }
+        try { FamilyMember child = familyMemberMapper.selectById(task.getFamilyMemberId()); if (child != null) { onboardingService.completeTask(child.getUserId(), "FIRST_TASK"); } } catch (Exception e) { /* onboarding trigger failure should not block task completion */ }
     result.put("newBalance", user.getTotalPoints());
     result.put("needReview", task.getNeedReview() == 1);
 
@@ -917,7 +918,7 @@ return result;
    */
   public List<Task> getPendingReviewTasksForChild(Long memberId) {
     return taskMapper.selectList(new LambdaQueryWrapper<Task>()
-        .eq(Task::getChildId, memberId)
+        .eq(Task::getFamilyMemberId, memberId)
         .eq(Task::getNeedReview, 1)
         .eq(Task::getStatus, "completed")
         .orderByDesc(Task::getCompletedAt));
@@ -928,7 +929,7 @@ return result;
    */
   public List<Task> getAllTasksByChild(Long memberId) {
     return taskMapper.selectList(new LambdaQueryWrapper<Task>()
-        .eq(Task::getChildId, memberId)
+        .eq(Task::getFamilyMemberId, memberId)
         .orderByDesc(Task::getCreatedAt));
   }
 
@@ -938,7 +939,7 @@ return result;
   public Page<Task> getTaskHistoryByChild(Long memberId, Integer page, Integer size, String status) {
     Page<Task> pageParam = new Page<>(page, size);
     LambdaQueryWrapper<Task> wrapper = new LambdaQueryWrapper<Task>()
-        .eq(Task::getChildId, memberId)
+        .eq(Task::getFamilyMemberId, memberId)
         .orderByDesc(Task::getCreatedAt);
     
 if (status != null && !status.isEmpty()) {
@@ -1074,7 +1075,7 @@ return 0; // 达到每日扣分上限
     @Transactional
     public Map<String, Object> completeMinigameTask(Long taskId, Long memberId, Integer completionTime, Integer score) {
         Task task = taskMapper.selectById(taskId);
-        if (task == null || !task.getChildId().equals(memberId)) {
+        if (task == null || !task.getFamilyMemberId().equals(memberId)) {
             throw new RuntimeException("任务不存在或不属于该孩子");
         }