shangke 2 anos atrás
pai
commit
4d3e2c3af8

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

@@ -2039,4 +2039,16 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
     List<CourseSchedule> liveCourseRemind(Integer minutes);
 
     void updateRemindStatus(@Param("ids") List<Long> ids);
+
+    /**
+     * 获取下一次连堂课
+     *
+     * @param classGroupId 班级编号
+     * @param classDate 上课时间
+     * @param teacherId 老师编号
+     * @return List<CourseSchedule>
+     */
+    List<CourseSchedule> getTeacherContinuousCourse(@Param("classGroupId") Integer classGroupId,
+                                                    @Param("classDate") Date classDate,
+                                                    @Param("teacherId") Integer teacherId);
 }

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

@@ -229,7 +229,7 @@ public class CourseSchedule  extends BaseEntity{
 	private Integer liveRemind;
 
 
-    @ApiModelProperty(value = "是否连堂课 continuous_coourse_")
+    @ApiModelProperty(value = "是否连堂课 continuous_course_")
     private Boolean continuousCourse;
 
     public Boolean getContinuousCourse() {

+ 4 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java

@@ -5986,6 +5986,10 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 			continueCourseTime = "5";
 		}
 
+		// 连堂课标准:同一个老师,同一天,同一课程组,连续上课
+
+
+
 		CourseSchedule schedule = courseSchedule;
 		// 如果当前课程是连堂课,那么获取第一节课的课程编号
 		while (true) {

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

@@ -47,6 +47,8 @@
         <result column="service_provider_" property="serviceProvider"/>
         <result column="mute_all_" property="muteAll"/>
         <result column="live_remind_" property="liveRemind"/>
+        <result column="live_room_id_" property="liveRoomId" />
+        <result column="continuous_course_" property="continuousCourse" />
     </resultMap>
 
     <resultMap type="com.ym.mec.biz.dal.dto.Mapper" id="Mapper">
@@ -184,7 +186,9 @@
         cs.evaluate_flag_,
         cs.service_provider_,
         cs.mute_all_,
-        cs.live_room_id_
+        cs.live_room_id_,
+        cs.live_room_id_,
+        cs.continuous_course_
     </sql>
 
     <sql id="courseIgnore">
@@ -4357,4 +4361,11 @@
             #{id}
         </foreach>
     </update>
+
+    <select id="getTeacherContinuousCourse" resultMap="CourseSchedule">
+        SELECT <include refid="resultSql"/> FROM course_schedule cs
+        WHERE cs.class_group_id_ = #{classGroupId}
+        AND cs.actual_teacher_id_ = #{teacherId} AND cs.pre_course_flag_ = 0
+        ORDER BY cs.class_date_ DESC,cs.end_class_time_ DESC
+    </select>
 </mapper>

+ 18 - 0
mec-im/src/main/java/com/ym/controller/UserController.java

@@ -127,6 +127,24 @@ public class UserController {
             callbackOnMemberStateChange.setOptPlatform(optPlatform);
             if (callbackOnMemberStateChange.getGroupId().startsWith("LIVE")) {
                 imLiveBroadcastRoomService.callbackOnMemberStateChange(callbackOnMemberStateChange);
+
+                // 直播课学生签退
+                String[] values = callbackOnMemberStateChange.getGroupId().split("-");
+                String roomId = values.length > 2 ? values[1] : "";
+
+                if ((roomId.startsWith("S") || roomId.startsWith("I"))
+                        && CollectionUtils.isNotEmpty(callbackOnMemberStateChange.getMemberList())
+                        && "Offline".equals(callbackOnMemberStateChange.getEventType())) {
+
+                    // 学生编号
+                    String userId = callbackOnMemberStateChange.getMemberList().get(0).getMemberAccount();
+                    try {
+                        roomService.leaveRoomSuccess(roomId, userId, null);
+                    } catch (Exception e) {
+                        log.error("tencentImCallback leaveRoomSuccess error, roomId={}, userId={}", roomId, userId, e);
+                    }
+
+                }
             }