From 047c6fef2dd5bbcef0891a7b4628a09ded0ab882 Mon Sep 17 00:00:00 2001 From: yujian <yujian> Date: 星期三, 09 一月 2019 17:36:38 +0800 Subject: [PATCH] 订单接口优化调整 --- fanli/src/main/java/com/yeshi/fanli/mapping/order/CommonOrderMapper.xml | 671 +++++++++++++++++-------------------------------------- 1 files changed, 208 insertions(+), 463 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 ce84e57..c59f3e0 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 @@ -10,6 +10,7 @@ jdbcType="VARCHAR" /> <result column="co_count" property="count" jdbcType="INTEGER" /> <result column="co_state" property="state" jdbcType="INTEGER" /> + <result column="co_state_whole_order" property="stateWholeOrder" jdbcType="INTEGER" /> <result column="co_estimate" property="estimate" jdbcType="DECIMAL" /> <result column="co_eIncome" property="eIncome" jdbcType="DECIMAL" /> <result column="co_payment" property="payment" jdbcType="DECIMAL" /> @@ -41,6 +42,7 @@ jdbcType="VARCHAR" /> <result column="co_count" property="count" jdbcType="INTEGER" /> <result column="co_state" property="state" jdbcType="INTEGER" /> + <result column="co_state_whole_order" property="stateWholeOrder" jdbcType="INTEGER" /> <result column="co_estimate" property="estimate" jdbcType="DECIMAL" /> <result column="co_eIncome" property="eIncome" jdbcType="DECIMAL" /> <result column="co_payment" property="payment" jdbcType="DECIMAL" /> @@ -71,6 +73,7 @@ jdbcType="VARCHAR" /> <result column="co_count" property="count" jdbcType="INTEGER" /> <result column="co_state" property="state" jdbcType="INTEGER" /> + <result column="co_state_whole_order" property="stateWholeOrder" jdbcType="INTEGER" /> <result column="co_estimate" property="estimate" jdbcType="DECIMAL" /> <result column="co_eIncome" property="eIncome" jdbcType="DECIMAL" /> <result column="co_payment" property="payment" jdbcType="DECIMAL" /> @@ -104,7 +107,7 @@ </resultMap> - <sql id="Base_Column_List">co_id,co_uid,co_order_no,co_source_type,co_source_position,co_order_goods_id,co_count,co_state,co_estimate,co_eIncome,co_payment,co_settlement,co_third_create_time,co_settle_time,co_order_by,co_create_time,co_update_time + <sql id="Base_Column_List">co_id,co_uid,co_order_no,co_source_type,co_source_position,co_order_goods_id,co_count,co_state,co_state_whole_order,co_estimate,co_eIncome,co_payment,co_settlement,co_third_create_time,co_settle_time,co_order_by,co_create_time,co_update_time </sql> <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Long"> @@ -155,6 +158,7 @@ <if test="commonOrderGoods != null">co_order_goods_id,</if> <if test="count != null">co_count,</if> <if test="state != null">co_state,</if> + <if test="stateWholeOrder != null">co_state_whole_order,</if> <if test="estimate != null">co_estimate,</if> <if test="eIncome != null">co_eIncome,</if> <if test="payment != null">co_payment,</if> @@ -175,6 +179,7 @@ <if test="commonOrderGoods != null">#{commonOrderGoods.id,jdbcType=BIGINT},</if> <if test="count != null">#{count,jdbcType=INTEGER},</if> <if test="state != null">#{state,jdbcType=INTEGER},</if> + <if test="stateWholeOrder != null">#{stateWholeOrder,jdbcType=INTEGER},</if> <if test="estimate != null">#{estimate,jdbcType=DECIMAL},</if> <if test="eIncome != null">#{eIncome,jdbcType=DECIMAL},</if> <if test="payment != null">#{payment,jdbcType=DECIMAL},</if> @@ -194,7 +199,8 @@ #{sourcePosition,jdbcType=VARCHAR},co_order_goods_id = #{commonOrderGoods.id,jdbcType=BIGINT},co_count = #{count,jdbcType=INTEGER},co_state = - #{state,jdbcType=INTEGER},co_estimate = + #{state,jdbcType=INTEGER},co_state_whole_order = + #{stateWholeOrder,jdbcType=INTEGER},co_estimate = #{estimate,jdbcType=DECIMAL},co_eIncome = #{eIncome,jdbcType=DECIMAL},co_payment = #{payment,jdbcType=DECIMAL},co_settlement = @@ -217,6 +223,7 @@ </if> <if test="count != null">co_count=#{count,jdbcType=INTEGER},</if> <if test="state != null">co_state=#{state,jdbcType=INTEGER},</if> + <if test="stateWholeOrder != null">co_state_whole_order=#{stateWholeOrder,jdbcType=INTEGER},</if> <if test="estimate != null">co_estimate=#{estimate,jdbcType=DECIMAL},</if> <if test="eIncome != null">co_eIncome=#{eIncome,jdbcType=DECIMAL},</if> <if test="payment != null">co_payment=#{payment,jdbcType=DECIMAL},</if> @@ -231,193 +238,119 @@ where co_id = #{id,jdbcType=BIGINT} </update> - <select id="listGroupOrderNoByUid" resultMap="ResultMap"> - SELECT COALESCE(SUM(th.`hb_money`),0)AS totalMoney,tc.*,th.hb_state AS - hongBaoState, th.hb_type AS hongBaoType, - th.hb_get_time AS - accountTime,th.hb_get_time AS accountTime,th.hb_pre_get_time AS - preAccountTime - FROM yeshi_ec_common_order tc - LEFT JOIN - yeshi_ec_hongbao_order tr ON tr.`ho_order_id` = tc.`co_id` - LEFT JOIN - yeshi_ec_hongbao_v2 th ON (tr.`ho_hongbao_id` = th.`hb_id` OR - th.`hb_pid` = tr.`ho_hongbao_id` ) - WHERE th.`hb_uid` = #{uid} - <if test="state != null and state == 1"> <!-- 鏈埌璐� --> - AND (th.hb_state = 1 or th.hb_state = 2) - </if> - <if test="state != null and state == 2"> <!-- 宸插埌璐� --> - AND th.hb_state = 3 - </if> - <if test="state != null and state == 3"> <!-- 绾㈠寘宸插け鏁� --> - AND th.hb_state =4 - </if> - <if test="type != null and type == 1"> <!-- 鑷喘璁㈠崟 --> - AND (th.hb_type =1 or th.hb_type =2) - </if> - <if test="type != null and type == 2"> <!-- 鍒嗕韩璁㈠崟 --> - AND th.`hb_type` = 20 - </if> - <if test="type != null and type == 3"> <!-- 閭�璇疯鍗� --> - AND (th.`hb_type` = 5 OR th.`hb_type` = 6 OR th.`hb_type` = 7 OR th.`hb_type` = 21 OR th.`hb_type` = 22) - </if> - <if test="orderNo != null"> - AND tc.co_order_no = #{orderNo} - </if> + + + <sql id="SELECT_PARAM_ORDER_STATE"> <if test="orderState != null and orderState == 1"> - AND (tc.co_state = 1 or tc.co_state = 2) <!-- 鏈夋晥璁㈠崟 --> + <!-- 鏈夋晥璁㈠崟: 鏁翠釜璁㈠崟鏈夋晥銆� 閮ㄥ垎璁㈠崟鏈夋晥 --> + AND (co.co_state_whole_order = 1 or co.co_state_whole_order = 2) </if> <if test="orderState != null and orderState == 2"> - AND tc.co_state = 3 <!-- 缁存潈璁㈠崟 --> + AND co.co_state = 3 <!-- 缁存潈璁㈠崟 --> </if> <if test="orderState != null and orderState == 3"> - AND tc.co_state = 4 <!-- 澶辨晥璁㈠崟 --> + <!-- 鏁翠釜璁㈠崟澶辨晥 --> + AND co.co_state_whole_order = 3 </if> + </sql> + + <sql id="SELECT_PARAM_ORDER_CREATE_TIME"> <if test="startTime != null"> - AND <![CDATA[tc.co_create_time >= #{startTime}]]> + AND <![CDATA[co.co_create_time >= #{startTime}]]> </if> <if test="endTime != null"> - AND <![CDATA[tc.co_create_time <= #{endTime}]]> + AND <![CDATA[co.co_create_time <= #{endTime}]]> </if> <if test="day != null and day == 1"> <!-- 浠婂ぉ --> - AND TO_DAYS(tc.`co_create_time`) = TO_DAYS(NOW()) + AND TO_DAYS(co.`co_create_time`) = TO_DAYS(NOW()) </if> <if test="day != null and day == 2"> <!-- 鏄ㄥぉ --> - AND TO_DAYS(NOW()) - TO_DAYS(tc.`co_create_time`) = 1 + AND TO_DAYS(NOW()) - TO_DAYS(co.`co_create_time`) = 1 </if> <if test="day != null and day == 3"> <!-- 鏈湀 --> - AND DATE_FORMAT(tc.`co_create_time`,'%Y%m') = + AND DATE_FORMAT(co.`co_create_time`,'%Y%m') = DATE_FORMAT(CURDATE(),'%Y%m') </if> <if test="day != null and day == 4"> <!-- 涓婃湀 --> - AND PERIOD_DIFF( DATE_FORMAT(NOW(), '%Y%m'), - DATE_FORMAT(tc.`co_create_time`, '%Y%m')) = 1 + AND PERIOD_DIFF(DATE_FORMAT(NOW(), '%Y%m'), + DATE_FORMAT(co.`co_create_time`, '%Y%m')) = 1 </if> - GROUP BY tc.`co_order_no`,tc.co_source_type - ORDER BY tc.co_create_time - DESC + </sql> + + <sql id="SELECT_PARAM_HONGBAO_TYPE"> + <if test="type != null and type == 1"> <!-- 鑷喘璁㈠崟 --> + AND (v2.hb_type =1 or v2.hb_type =2) + </if> + <if test="type != null and type == 2"> <!-- 鍒嗕韩璁㈠崟 --> + AND v2.`hb_type` = 20 + </if> + <if test="type != null and type == 3"> <!-- 閭�璇疯鍗� --> + 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) + </if> + </sql> + + <sql id="SELECT_PARAM_HONGBAO_STATE"> + <if test="state != null and state == 1"> <!-- 鏈埌璐� --> + AND (v2.hb_state = 1 or v2.hb_state = 2) + </if> + <if test="state != null and state == 2"> <!-- 宸插埌璐� --> + AND v2.hb_state = 3 + </if> + <if test="state != null and state == 3"> <!-- 绾㈠寘宸插け鏁� --> + AND v2.hb_state =4 + </if> + </sql> + + + <select id="listUserOrder" resultMap="ResultMap"> + <!-- 鏌ヨ鐢ㄦ埛璁㈠崟 --> + 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_get_time AS accountTime,hb.hb_pre_get_time AS preAccountTime,co.* + 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"/> <!-- 绾㈠寘绫诲瀷 --> + <include refid="SELECT_PARAM_HONGBAO_STATE"/> <!-- 绾㈠寘鐘舵�� --> + )hb ON (hb.hb_id=ho.`ho_hongbao_id` OR 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 AND co.co_id IS NOT NULL + <include refid="SELECT_PARAM_ORDER_STATE"/> <!-- 璁㈠崟鐘舵�� --> + <include refid="SELECT_PARAM_ORDER_CREATE_TIME"/> <!-- 璁㈠崟鏃堕棿 --> + <if test="orderNo != null and orderNo !='' "> + AND co.co_order_no = #{orderNo} + </if> + GROUP BY co.`co_order_no`, co.`co_source_type` + ORDER BY co.co_create_time DESC LIMIT ${start},${count} </select> - <select id="countMoneyGroupOrderNoByUid" resultType="java.util.Map"> - SELECT COALESCE(SUM(A.moneys),0)AS totalMoney,COUNT(*) AS totalRow FROM - (SELECT COALESCE(SUM(th.`hb_money`),0)AS moneys FROM yeshi_ec_common_order tc - LEFT JOIN - yeshi_ec_hongbao_order tr ON tr.`ho_order_id` = tc.`co_id` - LEFT JOIN - yeshi_ec_hongbao_v2 th ON (tr.`ho_hongbao_id` = th.`hb_id` OR - th.`hb_pid` = tr.`ho_hongbao_id` ) - WHERE th.`hb_uid` = #{uid} - <if test="type != null and type == 1"> <!-- 鑷喘璁㈠崟 --> - AND (th.hb_type =1 or th.hb_type =2) - </if> - <if test="type != null and type == 2"> <!-- 鍒嗕韩璁㈠崟 --> - AND th.`hb_type` = 20 - </if> - <if test="type != null and type == 3"> <!-- 閭�璇疯鍗� --> - AND (th.`hb_type` = 5 OR th.`hb_type` = 6 OR th.`hb_type` = 7 OR th.`hb_type` = 21 OR th.`hb_type` = 22) - </if> - <if test="orderNo != null"> - AND tc.co_order_no = #{orderNo} - </if> - <if test="startTime != null"> - AND <![CDATA[tc.co_create_time >= #{startTime}]]> - </if> - <if test="endTime != null"> - AND <![CDATA[tc.co_create_time <= #{endTime}]]> - </if> - <if test="day != null and day == 1"> <!-- 浠婂ぉ --> - AND TO_DAYS(tc.`co_create_time`) = TO_DAYS(NOW()) - </if> - <if test="day != null and day == 2"> <!-- 鏄ㄥぉ --> - AND TO_DAYS(NOW()) - TO_DAYS(tc.`co_create_time`) = 1 - </if> - <if test="day != null and day == 3"> <!-- 鏈湀 --> - AND DATE_FORMAT(tc.`co_create_time`,'%Y%m') = - DATE_FORMAT(CURDATE(),'%Y%m') - </if> - <if test="day != null and day == 4"> <!-- 涓婃湀 --> - AND PERIOD_DIFF( DATE_FORMAT(NOW(), '%Y%m'), - DATE_FORMAT(tc.`co_create_time`, '%Y%m')) = 1 - <!-- 缁熻宸叉敹璐� --> - AND tc.`co_state` = 2 - </if> - - GROUP BY tc.`co_order_no`,tc.co_source_type)A + <select id="countUserOrder" resultType="java.lang.Long"> + <!-- 缁熻鐢ㄦ埛璁㈠崟鏁伴噺 --> + SELECT IFNULL(COUNT(ho_id),0) FROM + (SELECT ho.ho_id 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"/> <!-- 绾㈠寘绫诲瀷 --> + <include refid="SELECT_PARAM_HONGBAO_STATE"/> <!-- 绾㈠寘鐘舵�� --> + )hb ON (hb.hb_id=ho.`ho_hongbao_id` OR 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 AND co.co_id IS NOT NULL + <include refid="SELECT_PARAM_ORDER_STATE"/> <!-- 璁㈠崟鐘舵�� --> + <include refid="SELECT_PARAM_ORDER_CREATE_TIME"/> <!-- 璁㈠崟鏃堕棿 --> + <if test="orderNo != null and orderNo !='' "> + AND co.co_order_no = #{orderNo} + </if> + GROUP BY co.`co_order_no`, co.`co_source_type` + )A </select> - <select id="countGroupOrderNoByUid" resultType="java.lang.Long"> - SELECT IFNULL(COUNT(DISTINCT tc.`co_order_no`,tc.`co_source_type`),0) - FROM yeshi_ec_common_order tc - LEFT JOIN yeshi_ec_hongbao_order tr ON - tr.`ho_order_id` = tc.`co_id` - LEFT JOIN yeshi_ec_hongbao_v2 th ON - (tr.`ho_hongbao_id` = th.`hb_id` OR - th.`hb_pid` = tr.`ho_hongbao_id` ) - WHERE th.`hb_uid` = #{uid} - <if test="state != null and state == 1"> <!-- 鏈埌璐� --> - AND (th.hb_state = 1 or th.hb_state = 2) - </if> - <if test="state != null and state == 2"> <!-- 宸插埌璐� --> - AND th.hb_state = 3 - </if> - <if test="state != null and state == 3"> <!-- 绾㈠寘宸插け鏁� --> - AND th.hb_state =4 - </if> - <if test="type != null and type == 1"> <!-- 鑷喘璁㈠崟 --> - AND (th.hb_type =1 or th.hb_type =2) - </if> - <if test="type != null and type == 2"> <!-- 鍒嗕韩璁㈠崟 --> - AND th.`hb_type` = 20 - </if> - <if test="type != null and type == 3"> <!-- 閭�璇疯鍗� --> - AND (th.`hb_type` = 5 OR th.`hb_type` = 6 OR th.`hb_type` = 7 OR th.`hb_type` = 21 OR th.`hb_type` = 22) - </if> - - <if test="orderState != null and orderState == 1"> - AND (tc.co_state = 1 or tc.co_state = 2) <!-- 鏈夋晥璁㈠崟 --> - </if> - <if test="orderState != null and orderState == 2"> - AND tc.co_state = 3 <!-- 缁存潈璁㈠崟 --> - </if> - <if test="orderState != null and orderState == 3"> - AND tc.co_state = 4 <!-- 澶辨晥璁㈠崟 --> - </if> - - <if test="orderNo != null"> - AND tc.co_order_no = #{orderNo} - </if> - <if test="startTime != null"> - AND <![CDATA[tc.co_create_time >= #{startTime}]]> - </if> - <if test="endTime != null"> - AND <![CDATA[tc.co_create_time <= #{endTime}]]> - </if> - <if test="day != null and day == 1"> <!-- 浠婂ぉ --> - AND TO_DAYS(tc.`co_create_time`) = TO_DAYS(NOW()) - </if> - <if test="day != null and day == 2"> <!-- 鏄ㄥぉ --> - AND TO_DAYS(NOW()) - TO_DAYS(tc.`co_create_time`) = 1 - </if> - <if test="day != null and day == 3"> <!-- 鏈湀 --> - AND DATE_FORMAT(tc.`co_create_time`,'%Y%m') = - DATE_FORMAT(CURDATE(),'%Y%m') - </if> - <if test="day != null and day == 4"> <!-- 涓婃湀 --> - AND PERIOD_DIFF( DATE_FORMAT(NOW(), '%Y%m'), - DATE_FORMAT(tc.`co_create_time`, '%Y%m')) = 1 - </if> - </select> - - <select id="listByOrderNoAndType" resultMap="ResultMap" - parameterType="java.util.List"> + <select id="listOrderGoodsInfo" resultMap="ResultMap" parameterType="java.util.List"> + <!-- 鏌ヨ鐢ㄦ埛璁㈠崟鍟嗗搧淇℃伅 --> SELECT COALESCE(SUM(tc.`co_payment`),0)AS totalPayment,COALESCE(SUM(tc.`co_settlement`),0)AS totalSettlement, COALESCE(SUM(tc.`co_count`),0)AS totalCount,tc.`co_source_type`,tc.`co_order_no`,tg.* FROM yeshi_ec_common_order_goods tg - LEFT JOIN yeshi_ec_common_order tc ON - tc.`co_order_goods_id` = tg.`cog_id` + LEFT JOIN yeshi_ec_common_order tc ON tc.`co_order_goods_id` = tg.`cog_id` WHERE <foreach collection="list" item="item" separator=" OR "> (tc.`co_source_type` = #{item.sourceType,jdbcType=INTEGER} AND @@ -426,320 +359,132 @@ GROUP BY tc.`co_order_no`,tc.`co_order_goods_id` </select> - <select id="countOrderByHongBaoType" resultType="java.util.HashMap"> - SELECT SUM(self)AS totalSelf, SUM(shared)AS totalShared ,SUM(invite)AS - totalInvite FROM ( - SELECT IFNULL(COUNT(DISTINCT - tc.`co_order_no`,tc.`co_source_type`),0) AS self,0 AS shared,0 AS - invite FROM yeshi_ec_common_order tc - LEFT JOIN yeshi_ec_hongbao_order - tr ON tr.`ho_order_id` = tc.`co_id` - LEFT - JOIN yeshi_ec_hongbao_v2 th ON - tr.`ho_hongbao_id` = th.`hb_id` - WHERE - th.`hb_uid` = ${uid} - AND - (th.`hb_type` = 1 OR th.`hb_type` = 2) - <if test="day != null and day == 1"> - AND TO_DAYS(tc.`co_create_time`) = TO_DAYS(NOW()) - </if> - <if test="day != null and day == 2"> - AND TO_DAYS(NOW()) - TO_DAYS(tc.`co_create_time`) = 1 - </if> - UNION - SELECT 0 AS self, IFNULL(COUNT(DISTINCT - tc.`co_order_no`,tc.`co_source_type`),0) AS shared,0 AS invite FROM - yeshi_ec_common_order tc - LEFT JOIN yeshi_ec_hongbao_order tr ON - tr.`ho_order_id` = tc.`co_id` - LEFT - JOIN yeshi_ec_hongbao_v2 th ON - (tr.`ho_hongbao_id` = th.`hb_id` OR - th.`hb_pid` = tr.`ho_hongbao_id` ) - WHERE th.`hb_uid` = ${uid} - AND th.`hb_type` = 20 - <if test="day != null and day == 1"> - AND TO_DAYS(tc.`co_create_time`) = TO_DAYS(NOW()) - </if> - <if test="day != null and day == 2"> - AND TO_DAYS(NOW()) - TO_DAYS(tc.`co_create_time`) = 1 - </if> - UNION - SELECT 0 AS self,0 AS shared,IFNULL(COUNT(DISTINCT - tc.`co_order_no`,tc.`co_source_type`),0) AS invite FROM - yeshi_ec_common_order tc - LEFT JOIN yeshi_ec_hongbao_order tr ON - tr.`ho_order_id` = tc.`co_id` - LEFT JOIN yeshi_ec_hongbao_v2 th ON - (tr.`ho_hongbao_id` = th.`hb_id` OR - th.`hb_pid` = tr.`ho_hongbao_id` ) - WHERE th.`hb_uid` = ${uid} - AND (th.`hb_type` = 5 OR th.`hb_type` = 6 OR th.`hb_type` = 7 OR th.`hb_type` = 21 OR th.`hb_type` = 22 ) - <if test="day != null and day == 1"> - AND TO_DAYS(tc.`co_create_time`) = TO_DAYS(NOW()) - </if> - <if test="day != null and day == 2"> - AND TO_DAYS(NOW()) - TO_DAYS(tc.`co_create_time`) = 1 - </if> + <select id="countHistoryOrder" resultType="java.util.HashMap"> + <!-- 缁熻鍘嗗彶璁㈠崟鏁伴噺 --> + SELECT SUM(A.self)AS totalSelf,SUM(A.shared)AS totalShared,SUM(A.invite)AS totalInvite + FROM ( + <!-- 杩斿埄璁㈠崟 --> + SELECT IFNULL(COUNT(ho_id),0) AS self,0 AS shared,0 AS invite + FROM (SELECT ho.`ho_id` FROM yeshi_ec_hongbao_order ho + 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` OR 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" /> + GROUP BY co.`co_order_no`, co.`co_source_type`)YX + + UNION ALL + <!-- 鍒嗕韩璁㈠崟 --> + SELECT 0 AS self,IFNULL(COUNT(ho_id),0) AS shared,0 AS invite + FROM (SELECT ho.`ho_id` FROM yeshi_ec_hongbao_order ho + 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` OR 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" /> + GROUP BY co.`co_order_no`, co.`co_source_type`)WQ + + UNION ALL + <!-- 閭�璇疯鍗� --> + SELECT 0 AS self,0 AS shared,IFNULL(COUNT(ho_id),0) AS invite + FROM (SELECT ho.`ho_id` FROM yeshi_ec_hongbao_order ho + 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 ) + + ) hb ON (hb.hb_id=ho.`ho_hongbao_id` OR 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" /> + GROUP BY co.`co_order_no`, co.`co_source_type`)SX )A </select> + + + <select id="countByUidAndOrderState" resultType="java.util.HashMap"> - SELECT SUM(valid)AS totalValid, SUM(proces)AS totalProces - ,SUM(Invalid)AS totalInvite - FROM (SELECT IFNULL(COUNT(DISTINCT - tc.`co_order_no`,tc.`co_source_type`),0) AS valid,0 AS proces,0 AS - Invalid - FROM yeshi_ec_common_order tc - LEFT JOIN yeshi_ec_hongbao_order - tr ON tr.`ho_order_id` = tc.`co_id` - LEFT JOIN yeshi_ec_hongbao_v2 th ON - (tr.`ho_hongbao_id` = th.`hb_id` OR - th.`hb_pid` = tr.`ho_hongbao_id` ) - WHERE th.`hb_uid` = #{uid} AND - (tc.`co_state` = 1 OR tc.`co_state` = 2) - <if test="type != null and type == 1"> <!-- 鑷喘璁㈠崟 --> - AND (th.hb_type =1 or th.hb_type =2) - </if> - <if test="type != null and type == 2"> <!-- 鍒嗕韩璁㈠崟 --> - AND th.`hb_type` = 20 - </if> - <if test="type != null and type == 3"> <!-- 閭�璇疯鍗� --> - AND (th.`hb_type` = 5 OR th.`hb_type` = 6 OR th.`hb_type` = 7 OR th.`hb_type` = 21 OR th.`hb_type` = 22) - </if> - <if test="startTime != null"> - AND <![CDATA[tc.co_create_time >= #{startTime}]]> - </if> - <if test="endTime != null"> - AND <![CDATA[tc.co_create_time <= #{endTime}]]> - </if> - <if test="day != null and day == 1"> <!-- 浠婂ぉ --> - AND TO_DAYS(tc.`co_create_time`) = TO_DAYS(NOW()) - </if> - <if test="day != null and day == 2"> <!-- 鏄ㄥぉ --> - AND TO_DAYS(NOW()) - TO_DAYS(tc.`co_create_time`) = 1 - </if> - <if test="day != null and day == 3"> <!-- 鏈湀 --> - AND DATE_FORMAT(tc.`co_create_time`,'%Y%m') = - DATE_FORMAT(CURDATE(),'%Y%m') - </if> - <if test="day != null and day == 4"> <!-- 涓婃湀 --> - AND PERIOD_DIFF(DATE_FORMAT(NOW(), '%Y%m'), - DATE_FORMAT(tc.`co_create_time`, '%Y%m')) = 1 - </if> - - UNION - - SELECT 0 AS valid,IFNULL(COUNT(DISTINCT - tc.`co_order_no`,tc.`co_source_type`),0) AS proces,0 AS Invalid - FROM - yeshi_ec_common_order tc - LEFT JOIN yeshi_ec_hongbao_order tr ON - tr.`ho_order_id` = tc.`co_id` - LEFT JOIN yeshi_ec_hongbao_v2 th ON - (tr.`ho_hongbao_id` = th.`hb_id` OR - th.`hb_pid` = tr.`ho_hongbao_id` ) - WHERE th.`hb_uid` = #{uid} AND - tc.`co_state` =3 - <if test="type != null and type == 1"> <!-- 鑷喘璁㈠崟 --> - AND (th.hb_type =1 or th.hb_type =2) - </if> - <if test="type != null and type == 2"> <!-- 鍒嗕韩璁㈠崟 --> - AND th.`hb_type` = 20 - </if> - <if test="type != null and type == 3"> <!-- 閭�璇疯鍗� --> - AND (th.`hb_type` = 5 OR th.`hb_type` = 6 OR th.`hb_type` = 7 OR th.`hb_type` = 21 OR th.`hb_type` = 22) - </if> - <if test="startTime != null"> - AND <![CDATA[tc.co_create_time >= #{startTime}]]> - </if> - <if test="endTime != null"> - AND <![CDATA[tc.co_create_time <= #{endTime}]]> - </if> - <if test="day != null and day == 1"> <!-- 浠婂ぉ --> - AND TO_DAYS(tc.`co_create_time`) = TO_DAYS(NOW()) - </if> - <if test="day != null and day == 2"> <!-- 鏄ㄥぉ --> - AND TO_DAYS(NOW()) - TO_DAYS(tc.`co_create_time`) = 1 - </if> - <if test="day != null and day == 3"> <!-- 鏈湀 --> - AND DATE_FORMAT(tc.`co_create_time`,'%Y%m') = - DATE_FORMAT(CURDATE(),'%Y%m') - </if> - <if test="day != null and day == 4"> <!-- 涓婃湀 --> - AND PERIOD_DIFF(DATE_FORMAT(NOW(), '%Y%m'), - DATE_FORMAT(tc.`co_create_time`, '%Y%m')) = 1 - </if> - UNION - - SELECT 0 AS valid,0 AS proces,IFNULL(COUNT(DISTINCT - tc.`co_order_no`,tc.`co_source_type`),0) AS Invalid - FROM - yeshi_ec_common_order tc - LEFT JOIN yeshi_ec_hongbao_order tr ON - tr.`ho_order_id` = tc.`co_id` - LEFT JOIN yeshi_ec_hongbao_v2 th ON - (tr.`ho_hongbao_id` = th.`hb_id` OR - th.`hb_pid` = tr.`ho_hongbao_id` ) - WHERE th.`hb_uid`= #{uid} AND - tc.`co_state` = 4 - <if test="type != null and type == 1"> <!-- 鑷喘璁㈠崟 --> - AND (th.hb_type =1 or th.hb_type =2) - </if> - <if test="type != null and type == 2"> <!-- 鍒嗕韩璁㈠崟 --> - AND th.`hb_type` = 20 - </if> - <if test="type != null and type == 3"> <!-- 閭�璇疯鍗� --> - AND (th.`hb_type` = 5 OR th.`hb_type` = 6 OR th.`hb_type` = 7 OR th.`hb_type` = 21 OR th.`hb_type` = 22) - </if> - <if test="startTime != null"> - AND <![CDATA[tc.co_create_time >= #{startTime}]]> - </if> - <if test="endTime != null"> - AND <![CDATA[tc.co_create_time <= #{endTime}]]> - </if> - <if test="day != null and day == 1"> <!-- 浠婂ぉ --> - AND TO_DAYS(tc.`co_create_time`) = TO_DAYS(NOW()) - </if> - <if test="day != null and day == 2"> <!-- 鏄ㄥぉ --> - AND TO_DAYS(NOW()) - TO_DAYS(tc.`co_create_time`) = 1 - </if> - <if test="day != null and day == 3"> <!-- 鏈湀 --> - AND DATE_FORMAT(tc.`co_create_time`,'%Y%m') = - DATE_FORMAT(CURDATE(),'%Y%m') - </if> - <if test="day != null and day == 4"> <!-- 涓婃湀 --> - AND PERIOD_DIFF(DATE_FORMAT(NOW(), '%Y%m'), - DATE_FORMAT(tc.`co_create_time`, '%Y%m')) = 1 - </if> + SELECT SUM(A.valid)AS totalValid, SUM(A.proces)AS totalProces,SUM(A.Invalid)AS totalInvite + FROM ( + <!-- 鏈夋晥璁㈠崟 --> + SELECT IFNULL(COUNT(ho_id),0) AS valid,0 AS proces,0 AS Invalid + FROM (SELECT ho.`ho_id` 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" /> + ) hb ON (hb.hb_id=ho.`ho_hongbao_id` OR 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 AND (co.`co_state_whole_order` =1 OR co.`co_state_whole_order` = 2) + <include refid="SELECT_PARAM_ORDER_CREATE_TIME" /> + GROUP BY co.`co_order_no`, co.`co_source_type`)YX + + UNION ALL + <!-- 缁存潈璁㈠崟 --> + SELECT 0 AS valid,IFNULL(COUNT(ho_id),0) AS proces,0 AS Invalid + FROM (SELECT ho.`ho_id` 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" /> + ) hb ON (hb.hb_id=ho.`ho_hongbao_id` OR 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 AND (co.`co_state_whole_order` =1 OR co.`co_state_whole_order` = 2) + <include refid="SELECT_PARAM_ORDER_CREATE_TIME" /> + GROUP BY co.`co_order_no`, co.`co_source_type`)WQ + + UNION ALL + <!-- 澶辨晥璁㈠崟 --> + SELECT 0 AS valid,0 AS proces,IFNULL(COUNT(ho_id),0) AS Invalid + FROM (SELECT ho.`ho_id` 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" /> + ) hb ON (hb.hb_id=ho.`ho_hongbao_id` OR 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 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 )A + </select> - <select id="countBonusOrder" resultType="java.lang.Long"> - SELECT COALESCE(COUNT(DISTINCT - tc.`co_order_no`,tc.`co_source_type`),0) FROM yeshi_ec_common_order tc - LEFT JOIN yeshi_ec_hongbao_order tr ON tr.`ho_order_id` = tc.`co_id` - LEFT JOIN yeshi_ec_hongbao_v2 th ON (tr.`ho_hongbao_id` = th.`hb_id` - OR th.`hb_pid` = tr.`ho_hongbao_id` ) - WHERE 1=1 - <if test="uid != null"> - AND th.`hb_uid` = ${uid} - </if> - <if test="type != null and type == 1"> <!-- 鑷喘璁㈠崟 --> - AND (th.hb_type =1 or th.hb_type =2) - </if> - <if test="type != null and type == 2"> <!-- 鍒嗕韩璁㈠崟 --> - AND th.`hb_type` = 20 - </if> - <if test="type != null and type == 3"> <!-- 閭�璇疯鍗� --> - AND (th.`hb_type` = 5 OR th.`hb_type` = 6 OR th.`hb_type` = 7 OR th.`hb_type` = 21 OR th.`hb_type` = 22) - </if> - - <if test="day != null and day == 1"> <!-- 浠婂ぉ --> - AND TO_DAYS(tc.`co_create_time`) = TO_DAYS(NOW()) - </if> - <if test="day != null and day == 2"> <!-- 鏄ㄥぉ --> - AND TO_DAYS(NOW()) - TO_DAYS(tc.`co_create_time`) = 1 - </if> - <if test="day != null and day == 3"> <!-- 鏈湀 --> - AND DATE_FORMAT(tc.`co_create_time`,'%Y%m') = - DATE_FORMAT(CURDATE(),'%Y%m') - </if> - <if test="day != null and day == 4"> <!-- 涓婃湀 --> - AND PERIOD_DIFF(DATE_FORMAT(NOW(), '%Y%m'), - DATE_FORMAT(tc.`co_create_time`, '%Y%m')) = 1 - </if> + <select id="countBonusOrderNumber" resultType="java.lang.Long"> + <!-- 濂栭噾缁熻锛氳鍗曟暟閲� --> + SELECT IFNULL(COUNT(ho_id),0) + FROM (SELECT ho.`ho_id` 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" /> + ) hb ON (hb.hb_id=ho.`ho_hongbao_id` OR 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 day == 4"> + AND co.`co_state` = 2 <!-- 涓婃湀 :缁熻宸叉敹璐� --> + </if> + GROUP BY co.`co_order_no`, co.`co_source_type` + )A </select> <select id="countBonusOrderMoney" resultType="java.math.BigDecimal"> - SELECT COALESCE(SUM(th.`hb_money`),0)AS totalmoney FROM - yeshi_ec_common_order tc - LEFT JOIN yeshi_ec_hongbao_order tr ON - tr.`ho_order_id` = tc.`co_id` - LEFT JOIN yeshi_ec_hongbao_v2 th ON - (tr.`ho_hongbao_id` = th.`hb_id` OR - th.`hb_pid` = tr.`ho_hongbao_id` ) - WHERE th.`hb_uid` = ${uid} - <if test="type != null and type == 1"> <!-- 鑷喘璁㈠崟 --> - AND (th.hb_type =1 or th.hb_type =2) - </if> - <if test="type != null and type == 2"> <!-- 鍒嗕韩璁㈠崟 --> - AND th.`hb_type` = 20 - </if> - <if test="type != null and type == 3"> <!-- 閭�璇疯鍗� --> - AND (th.`hb_type` = 5 OR th.`hb_type` = 6 OR th.`hb_type` = 7 OR th.`hb_type` = 21 OR th.`hb_type` = 22) - </if> - <if test="day != null and day == 1"> <!-- 浠婂ぉ --> - AND TO_DAYS(tc.`co_create_time`) = TO_DAYS(NOW()) - </if> - <if test="day != null and day == 2"> <!-- 鏄ㄥぉ --> - AND TO_DAYS(NOW()) - TO_DAYS(tc.`co_create_time`) = 1 - </if> - <if test="day != null and day == 3"> <!-- 鏈湀 --> - AND DATE_FORMAT(tc.`co_create_time`,'%Y%m') = - DATE_FORMAT(CURDATE(),'%Y%m') - </if> - <if test="day != null and day == 4"> <!-- 涓婃湀 --> - AND PERIOD_DIFF( DATE_FORMAT(NOW(), '%Y%m'), - DATE_FORMAT(tc.`co_create_time`, '%Y%m')) = 1 - - <!-- 缁熻宸叉敹璐� --> - AND tc.`co_state` = 2 - </if> - </select> - - <select id="listBonusOrder" resultMap="ResultMap"> - SELECT COALESCE(SUM(th.`hb_money`),0)AS totalMoney,tc.*,th.hb_state AS - hongBaoState, th.hb_type AS hongBaoType, - th.hb_get_time AS - accountTime,th.hb_get_time AS accountTime,th.hb_pre_get_time AS - preAccountTime - FROM yeshi_ec_common_order tc - LEFT JOIN - yeshi_ec_hongbao_order tr ON tr.`ho_order_id` = tc.`co_id` - LEFT JOIN - yeshi_ec_hongbao_v2 th ON (tr.`ho_hongbao_id` = th.`hb_id` OR - th.`hb_pid` = tr.`ho_hongbao_id` ) - WHERE th.`hb_uid` = #{uid} - <if test="type != null and type == 1"> <!-- 鑷喘璁㈠崟 --> - AND (th.hb_type =1 or th.hb_type =2) - </if> - <if test="type != null and type == 2"> <!-- 鍒嗕韩璁㈠崟 --> - AND th.`hb_type` = 20 - </if> - <if test="type != null and type == 3"> <!-- 閭�璇疯鍗� --> - AND (th.`hb_type` = 5 OR th.`hb_type` = 6 OR th.`hb_type` = 7 OR th.`hb_type` = 21 OR th.`hb_type` = 22) - </if> - <if test="orderState != null and orderState == 1"> - AND (tc.co_state = 1 or tc.co_state = 2) <!-- 鏈夋晥璁㈠崟 --> - </if> - <if test="orderState != null and orderState == 2"> - AND tc.co_state = 3 <!-- 缁存潈璁㈠崟 --> - </if> - <if test="orderState != null and orderState == 3"> - AND tc.co_state = 4 <!-- 澶辨晥璁㈠崟 --> - </if> - <if test="day != null and day == 1"> <!-- 浠婂ぉ --> - AND TO_DAYS(tc.`co_create_time`) = TO_DAYS(NOW()) - </if> - <if test="day != null and day == 2"> <!-- 鏄ㄥぉ --> - AND TO_DAYS(NOW()) - TO_DAYS(tc.`co_create_time`) = 1 - </if> - <if test="day != null and day == 3"> <!-- 鏈湀 --> - AND DATE_FORMAT(tc.`co_create_time`,'%Y%m') = - DATE_FORMAT(CURDATE(),'%Y%m') - </if> - <if test="day != null and day == 4"> <!-- 涓婃湀 --> - AND PERIOD_DIFF( DATE_FORMAT(NOW(), '%Y%m'), - DATE_FORMAT(tc.`co_create_time`, '%Y%m')) = 1 - </if> - GROUP BY tc.`co_order_no`,tc.co_source_type - ORDER BY tc.co_create_time - DESC - LIMIT ${start},${count} + <!-- 濂栭噾缁熻锛氳鍗曟�昏繑鍒╅噾棰� --> + 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" /> + ) hb ON (hb.hb_id=ho.`ho_hongbao_id` OR 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 day == 4"> + AND co.`co_state` = 2 <!-- 涓婃湀 :缁熻宸叉敹璐� --> + </if> </select> </mapper> -- Gitblit v1.8.0