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

@@ -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);
}
}
}