feat: playroom related logic refactor
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user