feat: playroom related logic refactor

This commit is contained in:
merlin
2025-12-02 18:52:48 +08:00
parent 3fce5b2f01
commit 4597623cd9
14 changed files with 412 additions and 29 deletions

View File

@@ -0,0 +1,124 @@
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.<Playrooms>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);
}
}
}