ソースを参照

Merge branch 'system_fee_update' of http://git.dayaedu.com/yonge/mec

 Conflicts:
	mec-biz/src/main/resources/config/mybatis/SysMusicCompareRecordMapper.xml
zouxuan 3 年 前
コミット
c1c95f42d7

+ 14 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/CountStudentTrainDataDto.java

@@ -9,12 +9,26 @@ public class CountStudentTrainDataDto {
 
     private String username;
 
+    //训练总时长
     private Integer totalPlayTime;
 
+    //训练天数
     private Integer trainDay;
 
+    //训练次数
     private Integer trainNum;
 
+    //评测次数
+    private Integer recordNum;
+
+    public Integer getRecordNum() {
+        return recordNum;
+    }
+
+    public void setRecordNum(Integer recordNum) {
+        this.recordNum = recordNum;
+    }
+
     public Integer getUserId() {
         return userId;
     }

+ 11 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/page/SysMusicCompareRecordQueryInfo.java

@@ -1,5 +1,6 @@
 package com.ym.mec.biz.dal.page;
 
+import com.ym.mec.biz.dal.enums.FeatureType;
 import com.ym.mec.common.page.QueryInfo;
 import io.swagger.annotations.ApiModelProperty;
 import org.apache.ibatis.annotations.Param;
@@ -23,6 +24,16 @@ public class SysMusicCompareRecordQueryInfo extends QueryInfo {
     @ApiModelProperty("排序字段:TRAINDAYS(训练天数);TRAINTIME(训练时长);TRAINNUM(训练次数)")
     private String sortField = "TRAINDAYS";
 
+    private FeatureType featureType;
+
+    public FeatureType getFeatureType() {
+        return featureType;
+    }
+
+    public void setFeatureType(FeatureType featureType) {
+        this.featureType = featureType;
+    }
+
     public Integer getTeacherId() {
         return teacherId;
     }

+ 9 - 9
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentServiceImpl.java

@@ -489,7 +489,7 @@ public class StudentServiceImpl extends BaseServiceImpl<Integer, Student> implem
             EduOrganStudentDataDto organStudentVipData = new EduOrganStudentDataDto();
             organStudentVipData.setTotalStudentNum(studentDao.getOrganStudentNum(queryInfo.getOrganId()));
             organStudentVipData.setVipStudentNum(cloudTeacherDao.getOrganVipStudentNum(queryInfo.getOrganId()));
-            organStudentVipData.seteVipStudentNum(studentDao.getOrganEVipStudentNum(queryInfo.getOrganId()));
+//            organStudentVipData.seteVipStudentNum(studentDao.getOrganEVipStudentNum(queryInfo.getOrganId()));
             organStudentVipData.setCloudStudyUseStudentNum(studentDao.getCloudStudyStudentNum(queryInfo.getOrganId()));
             organStudentVipData.setCloudStudyLivelyStudentNum(studentDao.getCloudStudyLivelyStudentNum(queryInfo.getOrganId()));
             organStudentVipData.setNewCloudStudyStudentNum(sysMusicCompareRecordDao.getOrganNewCloudStudyNum(queryInfo.getOrganId()));
@@ -521,11 +521,11 @@ public class StudentServiceImpl extends BaseServiceImpl<Integer, Student> implem
         if(!CollectionUtils.isEmpty(organsVipStudentNumMapList)){
             organsVipStudentNumMap = MapUtil.convertIntegerMap(organsVipStudentNumMapList);
         }
-        List<Map<Integer, Integer>> organsEVipStudentNumMapList = studentDao.getOrgansEVipStudentNum(organIds);
-        Map<String, Long> organsEVipStudentNumMap = new HashMap<>();
-        if(!CollectionUtils.isEmpty(organsEVipStudentNumMapList)){
-            organsEVipStudentNumMap = MapUtil.convertIntegerMap(organsEVipStudentNumMapList);
-        }
+//        List<Map<Integer, Integer>> organsEVipStudentNumMapList = studentDao.getOrgansEVipStudentNum(organIds);
+//        Map<String, Long> organsEVipStudentNumMap = new HashMap<>();
+//        if(!CollectionUtils.isEmpty(organsEVipStudentNumMapList)){
+//            organsEVipStudentNumMap = MapUtil.convertIntegerMap(organsEVipStudentNumMapList);
+//        }
         List<Map<Integer, Integer>> organCloudStudyStudentNumMapList = studentDao.getOrganCloudStudyStudentNum(organIds);
         Map<String, Long> organCloudStudyStudentNumMap = new HashMap<>();
         if(!CollectionUtils.isEmpty(organCloudStudyStudentNumMapList)){
@@ -554,9 +554,9 @@ public class StudentServiceImpl extends BaseServiceImpl<Integer, Student> implem
             if(organsVipStudentNumMap.containsKey(organ.getId().toString())){
                 organStudentVipData.setVipStudentNum(organsVipStudentNumMap.get(organ.getId().toString()).intValue());
             }
-            if(organsEVipStudentNumMap.containsKey(organ.getId().toString())){
-                organStudentVipData.seteVipStudentNum(organsEVipStudentNumMap.get(organ.getId().toString()).intValue());
-            }
+//            if(organsEVipStudentNumMap.containsKey(organ.getId().toString())){
+//                organStudentVipData.seteVipStudentNum(organsEVipStudentNumMap.get(organ.getId().toString()).intValue());
+//            }
             if(organCloudStudyStudentNumMap.containsKey(organ.getId().toString())){
                 organStudentVipData.setCloudStudyUseStudentNum(organCloudStudyStudentNumMap.get(organ.getId().toString()).intValue());
             }

+ 6 - 11
mec-biz/src/main/resources/config/mybatis/StudentMapper.xml

@@ -835,13 +835,7 @@
         FROM student_registration sr
         LEFT JOIN sys_user su ON sr.user_id_=su.id_
         WHERE su.del_flag_=0
-        AND sr.music_group_status_='NORMAL'
-        <if test="organIds!=null and organIds.size()>0">
-            AND su.organ_id_ IN
-            <foreach collection="organIds" item="organId" open="(" close=")" separator=",">
-                #{organId}
-            </foreach>
-        </if>)
+        AND sr.music_group_status_='NORMAL')
         UNION ALL
         (SELECT
         su.organ_id_,cssp.user_id_
@@ -852,13 +846,14 @@
         WHERE
         cssp.group_type_ IN ('VIP', 'PRACTICE')
         AND cs.status_='NOT_START'
-        AND su.del_flag_ = 0
+        AND su.del_flag_ = 0)) t
+        WHERE 1=1
         <if test="organIds!=null and organIds.size()>0">
-            AND su.organ_id_ IN
+            AND t.organ_id_ IN
             <foreach collection="organIds" item="organId" open="(" close=")" separator=",">
                 #{organId}
             </foreach>
-        </if>)) t
+        </if>
         GROUP BY t.organ_id_
     </select>
 
@@ -1052,7 +1047,7 @@
                  LEFT JOIN cloud_teacher_order cto ON stu.user_id_=cto.student_id_
                  LEFT JOIN sys_user su ON su.id_=stu.user_id_
         WHERE su.del_flag_=0 AND stu.experience_member_rank_setting_id_ IS NOT NULL
-        AND NOT EXISTS (SELECT student_id_ FROM cloud_teacher_order WHERE student_id_=stu.user_id_ AND status_ IN (1,2))
+        AND NOT IN (SELECT DISTINCT student_id_ FROM cloud_teacher_order WHERE status_ IN (1,2))
         <if test="organIds!=null and organIds.size()>0">
             AND su.organ_id_ IN
             <foreach collection="organIds" item="organId" open="(" close=")" separator=",">

+ 43 - 38
mec-biz/src/main/resources/config/mybatis/SysMusicCompareRecordMapper.xml

@@ -103,6 +103,9 @@
 			<if test="userId!=null">
 				AND smcr.user_id_=#{userId}
 			</if>
+			<if test="featureType != null">
+				AND smcr.feature_ = #{featureType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
+			</if>
 			<if test="startTime!=null and endTime!=null">
 				AND DATE_FORMAT(smcr.create_time_, '%Y-%m-%d') BETWEEN #{startTime} AND #{endTime}
 			</if>
@@ -118,7 +121,7 @@
 			sms.name_ sys_music_score_name_
 		FROM sys_music_compare_record smcr
 		LEFT JOIN sys_music_score sms on smcr.sys_music_score_id_ = sms.id_
-		<include refid="queryCondition"></include>
+		<include refid="queryCondition"/>
 		ORDER BY id_ DESC
 		<include refid="global.limit"/>
 	</select>
@@ -126,7 +129,7 @@
 	<!-- 查询当前表的总记录数 -->
 	<select id="queryCount" resultType="int">
 		SELECT COUNT(*) FROM sys_music_compare_record smcr
-		<include refid="queryCondition"></include>
+		<include refid="queryCondition"/>
 	</select>
 
     <select id="getUserTrainStat" resultType="com.ym.mec.biz.dal.dto.MusicCompareRankingDto">
@@ -220,7 +223,7 @@
 		LEFT JOIN sys_user su ON smcr.user_id_ = su.id_
 		LEFT JOIN student stu ON stu.user_id_ = smcr.user_id_
 		LEFT JOIN student_registration sr ON sr.user_id_=smcr.user_id_
-		<include refid="queryMusicGroupStudentTrainDataConditon"></include>
+		<include refid="queryMusicGroupStudentTrainDataConditon"/>
 	</select>
 
 	<select id="queryStudentTrainData" resultType="com.ym.mec.biz.dal.dto.EduOrganStudentListDto">
@@ -233,6 +236,43 @@
 		GROUP BY
 			user_id_
 	</select>
+    <select id="countStudentTrain" resultType="java.lang.Integer">
+		SELECT COUNT(DISTINCT s.user_id_)
+		FROM teacher t
+				 LEFT JOIN student s ON t.id_ = s.teacher_id_
+				 LEFT JOIN sys_music_compare_record mcr ON mcr.user_id_ = s.user_id_
+		WHERE s.teacher_id_ = #{teacherId}
+		<if test="startTime != null and startTime != ''">
+			AND (mcr.create_time_ BETWEEN #{startTime} AND #{endTime} OR mcr.id_ IS NULL)
+		</if>
+	</select>
+	<resultMap id="CountStudentTrainDataDto" type="com.ym.mec.biz.dal.dto.CountStudentTrainDataDto">
+		<result property="trainNum" column="train_num_"/>
+		<result property="recordNum" column="record_num_"/>
+		<result property="avatar" column="avatar_"/>
+		<result property="userId" column="user_id_"/>
+		<result property="username" column="username_"/>
+		<result property="phone" column="phone_"/>
+		<result property="totalPlayTime" column="total_play_time_"/>
+		<result property="trainDay" column="train_day_"/>
+	</resultMap>
+	<select id="queryStudentTrain" resultMap="CountStudentTrainDataDto">
+		SELECT s.user_id_,su.avatar_,su.phone_,su.username_,ROUND(SUM(mcr.play_time_) / 60) total_play_time_,
+			   COUNT(DISTINCT DATE_FORMAT(mcr.create_time_,"%Y-%m-%d")) train_day_,
+			   COUNT(DISTINCT mcr.behavior_id_) train_num_,
+			   COUNT(DISTINCT CASE WHEN mcr.feature_ = 'CLOUD_STUDY_EVALUATION' THEN mcr.behavior_id_ = NULL ELSE mcr.behavior_id_ END) record_num_
+		FROM teacher t
+				 LEFT JOIN student s ON t.id_ = s.teacher_id_
+				 LEFT JOIN sys_user su ON su.id_ = s.user_id_
+				 LEFT JOIN sys_music_compare_record mcr ON mcr.user_id_ = s.user_id_
+		WHERE s.teacher_id_ = #{teacherId}
+		<if test="startTime != null and startTime != ''">
+			AND (mcr.create_time_ BETWEEN #{startTime} AND #{endTime} OR mcr.id_ IS NULL)
+		</if>
+		GROUP BY s.user_id_
+		ORDER BY total_play_time_ DESC
+		<include refid="global.limit"/>
+	</select>
 
 	<select id="getOrganNewCloudStudyNum" resultType="int">
 		SELECT
@@ -310,39 +350,4 @@
 							   DATE( smcr.create_time_ ))= CURDATE()) t
 		GROUP BY t.organ_id_
 	</select>
-    <select id="countStudentTrain" resultType="java.lang.Integer">
-		SELECT COUNT(DISTINCT s.user_id_)
-		FROM teacher t
-				 LEFT JOIN student s ON t.id_ = s.teacher_id_
-				 LEFT JOIN sys_music_compare_record mcr ON mcr.user_id_ = s.user_id_
-		WHERE s.teacher_id_ = #{teacherId}
-		<if test="startTime != null and startTime != ''">
-			AND (mcr.create_time_ BETWEEN #{startTime} AND #{endTime} OR mcr.id_ IS NULL)
-		</if>
-	</select>
-	<resultMap id="CountStudentTrainDataDto" type="com.ym.mec.biz.dal.dto.CountStudentTrainDataDto">
-		<result property="trainNum" column="train_num_"/>
-		<result property="avatar" column="avatar_"/>
-		<result property="userId" column="user_id_"/>
-		<result property="username" column="username_"/>
-		<result property="phone" column="phone_"/>
-		<result property="totalPlayTime" column="total_play_time_"/>
-		<result property="trainDay" column="train_day_"/>
-	</resultMap>
-	<select id="queryStudentTrain" resultMap="CountStudentTrainDataDto">
-		SELECT s.user_id_,su.avatar_,su.phone_,su.username_,ROUND(SUM(mcr.play_time_) / 60) total_play_time_,
-			   COUNT(DISTINCT DATE_FORMAT(mcr.create_time_,"%Y-%m-%d")) train_day_,
-			   COUNT(DISTINCT mcr.behavior_id_) train_num_
-		FROM teacher t
-				 LEFT JOIN student s ON t.id_ = s.teacher_id_
-				 LEFT JOIN sys_user su ON su.id_ = s.user_id_
-				 LEFT JOIN sys_music_compare_record mcr ON mcr.user_id_ = s.user_id_
-		WHERE s.teacher_id_ = #{teacherId}
-		<if test="startTime != null and startTime != ''">
-			AND (mcr.create_time_ BETWEEN #{startTime} AND #{endTime} OR mcr.id_ IS NULL)
-		</if>
-		GROUP BY mcr.user_id_
-		ORDER BY total_play_time_ DESC
-		<include refid="global.limit"/>
-	</select>
 </mapper>

+ 11 - 0
mec-teacher/src/main/java/com/ym/mec/teacher/controller/CloudStudyController.java

@@ -18,6 +18,8 @@ import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import static com.ym.mec.biz.dal.enums.FeatureType.CLOUD_STUDY_EVALUATION;
+
 /**
  * @Author Joburgess
  * @Date 2021/8/11 0011
@@ -55,4 +57,13 @@ public class CloudStudyController extends BaseController {
         return succeed(sysMusicCompareRecordService.countStudentTrain(queryInfo));
     }
 
+    @ApiOperation("学员评测列表")
+    @GetMapping("queryMusicCompareRecord")
+    public HttpResponseResult<PageInfo<SysMusicCompareRecord>> queryMusicCompareRecord(SysMusicCompareRecordQueryInfo queryInfo){
+        if(queryInfo.getFeatureType() == null){
+            queryInfo.setFeatureType(CLOUD_STUDY_EVALUATION);
+        }
+        return succeed(sysMusicCompareRecordService.queryPage(queryInfo));
+    }
+
 }