|
@@ -1,11 +1,13 @@
|
|
|
package com.ym.mec.biz.service.impl;
|
|
|
|
|
|
+import com.alibaba.fastjson.JSON;
|
|
|
import com.ym.mec.auth.api.client.SysUserFeignService;
|
|
|
import com.ym.mec.auth.api.entity.SysUser;
|
|
|
import com.ym.mec.auth.api.entity.SysUserRole;
|
|
|
import com.ym.mec.biz.dal.dao.*;
|
|
|
import com.ym.mec.biz.dal.dto.IndexBaseDto;
|
|
|
import com.ym.mec.biz.dal.dto.IndexErrorDataExportDto;
|
|
|
+import com.ym.mec.biz.dal.dto.OrganVipGroupCategoryCourseNumDto;
|
|
|
import com.ym.mec.biz.dal.entity.IndexErrInfoDto;
|
|
|
import com.ym.mec.biz.dal.entity.Organization;
|
|
|
import com.ym.mec.biz.dal.enums.*;
|
|
@@ -35,6 +37,7 @@ import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
import static com.ym.mec.biz.dal.enums.IndexDataType.FINANCE_AMOUNT;
|
|
|
+import static com.ym.mec.biz.dal.enums.IndexDataType.VIP_GROUP_ONLINE_COURSE;
|
|
|
import static com.ym.mec.biz.dal.enums.IndexErrorType.WAIT_CREATE_PAYMENT_CALENDER;
|
|
|
|
|
|
@Service
|
|
@@ -107,6 +110,9 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
|
|
|
indexBaseDatas = new ArrayList<>();
|
|
|
}
|
|
|
|
|
|
+ List<IndexBaseMonthData> indexBaseDataList = indexBaseMonthDataDao.getIndexBaseDataList(organIds, dataTypes, startDate.toString(), endDate.toString());
|
|
|
+// Map<Date, Map<String, Integer>> vipCategory
|
|
|
+
|
|
|
Map<IndexDataType, List<IndexBaseMonthData>> typeDateMap = indexBaseDatas.stream().filter(d->Objects.nonNull(d.getDataType())).collect(Collectors.groupingBy(IndexBaseMonthData::getDataType));
|
|
|
List<IndexBaseMonthData> financePayDataWithTimely = indexBaseMonthDataDao.getFinancePayDataWithTimely(startDate.toString(), endDate.toString(), new ArrayList<>(organIds));
|
|
|
typeDateMap.put(IndexDataType.FINANCE_PAY,financePayDataWithTimely);
|
|
@@ -208,6 +214,13 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
|
|
|
IndexDataType.TOTAL_AMOUNT.equals(typeDateMapEntry.getKey())){
|
|
|
indexBaseData.setPercent(typeDateMapEntry.getValue().stream().map(IndexBaseMonthData::getPercent).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
}
|
|
|
+// if(IndexDataType.VIP_GROUP_COURSE.equals(typeDateMapEntry.getKey()) || VIP_GROUP_ONLINE_COURSE.equals(typeDateMapEntry.getKey()) ||
|
|
|
+// IndexDataType.VIP_GROUP_OFFLINE_COURSE.equals(typeDateMapEntry.getKey())){
|
|
|
+// List<OrganVipGroupCategoryCourseNumDto> extendInfos = indexBaseData.getIndexMonthData().stream().filter(d -> StringUtils.isNotBlank(d.getExtendInfo())).map(d -> JSON.parseObject(d.getExtendInfo(), OrganVipGroupCategoryCourseNumDto.class)).collect(Collectors.toList());
|
|
|
+// if(!CollectionUtils.isEmpty(extendInfos)){
|
|
|
+// extendInfos.stream().
|
|
|
+// }
|
|
|
+// }
|
|
|
result.add(indexBaseData);
|
|
|
}
|
|
|
return result;
|
|
@@ -275,9 +288,50 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
|
|
|
saveData(indexBaseMonthDataDao.getHomeworkData(dayStr, "comment"), monday.toString(), IndexDataType.HOMEWORK_COMMENT_RATE);
|
|
|
|
|
|
//课程数据
|
|
|
- saveData(indexBaseMonthDataDao.getGroupCourseDataWithGroup(dayStr, GroupType.MUSIC, null), dayStr, IndexDataType.MUSIC_GROUP_COURSE);
|
|
|
- saveData(indexBaseMonthDataDao.getGroupCourseDataWithGroup(dayStr, GroupType.VIP, null), dayStr, IndexDataType.VIP_GROUP_COURSE);
|
|
|
- saveData(indexBaseMonthDataDao.getGroupCourseDataWithGroup(dayStr, GroupType.PRACTICE, null), dayStr, IndexDataType.PRACTICE_GROUP_COURSE);
|
|
|
+ saveData(indexBaseMonthDataDao.getGroupCourseDataWithGroup(dayStr, GroupType.MUSIC, null, null), dayStr, IndexDataType.MUSIC_GROUP_COURSE);
|
|
|
+
|
|
|
+ List<IndexBaseMonthData> vipCourseData = indexBaseMonthDataDao.getGroupCourseDataWithGroup(dayStr, GroupType.VIP, null, null);
|
|
|
+ List<OrganVipGroupCategoryCourseNumDto> vipGroupCategoryCourseData = indexBaseMonthDataDao.getVipGroupCategoryCourseData(dayStr, GroupType.VIP, null, null);
|
|
|
+ Map<Integer, Map<String, Integer>> organCategoryCourseMap = new HashMap<>();
|
|
|
+ if(!CollectionUtils.isEmpty(vipGroupCategoryCourseData)){
|
|
|
+ organCategoryCourseMap = vipGroupCategoryCourseData.stream().collect(Collectors.groupingBy(OrganVipGroupCategoryCourseNumDto::getOrganId, Collectors.toMap(OrganVipGroupCategoryCourseNumDto::getCategoryName, o -> o.getCourseNum())));
|
|
|
+ }
|
|
|
+ for (IndexBaseMonthData vipCourseDatum : vipCourseData) {
|
|
|
+ if(organCategoryCourseMap.containsKey(vipCourseDatum.getOrganId())){
|
|
|
+ vipCourseDatum.setExtendInfo(JSON.toJSONString(organCategoryCourseMap.get(vipCourseDatum.getOrganId())));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ saveData(vipCourseData, dayStr, IndexDataType.VIP_GROUP_COURSE);
|
|
|
+
|
|
|
+
|
|
|
+ List<IndexBaseMonthData> vipOnlineCourseData = indexBaseMonthDataDao.getGroupCourseDataWithGroup(dayStr, GroupType.VIP, null, null);
|
|
|
+ List<OrganVipGroupCategoryCourseNumDto> vipGroupOnlineCategoryCourseData = indexBaseMonthDataDao.getVipGroupCategoryCourseData(dayStr, GroupType.VIP, null, null);
|
|
|
+ Map<Integer, Map<String, Integer>> organOnlineCategoryCourseMap = new HashMap<>();
|
|
|
+ if(!CollectionUtils.isEmpty(vipGroupOnlineCategoryCourseData)){
|
|
|
+ organOnlineCategoryCourseMap = vipGroupOnlineCategoryCourseData.stream().collect(Collectors.groupingBy(OrganVipGroupCategoryCourseNumDto::getOrganId, Collectors.toMap(OrganVipGroupCategoryCourseNumDto::getCategoryName, o -> o.getCourseNum())));
|
|
|
+ }
|
|
|
+ for (IndexBaseMonthData vipCourseDatum : vipOnlineCourseData) {
|
|
|
+ if(organOnlineCategoryCourseMap.containsKey(vipCourseDatum.getOrganId())){
|
|
|
+ vipCourseDatum.setExtendInfo(JSON.toJSONString(organOnlineCategoryCourseMap.get(vipCourseDatum.getOrganId())));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ saveData(vipOnlineCourseData, dayStr, IndexDataType.VIP_GROUP_ONLINE_COURSE);
|
|
|
+
|
|
|
+
|
|
|
+ List<IndexBaseMonthData> vipOfflineCourseData = indexBaseMonthDataDao.getGroupCourseDataWithGroup(dayStr, GroupType.VIP, null, null);
|
|
|
+ List<OrganVipGroupCategoryCourseNumDto> vipGroupOfflineCategoryCourseData = indexBaseMonthDataDao.getVipGroupCategoryCourseData(dayStr, GroupType.VIP, null, null);
|
|
|
+ Map<Integer, Map<String, Integer>> organOfflineCategoryCourseMap = new HashMap<>();
|
|
|
+ if(!CollectionUtils.isEmpty(vipGroupOfflineCategoryCourseData)){
|
|
|
+ organOfflineCategoryCourseMap = vipGroupOfflineCategoryCourseData.stream().collect(Collectors.groupingBy(OrganVipGroupCategoryCourseNumDto::getOrganId, Collectors.toMap(OrganVipGroupCategoryCourseNumDto::getCategoryName, o -> o.getCourseNum())));
|
|
|
+ }
|
|
|
+ for (IndexBaseMonthData vipCourseDatum : vipOfflineCourseData) {
|
|
|
+ if(organOfflineCategoryCourseMap.containsKey(vipCourseDatum.getOrganId())){
|
|
|
+ vipCourseDatum.setExtendInfo(JSON.toJSONString(organOfflineCategoryCourseMap.get(vipCourseDatum.getOrganId())));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ saveData(vipOfflineCourseData, dayStr, IndexDataType.VIP_GROUP_OFFLINE_COURSE);
|
|
|
+
|
|
|
+ saveData(indexBaseMonthDataDao.getGroupCourseDataWithGroup(dayStr, GroupType.PRACTICE, null, null), dayStr, IndexDataType.PRACTICE_GROUP_COURSE);
|
|
|
|
|
|
//学员变动
|
|
|
saveData(indexBaseMonthDataDao.getAddStudentRegistrationData(dayStr), dayStr, IndexDataType.ADD_STUDENT_REGISTRATION_NUM);
|