|
@@ -209,7 +209,10 @@
|
|
|
<update id="updateNormalGroupNum">
|
|
|
SELECT updateNormalGroupNum()
|
|
|
</update>
|
|
|
-
|
|
|
+ <update id="updateFirstOrderTime">
|
|
|
+ SELECT updateFirstOrderTime()
|
|
|
+ </update>
|
|
|
+
|
|
|
<!-- 查询当前表的总记录数 -->
|
|
|
<select id="queryCount" resultType="int">
|
|
|
SELECT COUNT(*) FROM student_statistics
|
|
@@ -376,48 +379,40 @@
|
|
|
</if>
|
|
|
</select>
|
|
|
<select id="countAddStudentNum" resultType="java.lang.Integer">
|
|
|
- SELECT COUNT(extend_info_) FROM (
|
|
|
- SELECT extend_info_ FROM index_base_month_data
|
|
|
- WHERE data_type_ =
|
|
|
- <if test="groupType == 'VIP'">
|
|
|
- 'STUDENT_VIP_ORDER_NUM'
|
|
|
- </if>
|
|
|
- <if test="groupType == 'THEORY'">
|
|
|
- 'STUDENT_THEORY_ORDER_NUM'
|
|
|
- </if>
|
|
|
- <if test="groupType == 'PRACTICE'">
|
|
|
- 'STUDENT_PRACTICE_ORDER_NUM'
|
|
|
- </if>
|
|
|
- AND extend_info_ IS NOT NULL
|
|
|
+ SELECT COUNT(DISTINCT ss.user_id_) FROM student_statistics ss
|
|
|
+ LEFT JOIN student_basic_info sbi ON sbi.user_id_ = ss.user_id_
|
|
|
+ WHERE ss.group_type_ = #{groupType} AND ss.first_order_time_ BETWEEN #{startDate} AND #{endDate}
|
|
|
<if test="organIdList != null and organIdList.size > 0">
|
|
|
- AND organ_id_ IN
|
|
|
+ AND sbi.organ_id_ IN
|
|
|
<foreach collection="organIdList" item="organId" open="(" close=")" separator=",">
|
|
|
#{organId}
|
|
|
</foreach>
|
|
|
</if>
|
|
|
- GROUP BY extend_info_
|
|
|
- <if test="startDate != null and startDate != '' and endDate != null and endDate != ''">
|
|
|
- HAVING COUNT(CASE WHEN month_ < #{startDate} THEN 1 ELSE NULL END) < 1
|
|
|
- AND COUNT(CASE WHEN month_ BETWEEN #{startDate} AND #{endDate} THEN 1 ELSE NULL END) > 0
|
|
|
- </if>
|
|
|
- )a
|
|
|
</select>
|
|
|
<select id="countRenewStudentNum" resultType="java.lang.Integer">
|
|
|
- SELECT COUNT(extend_info_) FROM (
|
|
|
- SELECT extend_info_ FROM index_base_month_data
|
|
|
- <include refid="dateTypeSql"/>
|
|
|
- AND extend_info_ IS NOT NULL
|
|
|
- <if test="endDate != null and endDate != ''">
|
|
|
- AND month_ <= #{endDate}
|
|
|
+ SELECT COUNT(cssp.user_id_) FROM (
|
|
|
+ <if test="groupType == 'VIP'">
|
|
|
+ SELECT cssp.user_id_,MIN(vg.create_time_) first_order_time_ FROM course_schedule_student_payment cssp
|
|
|
+ LEFT JOIN vip_group vg ON vg.id_ = cssp.music_group_id_
|
|
|
+ LEFT JOIN vip_group_category vgc ON vgc.id_ = vg.vip_group_category_id_
|
|
|
+ WHERE cssp.actual_price_ > 0 AND cssp.group_type_ = 'VIP' AND vgc.music_theory_ = 0 AND vg.create_time_ BETWEEN #{startDate} AND #{endDate}
|
|
|
+ GROUP BY cssp.user_id_
|
|
|
</if>
|
|
|
- <if test="organIdList != null and organIdList.size > 0">
|
|
|
- AND organ_id_ IN
|
|
|
- <foreach collection="organIdList" item="organId" open="(" close=")" separator=",">
|
|
|
- #{organId}
|
|
|
- </foreach>
|
|
|
+ <if test="groupType == 'THEORY'">
|
|
|
+ SELECT cssp.user_id_,MIN(vg.create_time_) first_order_time_ FROM course_schedule_student_payment cssp
|
|
|
+ LEFT JOIN vip_group vg ON vg.id_ = cssp.music_group_id_
|
|
|
+ LEFT JOIN vip_group_category vgc ON vgc.id_ = vg.vip_group_category_id_
|
|
|
+ WHERE cssp.actual_price_ > 0 AND cssp.group_type_ = 'VIP' AND vgc.music_theory_ AND vg.create_time_ BETWEEN #{startDate} AND #{endDate}
|
|
|
+ GROUP BY cssp.user_id_
|
|
|
</if>
|
|
|
- GROUP BY extend_info_
|
|
|
- HAVING SUM(total_num_) > 1)a
|
|
|
+ <if test="groupType == 'PRACTICE'">
|
|
|
+ SELECT cssp.user_id_,MIN(pg.create_time_) first_order_time_ FROM course_schedule_student_payment cssp
|
|
|
+ LEFT JOIN practice_group pg ON pg.id_ = cssp.music_group_id_
|
|
|
+ WHERE cssp.actual_price_ > 0 AND cssp.group_type_ = 'PRACTICE' AND pg.create_time_ BETWEEN #{startDate} AND #{endDate}
|
|
|
+ GROUP BY cssp.user_id_
|
|
|
+ </if> ) cssp
|
|
|
+ LEFT JOIN student_statistics ss ON cssp.user_id_ = ss.user_id_
|
|
|
+ WHERE ss.group_type_ = #{groupType} AND cssp.first_order_time_ != ss.first_order_time_ AND ss.first_order_time_ IS NOT NULL;
|
|
|
</select>
|
|
|
<select id="countVisitNum" resultType="java.lang.Integer">
|
|
|
SELECT COUNT(DISTINCT student_id_) FROM student_visit
|