wzy
2021-01-14 aa11f5dc00d905769cd34a3cad84a074957148ed
zq-erp/src/main/resources/mybatis/mapper/hive/SysBusinessDataDao.xml
@@ -533,6 +533,129 @@
        ) t
    </select>
    <select id="selectApiBusinessDataInPage" resultType="com.matrix.system.app.vo.BusinessesDataShowVo">
        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
        <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="selectDemo" resultType="com.matrix.system.app.vo.BusinessesDataShowVo">
        <foreach collection="list" index="index" item="item"   separator="union all"  >
            select
                (select sum(amount) from sys_order_flow where shop_id=34 and <![CDATA[ create_time > '2021-01-13 00:00:00' and create_time < '2021-01-14 00:00:00')]]> totalPay,
                (select sum(amount) from sys_order_flow where shop_id=34 and pay_method not in ('储值卡', '欠款') and flow_type != '退款' and <![CDATA[ create_time > '2021-01-13 00:00:00' and create_time < '2021-01-14 00:00:00')]]> cashPay,
                (select sum(amount) from sys_order_flow where shop_id=34 and pay_method = '储值卡' and flow_type != '退款' and <![CDATA[ create_time > '2021-01-13 00:00:00' and create_time < '2021-01-14 00:00:00' ]]>) cardPay,
                (select sum(amount) from sys_order_flow where shop_id=34 and pay_method = '欠款' and <![CDATA[ create_time > '2021-01-13 00:00:00' and create_time < '2021-01-14 00:00:00' ]]>) arrearsPay,
                (select sum(amount) from sys_order_flow where shop_id=34 and pay_method not in ('储值卡', '欠款') and flow_type = '退款' and <![CDATA[ create_time > '2021-01-13 00:00:00' and create_time < '2021-01-14 00:00:00' ]]>) refundCashPay,
                (select sum(amount) from sys_order_flow where shop_id=34 and pay_method in ('储值卡') and flow_type = '退款' and <![CDATA[ create_time > '2021-01-13 00:00:00' and create_time < '2021-01-14 00:00:00' ]]>) refundCardPay,
                (select sum(a.amount) 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 a.shop_id=34 and <![CDATA[ a.create_time > '2021-01-13 00:00:00' and a.create_time < '2021-01-14 00:00:00']]> ) productAchieve,
                (select sum(a.amount) 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 a.shop_id=34 and <![CDATA[ a.create_time > '2021-01-13 00:00:00' and a.create_time < '2021-01-14 00:00:00']]> ) cardAchieve,
                (select sum(amount) from sys_order_flow where shop_id=34 and flow_type = '退款' and <![CDATA[ create_time > '2021-01-13 00:00:00' and create_time < '2021-01-14 00:00:00' ]]>) refund,
                (select count(1) from sys_order where shop_id=34 and STATU in ('已付款', '欠款') and <![CDATA[ ORDER_TIME > '2021-01-13 00:00:00' and ORDER_TIME < '2021-01-14 00:00:00' ]]>) perCustomCnt,
                (select sum(b.COUNT) from sys_order a inner join sys_order_item b on a.ID=b.ORDER_ID
                    where a.SHOP_ID=34 and a.STATU in ('已付款', '欠款') and <![CDATA[ ORDER_TIME > '2021-01-13 00:00:00' and ORDER_TIME < '2021-01-14 00:00:00' ]]>) totalSaleCnt,
                (select sum(e.count * d.GOODS_PRICE) 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.shop_id=34 and a.STATU in ('已付款', '欠款') and <![CDATA[ ORDER_TIME > '2021-01-13 00:00:00' and ORDER_TIME < '2021-01-14 00:00:00']]>
                ) goodsCost,
                (select sum(b.COUNT * IFNULL(c.price, 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.shop_id=34 and a.STATU in ('已付款', '欠款') and <![CDATA[ORDER_TIME > '2021-01-13 00:00:00' and ORDER_TIME < '2021-01-14 00:00:00']]>
                ) otherCost
            from dual
        </foreach>
    </select>
</mapper>