package com.example.catchTheLetters.controller; import com.example.catchTheLetters.entity.Level; import com.example.catchTheLetters.model.vo.RankVo; import com.example.catchTheLetters.entity.ScoreInfo; import com.example.catchTheLetters.service.LevelService; import com.example.catchTheLetters.utils.R; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import jakarta.annotation.Resource; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.*; import java.util.List; /** * 关卡控制器 * * @author spyn */ @RestController @Slf4j @Api(tags = "关卡API") @RequestMapping("/level") public class LevelController { @Resource private LevelService levelService; @ApiOperation(value = "关卡列表(只返回ID、排序、名称和类型)") @GetMapping("/list") public R> list() { return levelService.list(); } @ApiOperation(value = "关卡详情") @GetMapping("/detail") @ApiParam(name = "id", value = "关卡ID") public R detail(String id) { return levelService.levelDetail(id); } @ApiOperation(value = "关卡创建(web前端管理员提交)") @PostMapping("/create") public R create(@RequestBody Level level) { return levelService.levelCreate(level) ? R.ok() : R.fail(); } @ApiOperation(value = "关卡修改(web前端管理员提交)") @PostMapping("/update") public R update(@RequestBody Level level) { return levelService.update(level) ? R.ok() : R.fail(); } @ApiOperation(value = "关卡删除(web前端管理员提交)") @PostMapping("/delete") public R delete(String id) { return levelService.delete(id) ? R.ok() : R.fail(); } @ApiOperation(value = "获取某个关卡排行榜数据") @GetMapping("/rank") @ApiParam(name = "id", value = "关卡ID") public R rank(String id, @RequestHeader(value = "token", required = false)String token) { return R.ok(levelService.getRankInfo(id, token)); } @ApiOperation(value = "关卡结算(游戏结束时提交,一定要鉴别token)") @PostMapping("/settle") public R settle(@RequestBody ScoreInfo scoreInfo, @RequestHeader("token")String token) { return levelService.settle(scoreInfo, token); } }