Просмотр исходного кода

feat(challenge): respond端点+创建去门控+list返回myStatus

asus 1 месяц назад
Родитель
Сommit
1b317ee171

+ 20 - 7
cfc-backend/src/main/java/com/etotem/cfc/controller/FamilyChallengeController.java

@@ -17,11 +17,12 @@ public class FamilyChallengeController {
     private FamilyChallengeService familyChallengeService;
 
     @PostMapping("/list")
-    public Result<List<FamilyChallenge>> getList(@RequestAttribute(value = "familyId", required = false) Long familyId) {
+    public Result<List<FamilyChallenge>> getList(@RequestAttribute(value = "familyId", required = false) Long familyId,
+                                                 @RequestAttribute(value = "currentMemberId", required = false) Long currentMemberId) {
         if (familyId == null) {
             return Result.noFamily("请先创建或加入家庭");
         }
-        return Result.success(familyChallengeService.getActiveChallenges(familyId));
+        return Result.success(familyChallengeService.getActiveChallenges(familyId, currentMemberId));
     }
 
     @PostMapping("/history")
@@ -49,6 +50,18 @@ public class FamilyChallengeController {
         return familyChallengeService.updateProgress(challengeId, currentMemberId, delta);
     }
 
+    @PostMapping("/respond")
+    public Result<Void> respondChallenge(@RequestBody Map<String, Object> params,
+                                         @RequestAttribute(value = "currentMemberId", required = false) Long currentMemberId) {
+        if (currentMemberId == null) {
+            return Result.error("未识别当前成员");
+        }
+        Long challengeId = params.get("challengeId") != null
+                ? Long.valueOf(params.get("challengeId").toString()) : null;
+        String action = params.get("action") != null ? params.get("action").toString() : null;
+        return familyChallengeService.respondChallenge(challengeId, currentMemberId, action);
+    }
+
     @PostMapping("/templates")
     public Result<List<Map<String, Object>>> getTemplates() {
         return Result.success(familyChallengeService.getTemplates());
@@ -56,13 +69,13 @@ public class FamilyChallengeController {
 
     @PostMapping("/create")
     public Result<Long> createChallenge(@RequestBody Map<String, Object> params,
-                                        @RequestAttribute(value = "role", required = false) String role,
                                         @RequestAttribute(value = "familyId", required = false) Long familyId,
-                                        @RequestAttribute("userId") Long userId) {
-        if (!"parent".equals(role)) {
-            return Result.error("仅家长可创建挑战");
+                                        @RequestAttribute(value = "userId", required = false) Long userId,
+                                        @RequestAttribute(value = "currentMemberId", required = false) Long currentMemberId) {
+        if (currentMemberId == null) {
+            return Result.error("未识别当前成员");
         }
-        return familyChallengeService.createChallenge(familyId, userId, params);
+        return familyChallengeService.createChallenge(familyId, userId, currentMemberId, params);
     }
 
     @PostMapping("/update/{id}")