RoomStudentAppointServiceImpl.java 4.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. package com.xjrsoft.module.room.service.impl;
  2. import cn.dev33.satoken.stp.StpUtil;
  3. import cn.hutool.core.util.ObjectUtil;
  4. import com.baomidou.mybatisplus.core.metadata.IPage;
  5. import com.github.yulichang.base.MPJBaseServiceImpl;
  6. import com.github.yulichang.wrapper.MPJLambdaWrapper;
  7. import com.xjrsoft.common.page.ConventPage;
  8. import com.xjrsoft.common.utils.VoToColumnUtil;
  9. import com.xjrsoft.module.room.dto.RoomStudentAppointPageDto;
  10. import com.xjrsoft.module.room.entity.RoomBed;
  11. import com.xjrsoft.module.room.entity.RoomStudentAppoint;
  12. import com.xjrsoft.module.room.mapper.RoomBedMapper;
  13. import com.xjrsoft.module.room.mapper.RoomStudentAppointMapper;
  14. import com.xjrsoft.module.room.service.IRoomStudentAppointService;
  15. import com.xjrsoft.module.room.vo.AppointPageRoomBedVo;
  16. import com.xjrsoft.module.room.vo.HeadTeaRoomCadreAppointPageVo;
  17. import com.xjrsoft.module.room.vo.RoomStudentAppointVo;
  18. import com.xjrsoft.module.student.entity.BaseStudentPost;
  19. import com.xjrsoft.module.teacher.entity.XjrUser;
  20. import lombok.AllArgsConstructor;
  21. import org.springframework.stereotype.Service;
  22. import java.util.ArrayList;
  23. import java.util.List;
  24. /**
  25. * @title: 寝室长任命
  26. * @Author dzx
  27. * @Date: 2023-12-30
  28. * @Version 1.0
  29. */
  30. @Service
  31. @AllArgsConstructor
  32. public class RoomStudentAppointServiceImpl extends MPJBaseServiceImpl<RoomStudentAppointMapper, RoomStudentAppoint> implements IRoomStudentAppointService {
  33. private final RoomStudentAppointMapper roomStudentAppointMapper;
  34. private final RoomBedMapper roomBedMapper;
  35. @Override
  36. public IPage<HeadTeaRoomCadreAppointPageVo> getPage(RoomStudentAppointPageDto dto) {
  37. dto.setTeacherId(StpUtil.getLoginIdAsLong());
  38. IPage<HeadTeaRoomCadreAppointPageVo> headTeaRoomCadreAppointPageVoIPage = roomStudentAppointMapper.getPage(ConventPage.getPage(dto), dto);
  39. //找到每个寝室的每个床位的人
  40. for (HeadTeaRoomCadreAppointPageVo headTeaRoomCadreAppointPageVo : headTeaRoomCadreAppointPageVoIPage.getRecords()) {
  41. List<AppointPageRoomBedVo> appointPageRoomBedVoList = this.getStuByRoomId(Long.parseLong(headTeaRoomCadreAppointPageVo.getRoomId()));
  42. if (ObjectUtil.isNotNull(appointPageRoomBedVoList) && appointPageRoomBedVoList.size() > 0){
  43. //找到每个人的职位
  44. for (AppointPageRoomBedVo appointPageRoomBedVo : appointPageRoomBedVoList) {
  45. MPJLambdaWrapper<RoomStudentAppoint> queryPost = new MPJLambdaWrapper<>();
  46. queryPost
  47. .selectAs(BaseStudentPost::getPost, RoomStudentAppointVo::getPostIdCN)
  48. .select(RoomStudentAppoint.class, x -> VoToColumnUtil.fieldsToColumns(RoomStudentAppointVo.class).contains(x.getProperty()))
  49. .leftJoin(BaseStudentPost.class,BaseStudentPost::getId,RoomStudentAppoint::getPostId)
  50. .eq(RoomStudentAppoint::getRoomId,appointPageRoomBedVo.getRoomId())
  51. .eq(RoomStudentAppoint::getRoomBedId,appointPageRoomBedVo.getRoomBedId())
  52. .eq(RoomStudentAppoint::getStudentUserId,appointPageRoomBedVo.getStudentUserId());
  53. List<RoomStudentAppointVo> roomStudentAppointList = this.selectJoinList(RoomStudentAppointVo.class,queryPost);
  54. if (ObjectUtil.isNotNull(roomStudentAppointList) && roomStudentAppointList.size() > 0){
  55. List<String> postList = new ArrayList<>();
  56. for (RoomStudentAppointVo roomStudentAppointVo : roomStudentAppointList) {
  57. postList.add(roomStudentAppointVo.getPostIdCN());
  58. }
  59. appointPageRoomBedVo.setPostList(postList);
  60. }
  61. }
  62. headTeaRoomCadreAppointPageVo.setRoomBedList(appointPageRoomBedVoList);
  63. }
  64. }
  65. return headTeaRoomCadreAppointPageVoIPage;
  66. }
  67. @Override
  68. public List<AppointPageRoomBedVo> getStuByRoomId(RoomStudentAppointPageDto dto) {
  69. return this.getStuByRoomId(dto.getRoomId());
  70. }
  71. private List<AppointPageRoomBedVo> getStuByRoomId(Long roomId) {
  72. MPJLambdaWrapper<RoomBed> queryRoomBed = new MPJLambdaWrapper<>();
  73. queryRoomBed
  74. .selectAs(RoomBed::getId,AppointPageRoomBedVo::getRoomBedId)
  75. .selectAs(XjrUser::getName, AppointPageRoomBedVo::getStudentUserIdCN)
  76. .select(RoomBed.class, x -> VoToColumnUtil.fieldsToColumns(AppointPageRoomBedVo.class).contains(x.getProperty()))
  77. .leftJoin(XjrUser.class,XjrUser::getId,RoomBed::getStudentUserId)
  78. .eq(RoomBed::getRoomId,roomId)
  79. .eq(RoomBed::getIsCheckIn,1);
  80. List<AppointPageRoomBedVo> appointPageRoomBedVoList = roomBedMapper.selectJoinList(AppointPageRoomBedVo.class,queryRoomBed);
  81. return appointPageRoomBedVoList;
  82. }
  83. }