shangke 1 rok temu
rodzic
commit
4890664b00

+ 7 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CourseScheduleDao.java

@@ -1988,4 +1988,11 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
      * @param serviceProvider 服务提供方
      */
     void updateServiceProvider(@Param("courseScheduleId") Long courseScheduleId, @Param("serviceProvider") String serviceProvider);
+
+    /**
+     * 更新全员静音状态
+     * @param courseScheduleId 课程ID
+     * @param muteAll 全员静音状态
+     */
+    void updateGroupMuteAllStatus(@Param("courseScheduleId") Long courseScheduleId, @Param("muteAll") Boolean muteAll);
 }

+ 11 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/CourseSchedule.java

@@ -210,6 +210,9 @@ public class CourseSchedule  extends BaseEntity{
 	@ApiModelProperty("服务提供方")
 	private String serviceProvider;
 
+	@ApiModelProperty("全员静音")
+	private Boolean muteAll;
+
 	public Boolean getSettlementReportFlag() {
 		return settlementReportFlag;
 	}
@@ -672,6 +675,14 @@ public class CourseSchedule  extends BaseEntity{
 		this.serviceProvider = serviceProvider;
 	}
 
+	public Boolean getMuteAll() {
+		return muteAll;
+	}
+
+	public void setMuteAll(Boolean muteAll) {
+		this.muteAll = muteAll;
+	}
+
 	public static CourseScheduleType getCourseScheduleTypeByCode(String code) {
 		CourseScheduleType type = null;
 		for (CourseScheduleType courseScheduleType : CourseScheduleType.values()) {

+ 14 - 1
mec-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml

@@ -44,6 +44,8 @@
         <result column="evaluate_flag_" property="evaluateFlag"/>
         <result column="convert_flag_" property="convertFlag"/>
         <result column="settlement_report_flag_" property="settlementReportFlag"/>
+        <result column="service_provider_" property="serviceProvider"/>
+        <result column="mute_all_" property="muteAll"/>
     </resultMap>
 
     <resultMap type="com.ym.mec.biz.dal.dto.Mapper" id="Mapper">
@@ -175,7 +177,8 @@
         cs.pre_course_flag_,
         cs.tenant_id_,
         cs.evaluate_flag_,
-        cs.service_provider_
+        cs.service_provider_,
+        cs.mute_all_
     </sql>
 
     <sql id="courseIgnore">
@@ -4137,4 +4140,14 @@
             update_time_ = NOW()
         WHERE id_ = #{courseScheduleId}
     </update>
+
+    <!--更新全员静音状态-->
+    <update id="updateGroupMuteAllStatus">
+        UPDATE course_schedule
+        SET mute_all_ = #{muteAll},
+            update_time_ = NOW()
+        WHERE id_ = #{courseScheduleId}
+    </update>
+    <!--更新全员静音状态-->
+
 </mapper>

+ 18 - 1
mec-im/src/main/java/com/ym/service/Impl/RoomServiceImpl.java

@@ -227,6 +227,8 @@ public class RoomServiceImpl implements RoomService {
         log.info("joinRoom current: roomId={}, userId={}", roomId, userId);
         RoleEnum roleEnum;
 
+        // 全员静音状态
+        Boolean muteAll = Optional.ofNullable(courseSchedule.getMuteAll()).orElse(false);
 
         RoomResult.MemberResult userResult = new RoomResult.MemberResult();
         RoomMember member = roomMemberDao.findByRidAndUid(roomId, userId);
@@ -244,7 +246,8 @@ public class RoomServiceImpl implements RoomService {
                 roleEnum = RoleStudent;
                 userName = sysUser.getUsername();
             }
-            userResult.setMicrophone(true);
+
+            userResult.setMicrophone(!muteAll);
             userResult.setCamera(true);
             userResult.setHandUpOn(false);
             userResult.setJoinTime(curTime);
@@ -361,6 +364,15 @@ public class RoomServiceImpl implements RoomService {
             Map<Integer, String> midiMap = MapUtil.convertMybatisMap(courseScheduleStudentPaymentDao.queryMidiByUserIdsAndCourseId(userIds, courseId.toString()));
             Map<Integer, String> examSongMap = MapUtil.convertMybatisMap(courseScheduleStudentPaymentDao.queryExamSongByUserIdsAndCourseId(userIds, courseId.toString()));
             roomResult.setMembers(roomMemberList, midiMap, examSongMap, scheduleStudentMusicScores);
+
+            // 全员静音状态开启
+            if (muteAll) {
+
+                // 重置用户当前静音状态
+                for (RoomResult.MemberResult item : roomResult.getMembers()) {
+                    item.setMicrophone(false);
+                }
+            }
         }
         roomResult.setWhiteboards(whiteboardDao.findByRid(roomId));
         if (room != null) {
@@ -1428,6 +1440,11 @@ public class RoomServiceImpl implements RoomService {
         }
         data.setServiceProvider(courseSchedule.getServiceProvider());
 
+        // 同步全员静音状态
+        if (Objects.nonNull(data.getMicrophoneOn())) {
+            courseScheduleDao.updateGroupMuteAllStatus(courseScheduleId, data.getMicrophoneOn());
+        }
+
         // 课程老师信息
         SysUser sysUser = sysUserFeignService.queryUserById(courseSchedule.getTeacherId());
         if (Objects.nonNull(sysUser)) {