|  | @@ -22,6 +22,7 @@
 | 
	
		
			
				|  |  |  		<result column="update_time_" property="updateTime" />
 | 
	
		
			
				|  |  |  		<result column="last_submit_time_" property="lastSubmitTime"/>
 | 
	
		
			
				|  |  |  		<result column="serve_type_" property="serveType"/>
 | 
	
		
			
				|  |  | +		<result column="course_ids_" property="courseIds"/>
 | 
	
		
			
				|  |  |  	</resultMap>
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	<resultMap id="StudentExercisesSituationDto" type="com.ym.mec.biz.dal.dto.StudentExercisesSituationDto" extends="StudentExtracurricularExercisesSituation">
 | 
	
	
		
			
				|  | @@ -48,15 +49,24 @@
 | 
	
		
			
				|  |  |  		SELECT SEQ_WSDEFINITION_ID.nextval AS ID FROM DUAL 
 | 
	
		
			
				|  |  |  		</selectKey>
 | 
	
		
			
				|  |  |  		-->
 | 
	
		
			
				|  |  | -		INSERT INTO student_extracurricular_exercises_situation_ (id_,student_id_,week_of_year_,monday_,sunday_,teacher_id_,expect_exercises_num_,actual_exercises_num_,exercises_reply_num_,exercises_message_num_,exercises_message_timely_num_,create_time_,update_time_,last_submit_time_,serve_type_)
 | 
	
		
			
				|  |  | -		VALUES(#{id},#{studentId},#{weekOfYear},#{monday},#{sunday},#{teacherId},#{expectExercisesNum},#{actualExercisesNum},#{exercisesReplyNum},#{exercisesMessageNum},#{exercisesMessageTimelyNum},NOW(),NOW(),#{lastSubmitTime},#{serveType})
 | 
	
		
			
				|  |  | +		INSERT INTO student_extracurricular_exercises_situation_ (id_,student_id_,week_of_year_,monday_,sunday_,teacher_id_,expect_exercises_num_,
 | 
	
		
			
				|  |  | +		                                                          actual_exercises_num_,exercises_reply_num_,exercises_message_num_,
 | 
	
		
			
				|  |  | +		                                                          exercises_message_timely_num_,create_time_,update_time_,last_submit_time_,
 | 
	
		
			
				|  |  | +		                                                          serve_type_,course_ids_)
 | 
	
		
			
				|  |  | +		VALUES(#{id},#{studentId},#{weekOfYear},#{monday},#{sunday},#{teacherId},#{expectExercisesNum},#{actualExercisesNum},#{exercisesReplyNum},
 | 
	
		
			
				|  |  | +		       #{exercisesMessageNum},#{exercisesMessageTimelyNum},NOW(),NOW(),#{lastSubmitTime},#{serveType},#{courseIds})
 | 
	
		
			
				|  |  |  	</insert>
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	<insert id="batchInsert" parameterType="com.ym.mec.biz.dal.entity.StudentExtracurricularExercisesSituation" useGeneratedKeys="true" keyColumn="id" keyProperty="id">
 | 
	
		
			
				|  |  | -		INSERT INTO student_extracurricular_exercises_situation_ (student_id_,week_of_year_,monday_,sunday_,teacher_id_,expect_exercises_num_,actual_exercises_num_,exercises_reply_num_,exercises_message_num_,exercises_message_timely_num_,create_time_,update_time_,last_submit_time_,serve_type_)
 | 
	
		
			
				|  |  | +		INSERT INTO student_extracurricular_exercises_situation_ (student_id_,week_of_year_,monday_,sunday_,teacher_id_,expect_exercises_num_,
 | 
	
		
			
				|  |  | +		                                                          actual_exercises_num_,exercises_reply_num_,exercises_message_num_,
 | 
	
		
			
				|  |  | +		                                                          exercises_message_timely_num_,create_time_,update_time_,last_submit_time_,
 | 
	
		
			
				|  |  | +		                                                          serve_type_,course_ids_)
 | 
	
		
			
				|  |  |  		VALUES
 | 
	
		
			
				|  |  |  		<foreach collection="situations" item="situation" separator=",">
 | 
	
		
			
				|  |  | -			(#{situation.studentId},#{situation.weekOfYear},#{situation.monday},#{situation.sunday},#{situation.teacherId},#{situation.expectExercisesNum},#{situation.actualExercisesNum},#{situation.exercisesReplyNum},#{situation.exercisesMessageNum},#{situation.exercisesMessageTimelyNum},NOW(),NOW(),#{situation.lastSubmitTime},#{situation.serveType})
 | 
	
		
			
				|  |  | +			(#{situation.studentId},#{situation.weekOfYear},#{situation.monday},#{situation.sunday},#{situation.teacherId},#{situation.expectExercisesNum},
 | 
	
		
			
				|  |  | +			#{situation.actualExercisesNum},#{situation.exercisesReplyNum},#{situation.exercisesMessageNum},#{situation.exercisesMessageTimelyNum},
 | 
	
		
			
				|  |  | +			NOW(),NOW(),#{situation.lastSubmitTime},#{situation.serveType},#{situation.courseIds})
 | 
	
		
			
				|  |  |  		</foreach>
 | 
	
		
			
				|  |  |  	</insert>
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -106,10 +116,61 @@
 | 
	
		
			
				|  |  |  			<if test="serveType!=null">
 | 
	
		
			
				|  |  |  				serve_type_=#{serveType},
 | 
	
		
			
				|  |  |  			</if>
 | 
	
		
			
				|  |  | +			<if test="courseIds!=null and courseIds!=''">
 | 
	
		
			
				|  |  | +				course_ids_=#{courseIds},
 | 
	
		
			
				|  |  | +			</if>
 | 
	
		
			
				|  |  |  			update_time_ = #{updateTime}
 | 
	
		
			
				|  |  |  		</set> WHERE id_ = #{id}
 | 
	
		
			
				|  |  |  	</update>
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +	<update id="batchUpdate" parameterType="com.ym.mec.biz.dal.entity.StudentExtracurricularExercisesSituation">
 | 
	
		
			
				|  |  | +		<foreach collection="situations" item="situation" separator=";">
 | 
	
		
			
				|  |  | +			UPDATE student_extracurricular_exercises_situation_
 | 
	
		
			
				|  |  | +			<set>
 | 
	
		
			
				|  |  | +				<if test="situation.exercisesReplyNum != null">
 | 
	
		
			
				|  |  | +					exercises_reply_num_ = #{situation.exercisesReplyNum},
 | 
	
		
			
				|  |  | +				</if>
 | 
	
		
			
				|  |  | +				<if test="situation.monday != null">
 | 
	
		
			
				|  |  | +					monday_ = #{situation.monday},
 | 
	
		
			
				|  |  | +				</if>
 | 
	
		
			
				|  |  | +				<if test="situation.weekOfYear != null">
 | 
	
		
			
				|  |  | +					week_of_year_ = #{situation.weekOfYear},
 | 
	
		
			
				|  |  | +				</if>
 | 
	
		
			
				|  |  | +				<if test="situation.exercisesMessageNum != null">
 | 
	
		
			
				|  |  | +					exercises_message_num_ = #{situation.exercisesMessageNum},
 | 
	
		
			
				|  |  | +				</if>
 | 
	
		
			
				|  |  | +				<if test="situation.teacherId != null">
 | 
	
		
			
				|  |  | +					teacher_id_ = #{situation.teacherId},
 | 
	
		
			
				|  |  | +				</if>
 | 
	
		
			
				|  |  | +				<if test="situation.actualExercisesNum != null">
 | 
	
		
			
				|  |  | +					actual_exercises_num_ = #{situation.actualExercisesNum},
 | 
	
		
			
				|  |  | +				</if>
 | 
	
		
			
				|  |  | +				<if test="situation.exercisesMessageTimelyNum != null">
 | 
	
		
			
				|  |  | +					exercises_message_timely_num_ = #{situation.exercisesMessageTimelyNum},
 | 
	
		
			
				|  |  | +				</if>
 | 
	
		
			
				|  |  | +				<if test="situation.studentId != null">
 | 
	
		
			
				|  |  | +					student_id_ = #{situation.studentId},
 | 
	
		
			
				|  |  | +				</if>
 | 
	
		
			
				|  |  | +				<if test="situation.expectExercisesNum != null">
 | 
	
		
			
				|  |  | +					expect_exercises_num_ = #{situation.expectExercisesNum},
 | 
	
		
			
				|  |  | +				</if>
 | 
	
		
			
				|  |  | +				<if test="situation.sunday != null">
 | 
	
		
			
				|  |  | +					sunday_ = #{situation.sunday},
 | 
	
		
			
				|  |  | +				</if>
 | 
	
		
			
				|  |  | +				<if test="situation.lastSubmitTime!=null">
 | 
	
		
			
				|  |  | +					last_submit_time_=#{situation.lastSubmitTime},
 | 
	
		
			
				|  |  | +				</if>
 | 
	
		
			
				|  |  | +				<if test="situation.serveType!=null">
 | 
	
		
			
				|  |  | +					serve_type_=#{situation.serveType},
 | 
	
		
			
				|  |  | +				</if>
 | 
	
		
			
				|  |  | +				<if test="situation.courseIds!=null and situation.courseIds!=''">
 | 
	
		
			
				|  |  | +					course_ids_=#{situation.courseIds},
 | 
	
		
			
				|  |  | +				</if>
 | 
	
		
			
				|  |  | +				update_time_ = NOW()
 | 
	
		
			
				|  |  | +			</set> WHERE id_ = #{situation.id}
 | 
	
		
			
				|  |  | +		</foreach>
 | 
	
		
			
				|  |  | +	</update>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  	<!-- 根据主键删除一条记录 -->
 | 
	
		
			
				|  |  |  	<delete id="delete" >
 | 
	
		
			
				|  |  |  		DELETE FROM student_extracurricular_exercises_situation_ WHERE id_ = #{id} 
 | 
	
	
		
			
				|  | @@ -119,6 +180,9 @@
 | 
	
		
			
				|  |  |  	</delete>
 | 
	
		
			
				|  |  |  	<delete id="deleteByStudent">
 | 
	
		
			
				|  |  |  		DELETE FROM student_extracurricular_exercises_situation_ WHERE student_id_ = #{studentId}
 | 
	
		
			
				|  |  | +		<if test="monday!=null and monday!=''">
 | 
	
		
			
				|  |  | +			AND monday_=#{monday}
 | 
	
		
			
				|  |  | +		</if>
 | 
	
		
			
				|  |  |  	</delete>
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	<!-- 分页查询 -->
 | 
	
	
		
			
				|  | @@ -133,31 +197,33 @@
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	<select id="findExercisesSituations" resultMap="StudentExercisesSituationDto">
 | 
	
		
			
				|  |  |  		SELECT
 | 
	
		
			
				|  |  | -		MAX(sees.id_) id_,
 | 
	
		
			
				|  |  | +		sees.id_ id_,
 | 
	
		
			
				|  |  |  		student_id_,
 | 
	
		
			
				|  |  |  		stu.username_ student_name_,
 | 
	
		
			
				|  |  | -		GROUP_CONCAT(DISTINCT tea.real_name_ ORDER BY tea.id_) teacher_name_,
 | 
	
		
			
				|  |  | +		tea.real_name_ teacher_name_,
 | 
	
		
			
				|  |  |  		o.name_ organ_name_,
 | 
	
		
			
				|  |  | -		SUM( expect_exercises_num_ ) expect_exercises_num_,
 | 
	
		
			
				|  |  | -		SUM( actual_exercises_num_ ) actual_exercises_num_,
 | 
	
		
			
				|  |  | +		sees.monday_,
 | 
	
		
			
				|  |  | +		sees.sunday_,
 | 
	
		
			
				|  |  | +		expect_exercises_num_ expect_exercises_num_,
 | 
	
		
			
				|  |  | +		actual_exercises_num_ actual_exercises_num_,
 | 
	
		
			
				|  |  |  		<if test="submitStartDate==null or submitEndDate==null">
 | 
	
		
			
				|  |  | -			SUM( exercises_reply_num_ ) exercises_reply_num_,
 | 
	
		
			
				|  |  | -			SUM( exercises_message_num_ ) exercises_message_num_,
 | 
	
		
			
				|  |  | -			SUM( exercises_message_timely_num_ ) exercises_message_timely_num_,
 | 
	
		
			
				|  |  | -			MAX(last_submit_time_) last_submit_time_
 | 
	
		
			
				|  |  | +			exercises_reply_num_ exercises_reply_num_,
 | 
	
		
			
				|  |  | +			exercises_message_num_ exercises_message_num_,
 | 
	
		
			
				|  |  | +			exercises_message_timely_num_ exercises_message_timely_num_,
 | 
	
		
			
				|  |  | +			last_submit_time_ last_submit_time_
 | 
	
		
			
				|  |  |  		</if>
 | 
	
		
			
				|  |  |  		<if test="submitStartDate!=null and submitEndDate!=null">
 | 
	
		
			
				|  |  | -			SUM(IF(DATE_FORMAT(last_submit_time_, '%Y-%m-%d') BETWEEN #{submitStartDate} AND #{submitEndDate},exercises_reply_num_,0)) exercises_reply_num_,
 | 
	
		
			
				|  |  | -			SUM(IF(DATE_FORMAT(last_submit_time_, '%Y-%m-%d') BETWEEN #{submitStartDate} AND #{submitEndDate},exercises_message_num_,0)) exercises_message_num_,
 | 
	
		
			
				|  |  | -			SUM(IF(DATE_FORMAT(last_submit_time_, '%Y-%m-%d') BETWEEN #{submitStartDate} AND #{submitEndDate},exercises_message_timely_num_,0)) exercises_message_timely_num_,
 | 
	
		
			
				|  |  | -			MAX(IF(DATE_FORMAT(last_submit_time_, '%Y-%m-%d') BETWEEN #{submitStartDate} AND #{submitEndDate},last_submit_time_, NULL)) last_submit_time_
 | 
	
		
			
				|  |  | +			IF(DATE_FORMAT(last_submit_time_, '%Y-%m-%d') BETWEEN #{submitStartDate} AND #{submitEndDate},exercises_reply_num_,0) exercises_reply_num_,
 | 
	
		
			
				|  |  | +			IF(DATE_FORMAT(last_submit_time_, '%Y-%m-%d') BETWEEN #{submitStartDate} AND #{submitEndDate},exercises_message_num_,0) exercises_message_num_,
 | 
	
		
			
				|  |  | +			IF(DATE_FORMAT(last_submit_time_, '%Y-%m-%d') BETWEEN #{submitStartDate} AND #{submitEndDate},exercises_message_timely_num_,0) exercises_message_timely_num_,
 | 
	
		
			
				|  |  | +			IF(DATE_FORMAT(last_submit_time_, '%Y-%m-%d') BETWEEN #{submitStartDate} AND #{submitEndDate},last_submit_time_, NULL) last_submit_time_
 | 
	
		
			
				|  |  |  		</if>
 | 
	
		
			
				|  |  |  		FROM
 | 
	
		
			
				|  |  | -		student_extracurricular_exercises_situation_ sees
 | 
	
		
			
				|  |  | -		LEFT JOIN sys_user stu ON stu.id_=sees.student_id_
 | 
	
		
			
				|  |  | -		LEFT JOIN teacher t ON t.id_=sees.teacher_id_
 | 
	
		
			
				|  |  | -		LEFT JOIN sys_user tea ON tea.id_=sees.teacher_id_
 | 
	
		
			
				|  |  | -		LEFT JOIN organization o ON stu.organ_id_=o.id_
 | 
	
		
			
				|  |  | +			student_extracurricular_exercises_situation_ sees
 | 
	
		
			
				|  |  | +			LEFT JOIN sys_user stu ON stu.id_=sees.student_id_
 | 
	
		
			
				|  |  | +			LEFT JOIN teacher t ON t.id_=sees.teacher_id_
 | 
	
		
			
				|  |  | +			LEFT JOIN sys_user tea ON tea.id_=sees.teacher_id_
 | 
	
		
			
				|  |  | +			LEFT JOIN organization o ON stu.organ_id_=o.id_
 | 
	
		
			
				|  |  |  		WHERE
 | 
	
		
			
				|  |  |  		sees.monday_ >= #{monday}
 | 
	
		
			
				|  |  |  		AND sees.sunday_ <= #{sunday}
 | 
	
	
		
			
				|  | @@ -182,57 +248,56 @@
 | 
	
		
			
				|  |  |  		<if test="existPracticeCourse!=null and existPracticeCourse==0">
 | 
	
		
			
				|  |  |  			AND NOT EXISTS (SELECT cssp.id_ FROM course_schedule_student_payment cssp LEFT JOIN course_schedule cs ON cs.id_=cssp.course_schedule_id_ LEFT JOIN practice_group pg ON pg.id_=cssp.music_group_id_ WHERE cssp.user_id_=sees.student_id_ AND cssp.group_type_='PRACTICE' AND pg.type_='CHARGE' AND class_date_ BETWEEN #{monday} AND #{sunday})
 | 
	
		
			
				|  |  |  		</if>
 | 
	
		
			
				|  |  | -		GROUP BY
 | 
	
		
			
				|  |  | -		student_id_
 | 
	
		
			
				|  |  | -		<trim prefix="HAVING" suffixOverrides="and">
 | 
	
		
			
				|  |  | -			<if test="expectExercisesNum!=null">  SUM( expect_exercises_num_ ) = #{expectExercisesNum}</if>
 | 
	
		
			
				|  |  | -			<if test="actualExercisesNumIsAchieve!=null and actualExercisesNumIsAchieve==0">
 | 
	
		
			
				|  |  | -				SUM( actual_exercises_num_ )<SUM( expect_exercises_num_ ) and
 | 
	
		
			
				|  |  | -			</if>
 | 
	
		
			
				|  |  | -			<if test="actualExercisesNumIsAchieve!=null and actualExercisesNumIsAchieve==1">
 | 
	
		
			
				|  |  | -				SUM( actual_exercises_num_ )>=SUM( expect_exercises_num_ ) and
 | 
	
		
			
				|  |  | -			</if>
 | 
	
		
			
				|  |  | -			<if test="submitStartDate==null or submitEndDate==null">
 | 
	
		
			
				|  |  | -				<if test="exercisesReplyNumIsAchieve!=null and exercisesReplyNumIsAchieve==0">
 | 
	
		
			
				|  |  | -					SUM( exercises_reply_num_ ) < SUM( actual_exercises_num_ ) and
 | 
	
		
			
				|  |  | -				</if>
 | 
	
		
			
				|  |  | -				<if test="exercisesReplyNumIsAchieve!=null and exercisesReplyNumIsAchieve==1">
 | 
	
		
			
				|  |  | -					SUM( exercises_reply_num_ ) >= SUM( actual_exercises_num_ ) and
 | 
	
		
			
				|  |  | -				</if>
 | 
	
		
			
				|  |  | -				<if test="exercisesMessageNumIsAchieve!=null and exercisesMessageNumIsAchieve==0">
 | 
	
		
			
				|  |  | -					SUM( exercises_message_num_ ) < SUM( exercises_reply_num_ ) and
 | 
	
		
			
				|  |  | -				</if>
 | 
	
		
			
				|  |  | -				<if test="exercisesMessageNumIsAchieve!=null and exercisesMessageNumIsAchieve==1">
 | 
	
		
			
				|  |  | -					SUM( exercises_message_num_ ) >= SUM( exercises_reply_num_ ) and
 | 
	
		
			
				|  |  | -				</if>
 | 
	
		
			
				|  |  | -				<if test="exercisesMessageTimelyNumIsAchieve!=null and exercisesMessageTimelyNumIsAchieve==0">
 | 
	
		
			
				|  |  | -					SUM( exercises_message_timely_num_ ) < SUM( exercises_message_num_ ) and
 | 
	
		
			
				|  |  | -				</if>
 | 
	
		
			
				|  |  | -				<if test="exercisesMessageTimelyNumIsAchieve!=null and exercisesMessageTimelyNumIsAchieve==1">
 | 
	
		
			
				|  |  | -					SUM( exercises_message_timely_num_ ) >= SUM( exercises_message_num_ ) and
 | 
	
		
			
				|  |  | -				</if>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +		<if test="expectExercisesNum!=null">
 | 
	
		
			
				|  |  | +			AND expect_exercises_num_ = #{expectExercisesNum}
 | 
	
		
			
				|  |  | +		</if>
 | 
	
		
			
				|  |  | +		<if test="actualExercisesNumIsAchieve!=null and actualExercisesNumIsAchieve==0">
 | 
	
		
			
				|  |  | +			AND actual_exercises_num_ < expect_exercises_num_
 | 
	
		
			
				|  |  | +		</if>
 | 
	
		
			
				|  |  | +		<if test="actualExercisesNumIsAchieve!=null and actualExercisesNumIsAchieve==1">
 | 
	
		
			
				|  |  | +			AND actual_exercises_num_ >= expect_exercises_num_
 | 
	
		
			
				|  |  | +		</if>
 | 
	
		
			
				|  |  | +		<if test="submitStartDate==null or submitEndDate==null">
 | 
	
		
			
				|  |  | +			<if test="exercisesReplyNumIsAchieve!=null and exercisesReplyNumIsAchieve==0">
 | 
	
		
			
				|  |  | +				AND exercises_reply_num_ < SUM( actual_exercises_num_ )
 | 
	
		
			
				|  |  |  			</if>
 | 
	
		
			
				|  |  | -			<if test="submitStartDate!=null and submitEndDate!=null">
 | 
	
		
			
				|  |  | -				<if test="exercisesReplyNumIsAchieve!=null and exercisesReplyNumIsAchieve==0">
 | 
	
		
			
				|  |  | -					SUM(IF(DATE_FORMAT(last_submit_time_, '%Y-%m-%d') BETWEEN #{submitStartDate} AND #{submitEndDate},exercises_reply_num_,0)) < SUM( actual_exercises_num_ ) and
 | 
	
		
			
				|  |  | -				</if>
 | 
	
		
			
				|  |  | -				<if test="exercisesReplyNumIsAchieve!=null and exercisesReplyNumIsAchieve==1">
 | 
	
		
			
				|  |  | -					SUM(IF(DATE_FORMAT(last_submit_time_, '%Y-%m-%d') BETWEEN #{submitStartDate} AND #{submitEndDate},exercises_reply_num_,0)) >= SUM( actual_exercises_num_ ) and
 | 
	
		
			
				|  |  | -				</if>
 | 
	
		
			
				|  |  | -				<if test="exercisesMessageNumIsAchieve!=null and exercisesMessageNumIsAchieve==0">
 | 
	
		
			
				|  |  | -					SUM(IF(DATE_FORMAT(last_submit_time_, '%Y-%m-%d') BETWEEN #{submitStartDate} AND #{submitEndDate},exercises_message_num_,0)) < SUM( exercises_reply_num_ ) and
 | 
	
		
			
				|  |  | -				</if>
 | 
	
		
			
				|  |  | -				<if test="exercisesMessageNumIsAchieve!=null and exercisesMessageNumIsAchieve==1">
 | 
	
		
			
				|  |  | -					SUM(IF(DATE_FORMAT(last_submit_time_, '%Y-%m-%d') BETWEEN #{submitStartDate} AND #{submitEndDate},exercises_message_num_,0)) >= SUM( exercises_reply_num_ ) and
 | 
	
		
			
				|  |  | -				</if>
 | 
	
		
			
				|  |  | -				<if test="exercisesMessageTimelyNumIsAchieve!=null and exercisesMessageTimelyNumIsAchieve==0">
 | 
	
		
			
				|  |  | -					SUM(IF(DATE_FORMAT(last_submit_time_, '%Y-%m-%d') BETWEEN #{submitStartDate} AND #{submitEndDate},exercises_message_timely_num_,0)) < SUM( exercises_message_num_ ) and
 | 
	
		
			
				|  |  | -				</if>
 | 
	
		
			
				|  |  | -				<if test="exercisesMessageTimelyNumIsAchieve!=null and exercisesMessageTimelyNumIsAchieve==1">
 | 
	
		
			
				|  |  | -					SUM(IF(DATE_FORMAT(last_submit_time_, '%Y-%m-%d') BETWEEN #{submitStartDate} AND #{submitEndDate},exercises_message_timely_num_,0)) >= SUM( exercises_message_num_ ) and
 | 
	
		
			
				|  |  | -				</if>
 | 
	
		
			
				|  |  | +			<if test="exercisesReplyNumIsAchieve!=null and exercisesReplyNumIsAchieve==1">
 | 
	
		
			
				|  |  | +				AND exercises_reply_num_ >= actual_exercises_num_
 | 
	
		
			
				|  |  | +			</if>
 | 
	
		
			
				|  |  | +			<if test="exercisesMessageNumIsAchieve!=null and exercisesMessageNumIsAchieve==0">
 | 
	
		
			
				|  |  | +				AND exercises_message_num_ < exercises_reply_num_
 | 
	
		
			
				|  |  | +			</if>
 | 
	
		
			
				|  |  | +			<if test="exercisesMessageNumIsAchieve!=null and exercisesMessageNumIsAchieve==1">
 | 
	
		
			
				|  |  | +				AND exercises_message_num_ >= exercises_reply_num_
 | 
	
		
			
				|  |  | +			</if>
 | 
	
		
			
				|  |  | +			<if test="exercisesMessageTimelyNumIsAchieve!=null and exercisesMessageTimelyNumIsAchieve==0">
 | 
	
		
			
				|  |  | +				AND exercises_message_timely_num_ < exercises_message_num_
 | 
	
		
			
				|  |  | +			</if>
 | 
	
		
			
				|  |  | +			<if test="exercisesMessageTimelyNumIsAchieve!=null and exercisesMessageTimelyNumIsAchieve==1">
 | 
	
		
			
				|  |  | +				AND exercises_message_timely_num_ >= exercises_message_num_
 | 
	
		
			
				|  |  | +			</if>
 | 
	
		
			
				|  |  | +		</if>
 | 
	
		
			
				|  |  | +		<if test="submitStartDate!=null and submitEndDate!=null">
 | 
	
		
			
				|  |  | +			<if test="exercisesReplyNumIsAchieve!=null and exercisesReplyNumIsAchieve==0">
 | 
	
		
			
				|  |  | +				AND IF(DATE_FORMAT(last_submit_time_, '%Y-%m-%d') BETWEEN #{submitStartDate} AND #{submitEndDate},exercises_reply_num_,0) < actual_exercises_num_
 | 
	
		
			
				|  |  |  			</if>
 | 
	
		
			
				|  |  | -		</trim>
 | 
	
		
			
				|  |  | +			<if test="exercisesReplyNumIsAchieve!=null and exercisesReplyNumIsAchieve==1">
 | 
	
		
			
				|  |  | +				AND IF(DATE_FORMAT(last_submit_time_, '%Y-%m-%d') BETWEEN #{submitStartDate} AND #{submitEndDate},exercises_reply_num_,0) >= actual_exercises_num_
 | 
	
		
			
				|  |  | +			</if>
 | 
	
		
			
				|  |  | +			<if test="exercisesMessageNumIsAchieve!=null and exercisesMessageNumIsAchieve==0">
 | 
	
		
			
				|  |  | +				AND IF(DATE_FORMAT(last_submit_time_, '%Y-%m-%d') BETWEEN #{submitStartDate} AND #{submitEndDate},exercises_message_num_,0) < exercises_reply_num_
 | 
	
		
			
				|  |  | +			</if>
 | 
	
		
			
				|  |  | +			<if test="exercisesMessageNumIsAchieve!=null and exercisesMessageNumIsAchieve==1">
 | 
	
		
			
				|  |  | +				AND IF(DATE_FORMAT(last_submit_time_, '%Y-%m-%d') BETWEEN #{submitStartDate} AND #{submitEndDate},exercises_message_num_,0) >= exercises_reply_num_
 | 
	
		
			
				|  |  | +			</if>
 | 
	
		
			
				|  |  | +			<if test="exercisesMessageTimelyNumIsAchieve!=null and exercisesMessageTimelyNumIsAchieve==0">
 | 
	
		
			
				|  |  | +				AND IF(DATE_FORMAT(last_submit_time_, '%Y-%m-%d') BETWEEN #{submitStartDate} AND #{submitEndDate},exercises_message_timely_num_,0) < exercises_message_num_
 | 
	
		
			
				|  |  | +			</if>
 | 
	
		
			
				|  |  | +			<if test="exercisesMessageTimelyNumIsAchieve!=null and exercisesMessageTimelyNumIsAchieve==1">
 | 
	
		
			
				|  |  | +				AND IF(DATE_FORMAT(last_submit_time_, '%Y-%m-%d') BETWEEN #{submitStartDate} AND #{submitEndDate},exercises_message_timely_num_,0) >= exercises_message_num_
 | 
	
		
			
				|  |  | +			</if>
 | 
	
		
			
				|  |  | +		</if>
 | 
	
		
			
				|  |  |  		ORDER BY student_id_
 | 
	
		
			
				|  |  |  		<include refid="global.limit"/>
 | 
	
		
			
				|  |  |  	</select>
 | 
	
	
		
			
				|  | @@ -271,65 +336,66 @@
 | 
	
		
			
				|  |  |  		<if test="existPracticeCourse!=null and existPracticeCourse==0">
 | 
	
		
			
				|  |  |  			AND NOT EXISTS (SELECT cssp.id_ FROM course_schedule_student_payment cssp LEFT JOIN course_schedule cs ON cs.id_=cssp.course_schedule_id_ LEFT JOIN practice_group pg ON pg.id_=cssp.music_group_id_ WHERE cssp.user_id_=sees.student_id_ AND cssp.group_type_='PRACTICE' AND pg.type_='CHARGE' AND class_date_ BETWEEN #{monday} AND #{sunday})
 | 
	
		
			
				|  |  |  		</if>
 | 
	
		
			
				|  |  | -		GROUP BY
 | 
	
		
			
				|  |  | -		student_id_
 | 
	
		
			
				|  |  | -		<trim prefix="HAVING" suffixOverrides="and">
 | 
	
		
			
				|  |  | -			<if test="expectExercisesNum!=null">  SUM( expect_exercises_num_ ) = #{expectExercisesNum}</if>
 | 
	
		
			
				|  |  | -			<if test="actualExercisesNumIsAchieve!=null and actualExercisesNumIsAchieve==0">
 | 
	
		
			
				|  |  | -				SUM( actual_exercises_num_ )<SUM( expect_exercises_num_ ) and
 | 
	
		
			
				|  |  | -			</if>
 | 
	
		
			
				|  |  | -			<if test="actualExercisesNumIsAchieve!=null and actualExercisesNumIsAchieve==1">
 | 
	
		
			
				|  |  | -				SUM( actual_exercises_num_ )>=SUM( expect_exercises_num_ ) and
 | 
	
		
			
				|  |  | -			</if>
 | 
	
		
			
				|  |  | -			<if test="submitStartDate==null or submitEndDate==null">
 | 
	
		
			
				|  |  | -				<if test="exercisesReplyNumIsAchieve!=null and exercisesReplyNumIsAchieve==0">
 | 
	
		
			
				|  |  | -					SUM( exercises_reply_num_ ) < SUM( actual_exercises_num_ ) and
 | 
	
		
			
				|  |  | -				</if>
 | 
	
		
			
				|  |  | -				<if test="exercisesReplyNumIsAchieve!=null and exercisesReplyNumIsAchieve==1">
 | 
	
		
			
				|  |  | -					SUM( exercises_reply_num_ ) >= SUM( actual_exercises_num_ ) and
 | 
	
		
			
				|  |  | -				</if>
 | 
	
		
			
				|  |  | -				<if test="exercisesMessageNumIsAchieve!=null and exercisesMessageNumIsAchieve==0">
 | 
	
		
			
				|  |  | -					SUM( exercises_message_num_ ) < SUM( exercises_reply_num_ ) and
 | 
	
		
			
				|  |  | -				</if>
 | 
	
		
			
				|  |  | -				<if test="exercisesMessageNumIsAchieve!=null and exercisesMessageNumIsAchieve==1">
 | 
	
		
			
				|  |  | -					SUM( exercises_message_num_ ) >= SUM( exercises_reply_num_ ) and
 | 
	
		
			
				|  |  | -				</if>
 | 
	
		
			
				|  |  | -				<if test="exercisesMessageTimelyNumIsAchieve!=null and exercisesMessageTimelyNumIsAchieve==0">
 | 
	
		
			
				|  |  | -					SUM( exercises_message_timely_num_ ) < SUM( exercises_message_num_ ) and
 | 
	
		
			
				|  |  | -				</if>
 | 
	
		
			
				|  |  | -				<if test="exercisesMessageTimelyNumIsAchieve!=null and exercisesMessageTimelyNumIsAchieve==1">
 | 
	
		
			
				|  |  | -					SUM( exercises_message_timely_num_ ) >= SUM( exercises_message_num_ ) and
 | 
	
		
			
				|  |  | -				</if>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +		<if test="expectExercisesNum!=null">
 | 
	
		
			
				|  |  | +			AND expect_exercises_num_ = #{expectExercisesNum}
 | 
	
		
			
				|  |  | +		</if>
 | 
	
		
			
				|  |  | +		<if test="actualExercisesNumIsAchieve!=null and actualExercisesNumIsAchieve==0">
 | 
	
		
			
				|  |  | +			AND actual_exercises_num_ < expect_exercises_num_
 | 
	
		
			
				|  |  | +		</if>
 | 
	
		
			
				|  |  | +		<if test="actualExercisesNumIsAchieve!=null and actualExercisesNumIsAchieve==1">
 | 
	
		
			
				|  |  | +			AND actual_exercises_num_ >= expect_exercises_num_
 | 
	
		
			
				|  |  | +		</if>
 | 
	
		
			
				|  |  | +		<if test="submitStartDate==null or submitEndDate==null">
 | 
	
		
			
				|  |  | +			<if test="exercisesReplyNumIsAchieve!=null and exercisesReplyNumIsAchieve==0">
 | 
	
		
			
				|  |  | +				AND exercises_reply_num_ < SUM( actual_exercises_num_ )
 | 
	
		
			
				|  |  |  			</if>
 | 
	
		
			
				|  |  | -			<if test="submitStartDate!=null and submitEndDate!=null">
 | 
	
		
			
				|  |  | -				<if test="exercisesReplyNumIsAchieve!=null and exercisesReplyNumIsAchieve==0">
 | 
	
		
			
				|  |  | -					SUM(IF(DATE_FORMAT(last_submit_time_, '%Y-%m-%d') BETWEEN #{submitStartDate} AND #{submitEndDate},exercises_reply_num_,0)) < SUM( actual_exercises_num_ ) and
 | 
	
		
			
				|  |  | -				</if>
 | 
	
		
			
				|  |  | -				<if test="exercisesReplyNumIsAchieve!=null and exercisesReplyNumIsAchieve==1">
 | 
	
		
			
				|  |  | -					SUM(IF(DATE_FORMAT(last_submit_time_, '%Y-%m-%d') BETWEEN #{submitStartDate} AND #{submitEndDate},exercises_reply_num_,0)) >= SUM( actual_exercises_num_ ) and
 | 
	
		
			
				|  |  | -				</if>
 | 
	
		
			
				|  |  | -				<if test="exercisesMessageNumIsAchieve!=null and exercisesMessageNumIsAchieve==0">
 | 
	
		
			
				|  |  | -					SUM(IF(DATE_FORMAT(last_submit_time_, '%Y-%m-%d') BETWEEN #{submitStartDate} AND #{submitEndDate},exercises_message_num_,0)) < SUM( exercises_reply_num_ ) and
 | 
	
		
			
				|  |  | -				</if>
 | 
	
		
			
				|  |  | -				<if test="exercisesMessageNumIsAchieve!=null and exercisesMessageNumIsAchieve==1">
 | 
	
		
			
				|  |  | -					SUM(IF(DATE_FORMAT(last_submit_time_, '%Y-%m-%d') BETWEEN #{submitStartDate} AND #{submitEndDate},exercises_message_num_,0)) >= SUM( exercises_reply_num_ ) and
 | 
	
		
			
				|  |  | -				</if>
 | 
	
		
			
				|  |  | -				<if test="exercisesMessageTimelyNumIsAchieve!=null and exercisesMessageTimelyNumIsAchieve==0">
 | 
	
		
			
				|  |  | -					SUM(IF(DATE_FORMAT(last_submit_time_, '%Y-%m-%d') BETWEEN #{submitStartDate} AND #{submitEndDate},exercises_message_timely_num_,0)) < SUM( exercises_message_num_ ) and
 | 
	
		
			
				|  |  | -				</if>
 | 
	
		
			
				|  |  | -				<if test="exercisesMessageTimelyNumIsAchieve!=null and exercisesMessageTimelyNumIsAchieve==1">
 | 
	
		
			
				|  |  | -					SUM(IF(DATE_FORMAT(last_submit_time_, '%Y-%m-%d') BETWEEN #{submitStartDate} AND #{submitEndDate},exercises_message_timely_num_,0)) >= SUM( exercises_message_num_ ) and
 | 
	
		
			
				|  |  | -				</if>
 | 
	
		
			
				|  |  | +			<if test="exercisesReplyNumIsAchieve!=null and exercisesReplyNumIsAchieve==1">
 | 
	
		
			
				|  |  | +				AND exercises_reply_num_ >= actual_exercises_num_
 | 
	
		
			
				|  |  |  			</if>
 | 
	
		
			
				|  |  | -		</trim>
 | 
	
		
			
				|  |  | +			<if test="exercisesMessageNumIsAchieve!=null and exercisesMessageNumIsAchieve==0">
 | 
	
		
			
				|  |  | +				AND exercises_message_num_ < exercises_reply_num_
 | 
	
		
			
				|  |  | +			</if>
 | 
	
		
			
				|  |  | +			<if test="exercisesMessageNumIsAchieve!=null and exercisesMessageNumIsAchieve==1">
 | 
	
		
			
				|  |  | +				AND exercises_message_num_ >= exercises_reply_num_
 | 
	
		
			
				|  |  | +			</if>
 | 
	
		
			
				|  |  | +			<if test="exercisesMessageTimelyNumIsAchieve!=null and exercisesMessageTimelyNumIsAchieve==0">
 | 
	
		
			
				|  |  | +				AND exercises_message_timely_num_ < exercises_message_num_
 | 
	
		
			
				|  |  | +			</if>
 | 
	
		
			
				|  |  | +			<if test="exercisesMessageTimelyNumIsAchieve!=null and exercisesMessageTimelyNumIsAchieve==1">
 | 
	
		
			
				|  |  | +				AND exercises_message_timely_num_ >= exercises_message_num_
 | 
	
		
			
				|  |  | +			</if>
 | 
	
		
			
				|  |  | +		</if>
 | 
	
		
			
				|  |  | +		<if test="submitStartDate!=null and submitEndDate!=null">
 | 
	
		
			
				|  |  | +			<if test="exercisesReplyNumIsAchieve!=null and exercisesReplyNumIsAchieve==0">
 | 
	
		
			
				|  |  | +				AND IF(DATE_FORMAT(last_submit_time_, '%Y-%m-%d') BETWEEN #{submitStartDate} AND #{submitEndDate},exercises_reply_num_,0) < actual_exercises_num_
 | 
	
		
			
				|  |  | +			</if>
 | 
	
		
			
				|  |  | +			<if test="exercisesReplyNumIsAchieve!=null and exercisesReplyNumIsAchieve==1">
 | 
	
		
			
				|  |  | +				AND IF(DATE_FORMAT(last_submit_time_, '%Y-%m-%d') BETWEEN #{submitStartDate} AND #{submitEndDate},exercises_reply_num_,0) >= actual_exercises_num_
 | 
	
		
			
				|  |  | +			</if>
 | 
	
		
			
				|  |  | +			<if test="exercisesMessageNumIsAchieve!=null and exercisesMessageNumIsAchieve==0">
 | 
	
		
			
				|  |  | +				AND IF(DATE_FORMAT(last_submit_time_, '%Y-%m-%d') BETWEEN #{submitStartDate} AND #{submitEndDate},exercises_message_num_,0) < exercises_reply_num_
 | 
	
		
			
				|  |  | +			</if>
 | 
	
		
			
				|  |  | +			<if test="exercisesMessageNumIsAchieve!=null and exercisesMessageNumIsAchieve==1">
 | 
	
		
			
				|  |  | +				AND IF(DATE_FORMAT(last_submit_time_, '%Y-%m-%d') BETWEEN #{submitStartDate} AND #{submitEndDate},exercises_message_num_,0) >= exercises_reply_num_
 | 
	
		
			
				|  |  | +			</if>
 | 
	
		
			
				|  |  | +			<if test="exercisesMessageTimelyNumIsAchieve!=null and exercisesMessageTimelyNumIsAchieve==0">
 | 
	
		
			
				|  |  | +				AND IF(DATE_FORMAT(last_submit_time_, '%Y-%m-%d') BETWEEN #{submitStartDate} AND #{submitEndDate},exercises_message_timely_num_,0) < exercises_message_num_
 | 
	
		
			
				|  |  | +			</if>
 | 
	
		
			
				|  |  | +			<if test="exercisesMessageTimelyNumIsAchieve!=null and exercisesMessageTimelyNumIsAchieve==1">
 | 
	
		
			
				|  |  | +				AND IF(DATE_FORMAT(last_submit_time_, '%Y-%m-%d') BETWEEN #{submitStartDate} AND #{submitEndDate},exercises_message_timely_num_,0) >= exercises_message_num_
 | 
	
		
			
				|  |  | +			</if>
 | 
	
		
			
				|  |  | +		</if>
 | 
	
		
			
				|  |  |  		) tmp
 | 
	
		
			
				|  |  |  	</select>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  	<select id="findExercisesSituationsById" resultMap="StudentExtracurricularExercisesSituation">
 | 
	
		
			
				|  |  |  		SELECT * FROM student_extracurricular_exercises_situation_ WHERE id_ IN
 | 
	
		
			
				|  |  |  		<foreach collection="ids" item="id" separator="," open="(" close=")">
 | 
	
		
			
				|  |  |  			#{id}
 | 
	
		
			
				|  |  |  		</foreach>
 | 
	
		
			
				|  |  |  	</select>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  	<select id="findTeacherExercisesServiceSituations" resultType="com.ym.mec.biz.dal.dto.TeacherExercisesServiceDto">
 | 
	
		
			
				|  |  |  		SELECT
 | 
	
		
			
				|  |  |  		teacher_id_ teacherId,
 | 
	
	
		
			
				|  | @@ -346,12 +412,15 @@
 | 
	
		
			
				|  |  |  		GROUP BY
 | 
	
		
			
				|  |  |  		teacher_id_;
 | 
	
		
			
				|  |  |  	</select>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  	<select id="findLastWeekTodayUpdateNum" resultType="int">
 | 
	
		
			
				|  |  |  		SELECT COUNT(id_) FROM student_extracurricular_exercises_situation_ WHERE sunday_=#{sunday} AND DATE_FORMAT(update_time_,'%Y-%m-%d')=DATE_FORMAT(NOW(),'%Y-%m-%d')
 | 
	
		
			
				|  |  |      </select>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  	<select id="findStudentExercisesSituationsWithMonDay" resultMap="StudentExtracurricularExercisesSituation">
 | 
	
		
			
				|  |  |  		SELECT * FROM student_extracurricular_exercises_situation_ WHERE monday_=#{monday} AND student_id_=#{studentId}
 | 
	
		
			
				|  |  |  	</select>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  	<select id="getNoFinishedServiceTeacher" resultType="java.util.Map">
 | 
	
		
			
				|  |  |  		SELECT
 | 
	
		
			
				|  |  |  			teacher_id_ AS 'key',
 | 
	
	
		
			
				|  | @@ -366,4 +435,23 @@
 | 
	
		
			
				|  |  |  		GROUP BY
 | 
	
		
			
				|  |  |  			teacher_id_
 | 
	
		
			
				|  |  |  	</select>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	<select id="countWeekServiceNum" resultType="int">
 | 
	
		
			
				|  |  | +		SELECT COUNT(id_) FROM student_extracurricular_exercises_situation_ WHERE monday_=#{sunday}
 | 
	
		
			
				|  |  | +	</select>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	<select id="findWeekServiceWithStudents" resultMap="StudentExtracurricularExercisesSituation">
 | 
	
		
			
				|  |  | +		SELECT * FROM student_extracurricular_exercises_situation_
 | 
	
		
			
				|  |  | +		WHERE monday_=#{monday}
 | 
	
		
			
				|  |  | +		  <if test="teacherId!=null">
 | 
	
		
			
				|  |  | +			  AND teacher_id_=#{teacherId}
 | 
	
		
			
				|  |  | +		  </if>
 | 
	
		
			
				|  |  | +		  AND student_id_ IN
 | 
	
		
			
				|  |  | +		<foreach collection="studentIds" item="studentId" open="(" close=")" separator=",">
 | 
	
		
			
				|  |  | +			#{studentId}
 | 
	
		
			
				|  |  | +		</foreach>
 | 
	
		
			
				|  |  | +	</select>
 | 
	
		
			
				|  |  | +    <select id="findTeacherNoStartServices" resultMap="StudentExtracurricularExercisesSituation">
 | 
	
		
			
				|  |  | +		SELECT * FROM student_extracurricular_exercises_situation_ WHERE teacher_id_=#{teacherId} AND actual_exercises_num_<=0 AND serve_type_='HOMEWORK';
 | 
	
		
			
				|  |  | +	</select>
 | 
	
		
			
				|  |  |  </mapper>
 |