Quellcode durchsuchen

Merge branch 'feature/0529-live' into master_saas

liujc vor 1 Jahr
Ursprung
Commit
c0c75b00b8

+ 72 - 69
.idea/httpRequests/http-requests-log.http

@@ -1,3 +1,75 @@
+POST http://127.0.0.1:9002/teacherAttendance/getLiveCurrentCourseStudents
+authorization: bearer 97fd8e85-bb3c-4967-8a07-47c44957f94a
+Content-Type: application/json
+Content-Length: 70
+Connection: Keep-Alive
+User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
+Accept-Encoding: br,deflate,gzip,x-gzip
+
+{
+  "courseScheduleId": 2001,
+//  "status": "NORMAL",
+  "search": ""
+}
+
+<> 2023-06-08T141058.200.json
+
+###
+
+POST http://127.0.0.1:9002/teacherAttendance/getLiveCurrentCourseStudents
+authorization: bearer 97fd8e85-bb3c-4967-8a07-47c44957f94a
+Content-Type: application/json
+Content-Length: 68
+Connection: Keep-Alive
+User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
+Accept-Encoding: br,deflate,gzip,x-gzip
+
+{
+  "courseScheduleId": 2001,
+  "status": "NORMAL",
+  "search": ""
+}
+
+<> 2023-06-08T141049.200.json
+
+###
+
+POST http://127.0.0.1:9002/teacherAttendance/getCurrentCourseStudents
+authorization: bearer 97fd8e85-bb3c-4967-8a07-47c44957f94a
+Content-Type: application/json
+Content-Length: 68
+Connection: Keep-Alive
+User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
+Accept-Encoding: br,deflate,gzip,x-gzip
+
+{
+  "courseScheduleId": 2001,
+  "status": "NORMAL",
+  "search": ""
+}
+
+<> 2023-06-08T140909.200.json
+
+###
+
+POST http://127.0.0.1:9002/teacherAttendance/getCurrentCourseStudents
+authorization: bearer 1238347b-3b06-444e-9d35-d122639121ad
+Content-Type: application/json
+Content-Length: 68
+Connection: Keep-Alive
+User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
+Accept-Encoding: br,deflate,gzip,x-gzip
+
+{
+  "courseScheduleId": 2001,
+  "status": "NORMAL",
+  "search": ""
+}
+
+<> 2023-06-08T140848.200.json
+
+###
+
 POST http://127.0.0.1:9002/teacherCourseSchedule/liveCoursePage
 authorization: bearer 1238347b-3b06-444e-9d35-d122639121ad
 Content-Type: application/json
@@ -679,72 +751,3 @@ Accept-Encoding: br,deflate,gzip,x-gzip
 
 ###
 
-GET http://127.0.0.1:9001/studentOrder/setSuccessStatus
-Connection: Keep-Alive
-User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
-Accept-Encoding: br,deflate,gzip,x-gzip
-
-<> 2023-06-01T202120.200.json
-
-###
-
-POST http://127.0.0.1:8005/imGroup/schoolQueryFriendList
-Authorization: bearer cc492cd7-4ba9-413c-a7e9-d9d9b44f6d07
-Content-Type: application/json
-Content-Length: 144
-Connection: Keep-Alive
-User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
-Accept-Encoding: br,deflate,gzip,x-gzip
-
-{
-//  "keyword": "宁老师",
-//  "groupType": "SCHOOL",
-  "roleType": "STUDENT",
-  "musicGroupId": "23050514590600001",
-//  "lockFlag": false
-}
-
-<> 2023-06-01T195106.200.json
-
-###
-
-POST http://127.0.0.1:8005/imGroup/schoolQueryFriendList
-Authorization: bearer cc492cd7-4ba9-413c-a7e9-d9d9b44f6d07
-Content-Type: application/json
-Content-Length: 154
-Connection: Keep-Alive
-User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
-Accept-Encoding: br,deflate,gzip,x-gzip
-
-{
-//  "keyword": "宁老师",
-//  "groupType": "SCHOOL",
-  "roleType": "ORCHESTRA_TEACHER",
-  "musicGroupId": "23050514590600001",
-//  "lockFlag": false
-}
-
-<> 2023-06-01T195052.200.json
-
-###
-
-POST http://127.0.0.1:8005/imGroup/schoolQueryFriendList
-Authorization: bearer cc492cd7-4ba9-413c-a7e9-d9d9b44f6d07
-Content-Type: application/json
-Content-Length: 154
-Connection: Keep-Alive
-User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
-Accept-Encoding: br,deflate,gzip,x-gzip
-
-{
-//  "keyword": "宁老师",
-//  "groupType": "SCHOOL",
-  "roleType": "ORCHESTRA_MANAGER",
-  "musicGroupId": "23050514590600001",
-//  "lockFlag": false
-}
-
-<> 2023-06-01T195028.200.json
-
-###
-

+ 8 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ClassGroupStudentMapperDao.java

@@ -5,6 +5,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
+import com.ym.mec.biz.dal.wrapper.LiveGroupWrapper;
 import org.apache.ibatis.annotations.Param;
 
 import com.ym.mec.biz.dal.dto.BaseMapDto;
@@ -480,4 +481,11 @@ public interface ClassGroupStudentMapperDao extends BaseDAO<Long, ClassGroupStud
     List<VipGroupClassGroupMapper> queryWaitCancelVipGroup(@Param("groupType") String groupType);
 
     List<ClassGroupStudentMapper> findByVipGroups(@Param("groupIds") List<Long> groupIds);
+
+    /**
+     * 查询学生考勤
+     *
+     * @return
+     */
+    List<StudentAttendanceViewDto> getLiveCurrentCourseStudents(@Param("param") LiveGroupWrapper.LiveCourseStudentQuery query);
 }

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

@@ -226,13 +226,13 @@ public class CourseSchedule  extends BaseEntity{
 
 
 	@ApiModelProperty(value = "直播课通知标记")
-	private Boolean liveRemind;
+	private Integer liveRemind;
 
-	public Boolean getLiveRemind() {
+	public Integer getLiveRemind() {
 		return liveRemind;
 	}
 
-	public void setLiveRemind(Boolean liveRemind) {
+	public void setLiveRemind(Integer liveRemind) {
 		this.liveRemind = liveRemind;
 	}
 

+ 22 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/wrapper/LiveGroupWrapper.java

@@ -3,6 +3,7 @@ package com.ym.mec.biz.dal.wrapper;
 import com.microsvc.toolkit.common.response.paging.QueryInfo;
 import com.ym.mec.biz.dal.entity.CourseSchedule;
 import com.ym.mec.biz.dal.enums.CourseStatusEnum;
+import com.ym.mec.biz.dal.enums.StudentAttendanceStatusEnum;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.AllArgsConstructor;
@@ -110,4 +111,25 @@ public class LiveGroupWrapper {
         private Integer tenantId;
 
     }
+
+
+    @Data
+    @Builder
+    @NoArgsConstructor
+    @AllArgsConstructor
+    @ApiModel(" LiveCourseStudentQuery-乐直播课程学生列表查询")
+    public static class LiveCourseStudentQuery {
+
+
+
+        @ApiModelProperty("课程ID")
+        private Long courseScheduleId;
+
+        @ApiModelProperty(value = "学生在学状态")
+        private StudentAttendanceStatusEnum status;
+
+        @ApiModelProperty(value = "学生姓名")
+        private String search;
+
+    }
 }

+ 3 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/ClassGroupService.java

@@ -7,6 +7,7 @@ import com.ym.mec.biz.dal.enums.ClassGroupTypeEnum;
 import com.ym.mec.biz.dal.enums.GroupType;
 import com.ym.mec.biz.dal.enums.SalarySettlementTypeEnum;
 import com.ym.mec.biz.dal.page.*;
+import com.ym.mec.biz.dal.wrapper.LiveGroupWrapper;
 import com.ym.mec.common.entity.HttpResponseResult;
 import com.ym.mec.common.entity.ImGroupModel;
 import com.ym.mec.common.entity.ImUserModel;
@@ -619,4 +620,6 @@ public interface ClassGroupService extends BaseService<Integer, ClassGroup> {
      * @param musicGroupIds 乐团ID
      */
     List<ClassGroup> getClassGroupByMusicIds(List<String> musicGroupIds);
+
+    List<StudentAttendanceViewDto> getLiveCurrentCourseStudents(LiveGroupWrapper.LiveCourseStudentQuery query);
 }

+ 19 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupServiceImpl.java

@@ -13,6 +13,7 @@ import com.ym.mec.biz.dal.entity.*;
 import com.ym.mec.biz.dal.entity.CourseSchedule.CourseScheduleType;
 import com.ym.mec.biz.dal.enums.*;
 import com.ym.mec.biz.dal.page.*;
+import com.ym.mec.biz.dal.wrapper.LiveGroupWrapper;
 import com.ym.mec.biz.service.*;
 import com.ym.mec.common.constant.CommonConstants;
 import com.ym.mec.common.controller.BaseController;
@@ -31,6 +32,7 @@ import com.ym.mec.util.collection.MapUtil;
 import com.ym.mec.util.date.DateConvertor;
 import com.ym.mec.util.date.DateUtil;
 import org.apache.commons.lang3.StringUtils;
+import org.jetbrains.annotations.NotNull;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
 import org.springframework.stereotype.Service;
@@ -1890,6 +1892,12 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
             throw new BizException("请指定课程编号");
         }
         List<StudentAttendanceViewDto> studentByCourse = classGroupStudentMapperDao.findStudentByCourse(courseScheduleId);
+        List<StudentAttendanceViewDto> truantStudent = getStudentAttendanceViewDtosFormat(courseScheduleId, studentByCourse);
+        return truantStudent;
+    }
+
+    @NotNull
+    private List<StudentAttendanceViewDto> getStudentAttendanceViewDtosFormat(Long courseScheduleId, List<StudentAttendanceViewDto> studentByCourse) {
         List<StudentAttendanceViewDto> leaveStudent = studentByCourse.stream()
                 .filter(studentAttendanceViewDto -> StudentAttendanceStatusEnum.LEAVE.equals(studentAttendanceViewDto.getStatus()))
                 .collect(Collectors.toList());
@@ -3615,6 +3623,17 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
     }
 
     @Override
+    public List<StudentAttendanceViewDto> getLiveCurrentCourseStudents(LiveGroupWrapper.LiveCourseStudentQuery query) {
+
+        if (Objects.isNull(query.getCourseScheduleId())) {
+            throw new BizException("请指定课程编号");
+        }
+        List<StudentAttendanceViewDto> studentByCourse = classGroupStudentMapperDao.getLiveCurrentCourseStudents(query);
+        List<StudentAttendanceViewDto> truantStudent = getStudentAttendanceViewDtosFormat(query.getCourseScheduleId(), studentByCourse);
+        return truantStudent;
+    }
+
+    @Override
     public PageInfo<MusicGroupCourseScheduleDto> queryMusicGroupCourseScheduleDetail(queryMusicGroupCourseScheduleQueryInfo queryInfo) {
         PageInfo<MusicGroupCourseScheduleDto> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
         Map<String, Object> params = new HashMap<>();

+ 6 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupServiceImpl.java

@@ -5062,5 +5062,11 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
     @Override
     public void closeLiveCourseRoom() {
 
+        // 查询非连堂课  且  已经结束的课程
+
+        // 通知学生退出直播间
+
+        // 没有直播流 关闭直播间
+
     }
 }

+ 31 - 0
mec-biz/src/main/resources/config/mybatis/ClassGroupStudentMapperMapper.xml

@@ -726,4 +726,35 @@
         </foreach>
         and group_type_ IN ('VIP','LIVE') and status_ = 'QUIT'
     </select>
+
+    <select id="getLiveCurrentCourseStudents" resultType="com.ym.mec.biz.dal.dto.StudentAttendanceViewDto">
+        SELECT
+        cssp.group_type_,
+        cssp.music_group_id_,
+        cssp.user_id_ student_id_,
+        su.username_,
+        su.avatar_,
+        cssp.be_merged_,
+        st.current_grade_num_,
+        st.current_class_,
+        IF(sa.status_ IS NULL,'TRUANT',sa.status_) status_
+        FROM
+        course_schedule_student_payment cssp
+        LEFT JOIN sys_user su ON cssp.user_id_ = su.id_
+        LEFT JOIN student st ON st.user_id_ = su.id_
+        LEFT JOIN student_attendance sa ON cssp.course_schedule_id_ = sa.course_schedule_id_ AND cssp.user_id_ = sa.user_id_
+        WHERE
+        cssp.course_schedule_id_ =#{param.courseScheduleId}
+        <if test="param.search != null and param.search != ''">
+            and (su.username_ like CONCAT('%',#{param.search},'%') )
+        </if>
+        <if test="param.status != null">
+            and (
+            <if test="param.status.name == 'TRUANT'">
+                sa.status_ is null or
+            </if>
+            sa.status_ = #{param.status})
+        </if>
+        AND su.id_ IS NOT NULL
+    </select>
 </mapper>

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

@@ -4351,7 +4351,7 @@
 
     <update id="updateRemindStatus">
         update course_schedule
-        set live_remind_ = 1,status_ = 'UNDERWAY'
+        set status_ = 'UNDERWAY'
         where id_  in
         <foreach collection="ids" item="id" open="(" separator="," close=")">
             #{id}

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

@@ -69,6 +69,6 @@
     <if test="param.search != null and param.search != ''">
         AND (cs.name_ LIKE CONCAT('%',#{param.search},'%'))
     </if>
-    order by field(ilbr.live_state_, 1, 0, 2) asc, ilbr.live_start_time_ desc
+    order by field(cs.status_, 'UNDERWAY', 'NOT_START', 'OVER') asc, cs.class_date_,cs.start_class_time_
     </select>
 </mapper>

+ 11 - 1
mec-teacher/src/main/java/com/ym/mec/teacher/controller/TeacherAttendanceController.java

@@ -13,6 +13,7 @@ import com.ym.mec.biz.dal.enums.MessageTypeEnum;
 import com.ym.mec.biz.dal.enums.StudentAttendanceStatusEnum;
 import com.ym.mec.biz.dal.enums.UpdateAttendanceEnum;
 import com.ym.mec.biz.dal.page.TeacherAttendanceQueryInfo;
+import com.ym.mec.biz.dal.wrapper.LiveGroupWrapper;
 import com.ym.mec.biz.service.*;
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.entity.HttpResponseResult;
@@ -66,13 +67,22 @@ public class TeacherAttendanceController extends BaseController {
     public Object queryPage(TeacherAttendanceQueryInfo queryInfo) {
         return succeed(teacherAttendanceService.queryPage(queryInfo));
     }
-    
+
+
     @ApiOperation(value = "根据班级ID获取当前课程的学生")
     @GetMapping("/getCurrentCourseStudents")
     public Object getCurrentCourseStudents(Long courseScheduleId){
         return succeed(classGroupService.findAttendanceStudentByCourse(courseScheduleId));
     }
 
+
+
+    @ApiOperation(value = "根据班级ID获取当前课程的学生")
+    @PostMapping("/getLiveCurrentCourseStudents")
+    public Object getLiveCurrentCourseStudents(@RequestBody LiveGroupWrapper.LiveCourseStudentQuery query){
+        return succeed(classGroupService.getLiveCurrentCourseStudents(query));
+    }
+
     @ApiOperation(value = "获取用户所在分部的年级列表)")
     @GetMapping("/getGradeList")
     public HttpResponseResult<Map<Integer,String>> getGradeList(Long courseScheduleId) {