|
@@ -406,7 +406,77 @@
|
|
|
GROUP BY mgpcd.user_id_ HAVING SUM(mgpcd.expect_amount_) > 0
|
|
|
</select>
|
|
|
|
|
|
- <update id="updateNoPaymentAndZeroPaymentStatus">
|
|
|
+ <resultMap id="MusicArrearageStudentDto" type="com.ym.mec.biz.dal.dto.MusicArrearageStudentDto">
|
|
|
+ <result property="userId" column="user_id_"/>
|
|
|
+ <result property="studentName" column="student_name_"/>
|
|
|
+ <result property="organName" column="organ_name_"/>
|
|
|
+ <result property="cooperationName" column="cooperation_name_"/>
|
|
|
+ <result property="musicGroupId" column="music_group_id_"/>
|
|
|
+ <result property="musicGroupName" column="music_group_name_"/>
|
|
|
+ <result property="eduTeacherName" column="edu_teacher_name_"/>
|
|
|
+ <result property="subjectName" column="subject_name_"/>
|
|
|
+ <result property="gender" column="gender_"/>
|
|
|
+ <result property="parentName" column="parent_name_"/>
|
|
|
+ <result property="phone" column="phone_"/>
|
|
|
+ <result property="noPaymentAmount" column="no_payment_amount_"/>
|
|
|
+ </resultMap>
|
|
|
+
|
|
|
+ <sql id="queryArrearageStudentsCondition">
|
|
|
+ <where>
|
|
|
+ mg.status_ = 'PROGRESS'
|
|
|
+ AND DATE_FORMAT( NOW(), '%Y-%m-%d' ) >= DATE_FORMAT( mgpc.payment_valid_start_date_, '%Y-%m-%d' )
|
|
|
+ AND mgpcd.payment_status_ = 'NON_PAYMENT'
|
|
|
+ AND mgpcd.expect_amount_ > 0
|
|
|
+ <if test="organIds!=null and organIds.size()>0">
|
|
|
+ AND mg.organ_id_ IN
|
|
|
+ <foreach collection="organIds" item="organId" open="(" close=")" separator=",">
|
|
|
+ #{organId}
|
|
|
+ </foreach>
|
|
|
+ </if>
|
|
|
+ </where>
|
|
|
+ </sql>
|
|
|
+
|
|
|
+ <select id="queryArrearageStudents" resultMap="MusicArrearageStudentDto">
|
|
|
+ SELECT
|
|
|
+ mgpcd.user_id_,
|
|
|
+ SUM( mgpcd.expect_amount_ ) no_payment_amount_,
|
|
|
+ su.username_ student_name_,
|
|
|
+ organ.name_ organ_name_,
|
|
|
+ co.name_ cooperation_name_,
|
|
|
+ mgpc.music_group_id_,
|
|
|
+ mg.name_ music_group_name_,
|
|
|
+ edu.real_name_ edu_teacher_name_,
|
|
|
+ MAX( sub.name_ ) subject_name_,
|
|
|
+ su.gender_ gender_,
|
|
|
+ su.real_name_ parent_name_,
|
|
|
+ su.phone_ phone_
|
|
|
+ FROM
|
|
|
+ music_group_payment_calender_detail mgpcd
|
|
|
+ LEFT JOIN music_group_payment_calender mgpc ON mgpcd.music_group_payment_calender_id_ = mgpc.id_
|
|
|
+ LEFT JOIN music_group mg ON mgpc.music_group_id_ = mg.id_
|
|
|
+ LEFT JOIN student_registration sr ON sr.music_group_id_ = mgpc.music_group_id_
|
|
|
+ AND mgpcd.user_id_ = sr.user_id_
|
|
|
+ LEFT JOIN sys_user su ON mgpcd.user_id_ = su.id_
|
|
|
+ LEFT JOIN sys_user edu ON edu.id_ = mg.educational_teacher_id_
|
|
|
+ LEFT JOIN organization organ ON organ.id_ = mg.organ_id_
|
|
|
+ LEFT JOIN `subject` sub ON sr.actual_subject_id_ = sub.id_
|
|
|
+ LEFT JOIN cooperation_organ co ON mg.school_id_ = co.id_
|
|
|
+ <include refid="queryArrearageStudentsCondition"/>
|
|
|
+ GROUP BY
|
|
|
+ mgpc.music_group_id_,mgpcd.user_id_;
|
|
|
+ </select>
|
|
|
+
|
|
|
+ <select id="countArrearageStudents" resultType="int">
|
|
|
+ SELECT
|
|
|
+ COUNT(DISTINCT mgpc.music_group_id_,mgpcd.user_id_)
|
|
|
+ FROM
|
|
|
+ music_group_payment_calender_detail mgpcd
|
|
|
+ LEFT JOIN music_group_payment_calender mgpc ON mgpcd.music_group_payment_calender_id_ = mgpc.id_
|
|
|
+ LEFT JOIN music_group mg ON mgpc.music_group_id_ = mg.id_
|
|
|
+ <include refid="queryArrearageStudentsCondition"/>
|
|
|
+ </select>
|
|
|
+
|
|
|
+ <update id="updateNoPaymentAndZeroPaymentStatus">
|
|
|
UPDATE music_group_payment_calender_detail SET payment_status_ = 'PAID_COMPLETED',actual_amount_ = 0,update_time_ = NOW()
|
|
|
WHERE music_group_payment_calender_id_ = #{calenderId} AND expect_amount_ = 0 AND payment_status_ = 'NON_PAYMENT'
|
|
|
</update>
|