From f53edec193227af90aad11f557723e72b4860400 Mon Sep 17 00:00:00 2001
From: yujian <yujian>
Date: 星期四, 03 一月 2019 18:18:21 +0800
Subject: [PATCH] 冲突处理

---
 fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserActiveLogServiceImpl.java |   73 ++++++++++++++++++++++++++++++++++++
 1 files changed, 73 insertions(+), 0 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserActiveLogServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserActiveLogServiceImpl.java
index 3837520..c411a14 100644
--- a/fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserActiveLogServiceImpl.java
+++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserActiveLogServiceImpl.java
@@ -1,5 +1,6 @@
 package com.yeshi.fanli.service.impl.user;
 
+import java.text.DecimalFormat;
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.Date;
@@ -66,7 +67,78 @@
 		}
 	}
 	
+	@Override
+	public List<Object> countSameDayAndBuyGoodsByChannel(String channel, Integer type, String years,
+			String startTime, String endTime) throws Exception {
+		List<Map<String, Object>> list = userActiveLogMapper.countSameDayAndBuyGoodsByChannel(channel, type, years, 
+				startTime, endTime);
+		
+		if (list == null || list.size() == 0) {
+			return null;
+		} 
+		
+		switch (type){
+			case 1: // 鎸夊ぉ澶勭悊
+				return dayFactory(startTime, endTime, list);
+			case 2: // 鎸夋湀澶勭悊
+				return monthFactory(list);
+			case 3: 
+				return yearFactory(list);
+			default: 
+				return null;
+		}
+	}
+	
+	
+	@Override
+	public List<Object> getBuyProportion(String channel, Integer type, String years,
+			String startTime, String endTime) throws Exception{
+		
+		List<Object> countList = countSameDayByChannel(channel, type, years, startTime, endTime);
+		
+		if (countList == null || countList.size() == 0) {
+			return null;
+		} 
+		
+		List<Object> countListBuy= countSameDayAndBuyGoodsByChannel(channel, type, years, startTime, endTime);
+		
+		List<Object> listObject = new ArrayList<Object>();
+	
+		for (Object object: countList) {
+			
+			float rate = 0;
+			
+			Map<String, Object> mapObject = new HashMap<String, Object>();
+			
+			Map<String, Object> map = (Map<String, Object>) object;
+			Object createDate = map.get("createDate");
+			Object sameDayNum = map.get("sameDayNum");
+			
+			long totle = Long.parseLong(sameDayNum.toString());
+			if (totle > 0 && countListBuy != null && countListBuy.size() > 0) {
+				for (int j = 0; j < countListBuy.size(); j++) {
+					Map<String, Object> mapBuy = (Map<String, Object>) countListBuy.get(j);
+					Object createDate2 = mapBuy.get("createDate");
+					if (createDate.toString().equals(createDate2.toString())) {
+						Object buyNum = mapBuy.get("sameDayNum");
+						long totleBuy = Long.parseLong(buyNum.toString());
+						rate = (float)totleBuy/totle;
+						break;
+					}
+				}
+			}
+			
+			DecimalFormat df = new DecimalFormat("0.00");//鏍煎紡鍖栧皬鏁�
+			mapObject.put("sameDayNum", df.format(rate*100));
+			mapObject.put("createDate", createDate);
+			listObject.add(mapObject);
+		}
+		
+		return listObject;
+	}
 
+	
+	
 	public List<Object> dayFactory(String startTime, String endTime, List<Map<String, Object>> list) throws Exception {
 	    
 		List<Object> listObject = new ArrayList<Object>();
@@ -177,4 +249,5 @@
 		
 		return listObject;
 	}
+	
 }

--
Gitblit v1.8.0