|  | @@ -1646,26 +1646,128 @@
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	<select id="getOrgansStudentNumData" resultMap="IndexBaseMonthData">
 | 
	
		
			
				|  |  |  		SELECT
 | 
	
		
			
				|  |  | +			t.organ_id_,
 | 
	
		
			
				|  |  | +			#{dayStr} month_,
 | 
	
		
			
				|  |  | +			COUNT( DISTINCT t.user_id_ ) total_num_,
 | 
	
		
			
				|  |  | +			COUNT( DISTINCT t.user_id_ ) activate_num_,
 | 
	
		
			
				|  |  | +			COUNT( DISTINCT t.user_id_ ) percent_
 | 
	
		
			
				|  |  | +		FROM((
 | 
	
		
			
				|  |  | +			SELECT
 | 
	
		
			
				|  |  | +				su.organ_id_,
 | 
	
		
			
				|  |  | +				sr.user_id_
 | 
	
		
			
				|  |  | +			FROM
 | 
	
		
			
				|  |  | +				student_registration sr
 | 
	
		
			
				|  |  | +				LEFT JOIN sys_user su ON sr.user_id_ = su.id_
 | 
	
		
			
				|  |  | +			WHERE
 | 
	
		
			
				|  |  | +				su.del_flag_ = 0
 | 
	
		
			
				|  |  | +				AND sr.music_group_status_ = 'NORMAL'
 | 
	
		
			
				|  |  | +				<if test="dayStr!=null and dayStr!=''">
 | 
	
		
			
				|  |  | +					AND DATE(sr.create_time_)<= #{dayStr}
 | 
	
		
			
				|  |  | +				</if>)
 | 
	
		
			
				|  |  | +		UNION ALL
 | 
	
		
			
				|  |  | +		(
 | 
	
		
			
				|  |  | +			SELECT
 | 
	
		
			
				|  |  | +				su.organ_id_,
 | 
	
		
			
				|  |  | +				cssp.user_id_
 | 
	
		
			
				|  |  | +			FROM
 | 
	
		
			
				|  |  | +				course_schedule_student_payment cssp
 | 
	
		
			
				|  |  | +				LEFT JOIN course_schedule cs ON cssp.course_schedule_id_ = cs.id_
 | 
	
		
			
				|  |  | +				LEFT JOIN sys_user su ON cssp.user_id_ = su.id_
 | 
	
		
			
				|  |  | +			WHERE
 | 
	
		
			
				|  |  | +				cssp.group_type_ IN ( 'VIP', 'PRACTICE' )
 | 
	
		
			
				|  |  | +				AND cs.status_ = 'NOT_START'
 | 
	
		
			
				|  |  | +				AND su.del_flag_ = 0
 | 
	
		
			
				|  |  | +				<if test="dayStr!=null and dayStr!=''">
 | 
	
		
			
				|  |  | +					AND DATE(cssp.create_time_)<= #{dayStr}
 | 
	
		
			
				|  |  | +				</if>)) t
 | 
	
		
			
				|  |  | +		GROUP BY t.organ_id_
 | 
	
		
			
				|  |  | +	</select>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	<select id="getMemberStudentNumData" resultMap="IndexBaseMonthData">
 | 
	
		
			
				|  |  | +		SELECT
 | 
	
		
			
				|  |  | +			su.organ_id_,
 | 
	
		
			
				|  |  | +			#{dayStr} month_,
 | 
	
		
			
				|  |  | +			COUNT(DISTINCT cto.student_id_) total_num_,
 | 
	
		
			
				|  |  | +			COUNT(DISTINCT cto.student_id_) activate_num_,
 | 
	
		
			
				|  |  | +			COUNT(DISTINCT cto.student_id_) percent_
 | 
	
		
			
				|  |  | +		FROM cloud_teacher_order cto
 | 
	
		
			
				|  |  | +			LEFT JOIN sys_user su ON cto.student_id_=su.id_
 | 
	
		
			
				|  |  | +		WHERE su.del_flag_=0 AND cto.status_ IN (1,2)
 | 
	
		
			
				|  |  | +			<if test="dayStr!=null and dayStr!=''">
 | 
	
		
			
				|  |  | +				AND DATE(cto.create_time_)<= #{dayStr}
 | 
	
		
			
				|  |  | +			</if>
 | 
	
		
			
				|  |  | +		GROUP BY su.organ_id_
 | 
	
		
			
				|  |  | +	</select>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	<select id="getNewMemberStudentNumData" resultMap="IndexBaseMonthData">
 | 
	
		
			
				|  |  | +		SELECT
 | 
	
		
			
				|  |  |  		su.organ_id_,
 | 
	
		
			
				|  |  |  		#{dayStr} month_,
 | 
	
		
			
				|  |  | -		COUNT( DISTINCT s.user_id_ ) total_num_,
 | 
	
		
			
				|  |  | -		COUNT( DISTINCT s.user_id_ ) activate_num_,
 | 
	
		
			
				|  |  | -		COUNT( DISTINCT s.user_id_ ) percent_
 | 
	
		
			
				|  |  | -		FROM
 | 
	
		
			
				|  |  | -		sys_user su
 | 
	
		
			
				|  |  | -		LEFT JOIN course_schedule_student_payment s ON su.id_=s.user_id_
 | 
	
		
			
				|  |  | -		LEFT JOIN course_schedule_student_payment cssp1 ON s.user_id_=cssp1.user_id_ AND cssp1.create_time_<#{dayStr}
 | 
	
		
			
				|  |  | -		LEFT JOIN course_schedule m ON s.course_schedule_id_=m.id_
 | 
	
		
			
				|  |  | -		WHERE
 | 
	
		
			
				|  |  | -		m.del_flag_ = 0
 | 
	
		
			
				|  |  | -		AND (m.is_lock_ = 0 OR m.is_lock_ IS NULL)
 | 
	
		
			
				|  |  | -		AND cssp1.id_ IS NULL
 | 
	
		
			
				|  |  | -		AND su.organ_id_ IS NOT NULL
 | 
	
		
			
				|  |  | -		AND m.group_type_ IN ('VIP', 'PRACTICE')
 | 
	
		
			
				|  |  | +		COUNT(DISTINCT cto.student_id_) total_num_,
 | 
	
		
			
				|  |  | +		COUNT(DISTINCT cto.student_id_) activate_num_,
 | 
	
		
			
				|  |  | +		COUNT(DISTINCT cto.student_id_) percent_
 | 
	
		
			
				|  |  | +		FROM cloud_teacher_order cto
 | 
	
		
			
				|  |  | +		LEFT JOIN sys_user su ON cto.student_id_=su.id_
 | 
	
		
			
				|  |  | +		WHERE su.del_flag_=0 AND cto.status_ IN (1,2)
 | 
	
		
			
				|  |  |  		<if test="dayStr!=null and dayStr!=''">
 | 
	
		
			
				|  |  | -			AND DATE_FORMAT(s.create_time_, '%Y-%m-%d') = #{dayStr}
 | 
	
		
			
				|  |  | +			AND DATE(cto.create_time_)= #{dayStr}
 | 
	
		
			
				|  |  |  		</if>
 | 
	
		
			
				|  |  |  		GROUP BY su.organ_id_
 | 
	
		
			
				|  |  | -		ORDER BY su.organ_id_;
 | 
	
		
			
				|  |  | +	</select>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	<select id="getExperienceMemberStudentNumData" resultMap="IndexBaseMonthData">
 | 
	
		
			
				|  |  | +		SELECT
 | 
	
		
			
				|  |  | +		su.organ_id_,
 | 
	
		
			
				|  |  | +		#{dayStr} month_,
 | 
	
		
			
				|  |  | +		COUNT(DISTINCT stu.user_id_) total_num_,
 | 
	
		
			
				|  |  | +		COUNT(DISTINCT stu.user_id_) activate_num_,
 | 
	
		
			
				|  |  | +		COUNT(DISTINCT stu.user_id_) percent_
 | 
	
		
			
				|  |  | +		FROM student stu
 | 
	
		
			
				|  |  | +		LEFT JOIN cloud_teacher_order cto ON stu.user_id_=cto.student_id_
 | 
	
		
			
				|  |  | +		LEFT JOIN sys_user su ON su.id_=stu.user_id_
 | 
	
		
			
				|  |  | +		WHERE su.del_flag_=0 AND stu.experience_member_rank_setting_id_ IS NOT NULL AND (cto.id_ IS NULL OR cto.status_ NOT IN (1, 2))
 | 
	
		
			
				|  |  | +		<if test="dayStr!=null and dayStr!=''">
 | 
	
		
			
				|  |  | +			AND DATE(stu.experience_membership_start_time_)<= #{dayStr}
 | 
	
		
			
				|  |  | +		</if>
 | 
	
		
			
				|  |  | +		GROUP BY su.organ_id_
 | 
	
		
			
				|  |  | +	</select>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	<select id="getCloudStudyDayUseStudentNumData" resultMap="IndexBaseMonthData">
 | 
	
		
			
				|  |  | +		SELECT
 | 
	
		
			
				|  |  | +			su.organ_id_,
 | 
	
		
			
				|  |  | +			#{dayStr} month_,
 | 
	
		
			
				|  |  | +			COUNT(DISTINCT smcr.user_id_) total_num_,
 | 
	
		
			
				|  |  | +			COUNT(DISTINCT smcr.user_id_) activate_num_,
 | 
	
		
			
				|  |  | +			COUNT(DISTINCT smcr.user_id_) percent_
 | 
	
		
			
				|  |  | +		FROM sys_music_compare_record smcr
 | 
	
		
			
				|  |  | +			LEFT JOIN sys_user su ON smcr.user_id_=su.id_
 | 
	
		
			
				|  |  | +			LEFT JOIN student stu ON smcr.user_id_=stu.user_id_
 | 
	
		
			
				|  |  | +		WHERE su.del_flag_=0 AND stu.user_id_ IS NOT NULL
 | 
	
		
			
				|  |  | +			<if test="dayStr!=null and dayStr!=''">
 | 
	
		
			
				|  |  | +				AND DATE(smcr.create_time_)= #{dayStr}
 | 
	
		
			
				|  |  | +			</if>
 | 
	
		
			
				|  |  | +		GROUP BY su.organ_id_
 | 
	
		
			
				|  |  | +	</select>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	<select id="getCloudStudyLivelyStudentNumData" resultMap="IndexBaseMonthData">
 | 
	
		
			
				|  |  | +		SELECT
 | 
	
		
			
				|  |  | +			t.organ_id_,
 | 
	
		
			
				|  |  | +			#{dayStr} month_,
 | 
	
		
			
				|  |  | +			COUNT(user_id_) total_num_,
 | 
	
		
			
				|  |  | +			COUNT(user_id_) activate_num_,
 | 
	
		
			
				|  |  | +			COUNT(user_id_) percent_
 | 
	
		
			
				|  |  | +		FROM (SELECT
 | 
	
		
			
				|  |  | +			su.organ_id_,
 | 
	
		
			
				|  |  | +			smcr.user_id_,
 | 
	
		
			
				|  |  | +			COUNT(DISTINCT(CASE WHEN DATEDIFF(NOW(), smcr.create_time_)<=15 THEN DATE_FORMAT(smcr.create_time_, '%Y-%m-%d') ELSE NULL END)) days
 | 
	
		
			
				|  |  | +			FROM sys_music_compare_record smcr
 | 
	
		
			
				|  |  | +			LEFT JOIN sys_user su ON smcr.user_id_=su.id_
 | 
	
		
			
				|  |  | +			LEFT JOIN student stu ON smcr.user_id_=stu.user_id_
 | 
	
		
			
				|  |  | +			WHERE su.del_flag_=0 AND stu.user_id_ IS NOT NULL
 | 
	
		
			
				|  |  | +			<if test="dayStr!=null and dayStr!=''">
 | 
	
		
			
				|  |  | +				AND DATE(smcr.create_time_) <= #{dayStr}
 | 
	
		
			
				|  |  | +			</if>
 | 
	
		
			
				|  |  | +			GROUP BY smcr.user_id_) t WHERE t.days>=5
 | 
	
		
			
				|  |  | +		GROUP BY t.organ_id_
 | 
	
		
			
				|  |  |  	</select>
 | 
	
		
			
				|  |  |  </mapper>
 |