Преглед изворни кода

fix(S-cfc-160): task.task.complete 使绿 - completeTask 增加 deadline 超期守卫(TC-C-02-E)超期提交被拒,不发奖不落库

zxyj-langgraph пре 22 часа
родитељ
комит
12317d458
1 измењених фајлова са 6 додато и 0 уклоњено
  1. 6 0
      cfc-backend/src/main/java/com/etotem/cfc/service/TaskService.java

+ 6 - 0
cfc-backend/src/main/java/com/etotem/cfc/service/TaskService.java

@@ -712,6 +712,12 @@ public List<Task> getTodayTasks(Long memberId, String dimensionCode) {
             return buildIdempotentCompleteResult(task, memberId);
         }
 
+        // TC-C-02-E:超期任务提交必须被拒(deadline 守卫)——截止时间已过则不允许完成、不发奖。
+        // 不修改任务、不写积分流水,直接抛异常由上游转错误提示(杜绝"迟到扣分"式静默完成)。
+        if (task.getDeadline() != null && task.getDeadline().before(new Date())) {
+            throw new IllegalArgumentException("任务已过截止时间,无法提交完成");
+        }
+
         // TASK-SYS-248: 前置任务校验——前置未完成则拒绝
         if (task.getPrerequisiteTaskId() != null) {
             Task prereq = taskMapper.selectById(task.getPrerequisiteTaskId());