From e89d6d089fc20f429211486ec8d7b7a2ea0ae825 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=9F=B3=E7=9A=AE=E5=B9=BC=E9=B8=9F?= <2960474346@qq.com> Date: Fri, 12 Apr 2024 09:51:21 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8E=92=E8=A1=8C=E6=A6=9C=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/LevelController.java | 10 +++--- .../example/catchTheLetters/mapper/.gitkeep | 0 .../catchTheLetters/service/LevelService.java | 27 +++++++++++----- .../service/impl/LevelServiceImpl.java | 31 ++++++++++++++----- 4 files changed, 48 insertions(+), 20 deletions(-) delete mode 100644 src/main/java/com/example/catchTheLetters/mapper/.gitkeep diff --git a/src/main/java/com/example/catchTheLetters/controller/LevelController.java b/src/main/java/com/example/catchTheLetters/controller/LevelController.java index 289acc1..5554f32 100644 --- a/src/main/java/com/example/catchTheLetters/controller/LevelController.java +++ b/src/main/java/com/example/catchTheLetters/controller/LevelController.java @@ -37,14 +37,14 @@ public class LevelController { @ApiOperation(value = "关卡详情") @GetMapping("/detail") @ApiParam(name = "id", value = "关卡ID") - public R detail(Long id) { + public R detail(String id) { return levelService.levelDetail(id); } @ApiOperation(value = "关卡创建(web前端管理员提交)") @PostMapping("/create") public R create(@RequestBody Level level) { - return null; + return levelService.LevelCreate(level) ? R.ok() : R.fail(); } @ApiOperation(value = "关卡修改(web前端管理员提交)") @@ -55,15 +55,15 @@ public class LevelController { @ApiOperation(value = "关卡删除(web前端管理员提交)") @PostMapping("/delete") - public R delete(Long id) { + public R delete(String id) { return null; } @ApiOperation(value = "获取某个关卡排行榜数据") @GetMapping("/rank") @ApiParam(name = "id", value = "关卡ID") - public R rank(Long id) { - return null; + public R rank(String id, @RequestHeader(value = "token", required = false)String token) { + return R.ok(levelService.getRankInfo(id, token)); } @ApiOperation(value = "关卡结算(游戏结束时提交,一定要鉴别token)") diff --git a/src/main/java/com/example/catchTheLetters/mapper/.gitkeep b/src/main/java/com/example/catchTheLetters/mapper/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/src/main/java/com/example/catchTheLetters/service/LevelService.java b/src/main/java/com/example/catchTheLetters/service/LevelService.java index 5055f25..aa560e5 100644 --- a/src/main/java/com/example/catchTheLetters/service/LevelService.java +++ b/src/main/java/com/example/catchTheLetters/service/LevelService.java @@ -2,7 +2,9 @@ package com.example.catchTheLetters.service; import com.example.catchTheLetters.entity.Level; import com.example.catchTheLetters.entity.ScoreInfo; +import com.example.catchTheLetters.model.vo.RankVo; import com.example.catchTheLetters.utils.R; + import java.util.List; /** @@ -13,31 +15,42 @@ import java.util.List; */ public interface LevelService { /** + * 关卡详情 * - * @param id + * @param id 关卡ID * @return token */ - - - R levelDetail(Long id); + R levelDetail(String id); /** + * 关卡列表 * * @return token */ R> list(); + /** + * 结算 + * + * @param scoreInfo 分数信息 + * @param token token + * @return token + */ R settle(ScoreInfo scoreInfo, String token); /** - * @param levelId + * 获取关卡排行信息 + * + * @param levelId 关卡ID + * @param token token * @return 关卡排行信息 */ - Integer getRankInfo(String levelId); + RankVo getRankInfo(String levelId, String token); /** + * 创建关卡 * - * @param level + * @param level 关卡信息 * @return 关卡创建是否成功 */ boolean LevelCreate(Level level); 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 50377bf..3609fd2 100644 --- a/src/main/java/com/example/catchTheLetters/service/impl/LevelServiceImpl.java +++ b/src/main/java/com/example/catchTheLetters/service/impl/LevelServiceImpl.java @@ -2,6 +2,7 @@ package com.example.catchTheLetters.service.impl; import com.example.catchTheLetters.entity.Level; import com.example.catchTheLetters.entity.ScoreInfo; +import com.example.catchTheLetters.model.vo.RankVo; import com.example.catchTheLetters.service.LevelService; import com.example.catchTheLetters.utils.JwtUtil; import com.example.catchTheLetters.utils.R; @@ -26,7 +27,7 @@ public class LevelServiceImpl implements LevelService { private MongoTemplate mongoTemplate; @Override - public R levelDetail(Long id) { + public R levelDetail(String id) { Level level = mongoTemplate.findOne(new Query(Criteria.where("id").is(id)), Level.class); if (level == null){ return R.fail("查询失败,请重试"); @@ -60,14 +61,28 @@ public class LevelServiceImpl implements LevelService { } @Override - public Integer getRankInfo(String levelId) { - ScoreInfo sc=mongoTemplate.findById(2,ScoreInfo.class); - Integer infor = null; - if(sc!=null) { - infor = sc.getScore(); - } - return infor; + public RankVo getRankInfo(String levelId, String token) { + // 在ScoreInfo表当中,查询levelId为levelId的所有数据,按照分数降序排列,取前10条数据 + var info = mongoTemplate.find(new Query(Criteria.where("levelId").is(levelId)).limit(10), ScoreInfo.class); + var rankVo = new RankVo(); + rankVo.setScoreInfos(info); + + + // 如果有token,就查自己的分数数据 + if (token != null) { + var map = JwtUtil.getPayload(token); + String id = null; + if (map != null) { + id = map.get("id").asString().replaceAll("\"", ""); + } + if (id != null) { + var myScore = mongoTemplate.findOne(new Query(Criteria.where("userId").is(id).and("levelId").is(levelId)), ScoreInfo.class); + rankVo.setMyScore(myScore); + } + } + + return rankVo; } @Override