RoomResult.java 3.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  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. //伴奏音量
  26. private @Getter @Setter int soundVolume = 100;
  27. private @Getter @Setter String imToken;
  28. private @Getter @Setter String authorization;
  29. private @Getter List<MemberResult> members = new ArrayList<>();
  30. private @Getter @Setter String display;
  31. private @Getter @Setter List<WhiteboardResult> whiteboards = new ArrayList<>();
  32. private @Getter @Setter MemberResult userInfo;
  33. @Data
  34. public static class MemberResult {
  35. String userId;
  36. String userName;
  37. String headUrl;
  38. int role;
  39. Date joinTime;
  40. boolean camera;
  41. boolean microphone;
  42. boolean handUpOn;
  43. ExamSongDownloadData examSongDownloadJson;
  44. List<CourseScheduleStudentMusicScore> scheduleStudentMusicScores;
  45. CustomMessage playMidiJson;
  46. }
  47. @Data
  48. public static class WhiteboardResult {
  49. String whiteboardId;
  50. String name;
  51. int curPg;
  52. }
  53. public void setMembers(List<RoomMember> roomMemberList, Map<Integer,String> midiMap,Map<Integer,String> examSongMap,List<CourseScheduleStudentMusicScore> scheduleStudentMusicScores) {
  54. for (RoomMember member : roomMemberList) {
  55. MemberResult result = new MemberResult();
  56. result.setUserId(member.getUid());
  57. result.setJoinTime(member.getJoinDt());
  58. result.setRole(member.getRole());
  59. result.setMicrophone(member.isMic());
  60. result.setCamera(member.isCamera());
  61. result.setUserName(member.getName());
  62. result.setHandUpOn(member.isHand());
  63. result.setHeadUrl(member.getHeadUrl());
  64. result.setPlayMidiJson(JSONObject.parseObject(midiMap.get(Integer.parseInt(member.getUid())),CustomMessage.class));
  65. if(scheduleStudentMusicScores != null && scheduleStudentMusicScores.size() > 0){
  66. result.setScheduleStudentMusicScores(scheduleStudentMusicScores.stream().filter(e->e.getUserId().equals(Integer.parseInt(result.getUserId()))).collect(Collectors.toList()));
  67. }
  68. ExamSongDownloadData examSongDownloadData;
  69. String json = examSongMap.get(Integer.parseInt(member.getUid()));
  70. if(StringUtils.isEmpty(json)){
  71. examSongDownloadData = new ExamSongDownloadData();
  72. }else {
  73. examSongDownloadData = JSON.parseObject(json,ExamSongDownloadData.class);
  74. }
  75. result.setExamSongDownloadJson(examSongDownloadData);
  76. members.add(result);
  77. }
  78. }
  79. public void setWhiteboards(List<Whiteboard> whiteboardList) {
  80. for (Whiteboard wb : whiteboardList) {
  81. WhiteboardResult r = new WhiteboardResult();
  82. r.setName(wb.getName());
  83. r.setWhiteboardId(wb.getWbid());
  84. r.setCurPg(wb.getCurPg());
  85. whiteboards.add(r);
  86. }
  87. }
  88. }