Przeglądaj źródła

feat:教务端学员云教练数据统计

Joburgess 3 lat temu
rodzic
commit
74b664b38e

+ 2 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CloudTeacherDao.java

@@ -24,6 +24,7 @@ public interface CloudTeacherDao extends BaseDAO<Long, CloudTeacher> {
     List<Map<Integer, Integer>> getOrgansVipStudentNum(@Param("organIds") List<Integer> organId);
 
 
-    List<Map<Integer, Integer>> getTeachersMemberStudentNum(@Param("teacherIds") List<Integer> teacherIds);
+    List<Map<Integer, Integer>> getTeachersMemberStudentNum(@Param("teacherIds") List<Integer> teacherIds,
+                                                            @Param("organId") Integer organId);
 
 }

+ 5 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentDao.java

@@ -267,6 +267,9 @@ public interface StudentDao extends com.ym.mec.common.dal.BaseDAO<Integer, Stude
     int getOrgansTotalStudentNum(@Param("organIds") List<Integer> organIds);
     List<Map<Integer, Integer>> getOrgansStudentNum(@Param("organIds") List<Integer> organIds);
 
+    List<Map<Integer, Integer>> getOrganTeacherStudentNum(@Param("teacherIds") List<Integer> teacherIds,
+                                                          @Param("organId") Integer organId);
+
     /**
      * @describe 统计云教练试用人数
      * @author Joburgess
@@ -341,5 +344,6 @@ public interface StudentDao extends com.ym.mec.common.dal.BaseDAO<Integer, Stude
     int getOrgansTotalEVipStudentNum(@Param("organIds") List<Integer> organIds);
     List<Map<Integer, Integer>> getOrgansEVipStudentNum(@Param("organIds") List<Integer> organIds);
 
-    List<Map<Integer, Integer>> getTeacherExperienceMemberStudentNum(@Param("teacherIds") List<Integer> teacherIds);
+    List<Map<Integer, Integer>> getTeacherExperienceMemberStudentNum(@Param("teacherIds") List<Integer> teacherIds,
+                                                                     @Param("organId") Integer organId);
 }

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

@@ -581,6 +581,11 @@ public class StudentServiceImpl extends BaseServiceImpl<Integer, Student> implem
     @Override
     public PageInfo<EduOrganStudentDataDto> queryOrganStudentOverView(List<Integer> organIds, OrganCloudStudyStudentDataQueryInfo queryInfo) {
         PageInfo<EduOrganStudentDataDto> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
+
+        if(StringUtils.isNotBlank(queryInfo.getOrganIds())&&CollectionUtils.isEmpty(organIds)){
+            return pageInfo;
+        }
+
         List<Organization> organs = organizationDao.getOrgans(organIds);
         pageInfo.setTotal(organs.size());
 

+ 12 - 2
mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherServiceImpl.java

@@ -784,17 +784,27 @@ public class TeacherServiceImpl extends BaseServiceImpl<Integer, Teacher>  imple
 			params.put("offset", pageInfo.getOffset());
 			dataList = teacherDao.queryMemberStudentData(params);
 			List<Integer> teacherIds = dataList.stream().map(TeacherStudentDataDto::getTeacherId).collect(Collectors.toList());
-			List<Map<Integer, Integer>> teachersMemberStudentNumMapList = cloudTeacherDao.getTeachersMemberStudentNum(teacherIds);
+
+			List<Map<Integer, Integer>> teachersStudentNumMapList = studentDao.getOrganTeacherStudentNum(teacherIds, Integer.valueOf(queryInfo.getOrganId()));
+			Map<Integer, Long> teachersStudentNumMap = new HashMap<>();
+			if(!CollectionUtils.isEmpty(teachersStudentNumMapList)){
+				teachersStudentNumMap = MapUtil.convertIntegerMap(teachersStudentNumMapList);
+			}
+
+			List<Map<Integer, Integer>> teachersMemberStudentNumMapList = cloudTeacherDao.getTeachersMemberStudentNum(teacherIds, Integer.valueOf(queryInfo.getOrganId()));
 			Map<Integer, Long> teachersMemberStudentNumMap = new HashMap<>();
 			if(!CollectionUtils.isEmpty(teachersMemberStudentNumMapList)){
 				teachersMemberStudentNumMap = MapUtil.convertIntegerMap(teachersMemberStudentNumMapList);
 			}
-			List<Map<Integer, Integer>> teacherExperienceMemberStudentNumMapList = studentDao.getTeacherExperienceMemberStudentNum(teacherIds);
+			List<Map<Integer, Integer>> teacherExperienceMemberStudentNumMapList = studentDao.getTeacherExperienceMemberStudentNum(teacherIds, Integer.valueOf(queryInfo.getOrganId()));
 			Map<Integer, Long> teacherExperienceMemberStudentNumMap = new HashMap<>();
 			if(!CollectionUtils.isEmpty(teacherExperienceMemberStudentNumMapList)){
 				teacherExperienceMemberStudentNumMap = MapUtil.convertIntegerMap(teacherExperienceMemberStudentNumMapList);
 			}
 			for (TeacherStudentDataDto teacherStudentDataDto : dataList) {
+				if(teachersStudentNumMap.containsKey(teacherStudentDataDto.getTeacherId())){
+					teacherStudentDataDto.setTotalStudentNum(teachersStudentNumMap.get(teacherStudentDataDto.getTeacherId()).intValue());
+				}
 				if(teachersMemberStudentNumMap.containsKey(teacherStudentDataDto.getTeacherId())){
 					teacherStudentDataDto.setVipStudentNum(teachersMemberStudentNumMap.get(teacherStudentDataDto.getTeacherId()).intValue());
 				}

+ 3 - 0
mec-biz/src/main/resources/config/mybatis/CloudTeacherMapper.xml

@@ -124,6 +124,9 @@
         LEFT JOIN student stu ON cto.student_id_=stu.user_id_
         LEFT JOIN sys_user su ON cto.student_id_=su.id_
         WHERE su.del_flag_=0 AND cto.status_ IN (1,2)
+        <if test="organId!=null">
+            AND su.organ_id_=#{organId}
+        </if>
         <if test="teacherIds!=null and teacherIds.size()>0">
             AND stu.teacher_id_ IN
             <foreach collection="teacherIds" item="teacherId" open="(" close=")" separator=",">

+ 23 - 0
mec-biz/src/main/resources/config/mybatis/StudentMapper.xml

@@ -857,6 +857,25 @@
         GROUP BY t.organ_id_
     </select>
 
+    <select id="getOrganTeacherStudentNum" resultType="map">
+        SELECT
+        stu.teacher_id_ 'key',
+        COUNT(DISTINCT stu.user_id_) 'value'
+        FROM student stu ON cto.student_id_=stu.user_id_
+        LEFT JOIN sys_user su ON cto.student_id_=su.id_
+        WHERE su.del_flag_=0
+        <if test="organId!=null">
+            AND su.organ_id_=#{organId}
+        </if>
+        <if test="teacherIds!=null and teacherIds.size()>0">
+            AND stu.teacher_id_ IN
+            <foreach collection="teacherIds" item="teacherId" open="(" close=")" separator=",">
+                #{teacherId}
+            </foreach>
+        </if>
+        GROUP BY stu.teacher_id_
+    </select>
+
     <select id="getCloudStudyStudentNum" resultType="int">
         SELECT
             COUNT(DISTINCT smcr.user_id_)
@@ -888,6 +907,7 @@
         LEFT JOIN sys_user su ON smcr.user_id_=su.id_
         LEFT JOIN student stu ON smcr.user_id_=stu.user_id_
         WHERE su.del_flag_=0 AND stu.user_id_ IS NOT NULL
+        AND DATE(smcr.create_time_) = CURDATE()
         <if test="organIds!=null and organIds.size()>0">
             AND su.organ_id_ IN
             <foreach collection="organIds" item="organId" open="(" close=")" separator=",">
@@ -1065,6 +1085,9 @@
         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 (cto.id_ IS NULL OR cto.status_ NOT IN (1, 2))
+        <if test="organId!=null">
+            AND su.organ_id_=#{organId}
+        </if>
         <if test="teacherIds!=null and teacherIds.size()>0">
             AND stu.teacher_id_ IN
             <foreach collection="teacherIds" item="teacherId" open="(" close=")" separator=",">