Browse Source

体验人数,直接查student表

周箭河 5 years ago
parent
commit
cfa426a2f1

+ 17 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentDao.java

@@ -3,6 +3,7 @@ package com.ym.mec.biz.dal.dao;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dto.Student4operating;
 import com.ym.mec.biz.dal.entity.Student;
+import com.ym.mec.biz.dal.enums.GroupType;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
@@ -39,8 +40,24 @@ public interface StudentDao extends com.ym.mec.common.dal.BaseDAO<Integer, Stude
 
     /**
      * 批量获取老师体验学生数
+     *
      * @param teacherIds
      * @return
      */
     List<Student4operating> getTeacherOperatingStudentsNum(@Param("teacherIds") String teacherIds);
+
+    /**
+     * 根据类型批量获取老师转化
+     * @param teacherIds
+     * @param groupType
+     * @return
+     */
+    List<Student4operating> getBuyNums(@Param("teacherIds") String teacherIds, @Param("groupType") GroupType groupType);
+
+     /**
+     * 根据同事存在vip和网管的转化
+     * @param teacherIds
+     * @return
+     */
+    List<Student4operating> getPracticeAndVipNums(@Param("teacherIds") String teacherIds);
 }

+ 35 - 1
mec-biz/src/main/resources/config/mybatis/StudentMapper.xml

@@ -217,7 +217,6 @@
         WHERE buy_months_ IS NULL
         GROUP BY student_id_
         ) p ON p.student_id_ = s.user_id_
-
         <include refid="student4OperatingQueryCondition"/>
     </select>
 
@@ -264,4 +263,39 @@
         WHERE FIND_IN_SET(teacher_id_, #{teacherIds})
         GROUP BY teacher_id_
     </select>
+
+    <select id="getBuyNums" resultMap="student4operating">
+        SELECT s.teacher_id_, COUNT(DISTINCT cssp.user_id_) student_num_
+        FROM course_schedule_student_payment cssp
+        LEFT JOIN course_schedule cs ON cs.id_ = cssp.course_schedule_id_ AND cs.teach_mode_ = 'ONLINE'
+        LEFT JOIN student s ON s.user_id_ = cssp.user_id_
+        WHERE cs.status_ IN ('NOT_START', 'UNDERWAY')
+        AND (cs.is_lock_ IS NULL OR cs.is_lock_ = 0)
+        <if test="groupType != null">
+            AND cs.group_type_ = #{groupType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
+        </if>
+        AND FIND_IN_SET(s.teacher_id_, #{teacherIds})
+        GROUP BY s.teacher_id_
+    </select>
+    <select id="getPracticeAndVipNums" resultMap="student4operating">
+        SELECT s.teacher_id_, COUNT(DISTINCT pg.student_id_) student_num_
+        FROM practice_group pg
+                 LEFT JOIN student s on s.user_id_ = pg.student_id_
+                 LEFT JOIN course_schedule_student_payment vcssp
+                           ON vcssp.user_id_ = pg.student_id_ AND vcssp.group_type_ = 'VIP'
+                 LEFT JOIN course_schedule_student_payment pcssp
+                           ON pcssp.user_id_ = pg.student_id_ AND pcssp.group_type_ = 'PRACTICE'
+                 LEFT JOIN course_schedule vcs ON vcs.id_ = vcssp.course_schedule_id_ AND vcs.teach_mode_ = 'ONLINE'
+                 LEFT JOIN course_schedule pcs ON pcs.id_ = pcssp.course_schedule_id_
+        WHERE pg.group_status_ IN ('NORMAL', 'FINISH')
+          AND vcs.id_ >= 1
+          AND pcs.id_ >= 1
+          AND (vcs.is_lock_ IS NULL OR vcs.is_lock_ = 0)
+          AND (pcs.is_lock_ IS NULL OR pcs.is_lock_ = 0)
+          AND vcs.status_ IN ('NOT_START', 'UNDERWAY')
+          AND pcs.status_ IN ('NOT_START', 'UNDERWAY')
+          AND pg.buy_months_ >= 1
+          AND FIND_IN_SET(s.teacher_id_, #{teacherIds})
+        GROUP BY s.teacher_id_
+    </select>
 </mapper>