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/count/DailyCountOrderServiceImpl.java |  203 +++++++++++++++++++++++++++-----------------------
 1 files changed, 110 insertions(+), 93 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/count/DailyCountOrderServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/count/DailyCountOrderServiceImpl.java
index f7137a2..d1a552b 100644
--- a/fanli/src/main/java/com/yeshi/fanli/service/impl/count/DailyCountOrderServiceImpl.java
+++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/count/DailyCountOrderServiceImpl.java
@@ -36,35 +36,34 @@
 
 	@Resource
 	private DailyCountOrderDao dailyCountOrderDao;
-	
+
 	@Resource
 	private HongBaoV2CountService hongBaoV2CountService;
-	
+
 	@Resource
 	private CommonOrderCountService commonOrderCountService;
-	
+
 	@Resource
 	private UserInfoRegisterService userInfoRegisterService;
-	
+
 	@Resource
 	private UserOrderWeiQuanRecordService userOrderWeiQuanRecordService;
-	
+
 	@Resource
 	private TaoBaoOrderService taoBaoOrderService;
-	
+
 	@Resource
 	private JDOrderService jdOrderService;
-	
+
 	@Resource
 	private PDDOrderService pddOrderService;
-	
+
 	@Resource
 	private LostOrderService lostOrderService;
-	
-	
 
 	@Override
-	public List<DailyCountOrder> getDailyCountList(String type, Date startTime, Date endTime, String channel) throws Exception {
+	public List<DailyCountOrder> getDailyCountList(String type, Date startTime, Date endTime, String channel)
+			throws Exception {
 		// 鏌ヨ绫诲瀷
 		DailyCountOrderEnum typeEnum = getTypeEnum(type);
 		if (typeEnum == null) {
@@ -79,6 +78,7 @@
 
 	/**
 	 * 鑾峰彇鏋氫妇绫诲瀷
+	 * 
 	 * @param type
 	 * @return
 	 */
@@ -86,9 +86,9 @@
 		if (StringUtil.isNullOrEmpty(name)) {
 			return null;
 		}
-		
+
 		DailyCountOrderEnum[] array = DailyCountOrderEnum.values();
-		for (int i = 0; i < array.length; i ++) {
+		for (int i = 0; i < array.length; i++) {
 			if (array[i].name().equals(name)) {
 				return array[i];
 			}
@@ -96,9 +96,9 @@
 		return null;
 	}
 
-	
 	/**
 	 * 鑾峰彇鏋氫妇绫诲瀷
+	 * 
 	 * @param type
 	 * @return
 	 */
@@ -107,9 +107,9 @@
 		if (StringUtil.isNullOrEmpty(name)) {
 			return "";
 		}
-		
+
 		DailyCountOrderEnum[] array = DailyCountOrderEnum.values();
-		for (int i = 0; i < array.length; i ++) {
+		for (int i = 0; i < array.length; i++) {
 			if (array[i].name().equals(name)) {
 				return array[i].getDesc();
 			}
@@ -118,22 +118,27 @@
 		return "";
 	}
 
-	
-	
 	/**
 	 * 鍒濆鏁版嵁
+	 * 
 	 * @param typeEnum
 	 * @throws Exception
 	 */
-	private void initData(DailyCountOrderEnum typeEnum) throws Exception {
+	@Override
+	public void initData(DailyCountOrderEnum typeEnum) throws Exception {
 		Date lastDate = null;
 		DailyCountOrder lastRecord = dailyCountOrderDao.getMaxDate(typeEnum);
 		if (lastRecord != null) {
 			lastDate = lastRecord.getUpdateDate();
 		} else {
-			lastDate = TimeUtil.parse("2017-05-06");
+			lastDate = TimeUtil.parse("2018-01-20");
 		}
 
+		long min = DateUtil.dateDiffMin(lastDate, new Date());
+		if (min <= 10) { // 10鍒嗛挓浠ュ唴涓嶇粺璁�
+			return;
+		}
+		
 		Date today = new Date();
 		int betweenDays = DateUtil.daysBetween2(lastDate, today);
 		for (int i = 0; i <= betweenDays; i++) {
@@ -176,69 +181,70 @@
 
 	/**
 	 * 缁熻璁㈠崟鏁伴噺
+	 * 
 	 * @param preDay
 	 * @param typeEnum
 	 * @param orderType
 	 * @throws Exception
 	 */
 	private void addOrderNumCount(String preDay, DailyCountOrderEnum typeEnum, int orderType) throws Exception {
-			Long count = hongBaoV2CountService.countOrderByTypeAndDate(orderType, preDay);
-			if (count == null)
-				count = 0L;
-			
-			DailyCountOrder obj = new DailyCountOrder();
-			obj.setTotal(BigDecimal.valueOf(count));
-			obj.setType(typeEnum);
-			obj.setUpdateDate(new Date());
-			obj.setDay(TimeUtil.parse(preDay));
-			obj.setId(StringUtil.Md5(preDay + typeEnum.name()));
-			dailyCountOrderDao.save(obj);
+		Long count = hongBaoV2CountService.countOrderByTypeAndDate(orderType, preDay);
+		if (count == null)
+			count = 0L;
+
+		DailyCountOrder obj = new DailyCountOrder();
+		obj.setTotal(BigDecimal.valueOf(count));
+		obj.setType(typeEnum);
+		obj.setUpdateDate(new Date());
+		obj.setDay(TimeUtil.parse(preDay));
+		obj.setId(StringUtil.Md5(preDay + typeEnum.name()));
+		dailyCountOrderDao.save(obj);
 	}
-	
+
 	/**
 	 * 缁熻鍚勪釜娓犻亾璁㈠崟鏁版嵁
+	 * 
 	 * @param preDay
 	 * @param typeEnum
 	 * @throws Exception
 	 */
 	private void addChannelOrderNum(String preDay, DailyCountOrderEnum typeEnum) throws Exception {
-		List<UserInfoRegister> listRegister  = null;
+		List<UserInfoRegister> listRegister = null;
 		// 缁熻褰撴棩璁㈠崟
 		List<CountOrderDTO> listOrder = commonOrderCountService.countValidOrderByDay(preDay);
-		
+
 		if (listOrder != null && listOrder.size() > 0) {
 			List<Long> listUid = new ArrayList<>();
-			for (CountOrderDTO countOrderDTO: listOrder) {
+			for (CountOrderDTO countOrderDTO : listOrder) {
 				listUid.add(countOrderDTO.getUid());
 			}
 			listRegister = userInfoRegisterService.listByMultipleUids(listUid);
 		}
-		
+
 		// 缁熻鍚勪釜娓犻亾
 		ChannelEnum[] channels = ChannelEnum.values();
 		for (int i = 0; i < channels.length; i++) {
 			long count = 0;
 			String channelVlaue = channels[i].getVlaue();
 			if (listOrder != null && listOrder.size() > 0 && listRegister != null && listRegister.size() > 0) {
-				for (CountOrderDTO dto: listOrder) {
+				for (CountOrderDTO dto : listOrder) {
 					Long orderUid = dto.getUid();
 					if (orderUid == null) {
 						continue;
 					}
-					
-					for (UserInfoRegister register: listRegister) {
+
+					for (UserInfoRegister register : listRegister) {
 						Long uid = register.getId();
-						String vlaue =register.getChannel().getVlaue();
+						String vlaue = register.getChannel();
 						// 娓犻亾 銆佺敤鎴穒d鍖归厤
 						if (channelVlaue.equalsIgnoreCase(vlaue) && uid.longValue() == orderUid.longValue()) {
-							count ++;
+							count++;
 							break;
 						}
 					}
 				}
 			}
-			
-			
+
 			DailyCountOrder obj = new DailyCountOrder();
 			obj.setTotal(BigDecimal.valueOf(count));
 			obj.setType(typeEnum);
@@ -249,9 +255,10 @@
 			dailyCountOrderDao.save(obj);
 		}
 	}
-	
+
 	/**
 	 * 缁熻鏂颁汉24H鍐呬笅鍗曟暟閲�
+	 * 
 	 * @param preDay
 	 * @param typeEnum
 	 * @throws Exception
@@ -260,7 +267,7 @@
 		ChannelEnum[] channels = ChannelEnum.values();
 		for (int i = 0; i < channels.length; i++) {
 			int count = 0;
-			
+
 			List<UserInfoRegister> list = userInfoRegisterService.listByChannelAndDay(channels[i].getVlaue(), preDay);
 			if (list != null && list.size() > 0) {
 				for (UserInfoRegister user : list) {
@@ -270,7 +277,7 @@
 						count += total;
 				}
 			}
-			
+
 			DailyCountOrder obj = new DailyCountOrder();
 			obj.setTotal(BigDecimal.valueOf(count));
 			obj.setType(typeEnum);
@@ -281,43 +288,43 @@
 			dailyCountOrderDao.save(obj);
 		}
 	}
-	
+
 	/**
 	 * 缁熻娓犻亾閲戦
+	 * 
 	 * @param preDay
 	 * @param typeEnum
 	 * @throws Exception
 	 */
-	private void addChannelOrderMoney(String preDay, DailyCountOrderEnum typeEnum) throws Exception {
-		List<UserInfoRegister> listRegister  = null;
+	public void addChannelOrderMoney(String preDay, DailyCountOrderEnum typeEnum) throws Exception {
+		List<UserInfoRegister> listRegister = null;
 		// 鏌ヨ璁㈠崟浣i噾
 		List<CountOrderDTO> listOrder = commonOrderCountService.countCommissionByDay(preDay);
-		
+
 		if (listOrder != null && listOrder.size() > 0) {
 			List<Long> listUid = new ArrayList<>();
-			for (CountOrderDTO countOrderDTO: listOrder) {
+			for (CountOrderDTO countOrderDTO : listOrder) {
 				listUid.add(countOrderDTO.getUid());
 			}
 			listRegister = userInfoRegisterService.listByMultipleUids(listUid);
 		}
-		
-		
+
 		ChannelEnum[] channels = ChannelEnum.values();
 		for (int i = 0; i < channels.length; i++) {
 			BigDecimal money = new BigDecimal(0);
 			String channelVlaue = channels[i].getVlaue();
-		
+
 			if (listOrder != null && listOrder.size() > 0 && listRegister != null && listRegister.size() > 0) {
-				for (CountOrderDTO dto: listOrder) {
+				for (CountOrderDTO dto : listOrder) {
 					Long orderUid = dto.getUid();
 					BigDecimal commission = dto.getCommission();
-					if (commission != null || orderUid == null) {
+					if (commission == null || orderUid == null) {
 						continue;
 					}
-					
-					for (UserInfoRegister register: listRegister) {
+
+					for (UserInfoRegister register : listRegister) {
 						Long uid = register.getId();
-						String vlaue =register.getChannel().getVlaue();
+						String vlaue = register.getChannel();
 						// 娓犻亾 銆佺敤鎴穒d鍖归厤
 						if (channelVlaue.equalsIgnoreCase(vlaue) && uid.longValue() == orderUid.longValue()) {
 							money = MoneyBigDecimalUtil.add(money, commission);
@@ -325,8 +332,7 @@
 					}
 				}
 			}
-			
-			
+
 			DailyCountOrder obj = new DailyCountOrder();
 			obj.setTotal(money);
 			obj.setType(typeEnum);
@@ -337,9 +343,10 @@
 			dailyCountOrderDao.save(obj);
 		}
 	}
-	
+
 	/**
 	 * 缁熻缁存潈璁㈠崟鏁伴噺
+	 * 
 	 * @param preDay
 	 * @param typeEnum
 	 * @throws Exception
@@ -348,7 +355,7 @@
 		Integer count = userOrderWeiQuanRecordService.countWeiQaunOrderNumberByDate(preDay);
 		if (count == null)
 			count = 0;
-		
+
 		DailyCountOrder obj = new DailyCountOrder();
 		obj.setTotal(BigDecimal.valueOf(count));
 		obj.setType(typeEnum);
@@ -357,10 +364,10 @@
 		obj.setId(StringUtil.Md5(preDay + typeEnum.name()));
 		dailyCountOrderDao.save(obj);
 	}
-	
-	
+
 	/**
 	 * 鏌ヨ缁存潈閲戦
+	 * 
 	 * @param preDay
 	 * @param typeEnum
 	 * @throws Exception
@@ -369,7 +376,7 @@
 		BigDecimal money = userOrderWeiQuanRecordService.countWeiQaunOrderMoneyByDate(preDay);
 		if (money == null)
 			money = new BigDecimal(0);
-		
+
 		DailyCountOrder obj = new DailyCountOrder();
 		obj.setTotal(money);
 		obj.setType(typeEnum);
@@ -378,10 +385,10 @@
 		obj.setId(StringUtil.Md5(preDay + typeEnum.name()));
 		dailyCountOrderDao.save(obj);
 	}
-	
-	
+
 	/**
 	 * 娣樺疂璁㈠崟璺熻釜鐜�
+	 * 
 	 * @param preDay
 	 * @param typeEnum
 	 * @throws Exception
@@ -389,17 +396,20 @@
 	private void addTBOrderTrackRate(String preDay, DailyCountOrderEnum typeEnum) throws Exception {
 		// 缁熻璺熻釜鍒版暟鎹�
 		Long count = commonOrderCountService.countOrderBySourceTypeAndDay(Constant.SOURCE_TYPE_TAOBAO, preDay);
-		
+
 		Long total = taoBaoOrderService.countOrderByDay(preDay);
-		
+
 		// 璁$畻姣斾緥
 		BigDecimal rate = new BigDecimal(0);
 		if (total != null && total > 0 && count != null && count > 0) {
-			rate = MoneyBigDecimalUtil.div(BigDecimal.valueOf(count),BigDecimal.valueOf(total));
+			rate = MoneyBigDecimalUtil.div(BigDecimal.valueOf(count), BigDecimal.valueOf(total));
 			rate = MoneyBigDecimalUtil.mul(rate, BigDecimal.valueOf(100));
-		}	
+		}
 
 		DailyCountOrder obj = new DailyCountOrder();
+		obj.setRate(true);
+		obj.setTotalDay(BigDecimal.valueOf(total));
+		obj.setTotalValid(BigDecimal.valueOf(count));
 		obj.setTotal(rate);
 		obj.setType(typeEnum);
 		obj.setUpdateDate(new Date());
@@ -407,9 +417,10 @@
 		obj.setId(StringUtil.Md5(preDay + typeEnum.name()));
 		dailyCountOrderDao.save(obj);
 	}
-	
+
 	/**
 	 * 浜笢璁㈠崟璺熻釜鐜�
+	 * 
 	 * @param preDay
 	 * @param typeEnum
 	 * @throws Exception
@@ -417,17 +428,20 @@
 	private void addJDOrderTrackRate(String preDay, DailyCountOrderEnum typeEnum) throws Exception {
 		// 缁熻璺熻釜鍒版暟鎹�
 		Long count = commonOrderCountService.countOrderBySourceTypeAndDay(Constant.SOURCE_TYPE_JD, preDay);
-		
+
 		Long total = jdOrderService.countOrderByDay(preDay);
-		
+
 		// 璁$畻姣斾緥
 		BigDecimal rate = new BigDecimal(0);
 		if (total != null && total > 0 && count != null && count > 0) {
-			rate = MoneyBigDecimalUtil.div(BigDecimal.valueOf(count),BigDecimal.valueOf(total));
+			rate = MoneyBigDecimalUtil.div(BigDecimal.valueOf(count), BigDecimal.valueOf(total));
 			rate = MoneyBigDecimalUtil.mul(rate, BigDecimal.valueOf(100));
-		}	
+		}
 
 		DailyCountOrder obj = new DailyCountOrder();
+		obj.setRate(true);
+		obj.setTotalDay(BigDecimal.valueOf(total));
+		obj.setTotalValid(BigDecimal.valueOf(count));
 		obj.setTotal(rate);
 		obj.setType(typeEnum);
 		obj.setUpdateDate(new Date());
@@ -435,11 +449,10 @@
 		obj.setId(StringUtil.Md5(preDay + typeEnum.name()));
 		dailyCountOrderDao.save(obj);
 	}
-	
-	
-	
+
 	/**
 	 * 鎷煎澶氳鍗曡窡韪巼
+	 * 
 	 * @param preDay
 	 * @param typeEnum
 	 * @throws Exception
@@ -447,16 +460,19 @@
 	private void addPDDOrderTrackRate(String preDay, DailyCountOrderEnum typeEnum) throws Exception {
 		// 缁熻璺熻釜鍒版暟鎹�
 		Long count = commonOrderCountService.countOrderBySourceTypeAndDay(Constant.SOURCE_TYPE_PDD, preDay);
-		
+
 		Long total = pddOrderService.countOrderByDay(preDay);
 		// 璁$畻姣斾緥
 		BigDecimal rate = new BigDecimal(0);
 		if (total != null && total > 0 && count != null && count > 0) {
-			rate = MoneyBigDecimalUtil.div(BigDecimal.valueOf(count),BigDecimal.valueOf(total));
+			rate = MoneyBigDecimalUtil.div(BigDecimal.valueOf(count), BigDecimal.valueOf(total));
 			rate = MoneyBigDecimalUtil.mul(rate, BigDecimal.valueOf(100));
-		}	
+		}
 
 		DailyCountOrder obj = new DailyCountOrder();
+		obj.setRate(true);
+		obj.setTotalDay(BigDecimal.valueOf(total));
+		obj.setTotalValid(BigDecimal.valueOf(count));
 		obj.setTotal(rate);
 		obj.setType(typeEnum);
 		obj.setUpdateDate(new Date());
@@ -467,6 +483,7 @@
 
 	/**
 	 * 缁熻鐢宠瘔璁㈠崟鏈鐞嗘暟閲�
+	 * 
 	 * @param preDay
 	 * @param typeEnum
 	 * @throws Exception
@@ -475,7 +492,7 @@
 		Integer num = lostOrderService.countLostOrderNum(preDay, LostOrder.RESULT_CODE_VERFING);
 		if (num == null)
 			num = 0;
-		
+
 		DailyCountOrder obj = new DailyCountOrder();
 		obj.setTotal(BigDecimal.valueOf(num));
 		obj.setType(typeEnum);
@@ -484,10 +501,10 @@
 		obj.setId(StringUtil.Md5(preDay + typeEnum.name()));
 		dailyCountOrderDao.save(obj);
 	}
-	
-	
+
 	/**
 	 * 缁熻鐢宠瘔璁㈠崟 澶勭悊澶辫触
+	 * 
 	 * @param preDay
 	 * @param typeEnum
 	 * @throws Exception
@@ -496,7 +513,7 @@
 		Integer num = lostOrderService.countLostOrderNum(preDay, LostOrder.RESULT_CODE_FAIL);
 		if (num == null)
 			num = 0;
-		
+
 		DailyCountOrder obj = new DailyCountOrder();
 		obj.setTotal(BigDecimal.valueOf(num));
 		obj.setType(typeEnum);
@@ -505,11 +522,10 @@
 		obj.setId(StringUtil.Md5(preDay + typeEnum.name()));
 		dailyCountOrderDao.save(obj);
 	}
-	
-	
-	
+
 	/**
 	 * 缁熻鐢宠瘔璁㈠崟 澶勭悊鎴愬姛
+	 * 
 	 * @param preDay
 	 * @param typeEnum
 	 * @throws Exception
@@ -518,7 +534,7 @@
 		Integer num = lostOrderService.countLostOrderNum(preDay, LostOrder.RESULT_CODE_SUCCESS);
 		if (num == null)
 			num = 0;
-		
+
 		DailyCountOrder obj = new DailyCountOrder();
 		obj.setTotal(BigDecimal.valueOf(num));
 		obj.setType(typeEnum);
@@ -527,9 +543,10 @@
 		obj.setId(StringUtil.Md5(preDay + typeEnum.name()));
 		dailyCountOrderDao.save(obj);
 	}
-	
+
 	/**
 	 * 璁㈠崟鎵惧洖鎴愬姛缁熻閲戦
+	 * 
 	 * @param preDay
 	 * @throws Exception
 	 */
@@ -537,7 +554,7 @@
 		BigDecimal money = lostOrderService.countAppealMoney(preDay);
 		if (money == null)
 			money = new BigDecimal("0");
-		
+
 		DailyCountOrder obj = new DailyCountOrder();
 		obj.setTotal(money);
 		obj.setType(typeEnum);

--
Gitblit v1.8.0