Browse Source

管乐迷新需求一大堆

zouxuan 2 years ago
parent
commit
1540ea76e7

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

@@ -107,5 +107,5 @@ public interface CloudTeacherOrderDao extends BaseDAO<Long, CloudTeacherOrder> {
     void batchInsert(@Param("bean") CloudTeacherOrder cloudTeacherOrder, @Param("userIds") List<Integer> userIds);
 
     //获取待激活学员数
-    List<Map<Integer, Integer>> getWaitActivateMap(@Param("organIds") List<Integer> organIds);
+    List<Map<Integer, Long>> getWaitActivateMap(@Param("organIds") List<Integer> organIds);
 }

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

@@ -350,5 +350,5 @@ public interface StudentDao extends com.ym.mec.common.dal.BaseDAO<Integer, Stude
     List<CloudTeacherSumDto> cloudTeacherSum(@Param("queryInfo") StudentCourseConsumerQueryInfo queryInfo);
 
     //统计重复购买人数
-    List<Map<Integer,Integer>> getAgainBuyNum(@Param("organIds") List<Integer> organIds);
+    List<Map<Integer,Long>> getAgainBuyNum(@Param("organIds") List<Integer> organIds);
 }

+ 26 - 27
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/IndexCloudStudySumDto.java

@@ -7,33 +7,25 @@ public class IndexCloudStudySumDto {
 	private String organName;
 
 	//在读学员数
-	private int totalStudentNum;
+	private Integer totalStudentNum = 0;
 
 	//会员总数
-	private int vipStudentNum;
+	private Integer vipStudentNum = 0;
 
 	//会员人数占比
-	private double vipStudentRate;
+	private Double vipStudentRate = 0d;
 
 	//生效中的学员数
-	private int effectiveVipStudentNum;
+	private Integer effectiveVipStudentNum = 0;
 
 	//待激活学员数
-	private int waitActivateVipStudentNum;
+	private Integer waitActivateVipStudentNum = 0;
 
 	//活跃人数
-	private int activeStudentNum;
+	private Integer activeStudentNum = 0;
 
 	//重复购买人数
-	private int againBuyNum;
-
-	public int getAgainBuyNum() {
-		return againBuyNum;
-	}
-
-	public void setAgainBuyNum(int againBuyNum) {
-		this.againBuyNum = againBuyNum;
-	}
+	private Integer againBuyNum = 0;
 
 	public Integer getOrganId() {
 		return organId;
@@ -51,52 +43,59 @@ public class IndexCloudStudySumDto {
 		this.organName = organName;
 	}
 
-	public int getTotalStudentNum() {
+	public Integer getTotalStudentNum() {
 		return totalStudentNum;
 	}
 
-	public void setTotalStudentNum(int totalStudentNum) {
+	public void setTotalStudentNum(Integer totalStudentNum) {
 		this.totalStudentNum = totalStudentNum;
 	}
 
-	public int getVipStudentNum() {
+	public Integer getVipStudentNum() {
 		return vipStudentNum;
 	}
 
-	public void setVipStudentNum(int vipStudentNum) {
+	public void setVipStudentNum(Integer vipStudentNum) {
 		this.vipStudentNum = vipStudentNum;
 	}
 
-	public double getVipStudentRate() {
+	public Double getVipStudentRate() {
 		return vipStudentRate;
 	}
 
-	public void setVipStudentRate(double vipStudentRate) {
+	public void setVipStudentRate(Double vipStudentRate) {
 		this.vipStudentRate = vipStudentRate;
 	}
 
-	public int getEffectiveVipStudentNum() {
+	public Integer getEffectiveVipStudentNum() {
 		return effectiveVipStudentNum;
 	}
 
-	public void setEffectiveVipStudentNum(int effectiveVipStudentNum) {
+	public void setEffectiveVipStudentNum(Integer effectiveVipStudentNum) {
 		this.effectiveVipStudentNum = effectiveVipStudentNum;
 	}
 
-	public int getWaitActivateVipStudentNum() {
+	public Integer getWaitActivateVipStudentNum() {
 		return waitActivateVipStudentNum;
 	}
 
-	public void setWaitActivateVipStudentNum(int waitActivateVipStudentNum) {
+	public void setWaitActivateVipStudentNum(Integer waitActivateVipStudentNum) {
 		this.waitActivateVipStudentNum = waitActivateVipStudentNum;
 	}
 
-	public int getActiveStudentNum() {
+	public Integer getActiveStudentNum() {
 		return activeStudentNum;
 	}
 
-	public void setActiveStudentNum(int activeStudentNum) {
+	public void setActiveStudentNum(Integer activeStudentNum) {
 		this.activeStudentNum = activeStudentNum;
 	}
 
+	public Integer getAgainBuyNum() {
+		return againBuyNum;
+	}
+
+	public void setAgainBuyNum(Integer againBuyNum) {
+		this.againBuyNum = againBuyNum;
+	}
 }

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

@@ -1316,7 +1316,7 @@ public class StudentServiceImpl extends BaseServiceImpl<Integer, Student> implem
     public List<IndexCloudStudySumDto> getCloudStudyStudentOverViewList1(List<Integer> organIdsList) {
         List<IndexCloudStudySumDto> list = studentDao.getCloudStudyStudentOverViewList1(organIdsList);
         //获取待激活学员数
-        Map<Integer,Integer> waitMap = MapUtil.convertIntegerMap(cloudTeacherOrderDao.getWaitActivateMap(organIdsList));
+        Map<Integer,Long> waitMap = MapUtil.convertIntegerMap(cloudTeacherOrderDao.getWaitActivateMap(organIdsList));
         //获取活跃学员数
         Calendar cal = Calendar.getInstance();
         cal.setTime(new Date());
@@ -1331,11 +1331,14 @@ public class StudentServiceImpl extends BaseServiceImpl<Integer, Student> implem
 
         Map<Integer,Integer> activeMap = MapUtil.convertIntegerMap(studentDao.getOrganActiveCloudStudyStudentNum1(organIdsList, startTime, endTime));
         //获取重复购买人数
-        Map<Integer,Integer> againBuyMap = MapUtil.convertIntegerMap(studentDao.getAgainBuyNum(organIdsList));
+        Map<Integer,Long> againBuyMap = MapUtil.convertIntegerMap(studentDao.getAgainBuyNum(organIdsList));
         for (IndexCloudStudySumDto dto : list) {
-            dto.setWaitActivateVipStudentNum(waitMap.get(dto.getOrganId()));
-            dto.setAgainBuyNum(againBuyMap.get(dto.getOrganId()));
-            dto.setActiveStudentNum(activeMap.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());

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

@@ -487,7 +487,7 @@
         select cto.* from cloud_teacher_order cto where cto.student_id_ = #{userId} and cto.status_ = #{status}
     </select>
     <select id="getWaitActivateMap" resultType="java.util.Map">
-        select cto.organ_id_,COUNT(DISTINCT cto.student_id_) from cloud_teacher_order cto
+        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_
         where cto.status_ = 1 AND (s.membership_end_time_ &lt; NOW() OR s.membership_end_time_ IS NULL)
         <if test="organIds != null and organIds.size > 0">

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

@@ -402,7 +402,8 @@
 		FROM
 		music_group_payment_calender_detail mgpcd
 		<if test="hasCourse != null">
-			LEFT JOIN (select user_id_,SUM(used_course_minutes_) used_course_minutes_,music_group_payment_calender_id_ from music_group_payment_student_course_detail group by music_group_payment_calender_id_,user_id_) mgpsc
+			LEFT JOIN (select user_id_,SUM(used_course_minutes_) used_course_minutes_,music_group_payment_calender_id_
+			from music_group_payment_student_course_detail group by music_group_payment_calender_id_,user_id_) mgpsc
 			ON mgpsc.music_group_payment_calender_id_ = mgpcd.music_group_payment_calender_id_ and mgpcd.user_id_ = mgpsc.user_id_
 		</if>
 		LEFT JOIN music_group_payment_calender mgpc ON mgpcd.music_group_payment_calender_id_ = mgpc.id_

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

@@ -637,7 +637,10 @@
 		<if test="organId != null and organId != ''">
 			AND FIND_IN_SET(su.organ_id_,#{organId})
 		</if>
-		group by ss.user_id_ order by su.organ_id_;
+		<if test="search != null and search != ''">
+			AND (su.username_ LIKE CONCAT('%',#{search},'%') OR su.phone_ LIKE CONCAT('%',#{search},'%') OR su.id_ = #{search})
+		</if>
+		group by ss.user_id_ order by su.organ_id_
 	</select>
 	<select id="countCourseConsumerDetail" resultType="java.lang.Integer">
 		select COUNT(DISTINCT ss.user_id_)
@@ -666,6 +669,9 @@
 		<if test="organId != null and organId != ''">
 			AND FIND_IN_SET(su.organ_id_,#{organId})
 		</if>
+		<if test="search != null and search != ''">
+			AND (su.username_ LIKE CONCAT('%',#{search},'%') OR su.phone_ LIKE CONCAT('%',#{search},'%') OR su.id_ = #{search})
+		</if>
 		ORDER BY su.organ_id_
 	</select>
 	<select id="countPreCourseConsumerDetail" resultType="java.lang.Integer">

+ 5 - 3
mec-web/src/main/java/com/ym/mec/web/controller/StudentManageController.java

@@ -406,9 +406,11 @@ public class StudentManageController extends BaseController {
         cloudStudyStudentDataDto.setEffectiveVipStudentNum(list.stream().collect(Collectors.summingInt(IndexCloudStudySumDto :: getEffectiveVipStudentNum)));
         cloudStudyStudentDataDto.setWaitActivateVipStudentNum(list.stream().collect(Collectors.summingInt(IndexCloudStudySumDto :: getWaitActivateVipStudentNum)));
         cloudStudyStudentDataDto.setVipStudentNum(list.stream().collect(Collectors.summingInt(IndexCloudStudySumDto :: getVipStudentNum)));
-        double studentNum = (double)cloudStudyStudentDataDto.getVipStudentNum();
-        cloudStudyStudentDataDto.setBuyRate(studentNum / cloudStudyStudentDataDto.getTotalStudentNum());
-        cloudStudyStudentDataDto.setAgainBuyRate(cloudStudyStudentDataDto.getAgainBuyNum() / studentNum);
+        if(cloudStudyStudentDataDto.getVipStudentNum() != 0){
+            double studentNum = (double)cloudStudyStudentDataDto.getVipStudentNum();
+            cloudStudyStudentDataDto.setBuyRate(studentNum / cloudStudyStudentDataDto.getTotalStudentNum());
+            cloudStudyStudentDataDto.setAgainBuyRate(cloudStudyStudentDataDto.getAgainBuyNum() / studentNum);
+        }
         result.put("overView",cloudStudyStudentDataDto);
         return succeed(result);
     }