RoomResult.java 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. package com.ym.pojo;
  2. import com.alibaba.fastjson.JSON;
  3. import com.alibaba.fastjson.JSONObject;
  4. import com.ym.mec.biz.dal.entity.CourseScheduleStudentMusicScore;
  5. import lombok.Data;
  6. import lombok.Getter;
  7. import lombok.Setter;
  8. import org.apache.commons.lang3.StringUtils;
  9. import java.util.ArrayList;
  10. import java.util.Date;
  11. import java.util.List;
  12. import java.util.Map;
  13. import java.util.stream.Collectors;
  14. /**
  15. * Created by weiqinxiao on 2019/2/28.
  16. */
  17. public class RoomResult {
  18. private @Getter @Setter String roomId;
  19. //课程结束后是否自动关闭课程
  20. private @Getter @Setter Boolean autoCloseFlag = true;
  21. //课程结束后多少分钟关闭网络教室
  22. private @Getter @Setter String autoCloseNetworkRoomTime;
  23. private @Getter @Setter Date startTime;
  24. private @Getter @Setter int surplusTime;
  25. private @Getter @Setter String imToken;
  26. private @Getter @Setter String authorization;
  27. private @Getter List<MemberResult> members = new ArrayList<>();
  28. private @Getter @Setter String display;
  29. private @Getter @Setter List<WhiteboardResult> whiteboards = new ArrayList<>();
  30. private @Getter @Setter MemberResult userInfo;
  31. @Data
  32. public static class MemberResult {
  33. String userId;
  34. String userName;
  35. String headUrl;
  36. int role;
  37. Date joinTime;
  38. boolean camera;
  39. boolean microphone;
  40. boolean handUpOn;
  41. ExamSongDownloadData examSongDownloadJson;
  42. List<CourseScheduleStudentMusicScore> scheduleStudentMusicScores;
  43. CustomMessage playMidiJson;
  44. }
  45. @Data
  46. public static class WhiteboardResult {
  47. String whiteboardId;
  48. String name;
  49. int curPg;
  50. }
  51. public void setMembers(List<RoomMember> roomMemberList, Map<Integer,String> midiMap,Map<Integer,String> examSongMap,List<CourseScheduleStudentMusicScore> scheduleStudentMusicScores) {
  52. for (RoomMember member : roomMemberList) {
  53. MemberResult result = new MemberResult();
  54. result.setUserId(member.getUid());
  55. result.setJoinTime(member.getJoinDt());
  56. result.setRole(member.getRole());
  57. result.setMicrophone(member.isMic());
  58. result.setCamera(member.isCamera());
  59. result.setUserName(member.getName());
  60. result.setHandUpOn(member.isHand());
  61. result.setHeadUrl(member.getHeadUrl());
  62. result.setPlayMidiJson(JSONObject.parseObject(midiMap.get(Integer.parseInt(member.getUid())),CustomMessage.class));
  63. if(scheduleStudentMusicScores != null && scheduleStudentMusicScores.size() > 0){
  64. result.setScheduleStudentMusicScores(scheduleStudentMusicScores.stream().filter(e->e.getUserId() == Integer.parseInt(result.getUserId())).collect(Collectors.toList()));
  65. }
  66. ExamSongDownloadData examSongDownloadData;
  67. String json = examSongMap.get(Integer.parseInt(member.getUid()));
  68. if(StringUtils.isEmpty(json)){
  69. examSongDownloadData = new ExamSongDownloadData();
  70. }else {
  71. examSongDownloadData = JSON.parseObject(json,ExamSongDownloadData.class);
  72. }
  73. result.setExamSongDownloadJson(examSongDownloadData);
  74. members.add(result);
  75. }
  76. }
  77. public void setWhiteboards(List<Whiteboard> whiteboardList) {
  78. for (Whiteboard wb : whiteboardList) {
  79. WhiteboardResult r = new WhiteboardResult();
  80. r.setName(wb.getName());
  81. r.setWhiteboardId(wb.getWbid());
  82. r.setCurPg(wb.getCurPg());
  83. whiteboards.add(r);
  84. }
  85. }
  86. }