feat: playroom related logic refactor
This commit is contained in:
@@ -1,7 +1,5 @@
|
|||||||
package xin.merlin.myplayerbackend.controller;
|
package xin.merlin.myplayerbackend.controller;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
import xin.merlin.myplayerbackend.entity.Inviting;
|
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.Response;
|
||||||
import xin.merlin.myplayerbackend.utils.result.ResultCode;
|
import xin.merlin.myplayerbackend.utils.result.ResultCode;
|
||||||
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
|
||||||
import static com.baomidou.mybatisplus.extension.ddl.DdlScriptErrorHandler.PrintlnLogErrorHandler.log;
|
import static com.baomidou.mybatisplus.extension.ddl.DdlScriptErrorHandler.PrintlnLogErrorHandler.log;
|
||||||
@@ -25,26 +22,31 @@ public class InvitingController {
|
|||||||
|
|
||||||
private final JwtUtil jwtUtil;
|
private final JwtUtil jwtUtil;
|
||||||
|
|
||||||
|
// playroom鉴权
|
||||||
|
private Boolean isAdmin(Integer id,Integer r_id){
|
||||||
|
return invitingService.playroomIsAdmin(id,r_id)==0;
|
||||||
|
}
|
||||||
|
|
||||||
@PostMapping("/friends")
|
@PostMapping("/friends")
|
||||||
Response requestFriend(@RequestHeader("Authorization")String token, @RequestBody UserInfo userInfo) {
|
Response requestFriend(@RequestHeader("Authorization")String token, @RequestBody UserInfo userInfo) {
|
||||||
try {
|
try {
|
||||||
token = token.substring(7);
|
token = token.substring(7);
|
||||||
Integer id = jwtUtil.getId(token);
|
Integer id = jwtUtil.getId(token);
|
||||||
if (Objects.equals(id, userInfo.getId())) return Response.success(ResultCode.INVITING_ILLEGAL_REQUEST);
|
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);
|
if(!invitingService.inviting(id,userInfo.getId(),null)) return Response.success(ResultCode.INVITING_RE_REQUEST);
|
||||||
return Response.success(ResultCode.INVITING_REQUEST_ERROR);
|
return Response.success(ResultCode.SUCCESS);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error(e.getMessage());
|
log.error(e.getMessage());
|
||||||
return Response.fail(ResultCode.SERVER_ERROR);
|
return Response.fail(ResultCode.SERVER_ERROR);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping("/friends/get")
|
@GetMapping("/get")
|
||||||
Response getFriend(@RequestHeader("Authorization")String token, @RequestParam Integer size, @RequestParam Integer page) {
|
Response getFriend(@RequestHeader("Authorization")String token, @RequestParam Integer pageSize, @RequestParam Integer currentPage) {
|
||||||
try {
|
try {
|
||||||
token = token.substring(7);
|
token = token.substring(7);
|
||||||
Integer id = jwtUtil.getId(token);
|
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) {
|
} catch (Exception e) {
|
||||||
log.error(e.getMessage());
|
log.error(e.getMessage());
|
||||||
return Response.fail(ResultCode.SERVER_ERROR);
|
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) {
|
Response handleFriend(@RequestHeader("Authorization")String token, @RequestBody Inviting inviting) {
|
||||||
try {
|
try {
|
||||||
|
if (Objects.equals(inviting.getInviter(), inviting.getTarget())) return Response.success(ResultCode.ACCOUNT_PERMISSION_DENY);
|
||||||
token = token.substring(7);
|
token = token.substring(7);
|
||||||
Integer id = jwtUtil.getId(token);
|
Integer id = jwtUtil.getId(token);
|
||||||
if(!inviting.getTarget().equals(id)) return Response.success(ResultCode.INVITING_ILLEGAL_RESPONSE);
|
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);
|
return Response.success(ResultCode.SUCCESS);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error(e.getMessage());
|
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")
|
@PostMapping("/search")
|
||||||
Response search(@RequestBody UserInfo userinfo){
|
Response search(@RequestBody UserInfo userinfo){
|
||||||
|
// TODO:视情况开放api参数currentPage和 pageSize
|
||||||
|
Integer currentPage = 1;
|
||||||
|
Integer pageSize = 10;
|
||||||
try {
|
try {
|
||||||
if(userinfo.getU_id()!=null){
|
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
|
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) {
|
} catch (Exception e) {
|
||||||
log.error(e.getMessage(),e);
|
log.error(e.getMessage(),e);
|
||||||
return Response.fail(ResultCode.SERVER_ERROR);
|
return Response.fail(ResultCode.SERVER_ERROR);
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package xin.merlin.myplayerbackend.entity;
|
package xin.merlin.myplayerbackend.entity;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.IdType;
|
||||||
import com.baomidou.mybatisplus.annotation.TableId;
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
@@ -7,7 +8,7 @@ import lombok.Data;
|
|||||||
@Data
|
@Data
|
||||||
@TableName("playroominfo")
|
@TableName("playroominfo")
|
||||||
public class PlayroomInfo {
|
public class PlayroomInfo {
|
||||||
@TableId("r_id")
|
@TableId(value = "r_id",type = IdType.AUTO)
|
||||||
private Integer r_id;
|
private Integer r_id;
|
||||||
|
|
||||||
private String r_name;
|
private String r_name;
|
||||||
|
|||||||
@@ -2,12 +2,15 @@ package xin.merlin.myplayerbackend.entity;
|
|||||||
|
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
@TableName("playrooms")
|
@TableName("playrooms")
|
||||||
|
@AllArgsConstructor
|
||||||
public class Playrooms {
|
public class Playrooms {
|
||||||
private Integer r_id;
|
private Integer r_id;
|
||||||
private Integer id;
|
private Integer id;
|
||||||
private Integer role;
|
private Integer role;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,9 +7,8 @@ import lombok.Data;
|
|||||||
@Data
|
@Data
|
||||||
@TableName("userinfo")
|
@TableName("userinfo")
|
||||||
public class UserInfo {
|
public class UserInfo {
|
||||||
@TableId("u_id")
|
|
||||||
private String u_id;
|
private String u_id;
|
||||||
|
@TableId("id")
|
||||||
private Integer id;
|
private Integer id;
|
||||||
private String u_name;
|
private String u_name;
|
||||||
private String u_introduction;
|
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 com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
import org.apache.ibatis.annotations.Param;
|
||||||
import xin.merlin.myplayerbackend.entity.PlayroomInfo;
|
import xin.merlin.myplayerbackend.entity.PlayroomInfo;
|
||||||
|
import xin.merlin.myplayerbackend.entity.http.PlayroomDetails;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
@Mapper
|
@Mapper
|
||||||
public interface PlayroomMapper extends BaseMapper<PlayroomInfo> {
|
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 org.springframework.transaction.annotation.Transactional;
|
||||||
import xin.merlin.myplayerbackend.entity.Friends;
|
import xin.merlin.myplayerbackend.entity.Friends;
|
||||||
import xin.merlin.myplayerbackend.entity.Inviting;
|
import xin.merlin.myplayerbackend.entity.Inviting;
|
||||||
|
import xin.merlin.myplayerbackend.entity.Playrooms;
|
||||||
import xin.merlin.myplayerbackend.entity.UserInfo;
|
import xin.merlin.myplayerbackend.entity.UserInfo;
|
||||||
import xin.merlin.myplayerbackend.entity.http.InvitingDetails;
|
import xin.merlin.myplayerbackend.entity.http.InvitingDetails;
|
||||||
import xin.merlin.myplayerbackend.mapper.FriendsMapper;
|
import xin.merlin.myplayerbackend.mapper.FriendsMapper;
|
||||||
import xin.merlin.myplayerbackend.mapper.InvitingMapper;
|
import xin.merlin.myplayerbackend.mapper.InvitingMapper;
|
||||||
|
import xin.merlin.myplayerbackend.mapper.PlayroomsMapper;
|
||||||
import xin.merlin.myplayerbackend.mapper.UserMapper;
|
import xin.merlin.myplayerbackend.mapper.UserMapper;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@@ -28,6 +30,19 @@ public class InvitingServiceImpl extends ServiceImpl<InvitingMapper, Inviting> {
|
|||||||
|
|
||||||
private final FriendsMapper friendsMapper;
|
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){
|
public Boolean inviting(Integer inviter, Integer target,Integer room){
|
||||||
Inviting inviting = new Inviting();
|
Inviting inviting = new Inviting();
|
||||||
inviting.setInviter(inviter);
|
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){
|
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));
|
try {
|
||||||
List<InvitingDetails> invitingDetails = new ArrayList<>();
|
List<Inviting> invitings = invitingMapper.selectList(new Page<>(page,size), Wrappers.<Inviting>lambdaQuery().eq(Inviting::getTarget,target));
|
||||||
for (Inviting inviting : invitings){
|
return getInvitingDetails(invitings);
|
||||||
InvitingDetails invitingDetail = new InvitingDetails(inviting,
|
} catch (Exception e) {
|
||||||
userMapper.selectOne(Wrappers.<UserInfo>lambdaQuery().eq(UserInfo::getId,target)));
|
log.error(e.getMessage());
|
||||||
invitingDetails.add(invitingDetail);
|
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
|
@Transactional
|
||||||
public Boolean handleFriendInviting(Inviting inviting) {
|
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;
|
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 com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import org.apache.catalina.User;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
import xin.merlin.myplayerbackend.entity.PlayroomInfo;
|
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.PlayroomMapper;
|
||||||
|
import xin.merlin.myplayerbackend.mapper.PlayroomsMapper;
|
||||||
|
import xin.merlin.myplayerbackend.mapper.UserMapper;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
|
@RequiredArgsConstructor
|
||||||
public class PlayroomServiceImpl extends ServiceImpl<PlayroomMapper, PlayroomInfo> {
|
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;
|
package xin.merlin.myplayerbackend.service.impl;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.springframework.stereotype.Service;
|
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.Playrooms;
|
||||||
|
import xin.merlin.myplayerbackend.mapper.PlayroomMapper;
|
||||||
import xin.merlin.myplayerbackend.mapper.PlayroomsMapper;
|
import xin.merlin.myplayerbackend.mapper.PlayroomsMapper;
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
|
@RequiredArgsConstructor
|
||||||
public class PlayroomsServiceImpl extends ServiceImpl<PlayroomsMapper, Playrooms> {
|
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;
|
private final UserMapper userMapper;
|
||||||
|
|
||||||
public Object searchByUID(String u_id) {
|
public Object searchByUID(String u_id,Integer currentPage,Integer pageSize) {
|
||||||
Page<UserInfo> page = new Page<>(1, 5);
|
try {
|
||||||
return userMapper.selectList(page,Wrappers.<UserInfo>lambdaQuery().like(UserInfo::getU_id, u_id));
|
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) {
|
public Object searchByName(String u_name,Integer currentPage,Integer pageSize) {
|
||||||
Page<UserInfo> page = new Page<>(1, 5);
|
try {
|
||||||
return userMapper.selectList(page,Wrappers.<UserInfo>lambdaQuery().like(UserInfo::getU_name, u_name));
|
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_REQUEST_ERROR("4301","邀请请求错误"),
|
||||||
INVITING_ILLEGAL_REQUEST("4302","非法邀请"),
|
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