diff --git a/src/main/java/com/example/catchTheLetters/controller/LevelController.java b/src/main/java/com/example/catchTheLetters/controller/LevelController.java index 99d91f4..289acc1 100644 --- a/src/main/java/com/example/catchTheLetters/controller/LevelController.java +++ b/src/main/java/com/example/catchTheLetters/controller/LevelController.java @@ -68,7 +68,7 @@ public class LevelController { @ApiOperation(value = "关卡结算(游戏结束时提交,一定要鉴别token)") @PostMapping("/settle") - public R settle(@RequestBody ScoreInfo scoreInfo) { - return null; + public R settle(@RequestBody ScoreInfo scoreInfo, @RequestHeader("token")String token) { + return levelService.settle(scoreInfo, token); } } diff --git a/src/main/java/com/example/catchTheLetters/service/LevelService.java b/src/main/java/com/example/catchTheLetters/service/LevelService.java index b5a8e00..dc8d863 100644 --- a/src/main/java/com/example/catchTheLetters/service/LevelService.java +++ b/src/main/java/com/example/catchTheLetters/service/LevelService.java @@ -1,6 +1,7 @@ package com.example.catchTheLetters.service; import com.example.catchTheLetters.entity.Level; +import com.example.catchTheLetters.entity.ScoreInfo; import com.example.catchTheLetters.utils.R; import java.util.List; @@ -16,4 +17,6 @@ public interface LevelService { R levelDetail(Long id); R> list(); + + R settle(ScoreInfo scoreInfo, String token); } diff --git a/src/main/java/com/example/catchTheLetters/service/impl/LevelServiceImpl.java b/src/main/java/com/example/catchTheLetters/service/impl/LevelServiceImpl.java index c37d3e1..97ddf0d 100644 --- a/src/main/java/com/example/catchTheLetters/service/impl/LevelServiceImpl.java +++ b/src/main/java/com/example/catchTheLetters/service/impl/LevelServiceImpl.java @@ -1,7 +1,9 @@ package com.example.catchTheLetters.service.impl; import com.example.catchTheLetters.entity.Level; +import com.example.catchTheLetters.entity.ScoreInfo; import com.example.catchTheLetters.service.LevelService; +import com.example.catchTheLetters.utils.JwtUtil; import com.example.catchTheLetters.utils.R; import jakarta.annotation.Resource; import org.springframework.data.annotation.QueryAnnotation; @@ -40,4 +42,21 @@ public class LevelServiceImpl implements LevelService { List levels = mongoTemplate.find(query, Level.class); return R.ok(levels); } + + @Override + public R settle(ScoreInfo scoreInfo, String token) { + var map = JwtUtil.getPayload(token); + String id = null; + if (map != null) { + id = map.get("id").asString().replaceAll("\"", ""); + } + if (id == null){ + return R.fail("token解析失败"); + } + if (id.equals(scoreInfo.getUserId().toString())){ + ScoreInfo insert = mongoTemplate.insert(scoreInfo); + return R.ok(insert); + } + return R.fail("添加失败,请重试"); + } }