From 391b2a3d85dcb55e0164b82beed416c413a85ee3 Mon Sep 17 00:00:00 2001
From: yujian <yujian@163.com>
Date: 星期一, 25 五月 2020 15:22:27 +0800
Subject: [PATCH] 会员数据统计

---
 fanli/src/main/java/com/yeshi/fanli/controller/client/v2/UserOrderControllerV2.java |  172 +++++++++++++++++++++-----------------------------------
 1 files changed, 65 insertions(+), 107 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/UserOrderControllerV2.java b/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/UserOrderControllerV2.java
index 1318dfb..af9c125 100644
--- a/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/UserOrderControllerV2.java
+++ b/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/UserOrderControllerV2.java
@@ -7,10 +7,8 @@
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.HashMap;
-import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
-import java.util.Map.Entry;
 
 import javax.annotation.Resource;
 
@@ -40,8 +38,6 @@
 import com.yeshi.fanli.entity.order.ESOrder;
 import com.yeshi.fanli.entity.order.HongBaoOrder;
 import com.yeshi.fanli.entity.order.UserOrderWeiQuanRecord;
-import com.yeshi.fanli.entity.order.dividents.TeamDividentsSourceOrder;
-import com.yeshi.fanli.entity.order.dividents.TeamDividentsSourceOrderUserMap;
 import com.yeshi.fanli.entity.system.ConfigKeyEnum;
 import com.yeshi.fanli.entity.system.SystemCoupon.CouponTypeEnum;
 import com.yeshi.fanli.entity.taobao.TaoBaoWeiQuanOrder;
@@ -501,7 +497,7 @@
 		BigDecimal shareMoney = null;
 		BigDecimal teamMoney = null;
 		// VIP棰勮淇℃伅
-		if (VersionUtil.greaterThan_2_1(acceptData.getPlatform(), acceptData.getVersion())) {
+		if (VersionUtil.greaterThan_2_1_1(acceptData.getPlatform(), acceptData.getVersion())) {
 			String redisContent = previewInfoService.getRedisContent(uid, PreviewEnum.mineInfo);
 			if (!StringUtil.isNullOrEmpty(redisContent)) {
 				MineInfoVO vo = new Gson().fromJson(redisContent, MineInfoVO.class);
@@ -807,7 +803,7 @@
 	 * @param out
 	 */
 	@RequestMapping(value = "teamOrderSearch")
-	public void teamOrderSearch(String callback, AcceptData acceptData, Long uid, String key, PrintWriter out) {
+	public void teamOrderSearch(String callback, AcceptData acceptData, Long uid, Integer page, String key, PrintWriter out) {
 		if (uid == null) {
 			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(1, "鐢ㄦ埛鏈櫥褰�"));
 			return;
@@ -816,127 +812,88 @@
 		List<TeamOrderVO> resultList = new ArrayList<>();
 		if (StringUtil.isNullOrEmpty(key)) {
 			JSONObject data = new JSONObject();
+			data.put("count", 0);
 			data.put("list", resultList);
 			JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
 			return;
 		}
 
 		try {
-			// 鏌ヨ姝ゅ崟鏄惁瀛樺湪鍒嗙孩
-			List<TeamOrderVO> tempList = new ArrayList<>();
-			List<TeamDividentsSourceOrder> listSourceOrder = teamDividentsSourceOrderService.listByOrderNo(key);
-			if (listSourceOrder != null && listSourceOrder.size() > 0) {
-				for (TeamDividentsSourceOrder sourceOrder: listSourceOrder) {
-					List<TeamDividentsSourceOrderUserMap> listDividents = 
-							teamDividentsSourceOrderUserMapService.listBySourceOrderIdAndTargetUid(sourceOrder.getId(), uid);
-					if (listDividents != null && listDividents.size() > 0) {
-						Integer state = null;
-						Date sendTime = null;
-						BigDecimal money = BigDecimal.ZERO; 
-						for (TeamDividentsSourceOrderUserMap teamDividents: listDividents) {
-							money = money.add(teamDividents.getMoney());
-							state = teamDividents.getState();
-							sendTime = teamDividents.getSendTime();
-						}
-						
-						TeamOrderVO teamOrderVO = new TeamOrderVO();
-						teamOrderVO.setSourceType(sourceOrder.getSourceType());
-						teamOrderVO.setOrderNo(sourceOrder.getOrderNo());
-						teamOrderVO.setDivMoney(money);
-						teamOrderVO.setDivState(state);
-						if (sendTime != null)
-							teamOrderVO.setAccountTime(TimeUtil.formatDate(sendTime));
-						tempList.add(teamOrderVO);
-					}
-				}
+			if (page == null)
+				page = 1;
+			
+			List<TeamOrderVO> list = teamDividentsSourceOrderUserMapService.searchByOrderNoOrSourceUid((page-1)*20, 20, uid, key);
+			if (list == null) {
+				list = new ArrayList<>();
 			}
 			
-			if (tempList.size() > 0) {
-				List<CommonOrder> listOrder = commonOrderService.listByOrderNo(key);
-				if(listOrder != null && listOrder.size() > 0) {
-					Map<String, TeamOrderVO> map = new HashMap<String, TeamOrderVO>();
-					for (CommonOrder order: listOrder) {
-						Integer sourceType = order.getSourceType();
-						String orderNo = order.getOrderNo();
-						String mapKey = orderNo + "##" + sourceType;
-						
-						TeamOrderVO teamVO = map.get(mapKey);
-						if (teamVO != null) {
-							teamVO.setPayment(teamVO.getPayment().add(order.getPayment()));
-						} else {
-							Long orderUid = order.getUserInfo().getId();
-							teamVO = new TeamOrderVO();
-							teamVO.setUid(orderUid);
-							teamVO.setOrderNo(orderNo);
-							teamVO.setSourceType(sourceType);
+			if (list.size() > 0) {
+				for (int i = 0; i < list.size(); i ++) {
+					TeamOrderVO teamVO = list.get(i);
+					// 绮変笣浠f暟
+					ThreeSaleDetail threeDetail = threeSaleDetailService.getByBossUidAndWorkerUid(uid, teamVO.getUid());
+					if (threeDetail == null) {
+						list.remove(i);
+						i--;
+						continue;
+					}
+					teamVO.setTeamGrade(threeDetail.getLevel());
+					
+					// 绮変笣鍩烘湰淇℃伅
+					UserInfo userInfo = userInfoService.getUserByIdWithMybatis(teamVO.getUid());
+					if (userInfo == null) {
+						list.remove(i);
+						i--;
+						continue;
+					}
+					teamVO.setNickName(userInfo.getNickName());
+					teamVO.setPortrait(userInfo.getPortrait());
+					
+					
+					BigDecimal payment = BigDecimal.ZERO;
+					List<CommonOrder> listOrder = commonOrderService.listBySourceTypeAndOrderId(teamVO.getSourceType(), teamVO.getOrderNo());
+					if (listOrder != null && listOrder.size() > 0) {
+						for (CommonOrder order: listOrder) {
+							payment = payment.add(order.getPayment());
 							teamVO.setSourceName(order.getChildSourceType());
-							teamVO.setPayment(order.getPayment());
 							teamVO.setDownTime(TimeUtil.formatDate(order.getThirdCreateTime()));
-						
+							
 							// 涓嬪崟鏃剁瓑绾�
 							UserLevelEnum userLevel = UserLevelUtil.getByOrderRank(order.getUrank());
 							if (userLevel == null)
 								userLevel = UserLevelEnum.daRen;
 							teamVO.setUserRank(UserLevelUtil.getShowLevel(userLevel).name());
 							
-							// 绮変笣鍩烘湰淇℃伅
-							UserInfo userInfo = userInfoService.getUserByIdWithMybatis(orderUid);
-							if (userInfo == null) {
-								continue;
-							}
-							teamVO.setUid(orderUid);
-							teamVO.setNickName(userInfo.getNickName());
-							teamVO.setPortrait(userInfo.getPortrait());
+							// 缁撶畻鏃堕棿
+							Date settleTime = order.getSettleTime();
+							if (settleTime != null) 
+								teamVO.setSettleTime(TimeUtil.formatDate(settleTime));
 							
-							// 绮変笣浠f暟
-							ThreeSaleDetail threeDetail = threeSaleDetailService.getByBossUidAndWorkerUid(uid, orderUid);
-							if (threeDetail == null) {
-								continue;
-							}
-							teamVO.setTeamGrade(threeDetail.getLevel());
-						}
-						// 缁撶畻鏃堕棿
-						Date settleTime = order.getSettleTime();
-						if (settleTime != null) 
-							teamVO.setSettleTime(TimeUtil.formatDate(settleTime));
-						
-						// 鍒嗙孩淇℃伅
-						for (TeamOrderVO teamOrderVO: tempList) {
-							if (teamOrderVO.getSourceType() == sourceType) {
-								teamVO.setDivMoney(teamOrderVO.getDivMoney());
-								teamVO.setDivState(teamOrderVO.getDivState());
-								teamVO.setAccountTime(teamOrderVO.getAccountTime());
-								break;
-							}
-						}
-						
-						// 缁存潈淇℃伅
-						Integer orderState = order.getState();
-						if (!StringUtil.isNullOrEmpty(teamVO.getServiceTime()) && CommonOrder.STATE_WQ == orderState) {
-							if (sourceType == Constant.SOURCE_TYPE_TAOBAO) {
-								UserOrderWeiQuanRecord record = userOrderWeiQuanRecordService.selectByOrderInfoAndUid(uid, order.getTradeId(), sourceType);
-								if (record != null) {
-									teamVO.setServiceTime(TimeUtil.formatDate(record.getCreateTime()));
+							// 缁存潈淇℃伅
+							Integer orderState = order.getState();
+							if (!StringUtil.isNullOrEmpty(teamVO.getServiceTime()) && CommonOrder.STATE_WQ == orderState) {
+								if (order.getSourceType() == Constant.SOURCE_TYPE_TAOBAO) {
+									UserOrderWeiQuanRecord record = userOrderWeiQuanRecordService.selectByOrderInfoAndUid(uid, order.getTradeId(), order.getSourceType());
+									if (record != null) {
+										teamVO.setServiceTime(TimeUtil.formatDate(record.getCreateTime()));
+									}
 								}
 							}
+							
 						}
-						String orderTime = "涓嬪崟" + teamVO.getDownTime() ;
-						if (!StringUtil.isNullOrEmpty(teamVO.getSettleTime())) {
-							orderTime += "\n鏀惰揣" + teamVO.getSettleTime();
-						}
-						if (!StringUtil.isNullOrEmpty(teamVO.getServiceTime())) {
-							orderTime += "\n鍞悗" + teamVO.getServiceTime();
-						}
-						teamVO.setOrderTime(orderTime);
-						map.put(mapKey, teamVO);
 					}
+					teamVO.setPayment(payment);
 					
-					// 閬嶅巻鏀惧叆鏁扮粍
-					Iterator<Entry<String, TeamOrderVO>> entries = map.entrySet().iterator();
-					while(entries.hasNext()){
-					    Entry<String, TeamOrderVO> entry = entries.next();
-					    resultList.add(entry.getValue());
+					
+					// 璁㈠崟鏃堕棿淇℃伅
+					String orderTime = "涓嬪崟" + teamVO.getDownTime() ;
+					if (!StringUtil.isNullOrEmpty(teamVO.getSettleTime())) {
+						orderTime += "\n鏀惰揣" + teamVO.getSettleTime();
 					}
+					if (!StringUtil.isNullOrEmpty(teamVO.getServiceTime())) {
+						orderTime += "\n鍞悗" + teamVO.getServiceTime();
+					}
+					teamVO.setOrderTime(orderTime);
 				}
 			}
 			
@@ -949,14 +906,15 @@
 						return new JsonPrimitive("");
 					} else {
 						// 淇濈暀2浣嶅皬鏁�
-						return new JsonPrimitive(MoneyBigDecimalUtil.getWithNoZera(value) + "");
+						value = value.setScale(2, BigDecimal.ROUND_DOWN);
+						return new JsonPrimitive(value.toString());
 					}
 				}
 			});
 			Gson gson = gsonBuilder.create();
-			
 			JSONObject data = new JSONObject();
-			data.put("list", gson.toJson(resultList));
+			data.put("count", teamDividentsSourceOrderUserMapService.countSearchByOrderNoOrSourceUid(uid, key));
+			data.put("list", gson.toJson(list));
 			JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
 		} catch (Exception e) {
 			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鐢ㄦ埛涓嶅瓨鍦�"));

--
Gitblit v1.8.0