瀏覽代碼

小课统计

zouxuan 3 年之前
父節點
當前提交
eb0ce5c1b5

+ 2 - 6
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentBasicInfoDao.java

@@ -1,16 +1,12 @@
 package com.ym.mec.biz.dal.dao;
 
-import com.ym.mec.biz.dal.entity.StudentStatistics;
-import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.biz.dal.entity.StudentBasicInfo;
-import org.apache.ibatis.annotations.Param;
-
-import java.util.List;
+import com.ym.mec.common.dal.BaseDAO;
 
 public interface StudentBasicInfoDao extends BaseDAO<Integer, StudentBasicInfo> {
 
 
     Integer getMaxId();
 
-    List<StudentStatistics> queryStatisticsSubjectTeacher();
+    void updateSubjectTeacher();
 }

+ 2 - 3
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentStatisticsServiceImpl.java

@@ -15,7 +15,6 @@ import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
 import com.ym.mec.util.collection.MapUtil;
 import org.apache.commons.collections.CollectionUtils;
-import org.apache.commons.collections.ListUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -42,9 +41,9 @@ public class StudentStatisticsServiceImpl extends BaseServiceImpl<Integer, Stude
 	@Override
 	@Transactional(rollbackFor = Exception.class)
 	public void updateStudentStatistics() {
-		List<StudentStatistics> statisticsList = new ArrayList<>();
 		//获取声部班老师
-		statisticsList.addAll(studentBasicInfoDao.queryStatisticsSubjectTeacher());
+		studentBasicInfoDao.updateSubjectTeacher();
+		List<StudentStatistics> statisticsList = new ArrayList<>();
 		//更新乐团主管、指导老师
 		statisticsList.addAll(studentStatisticsDao.queryStatisticsTeacherAndEdu());
 		statisticsList.addAll(studentStatisticsDao.queryStatisticsTeacherAndEdu2());

+ 2 - 31
mec-biz/src/main/resources/config/mybatis/StudentBasicInfoMapper.xml

@@ -100,36 +100,7 @@
     <select id="getMaxId" resultType="java.lang.Integer">
 		SELECT MAX(id_) FROM student_basic_info
 	</select>
-	<select id="queryStatisticsSubjectTeacher" resultMap="StudentBasicInfo">
-		SELECT cssp.user_id_,COUNT(cssp.course_schedule_id_) total_course_num_,COUNT(CASE WHEN cs.status_ = 'NOT_START' THEN 1 ELSE NULL END) sub_course_num_,
-		COUNT(CASE WHEN cs.status_ = 'NOT_START' THEN NULL ELSE 1 END) over_course_num_,
-		COUNT(CASE WHEN cs.status_ != 'NOT_START' AND cs.class_date_ >= DATE_FORMAT(DATE_SUB(NOW(),INTERVAL 30 DAY),'%Y-%m-%d') THEN 1 ELSE NULL END) lately_course_consumer_,
-		COUNT(CASE WHEN cs.status_ != 'NOT_START' AND cs.class_date_ >= DATE_FORMAT(DATE_SUB(NOW(),INTERVAL 1 YEAR),'%Y-%m-%d') THEN 1 ELSE NULL END) lately_year_course_consumer_,'PRACTICE' group_type_
-		FROM course_schedule_student_payment cssp
-		LEFT JOIN course_schedule cs ON cs.id_ = cssp.course_schedule_id_ AND cs.group_type_ = cssp.group_type_
-		WHERE cs.del_flag_ = 0 AND cs.pre_course_flag_ = 0 AND cssp.group_type_ = 'PRACTICE'
-		GROUP BY cssp.user_id_
-		UNION ALL
-		SELECT cssp.user_id_,COUNT(cssp.course_schedule_id_) total_course_num_,COUNT(CASE WHEN cs.status_ = 'NOT_START' THEN 1 ELSE NULL END) sub_course_num_,
-		COUNT(CASE WHEN cs.status_ = 'NOT_START' THEN NULL ELSE 1 END) over_course_num_,
-		COUNT(CASE WHEN cs.status_ != 'NOT_START' AND cs.class_date_ >= DATE_FORMAT(DATE_SUB(NOW(),INTERVAL 30 DAY),'%Y-%m-%d') THEN 1 ELSE NULL END) lately_course_consumer_,
-		COUNT(CASE WHEN cs.status_ != 'NOT_START' AND cs.class_date_ >= DATE_FORMAT(DATE_SUB(NOW(),INTERVAL 1 YEAR),'%Y-%m-%d') THEN 1 ELSE NULL END) lately_year_course_consumer_,'THEORY' group_type_
-		FROM course_schedule_student_payment cssp
-		LEFT JOIN course_schedule cs ON cs.id_ = cssp.course_schedule_id_ AND cs.group_type_ = cssp.group_type_
-		LEFT JOIN vip_group vg ON vg.id_ = cs.music_group_id_
-		LEFT JOIN vip_group_category vgc ON vgc.id_ = vg.vip_group_category_id_
-		WHERE vgc.name_ = '乐理课' AND cs.del_flag_ = 0 AND cs.pre_course_flag_ = 0 AND cs.group_type_ = 'VIP'
-		GROUP BY cssp.user_id_
-		UNION ALL
-		SELECT cssp.user_id_,COUNT(cssp.course_schedule_id_) total_course_num_,COUNT(CASE WHEN cs.status_ = 'NOT_START' THEN 1 ELSE NULL END) sub_course_num_,
-		COUNT(CASE WHEN cs.status_ = 'NOT_START' THEN NULL ELSE 1 END) over_course_num_,
-		COUNT(CASE WHEN cs.status_ != 'NOT_START' AND cs.class_date_ >= DATE_FORMAT(DATE_SUB(NOW(),INTERVAL 30 DAY),'%Y-%m-%d') THEN 1 ELSE NULL END) lately_course_consumer_,
-		COUNT(CASE WHEN cs.status_ != 'NOT_START' AND cs.class_date_ >= DATE_FORMAT(DATE_SUB(NOW(),INTERVAL 1 YEAR),'%Y-%m-%d') THEN 1 ELSE NULL END) lately_year_course_consumer_,'VIP' group_type_
-		FROM course_schedule_student_payment cssp
-		LEFT JOIN course_schedule cs ON cs.id_ = cssp.course_schedule_id_ AND cs.group_type_ = cssp.group_type_
-		LEFT JOIN vip_group vg ON vg.id_ = cs.music_group_id_
-		LEFT JOIN vip_group_category vgc ON vgc.id_ = vg.vip_group_category_id_
-		WHERE vgc.name_ != '乐理课' AND cs.del_flag_ = 0 AND cs.pre_course_flag_ = 0 AND cs.group_type_ = 'VIP'
-		GROUP BY cssp.user_id_
+	<select id="updateSubjectTeacher">
+		SELECT updateSubjectTeacher()
 	</select>
 </mapper>