|
@@ -14,6 +14,7 @@
|
|
|
<result property="currentGrade" column="current_grade_"/>
|
|
|
<result property="currentClass" column="current_class_"/>
|
|
|
<result property="isActive" column="isActive_"/>
|
|
|
+ <result property="isMake" column="isMake_"/>
|
|
|
<!--<collection property="musicGroups" resultMap="musicGroup" javaType="list"/>-->
|
|
|
</resultMap>
|
|
|
|
|
@@ -123,8 +124,10 @@
|
|
|
<select id="findStudentsByOrganId" resultMap="studentManageListDto">
|
|
|
SELECT su.id_ user_id_,su.username_,su.gender_,su.phone_ parents_phone_,su.real_name_,
|
|
|
su.birthdate_,su.nation_,
|
|
|
- CASE WHEN su.password_ IS NULL THEN 0 ELSE 1 END isActive_
|
|
|
+ CASE WHEN su.password_ IS NULL THEN 0 ELSE 1 END isActive_,
|
|
|
+ CASE WHEN pla.id_ IS NULL THEN 0 ELSE 1 END isMake_
|
|
|
FROM sys_user su
|
|
|
+ LEFT JOIN practice_lesson_apply pla ON su.id_ = pla.user_id_
|
|
|
<include refid="findStudentsByOrganIdSql"/>
|
|
|
ORDER BY su.create_time_ DESC
|
|
|
<include refid="global.limit"/>
|
|
@@ -144,6 +147,12 @@
|
|
|
<if test="isActive != null and isActive == false">
|
|
|
AND su.password_ is null
|
|
|
</if>
|
|
|
+ <if test="isMake != null and isMake == true">
|
|
|
+ AND pla.id_ IS NOT NULL
|
|
|
+ </if>
|
|
|
+ <if test="isMake != null and isMake == false">
|
|
|
+ AND pla.id_ IS NULL
|
|
|
+ </if>
|
|
|
<if test="userIds != null">
|
|
|
AND su.id_ IN
|
|
|
<foreach collection="userIds" open="(" close=")" separator="," item="item">
|
|
@@ -157,6 +166,7 @@
|
|
|
SELECT COUNT(DISTINCT su.id_)
|
|
|
FROM sys_user su
|
|
|
LEFT JOIN student_registration sr ON su.id_ = sr.user_id_
|
|
|
+ LEFT JOIN practice_lesson_apply pla ON su.id_ = pla.user_id_
|
|
|
WHERE su.user_type_ LIKE '%STUDENT%'
|
|
|
<include refid="queryHasCourseSql"/>
|
|
|
</select>
|
|
@@ -569,16 +579,23 @@
|
|
|
AND (su.phone_ LIKE CONCAT('%',#{search},'%') OR su.username_ LIKE CONCAT('%',#{search},'%') OR su.id_ LIKE CONCAT('%',#{search},'%'))
|
|
|
</if>
|
|
|
<if test="isActive != null and isActive == true">
|
|
|
- and su.password_ is not null
|
|
|
+ AND su.password_ IS NOT NULL
|
|
|
</if>
|
|
|
<if test="isActive != null and isActive == false">
|
|
|
- and su.password_ is null
|
|
|
+ AND su.password_ IS NULL
|
|
|
+ </if>
|
|
|
+ <if test="isMake != null and isMake == true">
|
|
|
+ AND pla.id_ IS NOT NULL
|
|
|
+ </if>
|
|
|
+ <if test="isMake != null and isMake == false">
|
|
|
+ AND pla.id_ IS NULL
|
|
|
</if>
|
|
|
</sql>
|
|
|
<select id="queryHasCourse" resultType="java.lang.Integer">
|
|
|
SELECT su.id_ FROM sys_user su
|
|
|
LEFT JOIN course_schedule_student_payment cssp ON cssp.user_id_ = su.id_
|
|
|
LEFT JOIN course_schedule cs ON cs.id_ = cssp.course_schedule_id_
|
|
|
+ LEFT JOIN practice_lesson_apply pla ON su.id_ = pla.user_id_
|
|
|
WHERE su.user_type_ LIKE '%STUDENT%' AND cs.status_ != 'OVER'
|
|
|
<include refid="queryHasCourseSql"/>
|
|
|
GROUP BY su.id_
|
|
@@ -589,6 +606,7 @@
|
|
|
SELECT COUNT(DISTINCT su.id_) FROM sys_user su
|
|
|
LEFT JOIN course_schedule_student_payment cssp ON cssp.user_id_ = su.id_
|
|
|
LEFT JOIN course_schedule cs ON cs.id_ = cssp.course_schedule_id_
|
|
|
+ LEFT JOIN practice_lesson_apply pla ON su.id_ = pla.user_id_
|
|
|
WHERE su.user_type_ LIKE '%STUDENT%' AND cs.status_ != 'OVER'
|
|
|
<include refid="queryHasCourseSql"/>
|
|
|
</select>
|
|
@@ -596,6 +614,7 @@
|
|
|
SELECT su.id_ FROM sys_user su
|
|
|
LEFT JOIN course_schedule_student_payment cssp ON cssp.user_id_ = su.id_
|
|
|
LEFT JOIN course_schedule cs ON cs.id_ = cssp.course_schedule_id_ AND cs.status_ != 'OVER'
|
|
|
+ LEFT JOIN practice_lesson_apply pla ON su.id_ = pla.user_id_
|
|
|
<include refid="queryNotCourseSql"/>
|
|
|
GROUP BY su.id_
|
|
|
HAVING COUNT(cs.id_) = 0
|
|
@@ -606,6 +625,7 @@
|
|
|
SELECT COUNT(e.id_) FROM (SELECT su.id_ FROM sys_user su
|
|
|
LEFT JOIN course_schedule_student_payment cssp ON cssp.user_id_ = su.id_
|
|
|
LEFT JOIN course_schedule cs ON cs.id_ = cssp.course_schedule_id_ AND cs.status_ != 'OVER'
|
|
|
+ LEFT JOIN practice_lesson_apply pla ON su.id_ = pla.user_id_
|
|
|
<include refid="queryNotCourseSql"/>
|
|
|
GROUP BY su.id_
|
|
|
HAVING COUNT(cs.id_) = 0)e
|
|
@@ -625,6 +645,12 @@
|
|
|
<if test="isActive != null and isActive == false">
|
|
|
and su.password_ is null
|
|
|
</if>
|
|
|
+ <if test="isMake != null and isMake == true">
|
|
|
+ and pla.id_ IS NOT NULL
|
|
|
+ </if>
|
|
|
+ <if test="isMake != null and isMake == false">
|
|
|
+ and pla.id_ IS NULL
|
|
|
+ </if>
|
|
|
</where>
|
|
|
</sql>
|
|
|
<select id="queryStudentHasCourse" resultType="java.util.Map">
|
|
@@ -648,10 +674,26 @@
|
|
|
<result property="organName" column="organ_name_"/>
|
|
|
<result property="subjectName" column="music_group_subject_"/>
|
|
|
<result property="userId" column="id_"/>
|
|
|
+ <result property="isActive" column="is_active_" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
|
|
|
+ <result property="isMake" column="is_make_" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
|
|
|
</resultMap>
|
|
|
+ <select id="queryCourseStudent" resultMap="StudentHasCourseDtoMap">
|
|
|
+ SELECT su.id_,su.username_,o.name_ organ_name_,
|
|
|
+ CASE WHEN su.password_ IS NULL THEN 0 ELSE 1 END is_active_,
|
|
|
+ CASE WHEN pla.id_ IS NULL THEN 0 ELSE 1 END is_make_
|
|
|
+ FROM sys_user su
|
|
|
+ LEFT JOIN organization o ON su.organ_id_ = o.id_
|
|
|
+ LEFT JOIN practice_lesson_apply pla ON pla.user_id_ = su.id_
|
|
|
+ WHERE su.id_ IN
|
|
|
+ <foreach collection="userIds" separator="," open="(" close=")" item="item">
|
|
|
+ #{item}
|
|
|
+ </foreach>
|
|
|
+ </select>
|
|
|
<select id="queryHasCourseStudent" resultMap="StudentHasCourseDtoMap">
|
|
|
SELECT su.id_,GROUP_CONCAT(DISTINCT su.username_) username_,GROUP_CONCAT(DISTINCT mg.name_) music_group_name_,
|
|
|
- GROUP_CONCAT(DISTINCT vg.name_) vip_group_name_,GROUP_CONCAT(DISTINCT o.name_) organ_name_,GROUP_CONCAT(DISTINCT s.name_) music_group_subject_
|
|
|
+ GROUP_CONCAT(DISTINCT vg.name_) vip_group_name_,GROUP_CONCAT(DISTINCT o.name_) organ_name_,GROUP_CONCAT(DISTINCT s.name_) music_group_subject_,
|
|
|
+ CASE WHEN su.password_ IS NULL THEN 0 ELSE 1 END is_active_,
|
|
|
+ CASE WHEN pla.id_ IS NULL THEN 0 ELSE 1 END is_make_
|
|
|
FROM sys_user su
|
|
|
LEFT JOIN course_schedule_student_payment cssp ON su.id_ = cssp.user_id_
|
|
|
LEFT JOIN music_group mg ON cssp.music_group_id_ = mg.id_ AND cssp.group_type_ = 'MUSIC'
|
|
@@ -659,12 +701,13 @@
|
|
|
LEFT JOIN organization o ON su.organ_id_ = o.id_
|
|
|
LEFT JOIN student_registration sr ON su.id_ = sr.user_id_ AND cssp.music_group_id_ = sr.music_group_id_
|
|
|
LEFT JOIN `subject` s ON s.id_ = sr.actual_subject_id_
|
|
|
- WHERE cssp.id_ IS NOT NULL AND su.user_type_ LIKE '%STUDENT%' AND (sr.music_group_status_ != 'QUIT' OR sr.id_ IS NULL) AND su.password_ IS NULL
|
|
|
+ LEFT JOIN practice_lesson_apply pla ON su.id_ = pla.user_id_
|
|
|
+ WHERE cssp.id_ IS NOT NULL AND su.user_type_ LIKE '%STUDENT%' AND (sr.music_group_status_ != 'QUIT' OR sr.id_ IS NULL)
|
|
|
AND (mg.status_ = 'PROGRESS' OR vg.group_status_ IN (2,4))
|
|
|
<if test="organId != null and organId != ''">
|
|
|
AND FIND_IN_SET(su.organ_id_,#{organId})
|
|
|
</if>
|
|
|
- GROUP BY su.id_
|
|
|
+ GROUP BY su.id_,pla.id_
|
|
|
</select>
|
|
|
<select id="getHasCourse" resultType="java.lang.Long">
|
|
|
SELECT COUNT(DISTINCT su.id_) FROM sys_user su
|