package xin.merlin.myplayerbackend.controller; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; import xin.merlin.myplayerbackend.entity.PlayroomInfo; import xin.merlin.myplayerbackend.entity.Playrooms; import xin.merlin.myplayerbackend.entity.UserInfo; import xin.merlin.myplayerbackend.service.impl.PlayroomServiceImpl; import xin.merlin.myplayerbackend.service.impl.PlayroomsServiceImpl; import xin.merlin.myplayerbackend.utils.JwtUtil; import xin.merlin.myplayerbackend.utils.result.Response; import xin.merlin.myplayerbackend.utils.result.ResultCode; import static com.baomidou.mybatisplus.extension.ddl.DdlScriptErrorHandler.PrintlnLogErrorHandler.log; @RestController @RequestMapping("/playroom") @RequiredArgsConstructor public class PlayroomController { private final JwtUtil jwtUtil; private final PlayroomServiceImpl playroomService; private final PlayroomsServiceImpl playroomsService; private Boolean isAdmin(Integer id,Integer r_id){ return playroomsService.playroomIsAdmin(id,r_id)==0; } @PostMapping("/create") Response createPlayroom(@RequestHeader("Authorization")String token, @RequestBody PlayroomInfo playroomInfo) { try { token = token.substring(7); Integer id = jwtUtil.getId(token); return Response.success(ResultCode.SUCCESS, playroomService.createPlayroom(id,playroomInfo)); } catch (Exception e) { log.error(e.getMessage()); return Response.fail(ResultCode.SERVER_ERROR); } } @GetMapping("/get") Response getPlayroom(@RequestHeader("Authorization")String token){ try { token = token.substring(7); Integer id = jwtUtil.getId(token); return Response.success(ResultCode.SUCCESS,playroomService.getPlayrooms(id)); } catch (Exception e) { log.error(e.getMessage()); return Response.fail(ResultCode.SERVER_ERROR); } } @PostMapping("/search") Response searchPlayroom(@RequestBody PlayroomInfo playroomInfo) { // TODO:视情况开放api参数currentPage和 pageSize try { Integer currentPage = 1; Integer pageSize = 10; return Response.success(ResultCode.SUCCESS,playroomService.searchPlayroom(playroomInfo,currentPage,pageSize)); } catch (Exception e) { log.error(e.getMessage()); return Response.fail(ResultCode.SERVER_ERROR); } } @PostMapping("/update") Response updatePlayroom(@RequestHeader("Authorization")String token, @RequestBody PlayroomInfo playroomInfo) { try { token = token.substring(7); Integer id = jwtUtil.getId(token); if(!isAdmin(id,playroomInfo.getR_id())) return Response.success(ResultCode.ACCOUNT_PERMISSION_DENY); playroomService.updateById(playroomInfo); return Response.success(ResultCode.SUCCESS); } catch (Exception e) { log.error(e.getMessage()); return Response.fail(ResultCode.SERVER_ERROR); } } @PostMapping("/delete") Response deletePlayroom(@RequestHeader("Authorization")String token, @RequestBody PlayroomInfo playroomInfo) { try { token = token.substring(7); Integer id = jwtUtil.getId(token); if(!isAdmin(id,playroomInfo.getR_id())) return Response.success(ResultCode.ACCOUNT_PERMISSION_DENY); return Response.success(ResultCode.SUCCESS,playroomService.deletePlayroom(playroomInfo)); } catch (Exception e) { log.error(e.getMessage()); return Response.fail(ResultCode.SERVER_ERROR); } } @GetMapping("/member/{r_id}") Response getMember(@PathVariable("r_id")Integer r_id,@RequestParam Integer currentPage,@RequestParam Integer pageSize){ try { return Response.success(ResultCode.SUCCESS,playroomService.getMember(r_id,currentPage,pageSize)); } catch (Exception e) { log.error(e.getMessage()); return Response.fail(ResultCode.SERVER_ERROR); } } @PostMapping("/member/delete/{r_id}") Response deleteMember(@RequestHeader("Authorization")String token, @PathVariable("r_id")Integer r_id, @RequestBody UserInfo userInfo){ try { token = token.substring(7); Integer id = jwtUtil.getId(token); if(!isAdmin(id,r_id)) return Response.success(ResultCode.ACCOUNT_PERMISSION_DENY); playroomsService.remove(Wrappers.lambdaQuery().eq(Playrooms::getR_id,r_id).eq(Playrooms::getId,userInfo.getId())); return Response.success(ResultCode.SUCCESS); } catch (Exception e) { log.error(e.getMessage()); return Response.fail(ResultCode.SERVER_ERROR); } } }