|
@@ -195,19 +195,14 @@
|
|
AND ss.over_course_num_ > 0 AND (ss.sub_course_num_ > 0 OR ss.no_schedule_num_ > 0) AND ss.lately_year_course_consumer_ <= 0
|
|
AND ss.over_course_num_ > 0 AND (ss.sub_course_num_ > 0 OR ss.no_schedule_num_ > 0) AND ss.lately_year_course_consumer_ <= 0
|
|
</if>
|
|
</if>
|
|
<if test="studentStatus == 'LOST'">
|
|
<if test="studentStatus == 'LOST'">
|
|
- AND ss.over_course_num_ > 0 AND ss.sub_course_num_ <= 0 AND ss.no_schedule_num_ <= 0
|
|
|
|
|
|
+ AND ss.over_course_num_ > 0 AND ss.sub_course_num_ <= 0 AND ss.no_schedule_num_ <= 0 AND suca.course_balance_ <= 0
|
|
</if>
|
|
</if>
|
|
<if test="studentStatus == 'PAUSE'">
|
|
<if test="studentStatus == 'PAUSE'">
|
|
AND suca.course_balance_ > 0 AND ss.sub_course_num_ <= 0 AND ss.no_schedule_num_ <= 0
|
|
AND suca.course_balance_ > 0 AND ss.sub_course_num_ <= 0 AND ss.no_schedule_num_ <= 0
|
|
</if>
|
|
</if>
|
|
</if>
|
|
</if>
|
|
<if test="studentStatus == null or studentStatus == ''">
|
|
<if test="studentStatus == null or studentStatus == ''">
|
|
- <if test="groupType == 'PRACTICE'">
|
|
|
|
- AND (ss.over_course_num_ > 0 OR ss.sub_course_num_ > 0 OR ss.no_schedule_num_ > 0 OR suca.course_balance_ > 0)
|
|
|
|
- </if>
|
|
|
|
- <if test="groupType != 'PRACTICE'">
|
|
|
|
- AND (ss.over_course_num_ > 0 OR ss.sub_course_num_ > 0 OR ss.no_schedule_num_ > 0)
|
|
|
|
- </if>
|
|
|
|
|
|
+ AND (ss.over_course_num_ > 0 OR ss.sub_course_num_ > 0 OR ss.no_schedule_num_ > 0 OR suca.course_balance_ > 0)
|
|
</if>
|
|
</if>
|
|
<if test="feedbackType != null and feedbackType != ''">
|
|
<if test="feedbackType != null and feedbackType != ''">
|
|
AND ss.last_visit_status_ = #{feedbackType}
|
|
AND ss.last_visit_status_ = #{feedbackType}
|
|
@@ -253,25 +248,19 @@
|
|
<select id="countStatistics" resultType="java.lang.Integer">
|
|
<select id="countStatistics" resultType="java.lang.Integer">
|
|
SELECT COUNT(sbi.id_) FROM student_basic_info sbi
|
|
SELECT COUNT(sbi.id_) FROM student_basic_info sbi
|
|
LEFT JOIN student_statistics ss ON ss.user_id_ = sbi.user_id_
|
|
LEFT JOIN student_statistics ss ON ss.user_id_ = sbi.user_id_
|
|
- <if test="groupType != 'PRACTICE'">
|
|
|
|
- LEFT JOIN sys_user_cash_account suca ON sbi.user_id_ = suca.user_id_
|
|
|
|
- </if>
|
|
|
|
|
|
+ LEFT JOIN sys_user_cash_account suca ON sbi.user_id_ = suca.user_id_
|
|
<include refid="queryStatisticsSql"/>
|
|
<include refid="queryStatisticsSql"/>
|
|
</select>
|
|
</select>
|
|
<select id="queryStatistics" resultMap="StudentStatisticsDto">
|
|
<select id="queryStatistics" resultMap="StudentStatisticsDto">
|
|
SELECT *,ss.not_start_course_fee_ + ss.no_course_fee_ preCourseFee,
|
|
SELECT *,ss.not_start_course_fee_ + ss.no_course_fee_ preCourseFee,
|
|
CASE WHEN (ss.no_schedule_num_ > 0 OR ss.sub_course_num_ > 0) AND (ss.lately_year_course_consumer_ > 0 OR ss.over_course_num_ <= 0) THEN '在读'
|
|
CASE WHEN (ss.no_schedule_num_ > 0 OR ss.sub_course_num_ > 0) AND (ss.lately_year_course_consumer_ > 0 OR ss.over_course_num_ <= 0) THEN '在读'
|
|
WHEN ss.over_course_num_ > 0 AND (ss.sub_course_num_ > 0 OR ss.no_schedule_num_ > 0) AND ss.lately_year_course_consumer_ <= 0 THEN '沉睡'
|
|
WHEN ss.over_course_num_ > 0 AND (ss.sub_course_num_ > 0 OR ss.no_schedule_num_ > 0) AND ss.lately_year_course_consumer_ <= 0 THEN '沉睡'
|
|
- WHEN ss.over_course_num_ > 0 AND ss.sub_course_num_ <= 0 AND ss.no_schedule_num_ <= 0 THEN '流失'
|
|
|
|
|
|
+ WHEN ss.over_course_num_ > 0 AND ss.sub_course_num_ <= 0 AND ss.no_schedule_num_ <= 0 AND suca.course_balance_ <= 0 THEN '流失'
|
|
WHEN suca.course_balance_ > 0 AND ss.sub_course_num_ <= 0 AND ss.no_schedule_num_ <= 0 THEN '暂停' ELSE '其他' END student_status_
|
|
WHEN suca.course_balance_ > 0 AND ss.sub_course_num_ <= 0 AND ss.no_schedule_num_ <= 0 THEN '暂停' ELSE '其他' END student_status_
|
|
- <if test="groupType != 'PRACTICE'">
|
|
|
|
- ,suca.course_balance_
|
|
|
|
- </if>
|
|
|
|
|
|
+ ,suca.course_balance_
|
|
FROM student_basic_info sbi
|
|
FROM student_basic_info sbi
|
|
LEFT JOIN student_statistics ss ON ss.user_id_ = sbi.user_id_
|
|
LEFT JOIN student_statistics ss ON ss.user_id_ = sbi.user_id_
|
|
- <if test="groupType != 'PRACTICE'">
|
|
|
|
- LEFT JOIN sys_user_cash_account suca ON sbi.user_id_ = suca.user_id_
|
|
|
|
- </if>
|
|
|
|
|
|
+ LEFT JOIN sys_user_cash_account suca ON sbi.user_id_ = suca.user_id_
|
|
<include refid="queryStatisticsSql"/>
|
|
<include refid="queryStatisticsSql"/>
|
|
<include refid="global.limit"/>
|
|
<include refid="global.limit"/>
|
|
</select>
|
|
</select>
|
|
@@ -294,12 +283,7 @@
|
|
COUNT(CASE WHEN ss.over_course_num_ > 0 AND (ss.sub_course_num_ > 0 OR ss.no_schedule_num_ > 0) AND ss.lately_year_course_consumer_ <= 0 AND ss.no_schedule_num_ <= 0 THEN 1 ELSE NULL END) 'sleepStudentNoNotSchedule',
|
|
COUNT(CASE WHEN ss.over_course_num_ > 0 AND (ss.sub_course_num_ > 0 OR ss.no_schedule_num_ > 0) AND ss.lately_year_course_consumer_ <= 0 AND ss.no_schedule_num_ <= 0 THEN 1 ELSE NULL END) 'sleepStudentNoNotSchedule',
|
|
COUNT(CASE WHEN (ss.no_schedule_num_ > 0 OR ss.sub_course_num_ > 0) AND (ss.lately_year_course_consumer_ > 0 OR ss.over_course_num_ <= 0) THEN 1 ELSE NULL END) 'normalStudentNum',
|
|
COUNT(CASE WHEN (ss.no_schedule_num_ > 0 OR ss.sub_course_num_ > 0) AND (ss.lately_year_course_consumer_ > 0 OR ss.over_course_num_ <= 0) THEN 1 ELSE NULL END) 'normalStudentNum',
|
|
COUNT(CASE WHEN ((ss.no_schedule_num_ > 0 OR ss.sub_course_num_ > 0) AND (ss.lately_year_course_consumer_ > 0 OR ss.over_course_num_ <= 0)) AND ss.normal_group_num_ > 0 THEN 1 ELSE NULL END) 'normalStudentHasNormalGroupNum',
|
|
COUNT(CASE WHEN ((ss.no_schedule_num_ > 0 OR ss.sub_course_num_ > 0) AND (ss.lately_year_course_consumer_ > 0 OR ss.over_course_num_ <= 0)) AND ss.normal_group_num_ > 0 THEN 1 ELSE NULL END) 'normalStudentHasNormalGroupNum',
|
|
- <if test="groupType == 'PRACTICE'">
|
|
|
|
- COUNT(CASE WHEN ss.no_schedule_num_ <= 0 AND ss.sub_course_num_ <= 0 AND ss.over_course_num_ > 0 THEN 1 ELSE NULL END) 'hasCourseBalanceAndNotSubCourseNum',
|
|
|
|
- </if>
|
|
|
|
- <if test="groupType != 'PRACTICE'">
|
|
|
|
- COUNT(CASE WHEN suca.course_balance_ > 0 AND ss.sub_course_num_ <= 0 AND ss.no_schedule_num_ <= 0 THEN 1 ELSE NULL END) 'hasCourseBalanceAndNotSubCourseNum',
|
|
|
|
- </if>
|
|
|
|
|
|
+ COUNT(CASE WHEN suca.course_balance_ > 0 AND ss.sub_course_num_ <= 0 AND ss.no_schedule_num_ <= 0 THEN 1 ELSE NULL END) 'hasCourseBalanceAndNotSubCourseNum',
|
|
COUNT(CASE WHEN ((ss.no_schedule_num_ > 0 OR ss.sub_course_num_ > 0) AND (ss.lately_year_course_consumer_ > 0 OR ss.over_course_num_ <= 0)) AND ss.no_schedule_num_ > 0 THEN 1 ELSE NULL END) 'normalStudentHasNoScheduleNum',
|
|
COUNT(CASE WHEN ((ss.no_schedule_num_ > 0 OR ss.sub_course_num_ > 0) AND (ss.lately_year_course_consumer_ > 0 OR ss.over_course_num_ <= 0)) AND ss.no_schedule_num_ > 0 THEN 1 ELSE NULL END) 'normalStudentHasNoScheduleNum',
|
|
COUNT(CASE WHEN (ss.no_schedule_num_ + ss.sub_course_num_) < 4 THEN 1 ELSE NULL END) 'waitRenewNum',
|
|
COUNT(CASE WHEN (ss.no_schedule_num_ + ss.sub_course_num_) < 4 THEN 1 ELSE NULL END) 'waitRenewNum',
|
|
SUM(ss.sub_course_num_) 'subCourseNum',
|
|
SUM(ss.sub_course_num_) 'subCourseNum',
|
|
@@ -308,12 +292,7 @@
|
|
LEFT JOIN sys_user_cash_account suca ON ss.user_id_ = suca.user_id_
|
|
LEFT JOIN sys_user_cash_account suca ON ss.user_id_ = suca.user_id_
|
|
LEFT JOIN student_basic_info sbi ON ss.user_id_ = sbi.user_id_
|
|
LEFT JOIN student_basic_info sbi ON ss.user_id_ = sbi.user_id_
|
|
WHERE ss.group_type_ = #{groupType}
|
|
WHERE ss.group_type_ = #{groupType}
|
|
- <if test="groupType != 'PRACTICE'">
|
|
|
|
- AND (ss.over_course_num_ > 0 OR ss.sub_course_num_ > 0 OR ss.no_schedule_num_ > 0 OR suca.course_balance_ > 0)
|
|
|
|
- </if>
|
|
|
|
- <if test="groupType == 'PRACTICE'">
|
|
|
|
- AND (ss.over_course_num_ > 0 OR ss.sub_course_num_ > 0 OR ss.no_schedule_num_ > 0)
|
|
|
|
- </if>
|
|
|
|
|
|
+ AND (ss.over_course_num_ > 0 OR ss.sub_course_num_ > 0 OR ss.no_schedule_num_ > 0 OR suca.course_balance_ > 0)
|
|
<if test="organIdList != null and organIdList.size > 0">
|
|
<if test="organIdList != null and organIdList.size > 0">
|
|
AND sbi.organ_id_ IN
|
|
AND sbi.organ_id_ IN
|
|
<foreach collection="organIdList" item="organId" open="(" close=")" separator=",">
|
|
<foreach collection="organIdList" item="organId" open="(" close=")" separator=",">
|