瀏覽代碼

首页查询优化

zouxuan 2 年之前
父節點
當前提交
885ecb571c
共有 1 個文件被更改,包括 21 次插入6 次删除
  1. 21 6
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/IndexBaseMonthDataServiceImpl.java

+ 21 - 6
mec-biz/src/main/java/com/ym/mec/biz/service/impl/IndexBaseMonthDataServiceImpl.java

@@ -285,9 +285,10 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 					indexBaseMonthData.setPercent(indexBaseMonthData.getActivateNum().divide(indexBaseMonthData.getTotalNum(), CommonConstants.DECIMAL_PLACE, BigDecimal.ROUND_DOWN).multiply(new BigDecimal(100)).setScale(CommonConstants.DECIMAL_FINAL_PLACE, BigDecimal.ROUND_DOWN));
 				}
 			}
-			IndexBaseDto indexBaseData = new IndexBaseDto(typeDateMapEntry.getKey(),typeDateMapEntry.getKey().getMsg());
-			indexBaseData.setIndexMonthData(value, currentMonth);
+
 			if(OTHER_AMOUNT.equals(typeDateMapEntry.getKey())){
+				IndexBaseDto indexBaseData = new IndexBaseDto(typeDateMapEntry.getKey(),typeDateMapEntry.getKey().getMsg());
+				indexBaseData.setIndexMonthData(value, currentMonth);
 				List<IndexBaseMonthData> otherAmountDetails = new ArrayList<>();
 				if(value != null && value.size() > 0){
 					Map<String, List<IndexBaseMonthData>> collect = value.stream().filter(c->StringUtils.isNotEmpty(c.getOrderType())).collect(Collectors.groupingBy(e -> e.getOrderType()));
@@ -300,36 +301,50 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 					});
 				}
 				indexBaseData.setIndexMonthDataDetail(otherAmountDetails);
+				indexBaseData.setIndexMonthData(value, currentMonth);
+				indexBaseData.setPercent(value.stream().map(IndexBaseMonthData::getPercent).reduce(BigDecimal.ZERO, BigDecimal::add));
+				result.add(indexBaseData);
+				continue;
 			}
-			if(FINANCE_PAY.equals(typeDateMapEntry.getKey()) || FINANCE_AMOUNT.equals(typeDateMapEntry.getKey()) ||
+			if(FINANCE_AMOUNT.equals(typeDateMapEntry.getKey()) ||
 				FINANCE_BALANCE_AMOUNT.equals(typeDateMapEntry.getKey()) ||
 					TOTAL_AMOUNT.equals(typeDateMapEntry.getKey()) ||
 					APPLY_AMOUNT.equals(typeDateMapEntry.getKey()) ||
 					RENEW_AMOUNT.equals(typeDateMapEntry.getKey()) ||
 					VIP_AMOUNT.equals(typeDateMapEntry.getKey()) ||
-					PRACTICE_AMOUNT.equals(typeDateMapEntry.getKey()) ||
-					OTHER_AMOUNT.equals(typeDateMapEntry.getKey())){
+					PRACTICE_AMOUNT.equals(typeDateMapEntry.getKey())){
+				IndexBaseDto indexBaseData = new IndexBaseDto(typeDateMapEntry.getKey(),typeDateMapEntry.getKey().getMsg());
+				indexBaseData.setIndexMonthData(value, currentMonth);
 				indexBaseData.setPercent(value.stream().map(IndexBaseMonthData::getPercent).reduce(BigDecimal.ZERO, BigDecimal::add));
+				result.add(indexBaseData);
+				continue;
 			}
 			if(IndexDataType.VIP_GROUP_COURSE.equals(typeDateMapEntry.getKey()) || VIP_GROUP_ONLINE_COURSE.equals(typeDateMapEntry.getKey()) ||
 					IndexDataType.VIP_GROUP_OFFLINE_COURSE.equals(typeDateMapEntry.getKey())){
+				IndexBaseDto indexBaseData = new IndexBaseDto(typeDateMapEntry.getKey(),typeDateMapEntry.getKey().getMsg());
+				indexBaseData.setIndexMonthData(value, currentMonth);
 				for (IndexBaseMonthData indexBaseMonthData : indexBaseData.getIndexMonthData()) {
 					if(vipCategoryCourseListMap.containsKey(indexBaseMonthData.getMonth())&&vipCategoryCourseListMap.get(indexBaseMonthData.getMonth()).containsKey(indexBaseData.getDataType())){
 						TreeMap<String, Integer> extendSortMap = new TreeMap<>(vipCategoryCourseListMap.get(indexBaseMonthData.getMonth()).get(indexBaseData.getDataType()));
 						indexBaseMonthData.setExtendInfo(JSON.toJSONString(extendSortMap));
 					}
 				}
+				result.add(indexBaseData);
+				continue;
 			}
 			if(QUIT_MUSIC_GROUP_STUDENT_NUM.equals(typeDateMapEntry.getKey())){
 				//查询时间段内学员成功退团申请的数量
+				IndexBaseDto indexBaseData = new IndexBaseDto(typeDateMapEntry.getKey(),typeDateMapEntry.getKey().getMsg());
+				indexBaseData.setIndexMonthData(value, currentMonth);
 				Integer quitNum = musicGroupDao.countQuitNum(queryInfo);
 				indexBaseData.setIndexMonthData(new ArrayList<>(),null);
 				indexBaseData.setIndexMonthDataDetail(new ArrayList<>());
 				indexBaseData.setDataType(QUIT_MUSIC_GROUP_STUDENT_NUM);
 				indexBaseData.setPercent(new BigDecimal(quitNum));
 				indexBaseData.setTitle(QUIT_MUSIC_GROUP_STUDENT_NUM.getMsg());
+				result.add(indexBaseData);
+				continue;
 			}
-			result.add(indexBaseData);
 		}
 		return result;
 	}