zouxuan пре 2 година
родитељ
комит
f6642e0a3d

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

@@ -30,13 +30,13 @@ public class IndexCloudStudySumDto {
 	private Integer againBuyNum = 0;
 
 	//重复购买率
-	private Double againBuyRate;
+	private Double againBuyRate = 0d;
 
 	//购买率
-	private Double buyRate;
+	private Double buyRate = 0d;
 
 	@ApiModelProperty("云教练今日使用人数")
-	private Integer cloudStudyTodayUseStudentNum;
+	private Integer cloudStudyTodayUseStudentNum = 0;
 
 	public Integer getCloudStudyTodayUseStudentNum() {
 		return cloudStudyTodayUseStudentNum;

+ 0 - 12
mec-biz/src/main/java/com/ym/mec/biz/dal/page/StudentCourseConsumerQueryInfo.java

@@ -3,15 +3,11 @@ package com.ym.mec.biz.dal.page;
 import com.ym.mec.common.page.QueryInfo;
 import io.swagger.annotations.ApiModelProperty;
 
-import java.util.List;
-
 public class StudentCourseConsumerQueryInfo extends QueryInfo {
 
     @ApiModelProperty(value = "分部")
     private String organId;
 
-    private List<String> mondays;
-
     @ApiModelProperty(value = "月份")
     private String month;
 
@@ -24,14 +20,6 @@ public class StudentCourseConsumerQueryInfo extends QueryInfo {
     @ApiModelProperty(value = "周数")
     private long weekBetween;
 
-    public List<String> getMondays() {
-        return mondays;
-    }
-
-    public void setMondays(List<String> mondays) {
-        this.mondays = mondays;
-    }
-
     public long getWeekBetween() {
         return weekBetween;
     }

+ 12 - 13
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ExportServiceImpl.java

@@ -1094,20 +1094,19 @@ public class ExportServiceImpl implements ExportService {
     @Override
     public List cloudStudyStudentOverView(Map<String, Object> info) {
         OrganCloudStudyStudentDataQueryInfo queryInfo = JSONObject.parseObject(JSONObject.toJSONString(info), OrganCloudStudyStudentDataQueryInfo.class);
-        String organIds = organizationService.getEmployeeOrgan("");
-        if (StringUtils.isEmpty(organIds)) {
+        String organIds = organizationService.getEmployeeOrgan(queryInfo.getOrganIds());
+        List<Integer> organIdsList = null;
+        if(StringUtils.isNotBlank(organIds)){
+            organIdsList = Arrays.stream(organIds.split(",")).map(id->Integer.valueOf(id)).collect(Collectors.toList());
+            List<Integer> ingnoreOrganIdList = Arrays.asList(36,39,41,42,43,44,45,46,47,48,49,50,52,54,56);
+            organIdsList.removeAll(ingnoreOrganIdList);
+        }
+        List<IndexCloudStudySumDto> list = studentService.getCloudStudyStudentOverViewList(organIdsList);
+        if (CollectionUtils.isEmpty(list)) {
             throw new BizException("没有可导出的记录");
         }
-        List<Integer> collect = Arrays.stream(organIds.split(",")).mapToInt(Integer::parseInt).boxed().collect(Collectors.toList());
-        List<Integer> ids = collect.stream().filter(id -> !OrganizationService.EXCLUDE_ORGAN_IDS.contains(id)).collect(Collectors.toList());
-        if (ids == null || ids.size() == 0) {
-            throw new BizException("没有可导出的记录");
-        }
-        List<EduOrganStudentDataDto> rows = indexService.organStudentOverView(ids, queryInfo).getRows();
-        if (CollectionUtils.isEmpty(rows)) {
-            throw new BizException("没有可导出的记录");
-        }
-        return rows;
+        list = list.stream().sorted(Comparator.comparing(IndexCloudStudySumDto::getVipStudentRate).reversed()).collect(Collectors.toList());
+        return list;
     }
 
     //乐团声部在读人数导出
@@ -1567,7 +1566,7 @@ public class ExportServiceImpl implements ExportService {
         List<CloudTeacherSumDto> rows = studentService.cloudTeacherSumDetail(queryInfo).getRows();
         checkRows(rows);
         ManagerDownload managerDownload = saveManagerDownload(ExportTypeEnum.EXPORT_CLOUD_TEACHER_SUM_DETAIL,user.getId());
-        return this.asyncExport(() -> this.initExportInfo(rows, managerDownload,ExportEnum.EXPORT_CLOUD_TEACHER_SUM),
+        return this.asyncExport(() -> this.initExportInfo(rows, managerDownload,ExportEnum.EXPORT_CLOUD_TEACHER_SUM_DETAIL),
                 managerDownload.getName());
     }
 

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

@@ -1189,9 +1189,10 @@ public class StudentServiceImpl extends BaseServiceImpl<Integer, Student> implem
 
     @Override
     public List<CloudTeacherSumDto> cloudTeacherSum(StudentCourseConsumerQueryInfo queryInfo) {
-        List<String> mondays = this.getMondays(queryInfo.getStartDate(),queryInfo.getEndDate());
-        queryInfo.setWeekBetween(mondays.size());
-        queryInfo.setMondays(mondays);
+        Date date = DateUtil.stringToDate(queryInfo.getStartDate(), DateUtil.ISO_EXPANDED_DATE_FORMAT);
+        Date date2 = DateUtil.stringToDate(queryInfo.getEndDate(), DateUtil.ISO_EXPANDED_DATE_FORMAT);
+        long weekBetween = DateUtil.weekBetween(date, date2);
+        queryInfo.setWeekBetween(weekBetween);
         List<CloudTeacherSumDto> cloudTeacherSumDtos = studentDao.cloudTeacherSum(queryInfo);
         if(CollectionUtils.isEmpty(cloudTeacherSumDtos)){
             return cloudTeacherSumDtos;
@@ -1212,9 +1213,10 @@ public class StudentServiceImpl extends BaseServiceImpl<Integer, Student> implem
     @Override
     public PageInfo<CloudTeacherSumDto> cloudTeacherSumDetail(StudentCourseConsumerQueryInfo queryInfo) {
         PageInfo<CloudTeacherSumDto> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
-        List<String> mondays = this.getMondays(queryInfo.getStartDate(),queryInfo.getEndDate());
-        queryInfo.setWeekBetween(mondays.size());
-        queryInfo.setMondays(mondays);
+        Date date = DateUtil.stringToDate(queryInfo.getStartDate(), DateUtil.ISO_EXPANDED_DATE_FORMAT);
+        Date date2 = DateUtil.stringToDate(queryInfo.getEndDate(), DateUtil.ISO_EXPANDED_DATE_FORMAT);
+        long weekBetween = DateUtil.weekBetween(date, date2);
+        queryInfo.setWeekBetween(weekBetween);
         Map<String, Object> params = new HashMap<String, Object>();
         MapUtil.populateMap(params, queryInfo);
 
@@ -1242,21 +1244,6 @@ public class StudentServiceImpl extends BaseServiceImpl<Integer, Student> implem
         return pageInfo;
     }
 
-    private List<String> getMondays(String startDate,String endDate){
-        Date date = DateUtil.stringToDate(startDate, DateUtil.ISO_EXPANDED_DATE_FORMAT);
-        Date date2 = DateUtil.stringToDate(endDate, DateUtil.ISO_EXPANDED_DATE_FORMAT);
-        List<String> mondays = new ArrayList<>();
-        mondays.add(startDate);
-        while (true){
-            date = DateUtil.addDays(date, 7);
-            if(date.compareTo(date2) > 0){
-                break;
-            }
-            mondays.add(DateUtil.dateToString(date,DateUtil.ISO_EXPANDED_DATE_FORMAT));
-        }
-        return mondays;
-    }
-
     @Override
     public List<IndexCloudStudySumDto> getCloudStudyStudentOverViewList(List<Integer> organIdsList) {
         List<IndexCloudStudySumDto> list = studentDao.getCloudStudyStudentOverViewList(organIdsList);

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

@@ -1192,11 +1192,9 @@
         left join student_registration sr ON mg.id_ = sr.music_group_id_
         where mg.status_ IN ('PROGRESS','PAUSE') AND sr.music_group_status_ = 'NORMAL') mg
         left join student s ON mg.user_id_ = s.user_id_
-        left join (select smcr.user_id_,ROUND(SUM(smcr.train_time_)/60/#{queryInfo.weekBetween}) train_time_ from sys_music_compare_week_data smcr
-        where monday_ IN
-        <foreach collection="queryInfo.mondays" separator="," open="(" close=")" item="monday">
-            #{monday}
-        </foreach> group by smcr.user_id_) smcr ON s.user_id_ = smcr.user_id_
+        left join (
+        select smcr.user_id_,ROUND(SUM(smcr.train_time_)/60/#{queryInfo.weekBetween}) train_time_ from sys_music_compare_day_data smcr
+        where day_ BETWEEN #{queryInfo.startData} AND #{queryInfo.endData} group by smcr.user_id_) smcr ON s.user_id_ = smcr.user_id_
         left JOIN sys_user su ON su.id_ = mg.user_id_
         left join organization o ON o.id_ = su.organ_id_
         where s.membership_end_time_ >= NOW()
@@ -1227,12 +1225,9 @@
         left join student_registration sr ON mg.id_ = sr.music_group_id_
         where mg.status_ IN ('PROGRESS','PAUSE') AND sr.music_group_status_ = 'NORMAL') mg ON mg.user_id_ = stm.student_id_
         left join student s ON mg.user_id_ = s.user_id_
-        left join (select smcr.user_id_,ROUND(SUM(smcr.train_time_)/60/#{weekBetween}) train_time_ from sys_music_compare_week_data smcr
-        where monday_ IN
-        <foreach collection="mondays" separator="," open="(" close=")" item="monday">
-            #{monday}
-        </foreach>
-        group by smcr.user_id_) smcr ON s.user_id_ = smcr.user_id_
+        left join (
+        select smcr.user_id_,ROUND(SUM(smcr.train_time_)/60/#{weekBetween}) train_time_ from sys_music_compare_day_data smcr
+        where day_ BETWEEN #{startData} AND #{endData} group by smcr.user_id_) smcr ON s.user_id_ = smcr.user_id_
         left JOIN teacher t ON t.id_ = stm.teacher_id_
         left JOIN sys_user su ON su.id_ = mg.user_id_
         where s.membership_end_time_ >= NOW() AND stm.teacher_type_ = 'NORMAL' AND t.organ_id_ = #{organId}

+ 2 - 2
mec-web/src/main/resources/exportColumnMapper.ini

@@ -239,8 +239,8 @@ headColumns = ["排名", "分部", "学员总数", "目标人数", "活跃人数
 fieldColumns = ["index","organName", "totalStudentNum", "targetNum", "cloudStudyLivelyStudentNum", "cloudStudyUseStudentNum", "newCloudStudyStudentNum", "cloudStudyUseStudentDuty+'%'", "vipStudentNum", "vipStudentDuty+'%'"]
 
 [分部云教练学员数据详情导出]
-headColumns = ["排名", "分部", "学员总数", "活跃人数", "活跃人数比", "当日使用人数", "当日新增使用人数", "使用人数占比", "付费会员数量","付费会员占比", "新增付费会员"]
-fieldColumns = ["index", "organName", "totalStudentNum", "cloudStudyLivelyStudentNum", "cloudStudyLivelyStudentDuty+'%'", "cloudStudyUseStudentNum", "newCloudStudyStudentNum", "cloudStudyUseStudentDuty+'%'", "vipStudentNum", "vipStudentDuty+'%'", "newMemberStudentNum"]
+headColumns = ["分部", "在读人数", "生效待激活总人数", "会员占比", "生效会员", "待激活", "覆盖率", "复购率","近一个月活跃人数", "今日使用人数"]
+fieldColumns = ["organName", "totalStudentNum", "vipStudentNum", "vipStudentRate+'%'", "effectiveVipStudentNum", "waitActivateVipStudentNum", "buyRate+'%'", "againBuyRate+'%'", "activeStudentNum", "cloudStudyTodayUseStudentNum"]
 
 [分部云教练学员训练数据导出]
 headColumns = ["分部", "学员编号", "学员","年级","班级", "手机号", "是否新用户", "是否激活", "是否会员", "训练总时长", "连续训练天数", "乐团", "乐团主管", "所属学校", "声部", "声部老师",  "是否有小课","训练次数", "训练天数", "训练平均时长", "会员有效期", "是否服务", "是否运营", "是否云教练活动目标学员", "活动消费金额", "关心包", "加油包", "未上课数", "vip课剩余课时", "网管课剩余课时"]