From 26d8a34915d8c0cd19c3a2d21706b12377eb1e05 Mon Sep 17 00:00:00 2001
From: yujian <yujian@123.com>
Date: 星期五, 11 十月 2019 17:20:39 +0800
Subject: [PATCH] 微信支付证书
---
fanli/src/main/java/com/yeshi/fanli/service/impl/count/UserInfoCountServiceImpl.java | 285 ++++++++++++++++++++++++++++++++++++++------------------
1 files changed, 194 insertions(+), 91 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 6a31d04..0b864cd 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,10 +1,9 @@
package com.yeshi.fanli.service.impl.count;
-import java.text.SimpleDateFormat;
+import java.math.BigDecimal;
+import java.text.DecimalFormat;
import java.util.ArrayList;
-import java.util.Date;
-import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -13,14 +12,20 @@
import org.springframework.stereotype.Service;
import org.yeshi.utils.DateUtil;
+import com.yeshi.fanli.dao.mybatis.UserInfoCountMapper;
import com.yeshi.fanli.dao.mybatis.UserInfoMapper;
+import com.yeshi.fanli.dto.ChartTDO;
import com.yeshi.fanli.service.inter.count.UserInfoCountService;
+import com.yeshi.fanli.vo.user.UserGoldCoinVO;
@Service
public class UserInfoCountServiceImpl implements UserInfoCountService {
@Resource
private UserInfoMapper userInfoMapper;
+
+ @Resource
+ private UserInfoCountMapper userInfoCountMapper;
@Override
@@ -34,7 +39,7 @@
}
@Override
- public double countAllMoney(Double rank) {
+ public BigDecimal countAllMoney(Double rank) {
return userInfoMapper.countAllMoney(rank);
}
@@ -49,134 +54,232 @@
return userInfoMapper.countHasOrderUser();
}
- public List<Object> countNewUserByDate(Integer type,String years, String startTime,
+ @Override
+ public List<ChartTDO> countNewUserByDate(String channel,Integer type,String years, String startTime,
String endTime) throws Exception {
- List<Map<String, Object>> list = userInfoMapper.countNewUserByDate(type, years, startTime, endTime);
+ return userInfoMapper.countNewUserByDate(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;
- }
}
-
- public List<Object> dayFactory(String startTime, String endTime, List<Map<String, Object>> list) throws Exception {
-
- List<Object> listObject = new ArrayList<Object>();
-
- if (startTime.equals(endTime)) {
-
- Map<String, Object> map = list.get(0);
- Object total = map.get("total");
- if (total == null) {
- map.put("payMoney", 0);
- }
- listObject.add(map);
- return listObject;
+ @Override
+ public List<ChartTDO> getTodayBuyRate(String channel, Integer dateType,String years, String startTime,
+ String endTime) throws Exception {
+
+ List<ChartTDO> result_list = null;
+
+ List<ChartTDO> listToday =
+ userInfoMapper.getTodayHasOrder(channel, dateType, years, startTime, endTime);
+
+ if (listToday == null || listToday.size() == 0) {
+ return result_list;
+ }
+
+ List<ChartTDO> 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;
+ ChartTDO chartTDO = result_list.get(i);
+ String showDate = chartTDO.getShowDate();
+ for (int j = 0; j < listToday.size(); j++) {
+ ChartTDO innerTDO = listToday.get(j);
+ String innerDate = innerTDO.getShowDate();
+ if (innerDate != null && innerDate.equals(showDate)) {
+ String innerValue = innerTDO.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;
+ }
+
+
+ @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<ChartTDO> 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);
+ ChartTDO chartTDO = userInfoMapper.getWeekHasOrder(channel, showDate, plusDay, orderNum);
+
+ String showValue = null;
+ if (chartTDO != null) {
+ showValue = chartTDO.getShowValue();
+ if (showValue != null) {
+ for (int j = 0; j < totalList.size(); j++) {
+ ChartTDO chart = totalList.get(j);
+ String reslutTime = chart.getShowDate();
+ if (showDate.equalsIgnoreCase(reslutTime)) {
+ String totalObject = chart.getShowValue();
+ long hasCount = Long.parseLong(showValue);
+ long total = Long.parseLong(totalObject);
+
+ if (total > 0) {
+ proportion = hasCount / (double) total;
+ }
+
+ break;
+ }
+ }
+ }
+ }
+ resultList.add(Double.parseDouble(df.format(proportion * 100)));
+ }
+
+ return resultList;
+ }
+
+
+ public List<ChartTDO> dayFactory(String startTime, String endTime, List<ChartTDO> list) throws Exception {
+ List<ChartTDO> listObject = new ArrayList<ChartTDO>();
+ if (startTime.equals(endTime)) {
+ ChartTDO chartTDO = list.get(0);
+ String showValue = chartTDO.getShowValue();
+ if (showValue == null) {
+ chartTDO.setShowValue("0");
+ }
+ listObject.add(chartTDO);
+ return listObject;
+ }
+
String plusDay = "";
- for (int i = 0; i < 1000 ; i++) {
+ 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;
-
+ String total = null;
for (int j = 0; j < list.size(); j++) {
- Map<String, Object> map = list.get(j);
- Object createDate = map.get("createDate");
- String month = createDate.toString();
+ ChartTDO chartTDO = list.get(j);
+ String month = chartTDO.getShowDate();
if (plusDay.equalsIgnoreCase(month)) {
- total = map.get("total");
+ total = chartTDO.getShowValue();
break;
}
}
-
+
if (total == null) {
- total = 0;
+ total = "0";
}
- mapObject.put("total", total);
-
- SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
- SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy/MM/dd");
- Date parseDate = sdf.parse(plusDay.toString());
-
- mapObject.put("createDate", sdf2.format(parseDate));
-
- listObject.add(mapObject);
-
+ ChartTDO chartTDO = new ChartTDO();
+ chartTDO.setShowValue(total);
+ chartTDO.setShowDate(plusDay);
+ listObject.add(chartTDO);
+
if (plusDay.equals(endTime)) {
break; // 鏃堕棿缁撴潫
}
}
-
+
return listObject;
}
-
-
- public List<Object> monthFactory(List<Map<String, Object>> list) {
-
- List<Object> listObject = new ArrayList<Object>();
+
+ public List<ChartTDO> monthFactory(List<ChartTDO> list) {
+ List<ChartTDO> listObject = new ArrayList<ChartTDO>();
// 12 涓湀澶勭悊
for (int i = 1; i <= 12; i++) {
- Map<String, Object> mapObject = new HashMap<String, Object>();
- Object total = null;
-
+ String total = null;
for (int j = 0; j < list.size(); j++) {
- Map<String, Object> map = list.get(j);
- Object createDate = map.get("createDate");
- String month = createDate.toString();
- if ((i+"").equalsIgnoreCase(month) || i == Integer.parseInt(month)) {
- total = map.get("total");
+ ChartTDO chartTDO = list.get(j);
+ String month = chartTDO.getShowDate();
+ if ((i + "").equalsIgnoreCase(month) || i == Integer.parseInt(month)) {
+ total = chartTDO.getShowValue();
break;
}
}
-
+
if (total == null) {
- total = 0;
+ total = "0";
}
- mapObject.put("total", total);
- mapObject.put("createDate", i + "鏈�");
+ ChartTDO chartTDO = new ChartTDO();
+ chartTDO.setShowValue(total);
- listObject.add(mapObject);
+ if (i <10) {
+ chartTDO.setShowDate( "0"+ i);
+ } else {
+ chartTDO.setShowDate( ""+ i);
+ }
+ listObject.add(chartTDO);
}
return listObject;
+ }
+
+ public List<ChartTDO> yearFactory(List<ChartTDO> list) {
+ List<ChartTDO> listObject = new ArrayList<ChartTDO>();
+ for (int i = 0; i < list.size(); i++) {
+ ChartTDO chartTDO = list.get(i);
+ String total = chartTDO.getShowValue();
+ if (total == null) {
+ total = "0";
+ }
+ chartTDO.setShowValue(total);
+ listObject.add(chartTDO);
+ }
+ return listObject;
+ }
+
+ @Override
+ public List<UserGoldCoinVO> listByUserGoldCoin(long start, int count, int type) {
+ return userInfoCountMapper.listByUserGoldCoin(start, count, type);
+ }
+
+ @Override
+ public long countByUserGoldCoin(int type) {
+ return userInfoCountMapper.countByUserGoldCoin(type);
}
- public List<Object> yearFactory(List<Map<String, Object>> list) {
-
- List<Object> listObject = new ArrayList<Object>();
-
- for (int i = 0; i < list.size(); i++) {
- Map<String, Object> map = list.get(i);
- Object total = map.get("total");
-
- if (total == null) {
- total = 0;
- }
- map.put("total", total);
-
- listObject.add(map);
- }
-
- return listObject;
+
+ @Override
+ public List<UserGoldCoinVO> listByHasGoldCoin(long start, int count) {
+ return userInfoCountMapper.listByHasGoldCoin(start, count);
}
-
+ @Override
+ public long countByHasGoldCoin() {
+ return userInfoCountMapper.countByHasGoldCoin();
+ }
}
--
Gitblit v1.8.0