From 1da0cccd804b441ac94a35f28a2ed23a6a7062cc Mon Sep 17 00:00:00 2001
From: yj <Administrator@192>
Date: 星期五, 13 三月 2020 14:12:17 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/div' into div

---
 fanli/src/main/java/com/yeshi/fanli/service/impl/count/CommonOrderCountServiceImpl.java |   74 +++++++++++++++++++++++++++++++++++++
 1 files changed, 74 insertions(+), 0 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/count/CommonOrderCountServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/count/CommonOrderCountServiceImpl.java
index f7aa9e0..4c72b9e 100644
--- a/fanli/src/main/java/com/yeshi/fanli/service/impl/count/CommonOrderCountServiceImpl.java
+++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/count/CommonOrderCountServiceImpl.java
@@ -1,6 +1,7 @@
 package com.yeshi.fanli.service.impl.count;
 
 import java.math.BigDecimal;
+import java.text.DecimalFormat;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
@@ -330,6 +331,79 @@
 		record.setId(StringUtil.Md5(preDay + trackRateEnum.name()));
 		countOrderTrackRateDao.save(record);
 	}
+	
+
+	@Override
+	public List<ChartTDO> getTrackAccuracyRate(Integer dateType, String year, String startTime, String endTime,
+			int sourceType) throws Exception {
+
+		List<ChartTDO> result_list = null;
+
+		// 鐢ㄦ埛璁㈠崟
+		List<ChartTDO> listTotal = commonOrderCountMapper.countOrderNumber(dateType, year, startTime, endTime,
+				sourceType);
+		if (listTotal == null || listTotal.size() == 0) {
+			return result_list;
+		}
+
+		// 娣樺疂鑱旂洘
+		List<ChartTDO> type_list = null;
+		switch (sourceType) {
+		case Constant.SOURCE_TYPE_TAOBAO:
+			type_list = taoBaoOrderMapper.countOrderNumber(dateType, year, startTime, endTime);
+			break;
+		case Constant.SOURCE_TYPE_JD:
+			type_list = jdOrderItemMapper.countOrderNumber(dateType, year, startTime, endTime);
+			break;
+		case Constant.SOURCE_TYPE_PDD:
+			type_list = pddOrderMapper.countOrderNumber(dateType, year, startTime, endTime);
+			break;
+		}
+		if (type_list == null || type_list.size() == 0) {
+			return null;
+		}
+
+		switch (dateType) {
+		case 1: // 鎸夊ぉ澶勭悊
+			result_list = dayFactory(startTime, endTime, type_list);
+			break;
+		case 2: // 鎸夋湀澶勭悊
+			result_list = monthFactory(type_list);
+			break;
+		case 3:
+			result_list = yearFactory(type_list);
+			break;
+		default:
+			break;
+		}
+
+		DecimalFormat df = new DecimalFormat("#.00");
+
+		for (int i = 0; i < result_list.size(); i++) {
+			double proportion = 0;
+			ChartTDO chartTDO = result_list.get(i);
+			String showDate = chartTDO.getShowDate();
+			for (int j = 0; j < listTotal.size(); j++) {
+				ChartTDO innerChartTDO = listTotal.get(j);
+				String innerDate = innerChartTDO.getShowDate();
+				if (innerDate != null && innerDate.toString().equals(showDate.toString())) {
+					String innerValue = innerChartTDO.getShowValue();
+					long innerData = Long.parseLong(innerValue);
+
+					String showValue = chartTDO.getShowValue();
+					long showData = Long.parseLong(showValue);
+
+					if (showData > 0) {
+						proportion = innerData / (double) showData;
+					}
+					break; // 缁撴潫鍐呴儴寰幆
+				}
+			}
+			chartTDO.setShowValue(Double.parseDouble(df.format(proportion * 100)) + "");
+		}
+
+		return result_list;
+	}
 		
 	
 }

--
Gitblit v1.8.0