|
@@ -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_) > 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_) > 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_<'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>
|