Explorar el Código

管乐迷新需求一大堆

zouxuan hace 2 años
padre
commit
e7b1097b45

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/CloudStudyStudentDataDto.java

@@ -13,7 +13,7 @@ public class CloudStudyStudentDataDto {
     @ApiModelProperty("分部名称")
     private String organName;
 
-    @ApiModelProperty("注册学员总数")
+    @ApiModelProperty("在读学员总数")
     private int totalStudentNum;
     
     @ApiModelProperty("有效学员总数")

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

@@ -1315,6 +1315,8 @@ public class StudentServiceImpl extends BaseServiceImpl<Integer, Student> implem
     @Override
     public List<IndexCloudStudySumDto> getCloudStudyStudentOverViewList1(List<Integer> organIdsList) {
         List<IndexCloudStudySumDto> list = studentDao.getCloudStudyStudentOverViewList1(organIdsList);
+        Set<Integer> organIds = list.stream().map(e -> e.getOrganId()).collect(Collectors.toSet());
+        Map<Integer,String> organMap = MapUtil.convertMybatisMap(organizationDao.findOrganNameMapList(organIds));
         //获取待激活学员数
         Map<Integer,Long> waitMap = MapUtil.convertIntegerMap(cloudTeacherOrderDao.getWaitActivateMap(organIdsList));
         //获取活跃学员数
@@ -1333,15 +1335,16 @@ public class StudentServiceImpl extends BaseServiceImpl<Integer, Student> implem
         //获取重复购买人数
         Map<Integer,Long> againBuyMap = MapUtil.convertIntegerMap(studentDao.getAgainBuyNum(organIdsList));
         for (IndexCloudStudySumDto dto : list) {
+            dto.setOrganName(organMap.get(dto.getOrganId()));
             Long aLong = waitMap.get(dto.getOrganId());
             dto.setWaitActivateVipStudentNum(aLong==null?0:aLong.intValue());
             Long aLong1 = againBuyMap.get(dto.getOrganId());
             dto.setAgainBuyNum(aLong1==null?0:aLong1.intValue());
             Integer integer = activeMap.get(dto.getOrganId());
             dto.setActiveStudentNum(integer==null?0:integer);
-            dto.setTotalStudentNum(dto.getWaitActivateVipStudentNum() + dto.getVipStudentNum());
-//            double studentNum = (double)dto.getVipStudentNum();
-//            dto.setVipStudentRate(studentNum / dto.getTotalStudentNum());
+            dto.setVipStudentNum(dto.getEffectiveVipStudentNum() + dto.getWaitActivateVipStudentNum());
+            double studentNum = (double)dto.getVipStudentNum();
+            dto.setVipStudentRate(studentNum / dto.getTotalStudentNum());
 //            dto.setAgainBuyRate(dto.getAgainBuyNum() / studentNum);
         }
         return list;

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

@@ -489,7 +489,10 @@
     <select id="getWaitActivateMap" resultType="java.util.Map">
         select cto.organ_id_ 'key',COUNT(DISTINCT cto.student_id_) 'value' from cloud_teacher_order cto
         left join student s ON s.user_id_ = cto.student_id_
+        left join student_registration sr ON sr.user_id_ = cto.student_id_
+        left join music_group mg ON mg.id_ = sr.music_group_id_
         where cto.status_ = 1 AND (s.membership_end_time_ &lt; NOW() OR s.membership_end_time_ IS NULL)
+        AND sr.music_group_status_ = 'NORMAL' AND mg.status_ = 'PROGRESS'
         <if test="organIds != null and organIds.size > 0">
             AND cto.organ_id_ IN
             <foreach collection="organIds" item="organId" open="(" close=")" separator=",">

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

@@ -733,7 +733,7 @@
     </select>
     <select id="getCloudStudyStudentOverViewList1" resultType="com.ym.mec.biz.dal.dto.IndexCloudStudySumDto">
         select mg.organ_id_ organId,COUNT(DISTINCT sr.user_id_) totalStudentNum,
-               COUNT(DISTINCT CASE WHEN s.membership_end_time_ >= NOW() THEN sr.user_id_ END) effectiveStudentNum
+               COUNT(DISTINCT CASE WHEN s.membership_end_time_ >= NOW() THEN sr.user_id_ END) effectiveVipStudentNum
         from student_registration sr
         left join music_group mg ON mg.id_ = sr.music_group_id_
         left join student s ON s.user_id_ = sr.user_id_