瀏覽代碼

Merge branch 'master' of http://git.dayaedu.com/yonge/mec

 Conflicts:
	mec-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml
zouxuan 4 年之前
父節點
當前提交
dc3930b05e
共有 1 個文件被更改,包括 105 次插入107 次删除
  1. 105 107
      mec-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml

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

@@ -8,6 +8,7 @@
 
     <resultMap type="com.ym.mec.biz.dal.entity.CourseSchedule" id="CourseSchedule">
         <result column="id_" property="id"/>
+        <result column="new_course_id_" property="newCourseId"/>
         <result column="group_type_" property="groupType" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
         <result column="music_group_id_" property="musicGroupId"/>
         <result column="class_group_id_" property="classGroupId"/>
@@ -41,6 +42,11 @@
         <result column="value_" property="value"/>
     </resultMap>
 
+    <resultMap type="com.ym.mec.biz.dal.dto.RemainCourseTypeDurationDto" id="RemainCourseTypeDurationDto">
+        <result column="course_type_" property="courseType"/>
+        <result column="remain_minutes_" property="remainMinutes"/>
+    </resultMap>
+
     <resultMap id="CourseScheduleEndDto" type="com.ym.mec.biz.dal.dto.CourseScheduleEndDto" extends="CourseSchedule">
         <result column="course_start_time_" property="startClassTime"/>
         <result column="course_end_time_" property="endClassTime"/>
@@ -117,50 +123,54 @@
         <result column="teacher_id_" property="teacherId"/>
         <result column="current_class_times_" property="currentClassTimes"/>
     </resultMap>
+    <sql id="resultSql">
+        cs.id_,
+        cs.new_course_id_,
+        cs.music_group_id_,
+        cs.group_type_,
+        cs.class_group_id_,
+        cs.status_,
+        cs.subsidy_,
+        cs.class_date_,
+        CONCAT(cs.class_date_,' ',cs.start_class_time_) start_class_time_,
+        CONCAT(cs.class_date_,' ',cs.end_class_time_) end_class_time_,
+        cs.start_class_time_                              start_class_time_str_,
+        cs.end_class_time_                                end_class_time_str_,
+        cs.teacher_id_,
+        cs.actual_teacher_id_,
+        cs.create_time_,
+        cs.update_time_,
+        cs.teach_mode_,
+        cs.type_,
+        cs.name_,
+        cs.student_num_,
+        cs.leave_student_num_,
+        cs.schoole_id_,
+        cs.del_flag_,
+        cs.is_lock_,
+        cs.teaching_content_,
+        cs.note_,
+        cs.organ_id_,
+        cs.new_course_id_
+    </sql>
 
     <!-- 根据主键查询一条记录 -->
     <select id="get" resultMap="CourseSchedule">
-        SELECT id_,
-               music_group_id_,
-               group_type_,
-               class_group_id_,
-               status_,
-               subsidy_,
-               class_date_,
-               CONCAT(class_date_, ' ', start_class_time_) start_class_time_,
-               CONCAT(class_date_, ' ', end_class_time_)   end_class_time_,
-               teacher_id_,
-               actual_teacher_id_,
-               create_time_,
-               update_time_,
-               teach_mode_,
-               type_,
-               name_,
-               student_num_,
-               leave_student_num_,
-               teaching_content_,
-               note_,
-               schoole_id_,
-               organ_id_
-        FROM course_schedule
-        WHERE id_ = #{id}
+        SELECT <include refid="resultSql"/>
+        FROM course_schedule cs
+        WHERE cs.id_ = #{id}
     </select>
 
     <!-- 全查询 -->
     <select id="findAll" resultMap="CourseSchedule">
-        SELECT *
-        FROM course_schedule
-        ORDER BY id_
+        SELECT <include refid="resultSql"/>
+        FROM course_schedule cs
+        ORDER BY cs.id_
     </select>
 
     <!-- 向数据库增加一条记录 -->
     <insert id="insert" parameterType="com.ym.mec.biz.dal.entity.CourseSchedule" useGeneratedKeys="true" keyColumn="id"
             keyProperty="id">
-        <!--
-        <selectKey resultClass="int" keyProperty="id" >
-        SELECT SEQ_WSDEFINITION_ID.nextval AS ID FROM DUAL
-        </selectKey>
-        -->
         INSERT INTO course_schedule
         (id_,group_type_,music_group_id_,class_group_id_,status_,subsidy_,class_date_,start_class_time_,end_class_time_,
         teacher_id_,actual_teacher_id_,create_time_,update_time_,type_,name_,teach_mode_,student_num_,leave_student_num_,
@@ -483,25 +493,7 @@
 
     <select id="findByCourseScheduleIds" resultMap="CourseSchedule">
         SELECT
-        cs.id_,
-        cs.music_group_id_,
-        cs.group_type_,
-        cs.class_group_id_,
-        cs.status_,
-        cs.subsidy_,
-        cs.class_date_,
-        CONCAT(cs.class_date_,' ',cs.start_class_time_) start_class_time_,
-        CONCAT(cs.class_date_,' ',cs.end_class_time_) end_class_time_,
-        cs.teacher_id_,
-        cs.actual_teacher_id_,
-        cs.create_time_,
-        cs.update_time_,
-        cs.teach_mode_,
-        cs.type_,
-        cs.name_,
-        cs.student_num_,
-        cs.leave_student_num_,
-        cs.schoole_id_
+        <include refid="resultSql"/>
         FROM
         course_schedule cs
         WHERE cs.id_ IN
@@ -1212,6 +1204,9 @@
         <foreach collection="list" item="item" index="index" open="" close="" separator=";">
             UPDATE course_schedule
             <set>
+                <if test="item.newCourseId != null">
+                    new_course_id_ = #{item.newCourseId},
+                </if>
                 <if test="item.classDate != null">
                     class_date_ = #{item.classDate},
                 </if>
@@ -1252,6 +1247,9 @@
                 <if test="item.teachMode != null">
                     teach_mode_ = #{item.teachMode,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
                 </if>
+                <if test="item.note != null">
+                    note_ = #{item.note},
+                </if>
                 update_time_ = NOW()
             </set>
             WHERE id_ = #{item.id}
@@ -1325,6 +1323,8 @@
         <result property="totalClassTimes" column="total_class_times_"/>
         <result property="studentNames" column="student_names_"/>
         <result column="teach_mode_" property="teachMode" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
+        <result column="school_id_" property="schoolId"/>
+        <result column="school_name_" property="schoolName"/>
     </resultMap>
 
     <sql id="teacherClassCourseScheduleQueryCondition">
@@ -1355,12 +1355,15 @@
         cs.actual_teacher_id_,
         cs.teach_mode_,
         su.real_name_ username_,
-        cg.total_class_times_
+        cg.total_class_times_,
+        cs.schoole_id_ school_id_,
+        s.name_ school_name_
         FROM
         course_schedule_teacher_salary csts
         LEFT JOIN course_schedule cs ON cs.id_ = csts.course_schedule_id_
         LEFT JOIN class_group cg ON cs.class_group_id_=cg.id_
         LEFT JOIN sys_user su ON cs.actual_teacher_id_ = su.id_
+        LEFT JOIN school s ON cs.schoole_id_=s.id_
         <include refid="teacherClassCourseScheduleQueryCondition"/>
         ORDER BY start_class_time_
         <include refid="global.limit"/>
@@ -1418,13 +1421,16 @@
         su.username_,
         cg.total_class_times_,
         GROUP_CONCAT(IF(sa.status_='NORMAL',ssu.username_,NULL)) student_names_,
-        MAX(sa.current_class_times_) current_class_times_
+        MAX(sa.current_class_times_) current_class_times_,
+        cs.schoole_id_ school_id_,
+        s.name_ school_name_
         FROM
         student_attendance sa
         LEFT JOIN course_schedule cs ON cs.id_ = sa.course_schedule_id_
         LEFT JOIN class_group cg ON cs.class_group_id_=cg.id_
         LEFT JOIN sys_user su ON cs.actual_teacher_id_ = su.id_
         LEFT JOIN sys_user ssu ON sa.user_id_=ssu.id_
+        LEFT JOIN school s ON cs.schoole_id_ = s.id_
         WHERE
         (cs.del_flag_ != 1 OR cs.del_flag_ IS NULL)
         AND sa.class_group_id_=#{classGroupId}
@@ -1994,6 +2000,24 @@
         </foreach>
     </delete>
 
+    <delete id="deleteMusicGroupCourseSchedulesWithStudents">
+        DELETE
+        FROM
+        course_schedule_student_payment
+        WHERE user_id_ IN
+        <foreach collection="userIds" item="userId" open="(" close=")" separator=",">
+            #{userId}
+        </foreach>
+        AND course_schedule_id_ IN
+        <foreach collection="courseScheduleIds" item="courseScheduleId" open="(" close=")" separator=",">
+            #{courseScheduleId}
+        </foreach>
+    </delete>
+
+    <select id="getClassGroupNotStartCourse" resultMap="CourseSchedule">
+        SELECT * FROM course_schedule WHERE class_group_id_=#{classGroupId} AND CONCAT(class_date_,' ', start_class_time_) &gt; NOW()
+    </select>
+
     <delete id="deleteCourseSchedulesByClassGroupIds">
         DELETE FROM course_schedule WHERE id_ IN
         <foreach collection="courseScheduleIds" item="courseScheduleId" open="(" close=")" separator=",">
@@ -2246,15 +2270,7 @@
           AND music_group_id_ = #{groupId}
     </select>
     <select id="findSurplusCourseWithGroup" resultMap="CourseSchedule">
-        SELECT cs.id_,
-               cs.music_group_id_,
-               cs.class_group_id_,
-               cs.status_,
-               cs.class_date_,
-               CONCAT(cs.class_date_, ' ', cs.start_class_time_) start_class_time_,
-               CONCAT(cs.class_date_, ' ', cs.end_class_time_)   end_class_time_,
-               cs.actual_teacher_id_,
-               cs.teach_mode_
+        SELECT <include refid="resultSql"/>
         FROM course_schedule cs
         WHERE (cs.del_flag_ != 1 OR cs.del_flag_ IS NULL)
           AND cs.group_type_ = #{groupType, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
@@ -2263,25 +2279,7 @@
     </select>
 
     <select id="getSurplusCourseWithGroup" resultMap="CourseSchedule">
-        SELECT cs.id_,
-               cs.music_group_id_,
-               cs.group_type_,
-               cs.class_group_id_,
-               cs.status_,
-               cs.subsidy_,
-               cs.class_date_,
-               CONCAT(cs.class_date_, ' ', cs.start_class_time_) start_class_time_,
-               CONCAT(cs.class_date_, ' ', cs.end_class_time_)   end_class_time_,
-               cs.teacher_id_,
-               cs.actual_teacher_id_,
-               cs.create_time_,
-               cs.update_time_,
-               cs.teach_mode_,
-               cs.type_,
-               cs.name_,
-               cs.student_num_,
-               cs.leave_student_num_,
-               cs.schoole_id_
+        SELECT <include refid="resultSql"/>
         FROM course_schedule cs
         WHERE (cs.del_flag_ != 1 OR cs.del_flag_ IS NULL)
           AND CONCAT(cs.class_date_, ' ', cs.start_class_time_) > NOW()
@@ -2303,7 +2301,8 @@
 
     <select id="endFindCourseSchedules" resultMap="CourseScheduleEndDto">
         SELECT
-            cs.id_,
+            (CASE WHEN cs.new_course_id_ IS NULL THEN cs.id_ ELSE cs.new_course_id_ END) id_,
+            cs.new_course_id_,
             cs.group_type_,
             cs.music_group_id_,
             cs.class_group_id_,
@@ -2338,7 +2337,7 @@
         COUNT(DISTINCT cs.id_)
         FROM
         course_schedule cs
-        LEFT JOIN student_attendance sa ON sa.course_schedule_id_ = cs.id_ AND sa.remark_ IS NULL
+        LEFT JOIN student_attendance sa ON sa.course_schedule_id_ = (CASE WHEN cs.new_course_id_ IS NULL THEN cs.id_ ELSE cs.new_course_id_ END) AND sa.remark_ IS NULL
         <include refid="endFindCourseSchedulesCondition"/>
     </select>
     <select id="findCourseIdsByStudent" resultType="int">
@@ -2356,25 +2355,7 @@
            OR su.id_ = #{search}
     </select>
     <select id="findClassGroupCourseSchedulesWithDate" resultMap="CourseSchedule">
-        SELECT cs.id_,
-               cs.class_group_id_,
-               cs.status_,
-               cs.subsidy_,
-               cs.class_date_,
-               CONCAT(cs.class_date_, ' ', cs.start_class_time_) start_class_time_,
-               CONCAT(cs.class_date_, ' ', cs.end_class_time_)   end_class_time_,
-               cs.start_class_time_                              start_class_time_str_,
-               cs.end_class_time_                                end_class_time_str_,
-               cs.teacher_id_,
-               cs.actual_teacher_id_,
-               cs.create_time_,
-               cs.update_time_,
-               cs.teach_mode_,
-               cs.type_,
-               cs.name_,
-               cs.student_num_,
-               cs.leave_student_num_,
-               cs.schoole_id_
+        SELECT <include refid="resultSql"/>
         FROM course_schedule cs
         WHERE FIND_IN_SET(cs.class_group_id_, #{classGroupIds})
           AND CONCAT(cs.class_date_, ' ', cs.start_class_time_) &gt; NOW()
@@ -3312,6 +3293,12 @@
         ORDER BY start_class_time_ DESC LIMIT 1;
     </select>
 
+    <select id="queryRemainCourseTypeDuration" resultMap="RemainCourseTypeDurationDto">
+        SELECT cs.type_ course_type_,SUM(TIMESTAMPDIFF(MINUTE,STR_TO_DATE(concat(cs.class_date_,' ',cs.start_class_time_),'%Y-%m-%d %H:%i:%s'),
+        STR_TO_DATE(concat(cs.class_date_,' ',cs.end_class_time_),'%Y-%m-%d %H:%i:%s'))) remain_minutes_
+		from course_schedule cs where FIND_IN_SET(cs.class_group_id_,#{classgroupId}) and cs.status_ = 'NOT_START' group by cs.type_
+    </select>
+
     <resultMap id="CourseRepeatCheckDto" type="com.ym.mec.biz.dal.dto.CourseRepeatCheckDto">
         <result column="course_id_" property="courseId"/>
         <result column="class_date_" property="classDate"/>
@@ -3329,14 +3316,25 @@
         SELECT
             cs.id_ course_id_,
             cs.class_date_ class_date_,
+            o.name_ orgna_name_,
             CONCAT(cs.class_date_, ' ', cs.start_class_time_) class_start_time_,
             CONCAT(cs.class_date_, ' ', cs.end_class_time_) class_end_time_,
-            cssp.user_id_ teacher_id_,
-            csts.user_id_ student_id_
+            csts.user_id_ teacher_id_,
+            cssp.user_id_ student_id_
         FROM course_schedule cs
-        LEFT JOIN course_schedule_student_payment cssp ON cs.id_=cssp.course_schedule_id_
-        LEFT JOIN course_schedule_teacher_salary csts ON cs.id_=csts.course_schedule_id_
-        WHERE cs.organ_id_!=41 AND cs.del_flag_=0 AND cs.create_time_>'2020-01-01 00:00:00' AND cs.create_time_&lt;'3000-01-01 00:00:00'
+            LEFT JOIN course_schedule_student_payment cssp ON cs.id_=cssp.course_schedule_id_
+            LEFT JOIN course_schedule_teacher_salary csts ON cs.id_=csts.course_schedule_id_
+            LEFT JOIN organization o ON cs.organ_id_=o.id_
+        WHERE cs.organ_id_!=41 AND cs.del_flag_=0 AND cs.class_date_ >= '2020-11-01'
+    </select>
+
+    <select id="countCourseMergeTime" resultType="int">
+        SELECT COUNT(id_) FROM course_schedule WHERE new_course_id_=#{courseId}
+    </select>
+    <select id="querySubCourseNumMap" resultType="java.util.Map">
+        SELECT cs.group_type_ 'key',COUNT(cs.id_) 'value' FROM course_schedule cs
+        WHERE cs.class_group_id_ = #{classGroupId} AND CONCAT(cs.class_date_," ",cs.start_class_time_) > NOW()
+        GROUP BY cs.group_type_
     </select>
 
 </mapper>