From 28cf328a098334b51a3e9d2d56f983fb8c862211 Mon Sep 17 00:00:00 2001
From: yujian <yujian@163.com>
Date: 星期六, 23 五月 2020 09:54:38 +0800
Subject: [PATCH] 足迹、收藏订单兼容新需求

---
 fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderMoneyDailyCountServiceImpl.java |  113 ++++++++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 101 insertions(+), 12 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderMoneyDailyCountServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderMoneyDailyCountServiceImpl.java
index a3c283e..2bfe4ce 100644
--- a/fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderMoneyDailyCountServiceImpl.java
+++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderMoneyDailyCountServiceImpl.java
@@ -1,5 +1,6 @@
 package com.yeshi.fanli.service.impl.order;
 
+import java.text.SimpleDateFormat;
 import java.util.Date;
 import java.util.List;
 
@@ -13,6 +14,7 @@
 import com.yeshi.fanli.util.StringUtil;
 import com.yeshi.fanli.util.TimeUtil;
 import com.yeshi.fanli.util.annotation.RequestSerializableByKeyService;
+import com.yeshi.fanli.vo.order.OrderRankingVO;
 
 @Service
 public class OrderMoneyDailyCountServiceImpl implements OrderMoneyDailyCountService {
@@ -20,34 +22,121 @@
 	@Resource
 	private OrderMoneyDailyCountDao orderMoneyDailyCountDao;
 
-	
 	@Override
 	@RequestSerializableByKeyService(key = "#record.uid")
 	public void saveDailyCount(OrderMoneyDailyCount record) {
-		if (record.getUid() == null || record.getCountDay() == null || StringUtil.isNullOrEmpty(record.getSourceType())) {
+		if (record.getUid() == null || record.getCountDay() == null) {
 			return; // 鍙傛暟涓嶅叏
 		}
 		String gernalTime = TimeUtil.getGernalTime(record.getCountDay().getTime());
-		String id = StringUtil.Md5(record.getUid() + record.getSourceType() + gernalTime);
-		
-		// id
+		String id = record.getUid() + "#";
+		if (record.getSourceType() != null)
+			id += record.getSourceType().name() + "#";
+		id += gernalTime;
+		id = StringUtil.Md5(id);
+
 		record.setId(id);
 		// 缁熻鏃ユ湡-骞存湀鏃�
 		record.setCountDay(new Date(TimeUtil.convertDateToTemp(gernalTime)));
-		
-	    OrderMoneyDailyCount dailyCount = orderMoneyDailyCountDao.getById(id);
-		if (dailyCount == null) {
-			// 閫夋嫨鎬ф洿鏂�
-			orderMoneyDailyCountDao.save(record);
-		} else {
-			// 閫夋嫨鎬ф彃鍏�
+
+		SimpleDateFormat formatMonth = new SimpleDateFormat("yyyy-MM");
+		record.setYearMonth(formatMonth.format(record.getCountDay()));
+
+		OrderMoneyDailyCount dailyCount = orderMoneyDailyCountDao.get(id);
+		if (dailyCount != null) {
 			orderMoneyDailyCountDao.updateSelective(record);
+		} else {
+			initData(record);
+			record.setUpdateTime(new Date());
+			orderMoneyDailyCountDao.save(record);
 		}
+	}
+
+	private void initData(OrderMoneyDailyCount record) {
+		if (record.getIncome() == null)
+			record.setIncome(0);
+		if (record.getIncomeTeam() == null)
+			record.setIncomeTeam(0);
+		if (record.getOrderNum() == null)
+			record.setOrderNum(0);
+		if (record.getOrderNumTeam() == null)
+			record.setOrderNumTeam(0);
+		if (record.getTeamReward() == null)
+			record.setTeamReward(0);
+		if (record.getTeamRewardNum() == null)
+			record.setTeamRewardNum(0);
+		if (record.getTeamSubsidy() == null)
+			record.setTeamSubsidy(0);
+		if (record.getTeamSubsidyNum() == null)
+			record.setTeamSubsidyNum(0);
+
+		if (record.getDirectOrderNum() == null)
+			record.setDirectOrderNum(0);
+		if (record.getInDirectOrderNum() == null)
+			record.setInDirectOrderNum(0);
+
+		if (record.getBeyondOrderNum() == null)
+			record.setBeyondOrderNum(0);
+	}
+
+	@Override
+	public List<OrderMoneyDailyCount> getByUid(Long uid) {
+		return orderMoneyDailyCountDao.query(uid, null, null);
 	}
 	
 	@Override
 	public List<OrderMoneyDailyCount> query(Long uid, Date minDay, Date maxDay) {
 		return orderMoneyDailyCountDao.query(uid, minDay, maxDay);
 	}
+
+	@Override
+	public List<OrderMoneyDailyCount> sumGroupBySourceType(Long uid, Date minDay, Date maxDay) {
+		return orderMoneyDailyCountDao.sumGroupBySourceType(uid, minDay, maxDay);
+	}
+
+	@Override
+	public List<OrderMoneyDailyCount> sumTeamGroupBySourceType(Long uid, Date minDay, Date maxDay) {
+		return orderMoneyDailyCountDao.sumTeamGroupBySourceType(uid, minDay, maxDay);
+	}
+
+	@Override
+	public List<OrderMoneyDailyCount> sumGroupByCountDay(Long uid, Date minDay, Date maxDay) {
+		return orderMoneyDailyCountDao.sumGroupByCountDay(uid, minDay, maxDay);
+	}
+
+	@Override
+	public List<OrderMoneyDailyCount> sumGroupByYearMonth(Long uid, Date minDay, Date maxDay) {
+		return orderMoneyDailyCountDao.sumGroupByYearMonth(uid, minDay, maxDay);
+	}
+
+	@Override
+	public List<OrderMoneyDailyCount> sumTeamGroupByCountDay(Long uid, Date minDay, Date maxDay) {
+		return orderMoneyDailyCountDao.sumTeamGroupByCountDay(uid, minDay, maxDay);
+	}
+
+	@Override
+	public List<OrderMoneyDailyCount> sumTeamGroupByYearMonth(Long uid, Date minDay, Date maxDay) {
+		return orderMoneyDailyCountDao.sumTeamGroupByYearMonth(uid, minDay, maxDay);
+	}
 	
+	@Override
+	public List<OrderMoneyDailyCount> sumTeamOrderNumGroupByCountDay(Long uid, Date minDay, Date maxDay) {
+		return orderMoneyDailyCountDao.sumTeamOrderNumGroupByCountDay(uid, minDay, maxDay);
+	}
+	
+	@Override
+	public List<OrderMoneyDailyCount> sumTeamOrderNumGroupByYearMonth(Long uid, Date minDay, Date maxDay) {
+		return orderMoneyDailyCountDao.sumTeamOrderNumGroupByYearMonth(uid, minDay, maxDay);
+	}
+	
+	
+	@Override
+	public List<OrderMoneyDailyCount> sumTeamOrderNumGroupByUid(Long uid, Date minDay, Date maxDay) {
+		return orderMoneyDailyCountDao.sumTeamOrderNumGroupByUid(uid, minDay, maxDay);
+	}
+	
+	@Override
+	public List<OrderRankingVO> getRankingByOrderNum(Long uid, Date minDay, Date maxDay) {
+		return orderMoneyDailyCountDao.getRankingByOrderNum(uid, minDay, maxDay);
+	}
 }

--
Gitblit v1.8.0