|
@@ -100,7 +100,7 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
|
|
|
if(StringUtils.isNotBlank(queryInfo.getOrganId())){
|
|
|
organIds = Arrays.stream(queryInfo.getOrganId().split(",")).map(Integer::new).collect(Collectors.toSet());
|
|
|
}
|
|
|
- Set<String> dataTypes = null;
|
|
|
+ Set<String> dataTypes = new HashSet<>();
|
|
|
if(StringUtils.isNotBlank(queryInfo.getDataTypes())){
|
|
|
dataTypes = Arrays.stream(queryInfo.getDataTypes().split(",")).collect(Collectors.toSet());
|
|
|
}
|
|
@@ -110,8 +110,34 @@ 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<Date, Map<IndexDataType, Map<String, Integer>>> vipCategoryCourseListMap = new HashMap<>();
|
|
|
+ if(CollectionUtils.isEmpty(dataTypes)||dataTypes.contains("VIP_GROUP_COURSE")||dataTypes.contains("VIP_GROUP_ONLINE_COURSE")||dataTypes.contains("VIP_GROUP_OFFLINE_COURSE")){
|
|
|
+ dataTypes.clear();
|
|
|
+ dataTypes.add("VIP_GROUP_COURSE");
|
|
|
+ dataTypes.add("VIP_GROUP_ONLINE_COURSE");
|
|
|
+ dataTypes.add("VIP_GROUP_OFFLINE_COURSE");
|
|
|
+ List<IndexBaseMonthData> indexBaseDataList = indexBaseMonthDataDao.getIndexBaseDataList(organIds, dataTypes, startDate.toString(), endDate.toString());
|
|
|
+ if(!CollectionUtils.isEmpty(indexBaseDataList)){
|
|
|
+ for (IndexBaseMonthData indexBaseMonthData : indexBaseDataList) {
|
|
|
+ if(StringUtils.isBlank(indexBaseMonthData.getExtendInfo())){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ if(!vipCategoryCourseListMap.containsKey(indexBaseMonthData.getMonth())){
|
|
|
+ vipCategoryCourseListMap.put(indexBaseMonthData.getMonth(), new HashMap<>());
|
|
|
+ }
|
|
|
+ if(!vipCategoryCourseListMap.get(indexBaseMonthData.getMonth()).containsKey(indexBaseMonthData.getDataType())){
|
|
|
+ vipCategoryCourseListMap.get(indexBaseMonthData.getMonth()).put(indexBaseMonthData.getDataType(), new HashMap<>());
|
|
|
+ }
|
|
|
+ Map<String, Integer> map = JSON.parseObject(indexBaseMonthData.getExtendInfo(), Map.class);
|
|
|
+ for (Map.Entry<String, Integer> o : map.entrySet()) {
|
|
|
+ if(!vipCategoryCourseListMap.get(indexBaseMonthData.getMonth()).get(indexBaseMonthData.getDataType()).containsKey(o.getKey())){
|
|
|
+ vipCategoryCourseListMap.get(indexBaseMonthData.getMonth()).get(indexBaseMonthData.getDataType()).put(o.getKey(), 0);
|
|
|
+ }
|
|
|
+ vipCategoryCourseListMap.get(indexBaseMonthData.getMonth()).get(indexBaseMonthData.getDataType()).put(o.getKey(), vipCategoryCourseListMap.get(indexBaseMonthData.getMonth()).get(indexBaseMonthData.getDataType()).get(o.getKey())+o.getValue());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
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));
|
|
@@ -214,13 +240,14 @@ 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().
|
|
|
-// }
|
|
|
-// }
|
|
|
+ if(IndexDataType.VIP_GROUP_COURSE.equals(typeDateMapEntry.getKey()) || VIP_GROUP_ONLINE_COURSE.equals(typeDateMapEntry.getKey()) ||
|
|
|
+ IndexDataType.VIP_GROUP_OFFLINE_COURSE.equals(typeDateMapEntry.getKey())){
|
|
|
+ for (IndexBaseMonthData indexBaseMonthData : indexBaseData.getIndexMonthData()) {
|
|
|
+ if(vipCategoryCourseListMap.containsKey(indexBaseMonthData.getMonth())&&vipCategoryCourseListMap.get(indexBaseMonthData.getMonth()).containsKey(indexBaseData.getDataType())){
|
|
|
+ indexBaseMonthData.setExtendInfo(JSON.toJSONString(vipCategoryCourseListMap.get(indexBaseMonthData.getMonth()).get(indexBaseData.getDataType())));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
result.add(indexBaseData);
|
|
|
}
|
|
|
return result;
|