From 554de444b87aab5f93cb1593a8095612cf9479a7 Mon Sep 17 00:00:00 2001
From: yujian <yujian@163.com>
Date: 星期二, 09 六月 2020 17:34:30 +0800
Subject: [PATCH] 订单

---
 fanli/src/main/java/com/yeshi/fanli/mapping/order/CommonOrderCountMapper.xml |  205 +++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 199 insertions(+), 6 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/mapping/order/CommonOrderCountMapper.xml b/fanli/src/main/java/com/yeshi/fanli/mapping/order/CommonOrderCountMapper.xml
index 9e1ba19..8e2bfb2 100644
--- a/fanli/src/main/java/com/yeshi/fanli/mapping/order/CommonOrderCountMapper.xml
+++ b/fanli/src/main/java/com/yeshi/fanli/mapping/order/CommonOrderCountMapper.xml
@@ -2,7 +2,17 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 
 <mapper namespace="com.yeshi.fanli.dao.mybatis.order.CommonOrderCountMapper">
+    <resultMap id="ChartMap" type="com.yeshi.fanli.dto.ChartTDO">
+		<result column="showDate" property="showDate" jdbcType="VARCHAR" />
+		<result column="showValue" property="showValue" jdbcType="VARCHAR" />
+	</resultMap>
 
+ 	<resultMap id="CountOrderMap" type="com.yeshi.fanli.dto.order.CountOrderDTO">
+		<result column="uid" property="uid" jdbcType="BIGINT" />
+		<result column="totalOrder" property="totalOrder" jdbcType="INTEGER" />
+		<result column="commission" property="commission" jdbcType="DECIMAL" />
+	</resultMap>
+	
 	<sql id="Column_DateType">
 		<if test="dateType == 1">
 			DATE_FORMAT(t.`co_third_create_time`,'%Y-%m-%d') AS 'showDate'
@@ -47,7 +57,12 @@
 			</if>
 	</select>
 	
-	<select id="countOrderNumber" resultType="java.util.HashMap">
+	<select id="countOrderBySourceTypeAndDay" resultType="java.lang.Long">
+		SELECT COUNT(t.`co_id`) FROM `yeshi_ec_common_order` t 
+		WHERE t.co_source_type=#{sourceType} AND DATE_FORMAT(t.`co_third_create_time`,'%Y-%m-%d') = #{preDay}
+	</select>
+	
+	<select id="countOrderNumber" resultMap="ChartMap">
 		SELECT IFNULL(COUNT(t.`co_id`),0) AS showValue,<include refid="Column_DateType"/>
 		FROM `yeshi_ec_common_order` t 
 		WHERE t.co_source_type=#{sourceType} and t.`co_third_create_time` IS NOT NULL <include refid="Count_Select_DateType"/> 
@@ -170,10 +185,188 @@
 	</select>
 	
 	<select id="countValidOrderByDate" resultType="Long">
-		SELECT IFNULL(COUNT(co.`co_id`),0) FROM yeshi_ec_common_order co 
-		LEFT JOIN  yeshi_ec_hongbao_order ho ON co.`co_id`=ho.`ho_order_id`
-		LEFT JOIN yeshi_ec_hongbao_v2 v2 ON  v2.hb_id=ho.`ho_hongbao_id` 
-		WHERE co.`co_uid` = #{uid} AND v2.`hb_type` = 1 AND v2.`hb_state` = 3
-			  AND co.`co_third_create_time` > #{dateTime}
+		SELECT IFNULL(COUNT(co_order_no),0) FROM
+			(SELECT DISTINCT co.co_order_no FROM yeshi_ec_common_order co 
+			 LEFT JOIN  yeshi_ec_hongbao_order ho ON co.`co_id`=ho.`ho_order_id`
+			 LEFT JOIN yeshi_ec_hongbao_v2 v2 ON  v2.hb_id=ho.`ho_hongbao_id` 
+			 WHERE co.`co_uid` = #{uid} AND v2.`hb_type` = 1 
+				   AND v2.`hb_state` = 3 AND  AND co.`co_third_create_time` <![CDATA[>]]> #{dateTime})A
 	</select>
+	
+	<select id="countSameShopOrderByUidAndHongBaoType" resultType="Long">
+		SELECT COUNT(*) FROM
+		(
+			SELECT a.*,COUNT(*) AS num FROM 
+			(
+				SELECT co.*,COUNT(*) AS c,g.`cog_shop_id` AS shopId FROM yeshi_ec_common_order co 
+				LEFT JOIN yeshi_ec_hongbao_order ho ON co.`co_id`=ho.`ho_order_id` 
+				LEFT JOIN yeshi_ec_hongbao_v2 v ON v.`hb_id`=ho.`ho_hongbao_id` 
+				LEFT JOIN yeshi_ec_common_order_goods g  ON co.`co_order_goods_id`=g.`cog_id` 
+				WHERE  co.`co_uid`=#{uid}  AND g.`cog_shop_id` <![CDATA[<>]]> 725677994  <!-- 澶╃尗瓒呭競 -->
+				<if test="typeList!=null">
+					<foreach collection="typeList" item="type" open=" and (" separator=" or " close=")">
+						v.`hb_type`=#{type}
+					</foreach>
+				</if>
+				AND v.`hb_id` IS NOT NULL 
+				AND (co.`co_state`=1 OR  co.`co_state`=2 OR co.`co_state`=3)  
+				AND g.`cog_shop_id`>0 GROUP BY co.`co_order_no`,co.`co_source_type`
+			) a GROUP BY a.shopId
+		) b WHERE b.num>=#{minSameShopGoodsCount};
+	</select>
+	
+	
+	<select id="countSameGoodsOrderByUidAndHongBaoType" resultType="Long">
+		SELECT COUNT(*) FROM
+		(
+			SELECT a.goodsId,COUNT(*) AS c FROM
+			(
+				SELECT co.`co_order_goods_id` AS goodsId,co.`co_order_no` FROM yeshi_ec_common_order co 
+				LEFT JOIN yeshi_ec_hongbao_order ho ON co.`co_id`=ho.`ho_order_id` 
+				LEFT JOIN yeshi_ec_hongbao_v2 v ON v.`hb_id`=ho.`ho_hongbao_id` 
+				LEFT JOIN yeshi_ec_common_order_goods g  ON co.`co_order_goods_id`=g.`cog_id`  
+				WHERE co.`co_uid`=#{uid} AND g.`cog_shop_id` <![CDATA[<>]]> 725677994  <!-- 澶╃尗瓒呭競 -->
+				<if test="typeList!=null">
+					<foreach collection="typeList" item="type" open=" and (" separator=" or " close=")">
+						v.`hb_type`=#{type}
+					</foreach>
+				</if>
+				AND v.`hb_id` IS NOT NULL
+				AND (co.`co_state`=1 OR  co.`co_state`=2 OR co.`co_state`=3) 
+				GROUP BY co.`co_order_no`,co.`co_order_goods_id`
+			) a GROUP BY goodsId 
+		) b WHERE b.c>=#{minSameGoodsOrderCount}
+	</select>
+	
+	
+	
+	<select id="getSameShopOrderByUidAndHongBaoType" resultType="Long">
+		SELECT b.shopId FROM
+		(
+			SELECT a.*,COUNT(*) AS num FROM 
+			(
+				SELECT co.*,COUNT(*) AS c,g.`cog_shop_id` AS shopId FROM yeshi_ec_common_order co 
+				LEFT JOIN yeshi_ec_hongbao_order ho ON co.`co_id`=ho.`ho_order_id` 
+				LEFT JOIN yeshi_ec_hongbao_v2 v ON v.`hb_id`=ho.`ho_hongbao_id` 
+				LEFT JOIN yeshi_ec_common_order_goods g  ON co.`co_order_goods_id`=g.`cog_id` 
+				WHERE  co.`co_uid`=#{uid} AND g.`cog_shop_id` <![CDATA[<>]]> 725677994  <!-- 澶╃尗瓒呭競 -->
+				<if test="typeList!=null">
+					<foreach collection="typeList" item="type" open=" and (" separator=" or " close=")">
+						v.`hb_type`=#{type}
+					</foreach>
+				</if>
+				AND v.`hb_id` IS NOT NULL 
+				AND (co.`co_state`=1 OR  co.`co_state`=2 OR co.`co_state`=3)  
+				AND g.`cog_shop_id`>0 GROUP BY co.`co_order_no`,co.`co_source_type`
+			) a GROUP BY a.shopId
+		) b WHERE b.num>=#{minSameShopGoodsCount};
+	</select>
+	
+	
+	<select id="getSameGoodsOrderByUidAndHongBaoType" resultType="Long">
+		SELECT b.goodsId FROM
+		(
+			SELECT a.goodsId,COUNT(*) AS c FROM
+			(
+				SELECT co.`co_order_goods_id` AS goodsId,co.`co_order_no` FROM yeshi_ec_common_order co 
+				LEFT JOIN yeshi_ec_hongbao_order ho ON co.`co_id`=ho.`ho_order_id` 
+				LEFT JOIN yeshi_ec_hongbao_v2 v ON v.`hb_id`=ho.`ho_hongbao_id` 
+				LEFT JOIN yeshi_ec_common_order_goods g  ON co.`co_order_goods_id`=g.`cog_id`  
+				WHERE co.`co_uid`=#{uid} AND g.`cog_shop_id` <![CDATA[<>]]> 725677994  <!-- 澶╃尗瓒呭競 -->
+				<if test="typeList!=null">
+					<foreach collection="typeList" item="type" open=" and (" separator=" or " close=")">
+						v.`hb_type`=#{type}
+					</foreach>
+				</if>
+				AND v.`hb_id` IS NOT NULL
+				AND (co.`co_state`=1 OR  co.`co_state`=2 OR co.`co_state`=3) 
+				GROUP BY co.`co_order_no`,co.`co_order_goods_id`
+			) a GROUP BY goodsId 
+		) b WHERE b.c>=#{minSameGoodsOrderCount}
+	</select>
+	
+	<select id="countOderByUidAndDate" resultType="Integer">
+		SELECT COUNT(1) FROM (SELECT d.`co_id` FROM `yeshi_ec_common_order` d
+		WHERE d.`co_third_create_time`<![CDATA[<=]]> #{preDay} AND d.`co_uid` = #{uid} 
+			  AND (d.`co_state`=1 OR d.`co_state`=2) 
+		GROUP BY d.`co_order_no`,d.`co_source_type`)A
+	</select>
+	
+	<select id="countValidOrderByDay" resultMap="CountOrderMap">
+		SELECT co_uid AS uid ,totalOrder FROM (
+			SELECT COUNT(d.`co_id`) AS totalOrder,d.`co_uid` FROM `yeshi_ec_common_order` d
+			WHERE DATE_FORMAT(d.`co_third_create_time`,'%Y-%m-%d') = #{preDay} 
+				  AND (d.`co_state`=1 OR d.`co_state`=2)  
+			GROUP BY d.`co_order_no`,d.`co_source_type`)A
+		GROUP BY co_uid
+	</select>
+	
+	
+	<select id="getUidByValidOrderByDay"  resultType="Long">
+		SELECT DISTINCT d.`co_uid` FROM `yeshi_ec_common_order` d
+		WHERE TO_DAYS(co_third_create_time) = TO_DAYS(#{preDay}) AND (d.`co_state`=1 OR d.`co_state`=2)  
+		GROUP BY d.`co_order_no`,d.`co_source_type`
+	</select>
+	
+	
+	<select id="countDownOrderUserByUidAndDate" resultType="Integer">
+		SELECT COUNT(DISTINCT d.`co_uid`) FROM `yeshi_ec_common_order` d
+		WHERE  d.`co_third_create_time`<![CDATA[<=]]> #{preDay} AND (d.`co_state`=1 OR d.`co_state`=2)  
+		<foreach collection="list" item="uid" open="AND (" separator="OR" close=")" >
+			d.`co_uid` = #{uid} 
+		</foreach>
+	</select>
+	
+	<select id="getDownOrderUserByListUidAndDate" resultType="Long">
+		SELECT  d.`co_uid` FROM `yeshi_ec_common_order` d
+		WHERE  d.`co_third_create_time`<![CDATA[<=]]> #{preDay} AND (d.`co_state`=1 OR d.`co_state`=2)  
+		<foreach collection="list" item="uid" open="AND (" separator="OR" close=")" >
+			d.`co_uid` = #{uid} 
+		</foreach>
+		GROUP BY d.`co_order_no`,d.`co_source_type`
+	</select>
+	
+	<select id="countCommissionByDay" resultMap="CountOrderMap">
+		SELECT  SUM(IF(d.`co_eIncome` >0,d.`co_eIncome`,d.`co_estimate`)) AS commission,d.co_uid as uid FROM `yeshi_ec_common_order` d 
+		WHERE TO_DAYS(d.`co_third_create_time`)= TO_DAYS(#{preDay}) AND (d.`co_state`=1 OR d.`co_state`=2)
+		GROUP BY d.co_uid
+	</select>
+	
+	<select id="countOderByDate" resultType="Integer">
+		SELECT COUNT(co_id) FROM (SELECT d.`co_id` FROM `yeshi_ec_common_order` d
+		WHERE TO_DAYS(d.`co_third_create_time`)= TO_DAYS(#{preDay}) AND (d.`co_state`=1 OR d.`co_state`=2) 
+		GROUP BY d.`co_order_no`,d.`co_source_type`)A
+	</select>
+	
+	
+	<select id="countCommissionByDate" resultType="BigDecimal">
+		SELECT SUM(IF(d.`co_eIncome` >0,d.`co_eIncome`,d.`co_estimate`)) FROM `yeshi_ec_common_order` d
+		WHERE TO_DAYS(d.`co_third_create_time`)= TO_DAYS(#{preDay}) AND (d.`co_state`=1 OR d.`co_state`=2)  
+	</select>
+	
+	<select id="countOderByUidAndLess10" resultType="Integer">
+		SELECT count(1) from (SELECT SUM(d.co_payment) as payment FROM `yeshi_ec_common_order` d
+		where d.co_uid = #{uid} and d.co_source_type = 1  and d.co_state <![CDATA[<>]]> 4
+		GROUP BY d.`co_order_no`
+		ORDER BY d.co_third_create_time desc
+		limit 100)A where A.payment<![CDATA[<]]> 10
+	</select>
+	
+	
+	<select id="countOrderBySourceAndNearDay" resultType="Long">
+		SELECT COUNT(co_id) FROM (SELECT d.`co_id` FROM `yeshi_ec_common_order` d
+			WHERE d.co_uid = #{uid} AND d.`co_source_type` = #{source} AND (d.`co_state`=1 OR d.`co_state`=2) 
+				AND DATE_SUB(CURDATE(), INTERVAL #{day} DAY) <![CDATA[<=]]> DATE(d.`co_third_create_time`) 
+		GROUP BY d.`co_order_no`,d.`co_source_type`)A
+	</select>
+	
+	<select id="countHistoryOrderNum" resultType="Long">
+		SELECT COUNT(hb_id) FROM (SELECT v2.`hb_id` FROM yeshi_ec_hongbao_v2 v2 
+		LEFT JOIN yeshi_ec_hongbao_order ho ON IF(v2.hb_pid IS NULL,v2.hb_id,v2.hb_pid)=ho.`ho_hongbao_id`
+		LEFT JOIN yeshi_ec_common_order co ON co.`co_id`=ho.`ho_order_id`
+		WHERE v2.hb_uid = #{uid}
+		GROUP BY co.`co_order_no`, co.`co_source_type`)A
+	</select>
+	
+	
 </mapper>

--
Gitblit v1.8.0