Browse Source

新版教师端

zouxuan 4 years ago
parent
commit
45cb5e2c4a

+ 2 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ClassGroupDao.java

@@ -834,4 +834,6 @@ public interface ClassGroupDao extends BaseDAO<Integer, ClassGroup> {
      * @return
      */
     List<Long> queryGroupClassGroupIds(Integer userId);
+
+    int countCourseNum(@Param("classGroupId") Integer classGroupId, @Param("teachMode") String teachMode);
 }

+ 10 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/TeacherClassHeadInfo.java

@@ -36,6 +36,8 @@ public class TeacherClassHeadInfo {
     @ApiModelProperty(value = "当前课次",required = false)
     private Integer currentClassTimes;
 
+    private Integer surplusClassTimes;
+
     @ApiModelProperty(value = "声部信息",required = false)
     private String subjectNames;
 
@@ -56,6 +58,14 @@ public class TeacherClassHeadInfo {
 
     private String teachMode;
 
+    public Integer getSurplusClassTimes() {
+        return surplusClassTimes;
+    }
+
+    public void setSurplusClassTimes(Integer surplusClassTimes) {
+        this.surplusClassTimes = surplusClassTimes;
+    }
+
     public String getTeachMode() {
         return teachMode;
     }

+ 23 - 9
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupServiceImpl.java

@@ -1516,18 +1516,18 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
                 String[] studentNums = classGroupStudentMapperDao.findStudentNumByClassGroupId(teacherClassGroupDto.getClassGroupId());
                 teacherClassGroupDto.setStudentNames(StringUtils.join(studentNums, ","));
             }
+            if (teacherClassGroupDto.getOnlineClassesNum() > 0 && teacherClassGroupDto.getOffLineClassesNum() <= 0) {
+                teacherClassGroupDto.setClassMode(1);
+            } else if (teacherClassGroupDto.getOnlineClassesNum() > 0 && teacherClassGroupDto.getOffLineClassesNum() > 0) {
+                teacherClassGroupDto.setClassMode(3);
+            } else if (teacherClassGroupDto.getOnlineClassesNum() <= 0 && teacherClassGroupDto.getOffLineClassesNum() > 0) {
+                teacherClassGroupDto.setClassMode(2);
+            } else {
+                teacherClassGroupDto.setClassMode(0);
+            }
             if (teacherClassGroupDto.getType() == ClassGroupTypeEnum.VIP) {
                 String[] studentNums = classGroupStudentMapperDao.findStudentNumByClassGroupId(teacherClassGroupDto.getClassGroupId());
                 teacherClassGroupDto.setStudentNames(StringUtils.join(studentNums, ","));
-                if (teacherClassGroupDto.getOnlineClassesNum() > 0 && teacherClassGroupDto.getOffLineClassesNum() <= 0) {
-                    teacherClassGroupDto.setClassMode(1);
-                } else if (teacherClassGroupDto.getOnlineClassesNum() > 0 && teacherClassGroupDto.getOffLineClassesNum() > 0) {
-                    teacherClassGroupDto.setClassMode(3);
-                } else if (teacherClassGroupDto.getOnlineClassesNum() <= 0 && teacherClassGroupDto.getOffLineClassesNum() > 0) {
-                    teacherClassGroupDto.setClassMode(2);
-                } else {
-                    teacherClassGroupDto.setClassMode(0);
-                }
 
                 Integer overCourses = vipGroupOverCourseMaps.get(teacherClassGroupDto.getMusicGroupId());
                 if (Objects.isNull(overCourses)) {
@@ -1639,9 +1639,23 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
         String subjectNames = subjectDao.findNames(classGroup.getSubjectIdList());
 
         TeacherClassHeadInfo teacherClassHeadInfo = new TeacherClassHeadInfo();
+        //获取班级的线上、线下课数量
+        int onlineCourseNum = classGroupDao.countCourseNum(classGroupId,"ONLINE");
+        int offlineCourseNum = classGroupDao.countCourseNum(classGroupId,"OFFLINE");
+
+        if (onlineCourseNum > 0 && offlineCourseNum <= 0) {
+            teacherClassHeadInfo.setTeachMode("1");
+        } else if (onlineCourseNum > 0 && offlineCourseNum > 0) {
+            teacherClassHeadInfo.setTeachMode("3");
+        } else if (onlineCourseNum <= 0 && offlineCourseNum > 0) {
+            teacherClassHeadInfo.setTeachMode("2");
+        } else {
+            teacherClassHeadInfo.setTeachMode("0");
+        }
         teacherClassHeadInfo.setStudentNum(classGroupStudentMapperDao.countClassGroupStudentNum(classGroup.getId()));
         teacherClassHeadInfo.setCurrentClassTimes(courseScheduleDao.countCurrentTimes(classGroup.getId(), new Date()));
         teacherClassHeadInfo.setTotalClassTimes(courseScheduleDao.countClassGroupCourses(classGroup.getId()));
+        teacherClassHeadInfo.setSurplusClassTimes(teacherClassHeadInfo.getTotalClassTimes()-teacherClassHeadInfo.getCurrentClassTimes());
         if (subjectNames != null && !subjectNames.isEmpty()) {
             teacherClassHeadInfo.setSubjectNames(subjectNames);
         }

+ 5 - 0
mec-biz/src/main/resources/config/mybatis/ClassGroupMapper.xml

@@ -652,6 +652,8 @@
             mg.id_ music_group_id_,
             mg.name_ music_group_name_,
             s.id_ school_id_,
+            COUNT(CASE WHEN cs.teach_mode_ = 'ONLINE' THEN 1 ELSE NULL END) online_classes_num_,
+            COUNT(CASE WHEN cs.teach_mode_ = 'OFFLINE' THEN 1 ELSE NULL END) offline_classes_num_,
             CASE WHEN cg.type_ IN ('HIGH_ONLINE','MUSIC_NETWORK') THEN '网络教室' ELSE s.name_ END school_name_
         FROM
             course_schedule_teacher_salary csts
@@ -1516,4 +1518,7 @@
         LEFT JOIN class_group cg ON cg.music_group_id_ = pg.id_
         WHERE pg.educational_teacher_id_ = #{userId} AND cg.group_type_ = 'PRACTICE' AND cg.del_flag_ = 0
     </select>
+    <select id="countCourseNum" resultType="int">
+        SELECT COUNT(id_) FROM course_schedule WHERE class_group_id_ = #{teachMode} AND teach_mode_ = #{teachMode}
+    </select>
 </mapper>