|  | @@ -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>
 |