From 92c681fabac989d1a9f16fa13202d7f5ccac52d9 Mon Sep 17 00:00:00 2001
From: yujian <yujian>
Date: 星期一, 14 一月 2019 10:22:22 +0800
Subject: [PATCH] 订单优化 + 后台提现曲线图

---
 fanli/src/main/java/com/yeshi/fanli/mapping/order/CommonOrderMapper.xml |  173 ++++++++++++++++++---------------------------------------
 1 files changed, 55 insertions(+), 118 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/mapping/order/CommonOrderMapper.xml b/fanli/src/main/java/com/yeshi/fanli/mapping/order/CommonOrderMapper.xml
index 0fcc883..ee95068 100644
--- a/fanli/src/main/java/com/yeshi/fanli/mapping/order/CommonOrderMapper.xml
+++ b/fanli/src/main/java/com/yeshi/fanli/mapping/order/CommonOrderMapper.xml
@@ -303,11 +303,11 @@
 
 	<select id="listUserOrder" resultMap="ResultMap">   
 	    <!-- 鏌ヨ鐢ㄦ埛璁㈠崟 -->
-		SELECT COALESCE(SUM(IF(hb.hb_id IS NULL,hbp.`hb_money`,hb.`hb_money`)),0)AS totalMoney,
-				IF(hb.hb_id IS NULL,hbp.`hb_state`,hb.hb_state) AS hongBaoState,
-				IF(hb.hb_id IS NULL,hbp.`hb_type`,hb.`hb_type`) AS hongBaoType,
-				IF(hb.hb_id IS NULL,hbp.`hb_get_time`,hb.`hb_get_time`)  AS accountTime,
-				IF(hb.hb_id IS NULL,hbp.`hb_pre_get_time`,hb.`hb_pre_get_time`) AS preAccountTime,
+		SELECT COALESCE(SUM(hb.`hb_money`),0)AS totalMoney,
+				hb.hb_state AS hongBaoState,
+				hb.`hb_type` AS hongBaoType,
+				hb.`hb_get_time` AS accountTime,
+				hb.`hb_pre_get_time`AS preAccountTime,
 				co.*
 		FROM yeshi_ec_hongbao_order ho 
 		
@@ -315,16 +315,9 @@
 					WHERE v2.`hb_uid`= #{uid} 
 						<include refid="SELECT_PARAM_HONGBAO_TYPE"/>  <!-- 绾㈠寘绫诲瀷 -->
 						<include refid="SELECT_PARAM_HONGBAO_STATE"/> <!-- 绾㈠寘鐘舵�� -->
-				)hb ON hb.hb_id=ho.`ho_hongbao_id`
-				
-		LEFT JOIN (SELECT * FROM yeshi_ec_hongbao_v2 v2 
-					WHERE v2.`hb_uid`= #{uid} 
-						<include refid="SELECT_PARAM_HONGBAO_TYPE"/>  <!-- 绾㈠寘绫诲瀷 -->
-						<include refid="SELECT_PARAM_HONGBAO_STATE"/> <!-- 绾㈠寘鐘舵�� -->
-				)hbp ON  hbp.hb_pid=ho.`ho_hongbao_id`
-				
+				)hb ON IF(hb.hb_pid IS NULL,hb.hb_id,hb.hb_pid)=ho.`ho_hongbao_id`
 		LEFT JOIN yeshi_ec_common_order co ON co.`co_id`=ho.`ho_order_id`
-		WHERE (hb.hb_id IS NOT NULL OR hbp.hb_id IS NOT NULL)
+		WHERE hb.hb_id IS NOT NULL
 			  <include refid="SELECT_PARAM_ORDER_STATE"/>        <!-- 璁㈠崟鐘舵�� -->
 			  <include refid="SELECT_PARAM_ORDER_CREATE_TIME"/>  <!-- 璁㈠崟鏃堕棿 -->
 			  <if test="orderNo != null and orderNo !='' ">
@@ -343,16 +336,10 @@
 					WHERE v2.`hb_uid`= #{uid} 
 						<include refid="SELECT_PARAM_HONGBAO_TYPE"/>  <!-- 绾㈠寘绫诲瀷 -->
 						<include refid="SELECT_PARAM_HONGBAO_STATE"/> <!-- 绾㈠寘鐘舵�� -->
-				)hb ON hb.hb_id=ho.`ho_hongbao_id`
-				
-			LEFT JOIN (SELECT * FROM yeshi_ec_hongbao_v2 v2 
-					WHERE v2.`hb_uid`= #{uid} 
-						<include refid="SELECT_PARAM_HONGBAO_TYPE"/>  <!-- 绾㈠寘绫诲瀷 -->
-						<include refid="SELECT_PARAM_HONGBAO_STATE"/> <!-- 绾㈠寘鐘舵�� -->
-				)hbp ON hbp.hb_pid=ho.`ho_hongbao_id`
+				)hb ON IF(hb.hb_pid IS NULL,hb.hb_id,hb.hb_pid)=ho.`ho_hongbao_id`
 				
 		 	 LEFT JOIN yeshi_ec_common_order co ON co.`co_id`=ho.`ho_order_id`
-			 WHERE (hb.hb_id IS NOT NULL OR hbp.hb_id IS NOT NULL)
+			 WHERE hb.hb_id IS NOT NULL
 			  	   <include refid="SELECT_PARAM_ORDER_STATE"/>        <!-- 璁㈠崟鐘舵�� -->
 			       <include refid="SELECT_PARAM_ORDER_CREATE_TIME"/>  <!-- 璁㈠崟鏃堕棿 -->
 				   <if test="orderNo != null and orderNo !='' ">
@@ -388,13 +375,9 @@
 				LEFT JOIN ( 
 					SELECT * FROM yeshi_ec_hongbao_v2 v2 
 					WHERE v2.`hb_uid`= ${uid} AND (v2.`hb_type` = 1 OR v2.`hb_type` = 2)
-					) hb  ON hb.hb_id=ho.`ho_hongbao_id`
-				LEFT JOIN ( 
-					SELECT * FROM yeshi_ec_hongbao_v2 v2 
-					WHERE v2.`hb_uid`= ${uid} AND (v2.`hb_type` = 1 OR v2.`hb_type` = 2)
-					) hbp  ON hbp.hb_pid=ho.`ho_hongbao_id`
+					) hb  ON hb.hb_id=ho.`ho_hongbao_id` <!-- 鑷喘璁㈠崟 -->
 			LEFT JOIN yeshi_ec_common_order co ON co.`co_id`=ho.`ho_order_id`
-			WHERE (hb.hb_id IS NOT NULL OR hbp.hb_id IS NOT NULL)
+			WHERE hb.hb_id IS NOT NULL
 				<if test="day != null and day == 1"> <!-- 浠婂ぉ -->
 					AND TO_DAYS(co.`co_third_create_time`) = TO_DAYS(NOW())
 				</if>
@@ -418,13 +401,10 @@
 					LEFT JOIN ( 
 						SELECT * FROM yeshi_ec_hongbao_v2 v2 
 						WHERE v2.`hb_uid`= ${uid} AND v2.`hb_type` = 20
-					) hb  ON hb.hb_id=ho.`ho_hongbao_id`
-					LEFT JOIN ( 
-						SELECT * FROM yeshi_ec_hongbao_v2 v2 
-						WHERE v2.`hb_uid`= ${uid} AND v2.`hb_type` = 20
-					) hbp  ON hbp.hb_pid=ho.`ho_hongbao_id`
+					) hb  ON hb.hb_id=ho.`ho_hongbao_id`  <!-- 鍒嗕韩璁㈠崟 -->
+	
 				LEFT JOIN yeshi_ec_common_order co ON co.`co_id`=ho.`ho_order_id`
-				WHERE (hb.hb_id IS NOT NULL OR hbp.hb_id IS NOT NULL)
+				WHERE hb.hb_id IS NOT NULL
 					<if test="day != null and day == 1"> <!-- 浠婂ぉ -->
 						AND TO_DAYS(co.`co_third_create_time`) = TO_DAYS(NOW())
 					</if>
@@ -450,15 +430,9 @@
 					WHERE v2.`hb_uid`= ${uid}
 						 AND (v2.`hb_type` = 5 OR v2.`hb_type` = 6 OR v2.`hb_type` = 7
 							   OR v2.`hb_type` = 21 OR v2.`hb_type` = 22 )
-					) hb  ON hb.hb_id=ho.`ho_hongbao_id`
-				LEFT JOIN ( 
-					SELECT * FROM yeshi_ec_hongbao_v2 v2 
-					WHERE v2.`hb_uid`= ${uid}
-						 AND (v2.`hb_type` = 5 OR v2.`hb_type` = 6 OR v2.`hb_type` = 7
-							   OR v2.`hb_type` = 21 OR v2.`hb_type` = 22 )
 					) hbp  ON hbp.hb_pid=ho.`ho_hongbao_id`
 				LEFT JOIN yeshi_ec_common_order co ON co.`co_id`=ho.`ho_order_id`
-				WHERE (hb.hb_id IS NOT NULL OR hbp.hb_id IS NOT NULL)
+				WHERE  hbp.hb_id IS NOT NULL 
 					<if test="day != null and day == 1"> <!-- 浠婂ぉ -->
 						AND TO_DAYS(co.`co_third_create_time`) = TO_DAYS(NOW())
 					</if>
@@ -487,14 +461,10 @@
 			LEFT JOIN ( 
 				SELECT * FROM yeshi_ec_hongbao_v2 v2 
 				WHERE v2.`hb_uid`=${uid} <include refid="SELECT_PARAM_HONGBAO_TYPE" />
-			) hb  ON hb.hb_id=ho.`ho_hongbao_id`
-			LEFT JOIN ( 
-				SELECT * FROM yeshi_ec_hongbao_v2 v2 
-				WHERE v2.`hb_uid`=${uid} <include refid="SELECT_PARAM_HONGBAO_TYPE" />
-			) hbp  ON hbp.hb_pid=ho.`ho_hongbao_id`
+			) hb  ON IF(hb.hb_pid IS NULL,hb.hb_id,hb.hb_pid)=ho.`ho_hongbao_id`
 			
 			LEFT JOIN yeshi_ec_common_order co ON co.`co_id`=ho.`ho_order_id`
-			WHERE (hb.hb_id IS NOT NULL OR hbp.hb_id IS NOT NULL)
+			WHERE hb.hb_id IS NOT NULL
 				  <![CDATA[AND co.`co_state` <> 3]]>
 				  AND (co.`co_state_whole_order` =1 OR co.`co_state_whole_order` = 2) 
 				<include refid="SELECT_PARAM_ORDER_CREATE_TIME" />
@@ -507,13 +477,9 @@
 				LEFT JOIN ( 
 					SELECT * FROM yeshi_ec_hongbao_v2 v2 
 					WHERE v2.`hb_uid`=${uid} <include refid="SELECT_PARAM_HONGBAO_TYPE" />
-				) hb  ON hb.hb_id=ho.`ho_hongbao_id`
-				LEFT JOIN ( 
-					SELECT * FROM yeshi_ec_hongbao_v2 v2 
-					WHERE v2.`hb_uid`=${uid} <include refid="SELECT_PARAM_HONGBAO_TYPE" />
-				) hbp  ON hbp.hb_pid=ho.`ho_hongbao_id`
+				) hb  ON IF(hb.hb_pid IS NULL,hb.hb_id,hb.hb_pid)=ho.`ho_hongbao_id`
 				LEFT JOIN yeshi_ec_common_order co ON co.`co_id`=ho.`ho_order_id`
-				WHERE (hb.hb_id IS NOT NULL OR hbp.hb_id IS NOT NULL)
+				WHERE hb.hb_id IS NOT NULL
 					  AND co.`co_state` = 3 
 					<include refid="SELECT_PARAM_ORDER_CREATE_TIME" />
 				GROUP BY co.`co_order_no`, co.`co_source_type`)WQ
@@ -525,13 +491,9 @@
 				LEFT JOIN ( 
 					SELECT * FROM yeshi_ec_hongbao_v2 v2 
 					WHERE v2.`hb_uid`=${uid} <include refid="SELECT_PARAM_HONGBAO_TYPE" />
-				) hb  ON hb.hb_id=ho.`ho_hongbao_id`
-				LEFT JOIN ( 
-					SELECT * FROM yeshi_ec_hongbao_v2 v2 
-					WHERE v2.`hb_uid`=${uid} <include refid="SELECT_PARAM_HONGBAO_TYPE" />
-				) hbp  ON hbp.hb_pid=ho.`ho_hongbao_id`
+				) hb  ON IF(hb.hb_pid IS NULL,hb.hb_id,hb.hb_pid)=ho.`ho_hongbao_id`
 				LEFT JOIN yeshi_ec_common_order co ON co.`co_id`=ho.`ho_order_id`
-				WHERE (hb.hb_id IS NOT NULL OR hbp.hb_id IS NOT NULL)
+				WHERE hb.hb_id IS NOT NULL 
 					AND co.`co_state_whole_order` = 3 
 					<include refid="SELECT_PARAM_ORDER_CREATE_TIME" />
 				GROUP BY co.`co_order_no`, co.`co_source_type`)SX
@@ -547,15 +509,9 @@
 				LEFT JOIN ( 
 					SELECT * FROM yeshi_ec_hongbao_v2 v2 
 					WHERE v2.`hb_uid`=${uid} <include refid="SELECT_PARAM_HONGBAO_TYPE" />
-				) hb  ON hb.hb_id=ho.`ho_hongbao_id`
-				
-				LEFT JOIN ( 
-					SELECT * FROM yeshi_ec_hongbao_v2 v2 
-					WHERE v2.`hb_uid`=${uid} <include refid="SELECT_PARAM_HONGBAO_TYPE" />
-				) hbp  ON hbp.hb_pid=ho.`ho_hongbao_id`
-				
+				) hb  ON IF(hb.hb_pid IS NULL,hb.hb_id,hb.hb_pid)=ho.`ho_hongbao_id`
 				LEFT JOIN yeshi_ec_common_order co ON co.`co_id`=ho.`ho_order_id`
-				WHERE (hb.hb_id IS NOT NULL OR hbp.hb_id IS NOT NULL)
+				WHERE hb.hb_id IS NOT NULL 
 					<include refid="SELECT_PARAM_ORDER_CREATE_TIME" />
 				GROUP BY co.`co_order_no`, co.`co_source_type`
 		)A
@@ -563,20 +519,15 @@
 
 	<select id="countBonusOrderMoney" resultType="java.math.BigDecimal">
 		<!-- 濂栭噾缁熻锛氳鍗曟�昏繑鍒╅噾棰� 鍘绘帀宸插け鏁� -->
-		SELECT COALESCE(SUM(IF(hb.hb_id IS NULL,hbp.`hb_money`,hb.`hb_money`)),0)AS totalmoney
+		SELECT COALESCE(SUM(hb.`hb_money`),0)AS totalmoney
 		FROM yeshi_ec_hongbao_order ho 	
 		LEFT JOIN ( 
 			SELECT * FROM yeshi_ec_hongbao_v2 v2 
 			WHERE v2.`hb_uid`=${uid} <include refid="SELECT_PARAM_HONGBAO_TYPE" />
 				  AND (v2.hb_state = 1 or v2.hb_state = 2 or v2.hb_state = 3)
-		) hb  ON hb.hb_id=ho.`ho_hongbao_id`
-		LEFT JOIN ( 
-			SELECT * FROM yeshi_ec_hongbao_v2 v2 
-			WHERE v2.`hb_uid`=${uid} <include refid="SELECT_PARAM_HONGBAO_TYPE" />
-			AND (v2.hb_state = 1 or v2.hb_state = 2 or v2.hb_state = 3)
-		) hbp  ON hbp.hb_pid=ho.`ho_hongbao_id`
+		) hb  ON IF(hb.hb_pid IS NULL,hb.hb_id,hb.hb_pid)=ho.`ho_hongbao_id`
 		LEFT JOIN yeshi_ec_common_order co ON co.`co_id`=ho.`ho_order_id`
-		WHERE (hb.hb_id IS NOT NULL OR hbp.hb_id IS NOT NULL)
+		WHERE hb.hb_id IS NOT NULL
 			<include refid="SELECT_PARAM_ORDER_CREATE_TIME" />
 			<if test="day != null and day == 4"> 
 				AND co.`co_state` = 2  <!-- 涓婃湀 :缁熻宸叉敹璐� -->
@@ -584,36 +535,35 @@
 	</select>
 	
 	<select id="countBonusOrderMoneyAndNumber" resultType="java.util.HashMap">
-		<!-- 濂栭噾缁熻鏈夋晥璁㈠崟锛氳鍗曟�婚噾棰� / 鎬昏鍗曟暟      -->
-		SELECT COUNT(ho.`ho_id`) AS totalNum,
-			CAST(SUM(IF(hb.hb_id IS NULL,hbp.`hb_money`,hb.`hb_money`))AS DECIMAL(19,2)) AS totalmoney
-		FROM yeshi_ec_hongbao_order ho 	
-		LEFT JOIN ( 
-			SELECT * FROM yeshi_ec_hongbao_v2 v2 
-			WHERE v2.`hb_uid`=${uid} <include refid="SELECT_PARAM_HONGBAO_TYPE" />
-				  AND (v2.hb_state = 1 or v2.hb_state = 2 or v2.hb_state = 3)
-		) hb  ON hb.hb_id=ho.`ho_hongbao_id`
-		LEFT JOIN ( 
-			SELECT * FROM yeshi_ec_hongbao_v2 v2 
-			WHERE v2.`hb_uid`=${uid} <include refid="SELECT_PARAM_HONGBAO_TYPE" />
-			AND (v2.hb_state = 1 or v2.hb_state = 2 or v2.hb_state = 3)
-		) hbp  ON hbp.hb_pid=ho.`ho_hongbao_id`
-		LEFT JOIN yeshi_ec_common_order co ON co.`co_id`=ho.`ho_order_id`
-		WHERE (hb.hb_id IS NOT NULL OR hbp.hb_id IS NOT NULL)
-			<include refid="SELECT_PARAM_ORDER_CREATE_TIME" />
-			<if test="day != null and day == 4"> 
-				AND co.`co_state` = 2  <!-- 涓婃湀 :缁熻宸叉敹璐� -->
-			</if>
-		GROUP BY co.`co_order_no`, co.`co_source_type`
+		SELECT COUNT(*) AS totalNum, CAST(SUM(moneys) AS DECIMAL(19,2)) AS totalmoney FROM 
+			(SELECT CAST(SUM(hb.`hb_money`) AS DECIMAL(19,2))AS moneys	
+			FROM yeshi_ec_hongbao_order ho 	
+			LEFT JOIN ( 
+				SELECT * FROM yeshi_ec_hongbao_v2 v2 
+				WHERE v2.`hb_uid`=${uid} <include refid="SELECT_PARAM_HONGBAO_TYPE" />
+					  AND (v2.hb_state = 1 or v2.hb_state = 2 or v2.hb_state = 3)
+			) hb  ON IF(hb.hb_pid IS NULL,hb.hb_id,hb.hb_pid)=ho.`ho_hongbao_id`
+			
+			LEFT JOIN yeshi_ec_common_order co ON co.`co_id`=ho.`ho_order_id`
+			WHERE hb.hb_id IS NOT NULL 
+				<include refid="SELECT_PARAM_ORDER_CREATE_TIME" />
+				<if test="day == null"> 
+					AND <![CDATA[co.`co_state` <> 2]]> <!-- 缁熻鏈夋晥鐨� -->
+				</if>
+				<if test="day != null and day == 4"> 
+					AND co.`co_state` = 2 <!-- 涓婃湀 :缁熻宸叉敹璐� -->
+				</if>
+				GROUP BY co.`co_order_no`, co.`co_source_type`
+			)A
 	</select>
 	
 	<select id="listQueryByUid" resultMap="ResultMap">   
 	    <!-- 鏌ヨ鐢ㄦ埛璁㈠崟 -->
-		SELECT  IF(hb.hb_id IS NULL,hbp.`hb_money`,hb.`hb_money`) AS totalMoney,
-				IF(hb.hb_id IS NULL,hbp.`hb_state`,hb.hb_state) AS hongBaoState,
-				IF(hb.hb_id IS NULL,hbp.`hb_type`,hb.`hb_type`) AS hongBaoType,
-				IF(hb.hb_id IS NULL,hbp.`hb_get_time`,hb.`hb_get_time`)  AS accountTime,
-				IF(hb.hb_id IS NULL,hbp.`hb_pre_get_time`,hb.`hb_pre_get_time`) AS preAccountTime,
+		SELECT  hb.`hb_money` AS totalMoney,
+				hb.hb_state AS hongBaoState,
+				hb.`hb_type` AS hongBaoType,
+				hb.`hb_get_time`  AS accountTime,
+				hb.`hb_pre_get_time` AS preAccountTime,
 				co.*,cog.*
 		FROM yeshi_ec_hongbao_order ho 
 		
@@ -621,17 +571,10 @@
 					WHERE v2.`hb_uid`= #{uid} 
 						<include refid="SELECT_PARAM_HONGBAO_TYPE"/>  <!-- 绾㈠寘绫诲瀷 -->
 						<include refid="SELECT_PARAM_HONGBAO_STATE"/> <!-- 绾㈠寘鐘舵�� -->
-				)hb ON hb.hb_id=ho.`ho_hongbao_id`
-				
-		LEFT JOIN (SELECT * FROM yeshi_ec_hongbao_v2 v2 
-					WHERE v2.`hb_uid`= #{uid} 
-						<include refid="SELECT_PARAM_HONGBAO_TYPE"/>  <!-- 绾㈠寘绫诲瀷 -->
-						<include refid="SELECT_PARAM_HONGBAO_STATE"/> <!-- 绾㈠寘鐘舵�� -->
-				)hbp ON  hbp.hb_pid=ho.`ho_hongbao_id`
-				
+				)hb ON IF(hb.hb_pid IS NULL,hb.hb_id,hb.hb_pid)=ho.`ho_hongbao_id`
 		LEFT JOIN yeshi_ec_common_order co ON co.`co_id`=ho.`ho_order_id`
 		LEFT JOIN yeshi_ec_common_order_goods cog ON cog.`cog_id`= co.`co_order_goods_id`
-		WHERE (hb.hb_id IS NOT NULL OR hbp.hb_id IS NOT NULL)
+		WHERE hb.hb_id IS NOT NULL
 			  <include refid="SELECT_PARAM_ORDER_STATE"/>        <!-- 璁㈠崟鐘舵�� -->
 			  <include refid="SELECT_PARAM_ORDER_CREATE_TIME"/>  <!-- 璁㈠崟鏃堕棿 -->
 			  <if test="orderNo != null and orderNo !='' ">
@@ -649,16 +592,10 @@
 					WHERE v2.`hb_uid`= #{uid} 
 						<include refid="SELECT_PARAM_HONGBAO_TYPE"/>  <!-- 绾㈠寘绫诲瀷 -->
 						<include refid="SELECT_PARAM_HONGBAO_STATE"/> <!-- 绾㈠寘鐘舵�� -->
-				)hb ON hb.hb_id=ho.`ho_hongbao_id`
-				
-			LEFT JOIN (SELECT * FROM yeshi_ec_hongbao_v2 v2 
-					WHERE v2.`hb_uid`= #{uid} 
-						<include refid="SELECT_PARAM_HONGBAO_TYPE"/>  <!-- 绾㈠寘绫诲瀷 -->
-						<include refid="SELECT_PARAM_HONGBAO_STATE"/> <!-- 绾㈠寘鐘舵�� -->
-				)hbp ON hbp.hb_pid=ho.`ho_hongbao_id`
+				)hb ON IF(hb.hb_pid IS NULL,hb.hb_id,hb.hb_pid)=ho.`ho_hongbao_id`
 				
 		 	 LEFT JOIN yeshi_ec_common_order co ON co.`co_id`=ho.`ho_order_id`
-			 WHERE (hb.hb_id IS NOT NULL OR hbp.hb_id IS NOT NULL)
+			 WHERE hb.hb_id IS NOT NULL
 			  	   <include refid="SELECT_PARAM_ORDER_STATE"/>        <!-- 璁㈠崟鐘舵�� -->
 			       <include refid="SELECT_PARAM_ORDER_CREATE_TIME"/>  <!-- 璁㈠崟鏃堕棿 -->
 				   <if test="orderNo != null and orderNo !='' ">

--
Gitblit v1.8.0