From e971ea090aa1f320f3c3f78c3a2a8d50f16dd4d0 Mon Sep 17 00:00:00 2001
From: 935090232@qq.com <ak473600000>
Date: Fri, 15 Jan 2021 23:38:19 +0800
Subject: [PATCH] 小程序预约接口修改

---
 zq-erp/src/main/resources/mybatis/mapper/hive/SysBusinessDataDao.xml |  230 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 229 insertions(+), 1 deletions(-)

diff --git a/zq-erp/src/main/resources/mybatis/mapper/hive/SysBusinessDataDao.xml b/zq-erp/src/main/resources/mybatis/mapper/hive/SysBusinessDataDao.xml
index 5b0e697..eb9e0c9 100644
--- a/zq-erp/src/main/resources/mybatis/mapper/hive/SysBusinessDataDao.xml
+++ b/zq-erp/src/main/resources/mybatis/mapper/hive/SysBusinessDataDao.xml
@@ -535,7 +535,7 @@
 
     <select id="selectApiBusinessDataInPage" resultType="com.matrix.system.app.vo.BusinessesDataShowVo">
         select
-            date_format(a.time, #{record.t1}),
+            date_format(a.time, #{record.t1}) dataTime,
             sum(cashPay + cardPay + arrearsPay) totalPay,
             sum(cashPay) cashPay,
             sum(cardPay) cardPay,
@@ -569,6 +569,234 @@
         </where>
         group by date_format(a.time, #{record.t1})
         order by a.time desc
+        <if test="pageVo !=null"><!-- 判断pageVo对象是否为空 -->
+            <if test="pageVo.offset >=0  and pageVo.limit >0">
+                limit
+                #{pageVo.offset},#{pageVo.limit}
+            </if>
+        </if>
+    </select>
+
+    <select id="selectApiBusinessDataTotal" resultType="java.lang.Integer">
+        select
+            count(1)
+        from (
+            select
+                date_format(a.time, #{record.t1}) dataTime,
+                sum(cashPay + cardPay + arrearsPay) totalPay,
+                sum(cashPay) cashPay,
+                sum(cardPay) cardPay,
+                sum(arrearsPay) arrearsPay,
+                sum(freeConsumePay) freeConsumePay,
+                sum(consumePay) consumePay,
+                sum(refundCardPay) refundCardPay,
+                sum(refundCashPay) refundCashPay
+            from (
+                select
+                company_id,
+                shop_id,
+                a.time,
+                MAX(CASE code WHEN 'cashPay' THEN value ELSE 0 END)            cashPay,
+                MAX(CASE code WHEN 'cardPay' THEN value ELSE 0 END)            cardPay,
+                MAX(CASE code WHEN 'arrearsPay' THEN value ELSE 0 END)         arrearsPay,
+                MAX(CASE code WHEN 'freeConsumePay' THEN value ELSE 0 END)     freeConsumePay,
+                MAX(CASE code WHEN 'consumePay' THEN value ELSE 0 END)         consumePay,
+                MAX(CASE code WHEN 'refundCashPay' THEN ABS(value) ELSE 0 END) refundCashPay,
+                MAX(CASE code WHEN 'refundCardPay' THEN ABS(value) ELSE 0 END) refundCardPay
+                from sys_business_data a
+                group by a.time, company_id, shop_id
+            ) a
+            <where>
+                <if test="record.companyId != null">
+                    and a.company_id=#{record.companyId}
+                </if>
+                <if test="record.shopId != null">
+                    and a.shop_id=#{record.shopId}
+                </if>
+            </where>
+            group by date_format(a.time, #{record.t1})
+            order by a.time desc
+        ) a
+    </select>
+
+    <select id="selectApiBusinessData" resultType="com.matrix.system.app.vo.BusinessesDataShowVo">
+        <foreach collection="list" index="index" item="item"   separator="union all"  >
+            select
+                #{item.beginTime} dataTime,
+                (select IFNULL(sum(amount),0) from sys_order_flow
+                    where <![CDATA[ create_time > #{item.beginTime} and create_time < #{item.endTime}]]>
+                    <if test="shopId != null">
+                        and shop_id=#{shopId}
+                    </if>
+                    <if test="companyId != null">
+                        and company_id=#{companyId}
+                    </if>
+                    )totalPay,
+                (select IFNULL(sum(amount),0) from sys_order_flow
+                    where pay_method not in ('储值卡', '欠款') and flow_type != '退款' and <![CDATA[ create_time > #{item.beginTime} and create_time < #{item.endTime}]]>
+                    <if test="shopId != null">
+                        and shop_id=#{shopId}
+                    </if>
+                    <if test="companyId != null">
+                        and company_id=#{companyId}
+                    </if>
+                    ) cashPay,
+                (select IFNULL(sum(amount),0) from sys_order_flow
+                    where pay_method = '储值卡' and flow_type != '退款' and <![CDATA[ create_time > #{item.beginTime} and create_time < #{item.endTime}]]>
+                    <if test="shopId != null">
+                        and shop_id=#{shopId}
+                    </if>
+                    <if test="companyId != null">
+                        and company_id=#{companyId}
+                    </if>
+                    ) cardPay,
+                (select IFNULL(sum(amount),0) from sys_order_flow
+                    where pay_method = '欠款' and <![CDATA[ create_time > #{item.beginTime} and create_time < #{item.endTime}]]>
+                    <if test="shopId != null">
+                        and shop_id=#{shopId}
+                    </if>
+                    <if test="companyId != null">
+                        and company_id=#{companyId}
+                    </if>
+                    ) arrearsPay,
+                (select IFNULL(sum(amount),0) from sys_order_flow
+                    where pay_method not in ('储值卡', '欠款') and flow_type = '退款' and <![CDATA[ create_time > #{item.beginTime} and create_time < #{item.endTime}]]>
+                    <if test="shopId != null">
+                        and shop_id=#{shopId}
+                    </if>
+                    <if test="companyId != null">
+                        and company_id=#{companyId}
+                    </if>
+                    ) refundCashPay,
+                (select IFNULL(sum(amount),0) from sys_order_flow
+                    where pay_method in ('储值卡') and flow_type = '退款' and <![CDATA[ create_time > #{item.beginTime} and create_time < #{item.endTime}]]>
+                    <if test="shopId != null">
+                        and shop_id=#{shopId}
+                    </if>
+                    <if test="companyId != null">
+                        and company_id=#{companyId}
+                    </if>
+                    ) refundCardPay,
+                (select IFNULL(sum(amount),0) from sys_order_flow a
+                    inner join sys_order_item b on a.order_id=b.ORDER_ID
+                    inner join shopping_goods c on b.goods_id=c.id
+                    where c.good_type='家居产品' and <![CDATA[ a.create_time > #{item.beginTime} and a.create_time < #{item.endTime}]]>
+                    <if test="shopId != null">
+                        and a.shop_id=#{shopId}
+                    </if>
+                    <if test="companyId != null">
+                        and a.company_id=#{companyId}
+                    </if>
+                    ) productAchieve,
+                (select IFNULL(sum(amount),0) from sys_order_flow a
+                    inner join sys_order_item b on a.order_id=b.ORDER_ID
+                    inner join shopping_goods c on b.goods_id=c.id
+                    where c.good_type!='家居产品' and <![CDATA[ a.create_time > #{item.beginTime} and a.create_time < #{item.endTime}]]>
+                    <if test="shopId != null">
+                        and a.shop_id=#{shopId}
+                    </if>
+                    <if test="companyId != null">
+                        and a.company_id=#{companyId}
+                    </if>
+                    ) cardAchieve,
+                (select IFNULL(sum(amount),0) from sys_order_flow where flow_type = '退款' and <![CDATA[ create_time > #{item.beginTime} and create_time < #{item.endTime}]]>
+                    <if test="shopId != null">
+                        and shop_id=#{shopId}
+                    </if>
+                    <if test="companyId != null">
+                        and company_id=#{companyId}
+                    </if>
+                ) refund,
+                (select IFNULL(count(1),0) from sys_order
+                    where STATU in ('已付款', '欠款') and <![CDATA[ ORDER_TIME > #{item.beginTime} and ORDER_TIME < #{item.endTime} ]]>
+                    <if test="shopId != null">
+                        and shop_id=#{shopId}
+                    </if>
+                    <if test="companyId != null">
+                        and company_id=#{companyId}
+                    </if>
+                    ) perCustomCnt,
+                (select IFNULL(sum(b.COUNT),0) from sys_order a inner join sys_order_item b on a.ID=b.ORDER_ID
+                    where a.STATU in ('已付款', '欠款') and <![CDATA[ ORDER_TIME > #{item.beginTime} and ORDER_TIME < #{item.endTime} ]]>
+                    <if test="shopId != null">
+                        and shop_id=#{shopId}
+                    </if>
+                    <if test="companyId != null">
+                        and company_id=#{companyId}
+                    </if>
+                    ) totalSaleCnt,
+                (select IFNULL(sum(e.count * d.GOODS_PRICE),0) from sys_order a
+                    inner join sys_out_store b on a.id=b.ORDER_ID
+                    inner join sys_out_store_item c on b.id=c.OUT_STORE_ID
+                    inner join sys_store_info d on c.store_id = d.ID
+                    inner join sys_order_item e on a.ID=e.ORDER_ID
+                    inner join shopping_goods f on e.goods_id=f.id and f.good_type='家居产品'
+                    where a.STATU in ('已付款', '欠款') and <![CDATA[ ORDER_TIME > #{item.beginTime} and ORDER_TIME < #{item.endTime} ]]>
+                    <if test="shopId != null">
+                        and a.shop_id=#{shopId}
+                    </if>
+                    <if test="companyId != null">
+                        and a.company_id=#{companyId}
+                    </if>
+                ) goodsCost,
+                (select IFNULL(sum(b.COUNT * IFNULL(c.price, 0)),0) from sys_order a
+                    inner join sys_order_item b on a.ID=b.ORDER_ID
+                    inner join shopping_goods c on c.good_type != '家居产品' and b.goods_id=c.id
+                    where a.STATU in ('已付款', '欠款') and <![CDATA[ ORDER_TIME > #{item.beginTime} and ORDER_TIME < #{item.endTime} ]]>
+                    <if test="shopId != null">
+                        and a.shop_id=#{shopId}
+                    </if>
+                    <if test="companyId != null">
+                        and a.company_id=#{companyId}
+                    </if>
+                ) otherCost,
+                (select IFNULL(sum(IFNULL(his_consume, 0)),0) from achieve_new
+                    where <![CDATA[datatime > #{item.beginTime} and datatime < #{item.endTime}]]>
+                    <if test="shopId != null">
+                        and shop_id=#{shopId}
+                    </if>
+                    <if test="companyId != null">
+                        and company_id=#{companyId}
+                    </if>
+                    ) consumePay,
+                (select IFNULL(sum(IFNULL(free_consume, 0)),0) from achieve_new
+                    where <![CDATA[datatime > #{item.beginTime} and datatime < #{item.endTime}]]>
+                    <if test="shopId != null">
+                        and shop_id=#{shopId}
+                    </if>
+                    <if test="companyId != null">
+                        and company_id=#{companyId}
+                    </if>
+                    ) freeConsumePay,
+                (select IFNULL(sum(IFNULL(number_of_people, 0)),0) from achieve_new
+                    where <![CDATA[datatime > #{item.beginTime} and datatime < #{item.endTime}]]>
+                    <if test="shopId != null">
+                        and shop_id=#{shopId}
+                    </if>
+                    <if test="companyId != null">
+                        and company_id=#{companyId}
+                    </if>
+                    ) peopleCnt,
+                (select IFNULL(sum(IFNULL(proj_num, 0)),0) from achieve_new
+                    where <![CDATA[datatime > #{item.beginTime} and datatime < #{item.endTime}]]>
+                    <if test="shopId != null">
+                        and shop_id=#{shopId}
+                    </if>
+                    <if test="companyId != null">
+                        and company_id=#{companyId}
+                    </if>
+                    ) projConsumeCnt,
+                (select IFNULL(sum(IFNULL(proj_time, 0)),0) from achieve_new
+                    where <![CDATA[datatime > #{item.beginTime} and datatime < #{item.endTime}]]>
+                    <if test="shopId != null">
+                        and shop_id=#{shopId}
+                    </if>
+                    <if test="companyId != null">
+                        and company_id=#{companyId}
+                    </if>
+                    ) timeLength
+            from dual
+        </foreach>
     </select>
 
 </mapper>
\ No newline at end of file

--
Gitblit v1.9.1