소스 검색

Merge remote-tracking branch 'origin/2021-04-28' into 2021-04-28

zouxuan 4 년 전
부모
커밋
0e59c42f01

+ 2 - 2
mec-biz/src/main/java/com/ym/mec/biz/dal/enums/IndexDataType.java

@@ -50,8 +50,8 @@ public enum IndexDataType implements BaseEnum<String, IndexDataType> {
     //课程数据
     MUSIC_GROUP_COURSE("MUSIC_GROUP_COURSE","乐团课", false, true),
     VIP_GROUP_COURSE("VIP_GROUP_COURSE","VIP课", false, true),
-    VIP_GROUP_ONLINE_COURSE("VIP_GROUP_ONLINE_COURSE","VIP课", false, true),
-    VIP_GROUP_OFFLINE_COURSE("VIP_GROUP_OFFLINE_COURSE","VIP课", false, true),
+    VIP_GROUP_ONLINE_COURSE("VIP_GROUP_ONLINE_COURSE","VIP线上课", false, true),
+    VIP_GROUP_OFFLINE_COURSE("VIP_GROUP_OFFLINE_COURSE","VIP线下课", false, true),
     PRACTICE_GROUP_COURSE("PRACTICE_GROUP_COURSE","网管课", false, true),
 
     //学员变动

+ 37 - 10
mec-biz/src/main/java/com/ym/mec/biz/service/impl/IndexBaseMonthDataServiceImpl.java

@@ -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;

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

@@ -524,7 +524,7 @@
 			AND m.group_type_ = #{groupType, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
 		</if>
 		<if test="dayStr!=null and dayStr!=''">
-			AND m.class_date_ &gt;= #{dayStr}
+			AND m.class_date_ = #{dayStr}
 		</if>
 		<if test="teachMode!=null">
 			AND m.teach_mode_ = #{teachMode, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}