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