Browse Source

update 学生增加服务指标,运营指标标记

周箭河 5 năm trước cách đây
mục cha
commit
2f5b97c23d

+ 9 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CourseScheduleEvaluateDao.java

@@ -146,5 +146,13 @@ public interface CourseScheduleEvaluateDao extends BaseDAO<Long, CourseScheduleE
      * @param classDate
      * @return
      */
-    List<Practice4OrganDto> getVipBuyNums(@Param("classDate") Date classDate,@Param("endDate") Date endDate);
+    List<Practice4OrganDto> getVipBuyNums(@Param("classDate") Date classDate, @Param("endDate") Date endDate);
+
+    /**
+     * 网管课和vip课同事存在的人数
+     * @param classDate
+     * @param endDate
+     * @return
+     */
+    List<Practice4OrganDto> getPracticeAndVipNums(@Param("classDate") Date classDate, @Param("endDate") Date endDate);
 }

+ 23 - 10
mec-biz/src/main/resources/config/mybatis/CourseScheduleEvaluateMapper.xml

@@ -346,25 +346,25 @@
         SELECT vg.organ_id_, COUNT(DISTINCT cssp.user_id_) try_num_, GROUP_CONCAT(distinct cssp.user_id_) student_ids_
         FROM course_schedule_student_payment cssp
                  LEFT JOIN vip_group vg ON cssp.music_group_id_ = vg.id_ AND cssp.group_type_ = 'VIP'
-                 LEFT JOIN course_schedule cs ON cs.id_ = cssp.course_schedule_id_
+                 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 vg.organ_id_ >= 1
           AND s.operating_tag_ = 0
-          AND (cs.is_lock_ IS NULL OR cs.is_lock_=0)
+          AND (cs.is_lock_ IS NULL OR cs.is_lock_ = 0)
           AND cs.teach_mode_ = 'ONLINE'
         GROUP BY vg.organ_id_
     </select>
 
     <select id="getVipBuyNums" resultMap="practice4Organ">
-        SELECT vg.organ_id_, COUNT(DISTINCT cssp.user_id_) vip_num_, GROUP_CONCAT(DISTINCT cssp.user_id_) student_ids_
+        SELECT vg.organ_id_, COUNT(DISTINCT cssp.user_id_) vip_num_
         FROM course_schedule_student_payment cssp
         LEFT JOIN vip_group vg ON cssp.music_group_id_ = vg.id_ AND cssp.group_type_ = 'VIP'
-        LEFT JOIN course_schedule cs ON cs.id_ = cssp.course_schedule_id_
-        WHERE vg.organ_id_ >= 1
-        AND CONCAT(cs.class_date_, ' ', cs.end_class_time_) >= #{classDate}
+        LEFT JOIN course_schedule cs ON cs.id_ = cssp.course_schedule_id_ AND cs.teach_mode_ = 'ONLINE'
+        WHERE CONCAT(cs.class_date_, ' ', cs.end_class_time_) >= #{classDate}
         <if test="endDate != null">
             <![CDATA[AND CONCAT(cs.class_date_, ' ', cs.end_class_time_) < #{endDate}]]>
         </if>
+        AND vg.organ_id_ >= 1
         AND (cs.is_lock_ IS NULL OR cs.is_lock_=0)
         AND cs.teach_mode_ = 'ONLINE'
         GROUP BY vg.organ_id_
@@ -380,11 +380,24 @@
         <if test="endDate != null">
             <![CDATA[AND CONCAT(cs.class_date_, ' ', cs.end_class_time_) < #{endDate}]]>
         </if>
-        <if test="studentIds != null">
-            AND FIND_IN_SET(cssp.user_id_,#{studentIds})
-        </if>
         AND pg.buy_months_ >= 1
-        AND (cs.is_lock_  IS NULL OR cs.is_lock_=0)
+        AND (cs.is_lock_ IS NULL OR cs.is_lock_=0)
         GROUP BY pg.organ_id_
     </select>
+
+    <select id="getPracticeAndVipNums" resultMap="practice4Organ">
+        SELECT pg.organ_id_, COUNT(DISTINCT cssp.user_id_) practice_num_
+        FROM course_schedule_student_payment cssp
+        LEFT JOIN course_schedule_student_payment cssp2 ON cssp.user_id_ = cssp2.user_id_ AND cssp2.group_type_ = 'VIP'
+        LEFT JOIN practice_group pg ON cssp.music_group_id_ = pg.id_ AND cssp.group_type_ = 'PRACTICE'
+        LEFT JOIN course_schedule cs ON cs.id_ = cssp2.course_schedule_id_ AND cs.teach_mode_ = 'ONLINE'
+        WHERE cssp.group_type_ = 'PRACTICE'
+        AND CONCAT(cs.class_date_, ' ', cs.end_class_time_) >= #{classDate}
+        <if test="endDate != null">
+            <![CDATA[AND CONCAT(cs.class_date_, ' ', cs.end_class_time_) < #{endDate}]]>
+        </if>
+        AND pg.buy_months_ >=1
+        AND (cs.is_lock_ IS NULL OR cs.is_lock_=0)
+        GROUP by pg.organ_id_
+    </select>
 </mapper>

+ 3 - 18
mec-student/src/main/java/com/ym/mec/student/controller/StudentOrderController.java

@@ -502,12 +502,7 @@ public class StudentOrderController extends BaseController {
         List<Practice4OrganDto> practiceBuyNums = courseScheduleEvaluateDao.getPracticeBuyNums(new Date(), null, null);
         List<Practice4OrganDto> vipBuyNums = courseScheduleEvaluateDao.getVipBuyNums(new Date(), null);
 
-        List<Practice4OrganDto> practiceAndVipBuyNums = new ArrayList<>();
-
-        studentIds = vipBuyNums.stream().filter(practice4OrganDto -> practice4OrganDto.getOrganId() != null).map(Practice4OrganDto::getStudentIds).collect(Collectors.joining(","));
-        if (!studentIds.isEmpty()) {
-            practiceAndVipBuyNums = courseScheduleEvaluateDao.getPracticeBuyNums(new Date(), null, studentIds);
-        }
+        List<Practice4OrganDto> practiceAndVipBuyNums = courseScheduleEvaluateDao.getPracticeAndVipNums(new Date(), null);
         Date startTime = DateUtil.getFirstDayOfMonth(new Date());
         Date endTime = DateUtil.addMonths(startTime, 1);
 
@@ -522,23 +517,13 @@ public class StudentOrderController extends BaseController {
         //本月总人数
         List<Practice4OrganDto> nowMonthPracticeBuyNums = courseScheduleEvaluateDao.getPracticeBuyNums(startTime, endTime, null);
         List<Practice4OrganDto> nowMonthVipBuyNums = courseScheduleEvaluateDao.getVipBuyNums(startTime, endTime);
-        List<Practice4OrganDto> nowMonthPracticeAndVipBuyNums = new ArrayList<>();
-
-        studentIds = vipBuyNums.stream().filter(practice4OrganDto -> practice4OrganDto.getOrganId() != null).map(Practice4OrganDto::getStudentIds).collect(Collectors.joining(","));
-        if (!studentIds.isEmpty()) {
-            nowMonthPracticeAndVipBuyNums = courseScheduleEvaluateDao.getPracticeBuyNums(startTime, endTime, studentIds);
-        }
+        List<Practice4OrganDto> nowMonthPracticeAndVipBuyNums = courseScheduleEvaluateDao.getPracticeAndVipNums(startTime, endTime);
 
         //上月总人数
         Date lastMonthStartTime = DateUtil.addMonths(startTime, -1);
         List<Practice4OrganDto> lastMonthPracticeBuyNums = courseScheduleEvaluateDao.getPracticeBuyNums(lastMonthStartTime, startTime, null);
         List<Practice4OrganDto> lastMonthVipBuyNums = courseScheduleEvaluateDao.getVipBuyNums(lastMonthStartTime, startTime);
-        List<Practice4OrganDto> lastMonthPracticeAndVipBuyNums = new ArrayList<>();
-
-        studentIds = vipBuyNums.stream().filter(practice4OrganDto -> practice4OrganDto.getOrganId() != null).map(Practice4OrganDto::getStudentIds).collect(Collectors.joining(","));
-        if (!studentIds.isEmpty()) {
-            lastMonthPracticeAndVipBuyNums = courseScheduleEvaluateDao.getPracticeBuyNums(lastMonthStartTime, startTime, studentIds);
-        }
+        List<Practice4OrganDto> lastMonthPracticeAndVipBuyNums = courseScheduleEvaluateDao.getPracticeAndVipNums(lastMonthStartTime, startTime);
 
         List<Practice4OrganDto> practice4Organs = new ArrayList<>();
         for (Organization organ : organs) {