From 156f9226d433d62ea50a7ad417946b76578244d2 Mon Sep 17 00:00:00 2001
From: yujian <yujian@123.com>
Date: 星期二, 21 五月 2019 16:01:15 +0800
Subject: [PATCH] 推荐语最后是否换行处理
---
fanli/src/main/java/com/yeshi/fanli/service/impl/count/UserInfoCountServiceImpl.java | 256 +++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 255 insertions(+), 1 deletions(-)
diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/count/UserInfoCountServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/count/UserInfoCountServiceImpl.java
index f990b8e..e07e639 100644
--- a/fanli/src/main/java/com/yeshi/fanli/service/impl/count/UserInfoCountServiceImpl.java
+++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/count/UserInfoCountServiceImpl.java
@@ -1,9 +1,17 @@
package com.yeshi.fanli.service.impl.count;
+import java.math.BigDecimal;
+import java.text.DecimalFormat;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
+import org.yeshi.utils.DateUtil;
import com.yeshi.fanli.dao.mybatis.UserInfoMapper;
import com.yeshi.fanli.service.inter.count.UserInfoCountService;
@@ -26,10 +34,256 @@
}
@Override
- public double countAllMoney(Double rank) {
+ public BigDecimal countAllMoney(Double rank) {
return userInfoMapper.countAllMoney(rank);
}
+ @Override
+ public long countLoseUser(int daysNum) {
+ return userInfoMapper.countLoseUser(daysNum);
+ }
+
+ @Override
+ public long countHasOrderUser() {
+ return userInfoMapper.countHasOrderUser();
+ }
+
+ @Override
+ public List<Map<String, Object>> countNewUserByDate(String channel,Integer type,String years, String startTime,
+ String endTime) throws Exception {
+ return userInfoMapper.countNewUserByDate(channel, type, years, startTime, endTime);
+
+ }
+
+ @Override
+ public List<Map<String, Object>> getTodayBuyRate(String channel, Integer dateType,String years, String startTime,
+ String endTime) throws Exception {
+
+ List<Map<String, Object>> result_list = null;
+
+ List<Map<String, Object>> listToday =
+ userInfoMapper.getTodayHasOrder(channel, dateType, years, startTime, endTime);
+
+ if (listToday == null || listToday.size() == 0) {
+ return result_list;
+ }
+
+ List<Map<String, Object>> listTotal =
+ userInfoMapper.countNewUserByDate(channel, dateType, years, startTime, endTime);
+
+ if (listTotal == null || listTotal.size() == 0) {
+ return result_list;
+ }
+
+ switch (dateType){
+ case 1: // 鎸夊ぉ澶勭悊
+ result_list = dayFactory(startTime, endTime, listTotal);
+ break;
+ case 2: // 鎸夋湀澶勭悊
+ result_list = monthFactory(listTotal);
+ break;
+ case 3:
+ result_list = yearFactory(listTotal);
+ break;
+ default:
+ break;
+ }
+
+ DecimalFormat df = new DecimalFormat("#.00");
+
+ for (int i = 0; i < result_list.size(); i++) {
+
+ double proportion = 0;
+ Map<String, Object> resultMap = result_list.get(i);
+ Object showDate = resultMap.get("showDate");
+
+ for (int j = 0; j < listToday.size(); j++) {
+
+ Map<String, Object> innerMap = listToday.get(j);
+ Object innerDate = innerMap.get("showDate");
+
+ if (innerDate != null && innerDate.toString().equals(showDate.toString())) {
+ Object innerValue = innerMap.get("showValue");
+ long innerData = Long.parseLong(innerValue.toString());
+
+ Object showValue = resultMap.get("showValue");
+ long showData = Long.parseLong(showValue.toString());
+
+ if (showData > 0) {
+ proportion = innerData/(double)showData;
+ }
+
+ break; // 缁撴潫鍐呴儴寰幆
+ }
+ }
+
+ resultMap.put("showValue", Double.parseDouble(df.format(proportion *100)));
+ }
+
+ return result_list;
+ }
+
+
+ @Override
+ public List<Object> getWeekBuyRate(String channel, String startTime, String endTime,
+ Integer orderNum, List<String> dateList)
+ throws Exception {
+
+ List<Object> resultList = new ArrayList<Object>();
+
+ if (dateList == null || dateList.size() == 0) {
+ return resultList;
+ }
+
+ List<Map<String, Object>> totalList = userInfoMapper.countNewUserByDate(channel, 1, null, startTime, endTime);
+ if (totalList == null || totalList.size() == 0) {
+ return resultList;
+ }
+
+ DecimalFormat df = new DecimalFormat("#.00");
+ for (int i = 0; i < dateList.size(); i++) {
+ double proportion = 0;
+
+ String showDate = dateList.get(i);
+ String plusDay = DateUtil.plusDay(7, showDate);
+ Map<String, Object> map = userInfoMapper.getWeekHasOrder(channel, showDate, plusDay, orderNum);
+
+ Object showValue = null;
+ if (map != null) {
+ showValue = map.get("showValue");
+
+ if (showValue != null) {
+ for (int j = 0; j < totalList.size(); j++) {
+ Map<String, Object> mapTotal = totalList.get(j);
+ String reslutTime = mapTotal.get("showDate").toString();
+ if (showDate.equalsIgnoreCase(reslutTime)) {
+ Object totalObject = mapTotal.get("showValue");
+
+ long hasCount = Long.parseLong(showValue.toString());
+ long total = Long.parseLong(totalObject.toString());
+
+ if (total > 0) {
+ proportion = hasCount / (double) total;
+ }
+
+ break;
+ }
+ }
+ }
+ }
+ resultList.add(Double.parseDouble(df.format(proportion * 100)));
+ }
+
+ return resultList;
+ }
+
+
+ public List<Map<String, Object>> dayFactory(String startTime, String endTime, List<Map<String, Object>> list) throws Exception {
+
+ List<Map<String, Object>> listObject = new ArrayList<Map<String, Object>>();
+
+ if (startTime.equals(endTime)) {
+
+ Map<String, Object> map = list.get(0);
+ Object total = map.get("showValue");
+ if (total == null) {
+ map.put("showValue", 0);
+ }
+ listObject.add(map);
+ return listObject;
+ }
+
+ String plusDay = "";
+ for (int i = 0; i < 1000; i++) {
+ if (i == 0) {
+ plusDay = startTime;
+ } else {
+ plusDay = DateUtil.plusDay(i, startTime);
+ }
+
+ Map<String, Object> mapObject = new HashMap<String, Object>();
+ Object total = null;
+
+ for (int j = 0; j < list.size(); j++) {
+ Map<String, Object> map = list.get(j);
+ Object createDate = map.get("showDate");
+ String month = createDate.toString();
+ if (plusDay.equalsIgnoreCase(month)) {
+ total = map.get("showValue");
+ break;
+ }
+ }
+
+ if (total == null) {
+ total = 0;
+ }
+ mapObject.put("showValue", total);
+
+ mapObject.put("showDate", plusDay);
+
+ listObject.add(mapObject);
+
+ if (plusDay.equals(endTime)) {
+ break; // 鏃堕棿缁撴潫
+ }
+ }
+
+ return listObject;
+ }
+
+ public List<Map<String, Object>> monthFactory(List<Map<String, Object>> list) {
+
+ List<Map<String, Object>> listObject = new ArrayList<Map<String, Object>>();
+ // 12 涓湀澶勭悊
+ for (int i = 1; i <= 12; i++) {
+ Map<String, Object> mapObject = new HashMap<String, Object>();
+ Object total = null;
+
+ for (int j = 0; j < list.size(); j++) {
+ Map<String, Object> map = list.get(j);
+ Object createDate = map.get("showDate");
+ String month = createDate.toString();
+ if ((i + "").equalsIgnoreCase(month) || i == Integer.parseInt(month)) {
+ total = map.get("showValue");
+ break;
+ }
+ }
+
+ if (total == null) {
+ total = 0;
+ }
+ mapObject.put("showValue", total);
+
+ if (i <10) {
+ mapObject.put("showDate", "0"+ i);
+ } else {
+ mapObject.put("showDate", i);
+ }
+
+ listObject.add(mapObject);
+ }
+ return listObject;
+ }
+
+ public List<Map<String, Object>> yearFactory(List<Map<String, Object>> list) {
+
+ List<Map<String, Object>> listObject = new ArrayList<Map<String, Object>>();
+
+ for (int i = 0; i < list.size(); i++) {
+ Map<String, Object> map = list.get(i);
+ Object total = map.get("showValue");
+
+ if (total == null) {
+ total = 0;
+ }
+ map.put("showValue", total);
+
+ listObject.add(map);
+ }
+
+ return listObject;
+ }
+
}
--
Gitblit v1.8.0