|
@@ -822,4 +822,62 @@
|
|
AND mg.name_ LIKE CONCAT('%',#{musicGroupName},'%')
|
|
AND mg.name_ LIKE CONCAT('%',#{musicGroupName},'%')
|
|
</if>
|
|
</if>
|
|
</select>
|
|
</select>
|
|
|
|
+ <select id="countMusicMemberList" resultType="java.lang.Integer">
|
|
|
|
+ SELECT COUNT(c.user_id_) FROM
|
|
|
|
+ (SELECT sr.user_id_,su.username_,o.name_ organ_name_,mg.name_ music_group_name_,DATEDIFF(MAX(cto.end_time_),NOW()) member_day_,sr.music_group_id_ FROM student_registration sr
|
|
|
|
+ LEFT JOIN music_group mg ON mg.id_ = sr.music_group_id_
|
|
|
|
+ LEFT JOIN cloud_teacher_order cto ON cto.student_id_ = sr.user_id_
|
|
|
|
+ LEFT JOIN sys_user su ON su.id_ = sr.user_id_
|
|
|
|
+ LEFT JOIN organization o ON o.id_ = mg.organ_id_
|
|
|
|
+ <include refid="queryMusicMemberListSql"/>
|
|
|
|
+ GROUP BY cto.student_id_ HAVING MIN(cto.status_) != 1
|
|
|
|
+ <if test="hasMember != null">
|
|
|
|
+ <if test="hasMember == 0">
|
|
|
|
+ AND DATEDIFF(MAX(cto.end_time_),NOW()) < 0
|
|
|
|
+ </if>
|
|
|
|
+ <if test="hasMember == 1">
|
|
|
|
+ AND DATEDIFF(MAX(cto.end_time_),NOW()) <= #{memberEndAutoQuitMusic} AND DATEDIFF(NOW(),MAX(cto.end_time_)) >= 0
|
|
|
|
+ </if>
|
|
|
|
+ </if>) c
|
|
|
|
+ </select>
|
|
|
|
+ <resultMap id="MusicMemberDto" type="com.ym.mec.biz.dal.entity.MusicMemberDto">
|
|
|
|
+ <result property="organName" column="organ_name_"/>
|
|
|
|
+ <result property="musicGroupName" column="music_group_name_"/>
|
|
|
|
+ <result property="musicGroupId" column="music_group_id_"/>
|
|
|
|
+ <result property="userId" column="user_id_"/>
|
|
|
|
+ <result property="username" column="username_"/>
|
|
|
|
+ <result property="memberDay" column="member_day_"/>
|
|
|
|
+ </resultMap>
|
|
|
|
+ <select id="queryMusicMemberList" resultMap="MusicMemberDto">
|
|
|
|
+ SELECT sr.user_id_,su.username_,o.name_ organ_name_,mg.name_ music_group_name_,DATEDIFF(MAX(cto.end_time_),NOW()) + 1 member_day_,sr.music_group_id_ FROM student_registration sr
|
|
|
|
+ LEFT JOIN music_group mg ON mg.id_ = sr.music_group_id_
|
|
|
|
+ LEFT JOIN cloud_teacher_order cto ON cto.student_id_ = sr.user_id_
|
|
|
|
+ LEFT JOIN sys_user su ON su.id_ = sr.user_id_
|
|
|
|
+ LEFT JOIN organization o ON o.id_ = mg.organ_id_
|
|
|
|
+ <include refid="queryMusicMemberListSql"/>
|
|
|
|
+ GROUP BY cto.student_id_ HAVING MIN(cto.status_) != 1
|
|
|
|
+ <if test="hasMember != null">
|
|
|
|
+ <if test="hasMember == 0">
|
|
|
|
+ AND DATEDIFF(MAX(cto.end_time_),NOW()) < 0
|
|
|
|
+ </if>
|
|
|
|
+ <if test="hasMember == 1">
|
|
|
|
+ AND DATEDIFF(MAX(cto.end_time_),NOW()) <= #{memberEndAutoQuitMusic} AND DATEDIFF(NOW(),MAX(cto.end_time_)) >= 0
|
|
|
|
+ </if>
|
|
|
|
+ </if>
|
|
|
|
+ </select>
|
|
|
|
+ <sql id="queryMusicMemberListSql">
|
|
|
|
+ <where>
|
|
|
|
+ sr.music_group_status_ != 'QUIT' AND mg.course_view_type_ = 1
|
|
|
|
+ AND mg.status_ = 'PROGRESS' AND cto.status_ IN (1,2)
|
|
|
|
+ <if test="search != null and search != ''">
|
|
|
|
+ AND (mg.name_ LIKE CONCAT('%',#{search},'%') OR mg.id_ LIKE CONCAT('%',#{search},'%') OR su.username_ LIKE CONCAT('%',#{search},'%') OR su.id_ = #{search})
|
|
|
|
+ </if>
|
|
|
|
+ <if test="organId != null and organId != ''">
|
|
|
|
+ AND FIND_IN_SET(mg.organ_id_,#{organId})
|
|
|
|
+ </if>
|
|
|
|
+ <if test="educationUserId != null">
|
|
|
|
+ AND mg.educational_teacher_id_ = #{educationUserId}
|
|
|
|
+ </if>
|
|
|
|
+ </where>
|
|
|
|
+ </sql>
|
|
</mapper>
|
|
</mapper>
|