|
@@ -55,7 +55,7 @@
|
|
|
<result column="subject_name_" property="splitSubjectName"/>
|
|
|
<result column="id_card_no_" property="idCardNo"/>
|
|
|
</resultMap>
|
|
|
-
|
|
|
+
|
|
|
<resultMap type="com.ym.mec.biz.dal.dto.TeacherDefaultSalaryDto" id="TeacherDefaultSalaryDto">
|
|
|
<result column="id_" property="userId"/>
|
|
|
<result column="real_name_" property="realName"/>
|
|
@@ -111,7 +111,7 @@
|
|
|
FROM teacher
|
|
|
ORDER BY id_
|
|
|
</select>
|
|
|
-
|
|
|
+
|
|
|
<select id="getLocked" resultMap="Teacher">
|
|
|
SELECT * FROM teacher where id_ = #{id} for update
|
|
|
</select>
|
|
@@ -279,9 +279,9 @@
|
|
|
<select id="queryPage" resultMap="Teacher" parameterType="map">
|
|
|
SELECT t.id_,su.real_name_,su.lock_flag_,t.subject_id_,su.phone_,t.organ_id_ teacher_organ_id_,t.organ_id_,t.is_support_extra_practice_lesson_,
|
|
|
t.job_nature_,t.is_probation_period_,t.memo_,GROUP_CONCAT(s.name_) subject_name_,su.del_flag_
|
|
|
- FROM teacher t LEFT JOIN sys_user su ON t.id_ = su.id_
|
|
|
+ FROM teacher t
|
|
|
+ LEFT JOIN sys_user su ON t.id_ = su.id_
|
|
|
LEFT JOIN `subject` s ON FIND_IN_SET(s.id_,t.subject_id_)
|
|
|
- WHERE su.del_flag_ = 0
|
|
|
<include refid="queryPageMap"/>
|
|
|
GROUP BY t.id_
|
|
|
ORDER BY t.id_ DESC
|
|
@@ -291,26 +291,40 @@
|
|
|
<select id="queryCount" resultType="int">
|
|
|
SELECT COUNT(DISTINCT t.id_)
|
|
|
FROM teacher t LEFT JOIN sys_user su ON t.id_ = su.id_
|
|
|
- WHERE su.del_flag_ = 0
|
|
|
<include refid="queryPageMap"/>
|
|
|
</select>
|
|
|
|
|
|
<sql id="queryPageMap">
|
|
|
- <if test="lockFlag != null">
|
|
|
- AND su.lock_flag_ = #{lockFlag}
|
|
|
- </if>
|
|
|
- <if test="teacherId != null">
|
|
|
- AND t.id_ IN
|
|
|
- <foreach collection="teacherId" separator="," open="(" close=")" item="item">
|
|
|
- #{item}
|
|
|
- </foreach>
|
|
|
- </if>
|
|
|
- <if test="search != null">
|
|
|
- AND (su.real_name_ LIKE CONCAT('%',#{search},'%') OR su.phone_ LIKE CONCAT('%',#{search},'%') OR t.id_ = #{search})
|
|
|
- </if>
|
|
|
- <if test="isSupportExtraPracticeLesson != null">
|
|
|
- AND is_support_extra_practice_lesson_ = #{isSupportExtraPracticeLesson}
|
|
|
- </if>
|
|
|
+ <where>
|
|
|
+ su.del_flag_ = 0
|
|
|
+ <if test="organId != null and organId != ''">
|
|
|
+ AND (INTE_ARRAY(#{organId},t.flow_organ_range_) OR FIND_IN_SET(t.organ_id_,#{organId}))
|
|
|
+ </if>
|
|
|
+ <if test="subjectId != null">
|
|
|
+ AND FIND_IN_SET(#{subjectId},t.subject_id_)
|
|
|
+ </if>
|
|
|
+ <if test="jobNature != null">
|
|
|
+ AND t.job_nature_ = #{jobNature}
|
|
|
+ </if>
|
|
|
+ <if test="isProbationPeriod != null">
|
|
|
+ AND t.is_probation_period_ = #{isProbationPeriod}
|
|
|
+ </if>
|
|
|
+ <if test="isSupportExtraPracticeLesson != null">
|
|
|
+ AND t.is_support_extra_practice_lesson_ = #{isSupportExtraPracticeLesson}
|
|
|
+ </if>
|
|
|
+ <if test="lockFlag != null">
|
|
|
+ AND su.lock_flag_ = #{lockFlag}
|
|
|
+ </if>
|
|
|
+ <if test="teacherId != null">
|
|
|
+ AND t.id_ IN
|
|
|
+ <foreach collection="teacherId" separator="," open="(" close=")" item="item">
|
|
|
+ #{item}
|
|
|
+ </foreach>
|
|
|
+ </if>
|
|
|
+ <if test="search != null">
|
|
|
+ AND (su.real_name_ LIKE CONCAT('%',#{search},'%') OR su.phone_ LIKE CONCAT('%',#{search},'%') OR t.id_ = #{search})
|
|
|
+ </if>
|
|
|
+ </where>
|
|
|
</sql>
|
|
|
|
|
|
<!-- 根据证件号查询老师 -->
|
|
@@ -361,18 +375,6 @@
|
|
|
<result property="subjectNames" column="subject_names_"/>
|
|
|
<result property="introduction" column="introduction_"/>
|
|
|
</resultMap>
|
|
|
- <select id="findTeachers" resultMap="TeacherBasicDto">
|
|
|
- SELECT su.id_,su.username_,su.real_name_,t.organ_id_ FROM sys_user su
|
|
|
- LEFT JOIN teacher t ON su.id_=t.id_
|
|
|
- <where>
|
|
|
- <if test="userIds != null">
|
|
|
- su.id_ IN
|
|
|
- <foreach collection="userIds" separator="," open="(" close=")" item="item">
|
|
|
- #{item}
|
|
|
- </foreach>
|
|
|
- </if>
|
|
|
- </where>
|
|
|
- </select>
|
|
|
|
|
|
<select id="findSimpleTeachers" resultType="com.ym.mec.biz.dal.dto.SimpleUserDto">
|
|
|
SELECT su.id_ userId,su.real_name_ userName FROM sys_user su
|
|
@@ -389,10 +391,10 @@
|
|
|
|
|
|
<select id="getUsersSimpleInfo" resultType="com.ym.mec.biz.dal.dto.SimpleUserDto">
|
|
|
SELECT
|
|
|
- su.id_ userId,
|
|
|
- su.username_ nickName,
|
|
|
- su.real_name_ userName,
|
|
|
- su.phone_ phone
|
|
|
+ su.id_ userId,
|
|
|
+ su.username_ nickName,
|
|
|
+ su.real_name_ userName,
|
|
|
+ su.phone_ phone
|
|
|
FROM sys_user su
|
|
|
<where>
|
|
|
<if test="userIds != null">
|
|
@@ -755,27 +757,14 @@
|
|
|
select count(*) total,sum(case when job_nature_ = 'PART_TIME' then 1 else 0 end) part_time_num_,sum(case when
|
|
|
job_nature_ = 'FULL_TIME' then 1 else 0 end) full_time_num_ from teacher
|
|
|
where demission_date_ is null and organ_id_ not in (36,38)
|
|
|
- <if test="organId != null">
|
|
|
- and FIND_IN_SET(organ_id_,#{organId})
|
|
|
- </if>
|
|
|
+ <if test="organId != null">
|
|
|
+ and FIND_IN_SET(organ_id_,#{organId})
|
|
|
+ </if>
|
|
|
</select>
|
|
|
- <select id="findByFlowOrganRange" resultMap="Teacher">
|
|
|
- SELECT id_,CONCAT(IF(flow_organ_range_ IS NULL OR flow_organ_range_ = '',0,flow_organ_range_),",",
|
|
|
- IF(organ_id_ IS NULL OR organ_id_ = '',0,organ_id_)) flow_organ_range_ FROM teacher t
|
|
|
- <where>
|
|
|
- <if test="subjectId != null">
|
|
|
- AND FIND_IN_SET(#{subjectId},t.subject_id_)
|
|
|
- </if>
|
|
|
- <if test="jobNature != null">
|
|
|
- AND t.job_nature_ = #{jobNature}
|
|
|
- </if>
|
|
|
- <if test="isProbationPeriod != null">
|
|
|
- AND t.is_probation_period_ = #{isProbationPeriod}
|
|
|
- </if>
|
|
|
- <if test="isSupportExtraPracticeLesson != null">
|
|
|
- AND t.is_support_extra_practice_lesson_ = #{isSupportExtraPracticeLesson}
|
|
|
- </if>
|
|
|
- </where>
|
|
|
+ <select id="findByFlowOrganRangeTeachers" resultMap="TeacherBasicDto">
|
|
|
+ SELECT su.id_,su.username_,su.real_name_,t.organ_id_ FROM teacher t
|
|
|
+ LEFT JOIN sys_user su ON t.id_ = su.id_
|
|
|
+ WHERE su.del_flag_ = 0 AND (INTE_ARRAY(#{organId},t.flow_organ_range_) OR FIND_IN_SET(t.organ_id_,#{organId}))
|
|
|
</select>
|
|
|
|
|
|
<select id="findByTeacherIds" resultMap="Teacher">
|
|
@@ -1075,17 +1064,17 @@
|
|
|
WHERE csts.group_type_ = 'MUSIC' AND (mg.educational_teacher_id_ = #{teacherId} OR mg.director_user_id_ = #{teacherId} OR mg.team_teacher_id_ = #{teacherId})
|
|
|
GROUP BY csts.user_id_
|
|
|
UNION ALL
|
|
|
- SELECT csts.user_id_ FROM vip_group vg
|
|
|
+ SELECT csts.user_id_ FROM vip_group vg
|
|
|
LEFT JOIN course_schedule_teacher_salary csts ON vg.id_ = csts.music_group_id_
|
|
|
WHERE vg.educational_teacher_id_ = #{teacherId} AND csts.group_type_ = 'VIP' AND vg.group_status_ IN (2,3,4)
|
|
|
GROUP BY csts.user_id_
|
|
|
UNION ALL
|
|
|
- SELECT csts.user_id_ FROM courses_group cg
|
|
|
+ SELECT csts.user_id_ FROM courses_group cg
|
|
|
LEFT JOIN course_schedule_teacher_salary csts ON cg.id_ = csts.music_group_id_
|
|
|
WHERE cg.educational_teacher_id_ = #{teacherId} AND csts.group_type_ = 'COMM'
|
|
|
GROUP BY csts.user_id_
|
|
|
UNION ALL
|
|
|
- SELECT csts.user_id_ FROM practice_group pg
|
|
|
+ SELECT csts.user_id_ FROM practice_group pg
|
|
|
LEFT JOIN course_schedule_teacher_salary csts ON pg.id_ = csts.music_group_id_
|
|
|
WHERE pg.educational_teacher_id_ = #{teacherId} AND csts.group_type_ = 'PRACTICE'
|
|
|
GROUP BY csts.user_id_
|
|
@@ -1096,17 +1085,17 @@
|
|
|
AND (mg.educational_teacher_id_ = #{teacherId} OR mg.director_user_id_ = #{teacherId} OR mg.team_teacher_id_ = #{teacherId})
|
|
|
GROUP BY cgtm.user_id_
|
|
|
UNION ALL
|
|
|
- SELECT cgtm.user_id_ FROM vip_group vg
|
|
|
+ SELECT cgtm.user_id_ FROM vip_group vg
|
|
|
LEFT JOIN class_group_teacher_mapper cgtm ON vg.id_ = cgtm.music_group_id_
|
|
|
WHERE vg.educational_teacher_id_ = #{teacherId} AND cgtm.group_type_ = 'VIP' AND vg.group_status_ IN (2,3,4)
|
|
|
GROUP BY cgtm.user_id_
|
|
|
UNION ALL
|
|
|
- SELECT cgtm.user_id_ FROM courses_group cg
|
|
|
+ SELECT cgtm.user_id_ FROM courses_group cg
|
|
|
LEFT JOIN class_group_teacher_mapper cgtm ON cg.id_ = cgtm.music_group_id_
|
|
|
WHERE cg.educational_teacher_id_ = #{teacherId} AND cgtm.group_type_ = 'COMM'
|
|
|
GROUP BY cgtm.user_id_
|
|
|
UNION ALL
|
|
|
- SELECT cgtm.user_id_ FROM practice_group pg
|
|
|
+ SELECT cgtm.user_id_ FROM practice_group pg
|
|
|
LEFT JOIN class_group_teacher_mapper cgtm ON pg.id_ = cgtm.music_group_id_
|
|
|
WHERE pg.educational_teacher_id_ = #{teacherId} AND cgtm.group_type_ = 'PRACTICE'
|
|
|
GROUP BY cgtm.user_id_
|
|
@@ -1162,50 +1151,50 @@
|
|
|
SELECT COUNT(s.user_id_) FROM student s
|
|
|
WHERE s.teacher_id_ = #{search}
|
|
|
</select>
|
|
|
-
|
|
|
+
|
|
|
<select id="queryTeacherDefaultSalary" resultMap="TeacherDefaultSalaryDto">
|
|
|
- SELECT t.`id_` ,su.`real_name_` ,o.`name_` ,
|
|
|
- case when t.`job_nature_` = 'PART_TIME' then '兼职' when t.`job_nature_` = 'FULL_TIME' then '全职' else '临时工' end job_nature,
|
|
|
- case when t.`demission_date_` IS NULL then '在职' else '离职' end demisson_status,
|
|
|
- case when su.`lock_flag_` = 1 then '冻结' WHEN su.`lock_flag_` = 9 then '锁定' else '正常' end status_,
|
|
|
- max(case when gc.`name_` = '1V1' then gs.`offline_classes_salary_` else 0 end) vip1,
|
|
|
- max(case when gc.`name_` = '1V2' then gs.`offline_classes_salary_` else 0 end) vip2,
|
|
|
- max(case when gc.`name_` = '1V3' then gs.`offline_classes_salary_` else 0 end) vip3,
|
|
|
- max(case when gc.`name_` = '1V4' then gs.`offline_classes_salary_` else 0 end) vip4,
|
|
|
- max(case when gc.`name_` = '1V5' then gs.`offline_classes_salary_` else 0 end) vip5,
|
|
|
- max(case when gc.`name_` = '1V6' then gs.`offline_classes_salary_` else 0 end) vip6,
|
|
|
- max(case when gc.`name_` = '1V7' then gs.`offline_classes_salary_` else 0 end) vip7,
|
|
|
- max(pgs.main_teacher_salary_) practice,
|
|
|
- MAX(case when mgs.course_schedule_type_ = 'SINGLE' then mgs.main_teacher_30min_salary_ ELSE 0 END) single2,
|
|
|
- MAX(case when mgs.course_schedule_type_ = 'MIX' then mgs.main_teacher_30min_salary_ ELSE 0 END) mix2,
|
|
|
- MAX(case when mgs.course_schedule_type_ = 'COMPREHENSIVE' then mgs.main_teacher_30min_salary_ ELSE 0 END) comprehensive2,
|
|
|
- MAX(case when mgs.course_schedule_type_ = 'TRAINING_SINGLE' then mgs.main_teacher_30min_salary_ ELSE 0 END) training_single2,
|
|
|
- MAX(case when mgs.course_schedule_type_ = 'TRAINING_MIX' then mgs.main_teacher_30min_salary_ ELSE 0 END) training_mix2,
|
|
|
- MAX(case when mgs.course_schedule_type_ = 'HIGH' then mgs.main_teacher_30min_salary_ ELSE 0 END) high2,
|
|
|
- MAX(case when mgs.course_schedule_type_ = 'CLASSROOM' then mgs.main_teacher_30min_salary_ ELSE 0 END) classroom2,
|
|
|
- MAX(case when mgs.course_schedule_type_ = 'SINGLE' then mgs.main_teacher_90min_salary_ ELSE 0 END) single,
|
|
|
- MAX(case when mgs.course_schedule_type_ = 'MIX' then mgs.main_teacher_90min_salary_ ELSE 0 END) mix,
|
|
|
- MAX(case when mgs.course_schedule_type_ = 'COMPREHENSIVE' then mgs.main_teacher_90min_salary_ ELSE 0 END) comprehensive,
|
|
|
- MAX(case when mgs.course_schedule_type_ = 'TRAINING_SINGLE' then mgs.main_teacher_90min_salary_ ELSE 0 END) training_single,
|
|
|
- MAX(case when mgs.course_schedule_type_ = 'TRAINING_MIX' then mgs.main_teacher_90min_salary_ ELSE 0 END) training_mix,
|
|
|
- MAX(case when mgs.course_schedule_type_ = 'HIGH' then mgs.main_teacher_90min_salary_ ELSE 0 END) high,
|
|
|
- MAX(case when mgs.course_schedule_type_ = 'CLASSROOM' then mgs.main_teacher_90min_salary_ ELSE 0 END) classroom,
|
|
|
- MAX(case when mgs.course_schedule_type_ = 'HIGH_ONLINE' then CONVERT(JSON_EXTRACT(mgs.salary_rule_json_,'$."3"'),DECIMAL) END) high_online3,
|
|
|
- MAX(case when mgs.course_schedule_type_ = 'HIGH_ONLINE' then CONVERT(JSON_EXTRACT(mgs.salary_rule_json_,'$."4"'),DECIMAL) END) high_online4,
|
|
|
- MAX(case when mgs.course_schedule_type_ = 'HIGH_ONLINE' then CONVERT(JSON_EXTRACT(mgs.salary_rule_json_,'$."5"'),DECIMAL) END) high_online5,
|
|
|
- MAX(case when mgs.course_schedule_type_ = 'MUSIC_NETWORK' then CONVERT(JSON_EXTRACT(mgs.salary_rule_json_,'$."1"'),DECIMAL) END) music_network1
|
|
|
- FROM `teacher` t LEFT JOIN `sys_user` su on t.`id_` = su.`id_`
|
|
|
- LEFT JOIN `organization` o on o.`id_` = t.`organ_id_`
|
|
|
- LEFT JOIN `teacher_default_vip_group_salary` gs on gs.`user_id_` = t.`id_`
|
|
|
- LEFT JOIN `vip_group_category` gc on gc.`id_` = gs.`vip_group_category_id_`
|
|
|
- LEFT JOIN teacher_default_practice_group_salary pgs ON pgs.user_id_ = t.id_
|
|
|
- LEFT JOIN teacher_default_music_group_salary mgs ON mgs.user_id_ = t.id_
|
|
|
- <where>
|
|
|
- <if test="organIdList != null">
|
|
|
+ SELECT t.`id_` ,su.`real_name_` ,o.`name_` ,
|
|
|
+ case when t.`job_nature_` = 'PART_TIME' then '兼职' when t.`job_nature_` = 'FULL_TIME' then '全职' else '临时工' end job_nature,
|
|
|
+ case when t.`demission_date_` IS NULL then '在职' else '离职' end demisson_status,
|
|
|
+ case when su.`lock_flag_` = 1 then '冻结' WHEN su.`lock_flag_` = 9 then '锁定' else '正常' end status_,
|
|
|
+ max(case when gc.`name_` = '1V1' then gs.`offline_classes_salary_` else 0 end) vip1,
|
|
|
+ max(case when gc.`name_` = '1V2' then gs.`offline_classes_salary_` else 0 end) vip2,
|
|
|
+ max(case when gc.`name_` = '1V3' then gs.`offline_classes_salary_` else 0 end) vip3,
|
|
|
+ max(case when gc.`name_` = '1V4' then gs.`offline_classes_salary_` else 0 end) vip4,
|
|
|
+ max(case when gc.`name_` = '1V5' then gs.`offline_classes_salary_` else 0 end) vip5,
|
|
|
+ max(case when gc.`name_` = '1V6' then gs.`offline_classes_salary_` else 0 end) vip6,
|
|
|
+ max(case when gc.`name_` = '1V7' then gs.`offline_classes_salary_` else 0 end) vip7,
|
|
|
+ max(pgs.main_teacher_salary_) practice,
|
|
|
+ MAX(case when mgs.course_schedule_type_ = 'SINGLE' then mgs.main_teacher_30min_salary_ ELSE 0 END) single2,
|
|
|
+ MAX(case when mgs.course_schedule_type_ = 'MIX' then mgs.main_teacher_30min_salary_ ELSE 0 END) mix2,
|
|
|
+ MAX(case when mgs.course_schedule_type_ = 'COMPREHENSIVE' then mgs.main_teacher_30min_salary_ ELSE 0 END) comprehensive2,
|
|
|
+ MAX(case when mgs.course_schedule_type_ = 'TRAINING_SINGLE' then mgs.main_teacher_30min_salary_ ELSE 0 END) training_single2,
|
|
|
+ MAX(case when mgs.course_schedule_type_ = 'TRAINING_MIX' then mgs.main_teacher_30min_salary_ ELSE 0 END) training_mix2,
|
|
|
+ MAX(case when mgs.course_schedule_type_ = 'HIGH' then mgs.main_teacher_30min_salary_ ELSE 0 END) high2,
|
|
|
+ MAX(case when mgs.course_schedule_type_ = 'CLASSROOM' then mgs.main_teacher_30min_salary_ ELSE 0 END) classroom2,
|
|
|
+ MAX(case when mgs.course_schedule_type_ = 'SINGLE' then mgs.main_teacher_90min_salary_ ELSE 0 END) single,
|
|
|
+ MAX(case when mgs.course_schedule_type_ = 'MIX' then mgs.main_teacher_90min_salary_ ELSE 0 END) mix,
|
|
|
+ MAX(case when mgs.course_schedule_type_ = 'COMPREHENSIVE' then mgs.main_teacher_90min_salary_ ELSE 0 END) comprehensive,
|
|
|
+ MAX(case when mgs.course_schedule_type_ = 'TRAINING_SINGLE' then mgs.main_teacher_90min_salary_ ELSE 0 END) training_single,
|
|
|
+ MAX(case when mgs.course_schedule_type_ = 'TRAINING_MIX' then mgs.main_teacher_90min_salary_ ELSE 0 END) training_mix,
|
|
|
+ MAX(case when mgs.course_schedule_type_ = 'HIGH' then mgs.main_teacher_90min_salary_ ELSE 0 END) high,
|
|
|
+ MAX(case when mgs.course_schedule_type_ = 'CLASSROOM' then mgs.main_teacher_90min_salary_ ELSE 0 END) classroom,
|
|
|
+ MAX(case when mgs.course_schedule_type_ = 'HIGH_ONLINE' then CONVERT(JSON_EXTRACT(mgs.salary_rule_json_,'$."3"'),DECIMAL) END) high_online3,
|
|
|
+ MAX(case when mgs.course_schedule_type_ = 'HIGH_ONLINE' then CONVERT(JSON_EXTRACT(mgs.salary_rule_json_,'$."4"'),DECIMAL) END) high_online4,
|
|
|
+ MAX(case when mgs.course_schedule_type_ = 'HIGH_ONLINE' then CONVERT(JSON_EXTRACT(mgs.salary_rule_json_,'$."5"'),DECIMAL) END) high_online5,
|
|
|
+ MAX(case when mgs.course_schedule_type_ = 'MUSIC_NETWORK' then CONVERT(JSON_EXTRACT(mgs.salary_rule_json_,'$."1"'),DECIMAL) END) music_network1
|
|
|
+ FROM `teacher` t LEFT JOIN `sys_user` su on t.`id_` = su.`id_`
|
|
|
+ LEFT JOIN `organization` o on o.`id_` = t.`organ_id_`
|
|
|
+ LEFT JOIN `teacher_default_vip_group_salary` gs on gs.`user_id_` = t.`id_`
|
|
|
+ LEFT JOIN `vip_group_category` gc on gc.`id_` = gs.`vip_group_category_id_`
|
|
|
+ LEFT JOIN teacher_default_practice_group_salary pgs ON pgs.user_id_ = t.id_
|
|
|
+ LEFT JOIN teacher_default_music_group_salary mgs ON mgs.user_id_ = t.id_
|
|
|
+ <where>
|
|
|
+ <if test="organIdList != null">
|
|
|
AND find_in_set(t.organ_id_,#{organIdList})
|
|
|
</if>
|
|
|
- </where>
|
|
|
- GROUP BY t.`id_`
|
|
|
+ </where>
|
|
|
+ GROUP BY t.`id_`
|
|
|
</select>
|
|
|
<select id="findUserByPhone" resultMap="com.ym.mec.biz.dal.dao.MusicGroupDao.BasicUserDto">
|
|
|
SELECT username_,id_ user_id_,avatar_ head_url_,
|