feat: playroom related logic refactor
This commit is contained in:
@@ -1,7 +1,5 @@
|
||||
package xin.merlin.myplayerbackend.controller;
|
||||
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import xin.merlin.myplayerbackend.entity.Inviting;
|
||||
@@ -11,7 +9,6 @@ import xin.merlin.myplayerbackend.utils.JwtUtil;
|
||||
import xin.merlin.myplayerbackend.utils.result.Response;
|
||||
import xin.merlin.myplayerbackend.utils.result.ResultCode;
|
||||
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
|
||||
import static com.baomidou.mybatisplus.extension.ddl.DdlScriptErrorHandler.PrintlnLogErrorHandler.log;
|
||||
@@ -25,26 +22,31 @@ public class InvitingController {
|
||||
|
||||
private final JwtUtil jwtUtil;
|
||||
|
||||
// playroom鉴权
|
||||
private Boolean isAdmin(Integer id,Integer r_id){
|
||||
return invitingService.playroomIsAdmin(id,r_id)==0;
|
||||
}
|
||||
|
||||
@PostMapping("/friends")
|
||||
Response requestFriend(@RequestHeader("Authorization")String token, @RequestBody UserInfo userInfo) {
|
||||
try {
|
||||
token = token.substring(7);
|
||||
Integer id = jwtUtil.getId(token);
|
||||
if (Objects.equals(id, userInfo.getId())) return Response.success(ResultCode.INVITING_ILLEGAL_REQUEST);
|
||||
if(invitingService.inviting(id,userInfo.getId(),null)) return Response.success(ResultCode.SUCCESS);
|
||||
return Response.success(ResultCode.INVITING_REQUEST_ERROR);
|
||||
if(!invitingService.inviting(id,userInfo.getId(),null)) return Response.success(ResultCode.INVITING_RE_REQUEST);
|
||||
return Response.success(ResultCode.SUCCESS);
|
||||
} catch (Exception e) {
|
||||
log.error(e.getMessage());
|
||||
return Response.fail(ResultCode.SERVER_ERROR);
|
||||
}
|
||||
}
|
||||
|
||||
@GetMapping("/friends/get")
|
||||
Response getFriend(@RequestHeader("Authorization")String token, @RequestParam Integer size, @RequestParam Integer page) {
|
||||
@GetMapping("/get")
|
||||
Response getFriend(@RequestHeader("Authorization")String token, @RequestParam Integer pageSize, @RequestParam Integer currentPage) {
|
||||
try {
|
||||
token = token.substring(7);
|
||||
Integer id = jwtUtil.getId(token);
|
||||
return Response.success(ResultCode.SUCCESS, invitingService.getInvitingDetail(id,size,page));
|
||||
return Response.success(ResultCode.SUCCESS, invitingService.getInvitingDetail(id, pageSize, currentPage));
|
||||
} catch (Exception e) {
|
||||
log.error(e.getMessage());
|
||||
return Response.fail(ResultCode.SERVER_ERROR);
|
||||
@@ -52,13 +54,57 @@ public class InvitingController {
|
||||
|
||||
}
|
||||
|
||||
@PostMapping("/friends/handle")
|
||||
@PostMapping("/handle")
|
||||
Response handleFriend(@RequestHeader("Authorization")String token, @RequestBody Inviting inviting) {
|
||||
try {
|
||||
if (Objects.equals(inviting.getInviter(), inviting.getTarget())) return Response.success(ResultCode.ACCOUNT_PERMISSION_DENY);
|
||||
token = token.substring(7);
|
||||
Integer id = jwtUtil.getId(token);
|
||||
if(!inviting.getTarget().equals(id)) return Response.success(ResultCode.INVITING_ILLEGAL_RESPONSE);
|
||||
if(!invitingService.handleFriendInviting(inviting)) return Response.success(ResultCode.SERVER_ERROR);
|
||||
if(!invitingService.handleFriendInviting(inviting)) return Response.success(ResultCode.INVITING_ILLEGAL_REQUEST);
|
||||
return Response.success(ResultCode.SUCCESS);
|
||||
} catch (Exception e) {
|
||||
log.error(e.getMessage());
|
||||
return Response.fail(ResultCode.SERVER_ERROR);
|
||||
}
|
||||
}
|
||||
|
||||
@PostMapping("/playroom")
|
||||
Response playRoom(@RequestBody Inviting inviting) {
|
||||
try {
|
||||
if(inviting.getRoom()==null || !inviting.getStatus().equals(0)) return Response.success(ResultCode.INVITING_REQUEST_ERROR);
|
||||
if(!invitingService.inviting(inviting.getInviter(),inviting.getTarget(),inviting.getRoom())) return Response.success(ResultCode.INVITING_RE_REQUEST);
|
||||
return Response.success(ResultCode.SUCCESS);
|
||||
} catch (Exception e) {
|
||||
log.error(e.getMessage());
|
||||
return Response.fail(ResultCode.SERVER_ERROR);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// 管理员获取playroom
|
||||
@GetMapping("/playroom/get/{r_id}")
|
||||
Response playroomGet(@RequestHeader("Authorization")String token,@PathVariable("r_id") Integer r_id, @RequestParam Integer pageSize, @RequestParam Integer currentPage) {
|
||||
try {
|
||||
token = token.substring(7);
|
||||
Integer id = jwtUtil.getId(token);
|
||||
if (!isAdmin(id,r_id)) return Response.success(ResultCode.INVITING_AUTH_ERROR);
|
||||
return Response.success(ResultCode.SUCCESS, invitingService.getSelfInvitingDetail(r_id, pageSize, currentPage));
|
||||
} catch (Exception e) {
|
||||
log.error(e.getMessage());
|
||||
return Response.fail(ResultCode.SERVER_ERROR);
|
||||
}
|
||||
}
|
||||
|
||||
// 管理员对请求进行审批
|
||||
@PostMapping("/playroom/handle/{r_id}")
|
||||
Response playroomHandle(@RequestHeader("Authorization")String token,@PathVariable("r_id") Integer r_id, @RequestBody Inviting inviting) {
|
||||
try {
|
||||
token = token.substring(7);
|
||||
Integer id = jwtUtil.getId(token);
|
||||
if (!isAdmin(id,r_id)) return Response.success(ResultCode.INVITING_AUTH_ERROR);
|
||||
if(!invitingService.handlePlayroomInviting(inviting)) return Response.success(ResultCode.INVITING_ILLEGAL_REQUEST);
|
||||
|
||||
return Response.success(ResultCode.SUCCESS);
|
||||
} catch (Exception e) {
|
||||
log.error(e.getMessage());
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -57,12 +57,15 @@ public class UserController {
|
||||
|
||||
@PostMapping("/search")
|
||||
Response search(@RequestBody UserInfo userinfo){
|
||||
// TODO:视情况开放api参数currentPage和 pageSize
|
||||
Integer currentPage = 1;
|
||||
Integer pageSize = 10;
|
||||
try {
|
||||
if(userinfo.getU_id()!=null){
|
||||
return Response.success(ResultCode.SUCCESS, Map.of("result",userService.searchByUID(userinfo.getU_id())));
|
||||
return Response.success(ResultCode.SUCCESS, Map.of("result",userService.searchByUID(userinfo.getU_id(),currentPage,pageSize)));
|
||||
}
|
||||
else
|
||||
return Response.success(ResultCode.SUCCESS, Map.of("result",userService.searchByName(userinfo.getU_name())));
|
||||
return Response.success(ResultCode.SUCCESS, Map.of("result",userService.searchByName(userinfo.getU_name(),currentPage,pageSize)));
|
||||
} catch (Exception e) {
|
||||
log.error(e.getMessage(),e);
|
||||
return Response.fail(ResultCode.SERVER_ERROR);
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package xin.merlin.myplayerbackend.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.Data;
|
||||
@@ -7,7 +8,7 @@ import lombok.Data;
|
||||
@Data
|
||||
@TableName("playroominfo")
|
||||
public class PlayroomInfo {
|
||||
@TableId("r_id")
|
||||
@TableId(value = "r_id",type = IdType.AUTO)
|
||||
private Integer r_id;
|
||||
|
||||
private String r_name;
|
||||
|
||||
@@ -2,12 +2,15 @@ package xin.merlin.myplayerbackend.entity;
|
||||
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
@TableName("playrooms")
|
||||
@AllArgsConstructor
|
||||
public class Playrooms {
|
||||
private Integer r_id;
|
||||
private Integer id;
|
||||
private Integer role;
|
||||
|
||||
}
|
||||
|
||||
@@ -7,9 +7,8 @@ import lombok.Data;
|
||||
@Data
|
||||
@TableName("userinfo")
|
||||
public class UserInfo {
|
||||
@TableId("u_id")
|
||||
private String u_id;
|
||||
|
||||
@TableId("id")
|
||||
private Integer id;
|
||||
private String u_name;
|
||||
private String u_introduction;
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
package xin.merlin.myplayerbackend.entity.http;
|
||||
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import xin.merlin.myplayerbackend.entity.PlayroomInfo;
|
||||
import xin.merlin.myplayerbackend.entity.Playrooms;
|
||||
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
public class PlayroomDetails {
|
||||
private Integer id;
|
||||
private Integer r_id;
|
||||
private String r_name;
|
||||
private String r_introduction;
|
||||
private String r_avatar;
|
||||
private Integer role;
|
||||
|
||||
public PlayroomDetails(PlayroomInfo playroomInfo, Playrooms playrooms) {
|
||||
this.id = playrooms.getId();
|
||||
this.r_id = playrooms.getR_id();
|
||||
this.role = playrooms.getRole();
|
||||
this.r_name = playroomInfo.getR_name();
|
||||
this.r_introduction = playroomInfo.getR_introduction();
|
||||
this.r_avatar = playroomInfo.getR_avatar();
|
||||
}
|
||||
}
|
||||
@@ -2,8 +2,13 @@ package xin.merlin.myplayerbackend.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import xin.merlin.myplayerbackend.entity.PlayroomInfo;
|
||||
import xin.merlin.myplayerbackend.entity.http.PlayroomDetails;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Mapper
|
||||
public interface PlayroomMapper extends BaseMapper<PlayroomInfo> {
|
||||
List<PlayroomDetails> selectPlayroomDetails(@Param("userId") Integer id);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
<select id="selectPlayroomDetails" resultType="xin.merlin.myplayerbackend.entity.http.PlayroomDetails">
|
||||
SELECT
|
||||
pr.id AS id,
|
||||
pr.r_id AS r_id,
|
||||
pr.role AS role,
|
||||
pi.r_name AS r_name,
|
||||
pi.r_introduction AS r_introduction,
|
||||
pi.r_avatar AS r_avatar
|
||||
FROM playrooms pr
|
||||
LEFT JOIN playroominfo pi ON pr.r_id = pi.r_id
|
||||
WHERE pr.id = #{userId}
|
||||
</select>
|
||||
@@ -8,10 +8,12 @@ import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import xin.merlin.myplayerbackend.entity.Friends;
|
||||
import xin.merlin.myplayerbackend.entity.Inviting;
|
||||
import xin.merlin.myplayerbackend.entity.Playrooms;
|
||||
import xin.merlin.myplayerbackend.entity.UserInfo;
|
||||
import xin.merlin.myplayerbackend.entity.http.InvitingDetails;
|
||||
import xin.merlin.myplayerbackend.mapper.FriendsMapper;
|
||||
import xin.merlin.myplayerbackend.mapper.InvitingMapper;
|
||||
import xin.merlin.myplayerbackend.mapper.PlayroomsMapper;
|
||||
import xin.merlin.myplayerbackend.mapper.UserMapper;
|
||||
|
||||
import java.util.ArrayList;
|
||||
@@ -28,6 +30,19 @@ public class InvitingServiceImpl extends ServiceImpl<InvitingMapper, Inviting> {
|
||||
|
||||
private final FriendsMapper friendsMapper;
|
||||
|
||||
private final PlayroomsMapper playroomsMapper;
|
||||
|
||||
// TODO: 修改关联查询逻辑
|
||||
private Map<String, Object> getInvitingDetails(List<Inviting> invitings) {
|
||||
List<InvitingDetails> invitingDetails = new ArrayList<>();
|
||||
for (Inviting inviting : invitings){
|
||||
InvitingDetails invitingDetail = new InvitingDetails(inviting,
|
||||
userMapper.selectOne(Wrappers.<UserInfo>lambdaQuery().eq(UserInfo::getId,inviting.getInviter())));
|
||||
invitingDetails.add(invitingDetail);
|
||||
}
|
||||
return Map.of("result",invitingDetails);
|
||||
}
|
||||
|
||||
public Boolean inviting(Integer inviter, Integer target,Integer room){
|
||||
Inviting inviting = new Inviting();
|
||||
inviting.setInviter(inviter);
|
||||
@@ -41,16 +56,26 @@ public class InvitingServiceImpl extends ServiceImpl<InvitingMapper, Inviting> {
|
||||
}
|
||||
|
||||
public Map<String,Object> getInvitingDetail(Integer target, Integer size, Integer page){
|
||||
List<Inviting> invitings = invitingMapper.selectList(new Page<Inviting>(page,size), Wrappers.<Inviting>lambdaQuery().eq(Inviting::getTarget,target));
|
||||
List<InvitingDetails> invitingDetails = new ArrayList<>();
|
||||
for (Inviting inviting : invitings){
|
||||
InvitingDetails invitingDetail = new InvitingDetails(inviting,
|
||||
userMapper.selectOne(Wrappers.<UserInfo>lambdaQuery().eq(UserInfo::getId,target)));
|
||||
invitingDetails.add(invitingDetail);
|
||||
try {
|
||||
List<Inviting> invitings = invitingMapper.selectList(new Page<>(page,size), Wrappers.<Inviting>lambdaQuery().eq(Inviting::getTarget,target));
|
||||
return getInvitingDetails(invitings);
|
||||
} catch (Exception e) {
|
||||
log.error(e.getMessage());
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
return Map.of("result",invitingDetails);
|
||||
}
|
||||
|
||||
public Map<String,Object> getSelfInvitingDetail(Integer room, Integer size, Integer page){
|
||||
try {
|
||||
List<Inviting> invitings = invitingMapper.selectList(new Page<>(page,size), Wrappers.<Inviting>lambdaQuery().eq(Inviting::getRoom,room).apply("inviter = target"));
|
||||
return getInvitingDetails(invitings);
|
||||
} catch (Exception e) {
|
||||
log.error(e.getMessage());
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Transactional
|
||||
public Boolean handleFriendInviting(Inviting inviting) {
|
||||
@@ -68,4 +93,29 @@ public class InvitingServiceImpl extends ServiceImpl<InvitingMapper, Inviting> {
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public Integer playroomIsAdmin(Integer id, Integer r_id) {
|
||||
try {
|
||||
Playrooms playrooms = playroomsMapper.selectOne(Wrappers.<Playrooms>lambdaQuery().eq(Playrooms::getId,id).eq(Playrooms::getR_id,r_id));
|
||||
if (playrooms == null) return 1;
|
||||
else return playrooms.getRole();
|
||||
} catch (Exception e) {
|
||||
log.error(e.getMessage());
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
|
||||
public Boolean handlePlayroomInviting(Inviting inviting) {
|
||||
try {
|
||||
if (inviting.getStatus().equals(0) || inviting.getRoom() == null) return false;
|
||||
else if (inviting.getStatus().equals(1)){
|
||||
playroomsMapper.insert(new Playrooms(inviting.getRoom(), inviting.getTarget(), 1));
|
||||
return true;
|
||||
}
|
||||
else return true;
|
||||
} catch (Exception e) {
|
||||
log.error(e.getMessage());
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,10 +1,91 @@
|
||||
package xin.merlin.myplayerbackend.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.apache.catalina.User;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import xin.merlin.myplayerbackend.entity.PlayroomInfo;
|
||||
import xin.merlin.myplayerbackend.entity.Playrooms;
|
||||
import xin.merlin.myplayerbackend.entity.UserInfo;
|
||||
import xin.merlin.myplayerbackend.entity.http.PlayroomDetails;
|
||||
import xin.merlin.myplayerbackend.mapper.PlayroomMapper;
|
||||
import xin.merlin.myplayerbackend.mapper.PlayroomsMapper;
|
||||
import xin.merlin.myplayerbackend.mapper.UserMapper;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class PlayroomServiceImpl extends ServiceImpl<PlayroomMapper, PlayroomInfo> {
|
||||
|
||||
private final PlayroomMapper playroomMapper;
|
||||
|
||||
private final PlayroomsMapper playroomsMapper;
|
||||
|
||||
private final UserMapper userMapper;
|
||||
|
||||
@Transactional
|
||||
public PlayroomInfo createPlayroom(Integer id, PlayroomInfo playroomInfo) {
|
||||
try {
|
||||
playroomMapper.insert(playroomInfo);
|
||||
playroomsMapper.insert(new Playrooms(playroomInfo.getR_id(),id,0));
|
||||
return playroomInfo;
|
||||
} catch (Exception e) {
|
||||
log.error(e.getMessage());
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
|
||||
// TODO: 优化点:使用xml语句写关联查询
|
||||
public List<PlayroomDetails> getPlayrooms(Integer id) {
|
||||
try {
|
||||
List<Playrooms> playrooms = playroomsMapper.selectObjs(Wrappers.<Playrooms>lambdaQuery().eq(Playrooms::getId,id));
|
||||
List<PlayroomDetails> playroomDetails = new ArrayList<>();
|
||||
for (Playrooms playroom : playrooms) {
|
||||
playroomDetails.add(new PlayroomDetails(playroomMapper.selectById(playroom.getR_id()),playroom));
|
||||
}
|
||||
|
||||
return playroomDetails;
|
||||
} catch (Exception e) {
|
||||
log.error(e.getMessage());
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
|
||||
public Page<PlayroomInfo> searchPlayroom(PlayroomInfo playroomInfo, Integer currentPage, Integer pageSize) {
|
||||
try {
|
||||
return playroomMapper.selectPage(new Page<>(currentPage,pageSize),Wrappers.<PlayroomInfo>lambdaQuery().like(PlayroomInfo::getR_name,playroomInfo.getR_name()));
|
||||
} catch (Exception e) {
|
||||
log.error(e.getMessage());
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
|
||||
@Transactional
|
||||
public Integer deletePlayroom(PlayroomInfo playroomInfo) {
|
||||
try {
|
||||
return playroomsMapper.delete(Wrappers.<Playrooms>lambdaQuery().eq(Playrooms::getR_id,playroomInfo.getR_id()));
|
||||
} catch (Exception e) {
|
||||
log.error(e.getMessage());
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
|
||||
public List<UserInfo> getMember(Integer r_id, Integer currentPage, Integer pageSize) {
|
||||
try {
|
||||
List<Playrooms> ids = playroomsMapper.selectPage(new Page<>(currentPage,pageSize),Wrappers.<Playrooms>lambdaQuery().eq(Playrooms::getR_id,r_id)).getRecords();
|
||||
List<UserInfo> members = new ArrayList<>();
|
||||
for(Playrooms playroom:ids){
|
||||
members.add(userMapper.selectById(playroom.getId()));
|
||||
}
|
||||
return members;
|
||||
} catch (Exception e) {
|
||||
log.error(e.getMessage());
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,10 +1,30 @@
|
||||
package xin.merlin.myplayerbackend.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import xin.merlin.myplayerbackend.entity.PlayroomInfo;
|
||||
import xin.merlin.myplayerbackend.entity.Playrooms;
|
||||
import xin.merlin.myplayerbackend.mapper.PlayroomMapper;
|
||||
import xin.merlin.myplayerbackend.mapper.PlayroomsMapper;
|
||||
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class PlayroomsServiceImpl extends ServiceImpl<PlayroomsMapper, Playrooms> {
|
||||
|
||||
private final PlayroomsMapper playroomsMapper;
|
||||
|
||||
|
||||
public Integer playroomIsAdmin(Integer id, Integer r_id) {
|
||||
try {
|
||||
Playrooms playrooms = playroomsMapper.selectOne(Wrappers.<Playrooms>lambdaQuery().eq(Playrooms::getId,id).eq(Playrooms::getR_id,r_id));
|
||||
if (playrooms == null) return 1;
|
||||
else return playrooms.getRole();
|
||||
} catch (Exception e) {
|
||||
log.error(e.getMessage());
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -14,13 +14,23 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, UserInfo> {
|
||||
|
||||
private final UserMapper userMapper;
|
||||
|
||||
public Object searchByUID(String u_id) {
|
||||
Page<UserInfo> page = new Page<>(1, 5);
|
||||
public Object searchByUID(String u_id,Integer currentPage,Integer pageSize) {
|
||||
try {
|
||||
Page<UserInfo> page = new Page<>(currentPage, pageSize);
|
||||
return userMapper.selectList(page,Wrappers.<UserInfo>lambdaQuery().like(UserInfo::getU_id, u_id));
|
||||
} catch (Exception e) {
|
||||
log.error(e.getMessage());
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
|
||||
public Object searchByName(String u_name) {
|
||||
Page<UserInfo> page = new Page<>(1, 5);
|
||||
public Object searchByName(String u_name,Integer currentPage,Integer pageSize) {
|
||||
try {
|
||||
Page<UserInfo> page = new Page<>(currentPage, pageSize);
|
||||
return userMapper.selectList(page,Wrappers.<UserInfo>lambdaQuery().like(UserInfo::getU_name, u_name));
|
||||
} catch (Exception e) {
|
||||
log.error(e.getMessage());
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -50,7 +50,9 @@ public enum ResultCode {
|
||||
//邀请相关
|
||||
INVITING_REQUEST_ERROR("4301","邀请请求错误"),
|
||||
INVITING_ILLEGAL_REQUEST("4302","非法邀请"),
|
||||
INVITING_ILLEGAL_RESPONSE("4303","非法邀请");
|
||||
INVITING_ILLEGAL_RESPONSE("4303","非法邀请"),
|
||||
INVITING_RE_REQUEST("4304","重复请求"),
|
||||
INVITING_AUTH_ERROR("4305","权限错误");
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user