|
|
@@ -1009,4 +1009,50 @@
|
|
|
AND FIND_IN_SET(mgpc.organ_id_,#{organIds})
|
|
|
</if>
|
|
|
</select>
|
|
|
+ <select id="countHasFreeCourseTimes" resultType="java.lang.Integer">
|
|
|
+ SELECT COUNT(mgpscd.user_id_)
|
|
|
+ FROM music_group_payment_student_course_detail mgpscd
|
|
|
+ LEFT JOIN music_group_payment_calender mgpc ON mgpc.id_ = mgpscd.music_group_payment_calender_id_
|
|
|
+ LEFT JOIN music_group mg ON mg.id_ = mgpc.music_group_id_
|
|
|
+ <include refid="queryHasFreeCourseTimesSql"/>
|
|
|
+ </select>
|
|
|
+ <resultMap id="HasFreeCourseTimesDto" type="com.ym.mec.biz.dal.dto.HasFreeCourseTimesDto">
|
|
|
+ <result property="userId" column="user_id_"/>
|
|
|
+ <result property="courseType" column="course_type_" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
|
|
|
+ <result property="musicGroupName" column="music_group_name_"/>
|
|
|
+ <result property="musicGroupId" column="music_group_id_"/>
|
|
|
+ <result property="username" column="username_"/>
|
|
|
+ <result property="freeCourseMinutes" column="free_course_minutes_"/>
|
|
|
+ <result property="totalCourseMinutes" column="total_course_minutes_"/>
|
|
|
+ <result property="usedCourseMinutes" column="used_course_minutes_"/>
|
|
|
+ </resultMap>
|
|
|
+ <sql id="queryHasFreeCourseTimesSql">
|
|
|
+ <where>
|
|
|
+ mgpscd.used_course_minutes_ < mgpscd.total_course_minutes_ AND mgpscd.used_course_minutes_ > 0
|
|
|
+ AND mg.status_ = 'PROGRESS'
|
|
|
+ <if test="tenantId != null">
|
|
|
+ AND mgpscd.tenant_id_ = #{tenantId}
|
|
|
+ </if>
|
|
|
+ <if test="organId != null and organId != ''">
|
|
|
+ AND FIND_IN_SET(mg.organ_id_,#{organId})
|
|
|
+ </if>
|
|
|
+ <if test="search != null and search != ''">
|
|
|
+ AND (mgpscd.user_id_ = #{search}
|
|
|
+ OR su.username_ LIKE CONCAT('%' ,#{search}, '%' )
|
|
|
+ OR mg.id_ LIKE CONCAT('%' ,#{search}, '%' )
|
|
|
+ OR mg.name_ LIKE CONCAT('%' ,#{search}, '%' ))
|
|
|
+ </if>
|
|
|
+ </where>
|
|
|
+ </sql>
|
|
|
+ <select id="queryHasFreeCourseTimes" resultMap="HasFreeCourseTimesDto">
|
|
|
+ SELECT mg.id_ music_group_id_,mg.name_ music_group_name_,mgpscd.user_id_,mgpscd.total_course_minutes_,
|
|
|
+ mgpscd.used_course_minutes_,mgpscd.total_course_minutes_ - mgpscd.used_course_minutes_ free_course_minutes_,su.username_
|
|
|
+ FROM music_group_payment_student_course_detail mgpscd
|
|
|
+ LEFT JOIN music_group_payment_calender mgpc ON mgpc.id_ = mgpscd.music_group_payment_calender_id_
|
|
|
+ LEFT JOIN music_group mg ON mg.id_ = mgpc.music_group_id_
|
|
|
+ LEFT JOIN sys_user su ON su.id_ = mgpscd.user_id_
|
|
|
+ <include refid="queryHasFreeCourseTimesSql"/>
|
|
|
+ ORDER BY mgpscd.update_time_ DESC
|
|
|
+ <include refid="global.limit"/>
|
|
|
+ </select>
|
|
|
</mapper>
|