<?xml version="1.0" encoding="UTF-8"?> 
 | 
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" 
 | 
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> 
 | 
  
 | 
<mapper namespace="com.matrix.system.hive.dao.SysBusinessDataDao"> 
 | 
    <!-- 定义SysBusinessData 的复杂关联map --> 
 | 
    <resultMap type="com.matrix.system.hive.bean.SysBusinessData" id="SysBusinessDataMap"> 
 | 
        <id property="id" column="id"/> 
 | 
        <result property="createBy" column="create_by"/> 
 | 
        <result property="createTime" column="create_time"/> 
 | 
        <result property="updateBy" column="update_by"/> 
 | 
        <result property="updateTime" column="update_time"/> 
 | 
        <result property="time" column="time"/> 
 | 
        <result property="companyId" column="company_id"/> 
 | 
        <result property="shopId" column="shop_id"/> 
 | 
        <result property="name" column="name"/> 
 | 
        <result property="value" column="value"/> 
 | 
        <result property="code" column="code"/> 
 | 
        <result property="sequence" column="sequence"/> 
 | 
        <result property="dataType" column="data_type"/> 
 | 
        <result property="t1" column="t1"/> 
 | 
        <result property="t2" column="t2"/> 
 | 
        <result property="t3" column="t3"/> 
 | 
        <result property="t4" column="t4"/> 
 | 
        <result property="t5" column="t5"/> 
 | 
        <result property="t6" column="t6"/> 
 | 
        <result property="t7" column="t7"/> 
 | 
        <result property="t8" column="t8"/> 
 | 
        <result property="t9" column="t9"/> 
 | 
        <result property="t10" column="t10"/> 
 | 
        <result property="t11" column="t11"/> 
 | 
        <result property="t12" column="t12"/> 
 | 
        <result property="t13" column="t13"/> 
 | 
        <result property="t14" column="t14"/> 
 | 
        <result property="t15" column="t15"/> 
 | 
    </resultMap> 
 | 
  
 | 
  
 | 
    <!-- 定义SysBusinessData 的简单map  ,本map不添加其他的关联属性 --> 
 | 
    <resultMap type="com.matrix.system.hive.bean.SysBusinessData" id="SysBusinessDataSimpleMap"> 
 | 
        <id property="id" column="id"/> 
 | 
        <result property="createBy" column="create_by"/> 
 | 
        <result property="createTime" column="create_time"/> 
 | 
        <result property="updateBy" column="update_by"/> 
 | 
        <result property="updateTime" column="update_time"/> 
 | 
        <result property="time" column="time"/> 
 | 
        <result property="companyId" column="company_id"/> 
 | 
        <result property="shopId" column="shop_id"/> 
 | 
        <result property="name" column="name"/> 
 | 
        <result property="value" column="value"/> 
 | 
        <result property="code" column="code"/> 
 | 
        <result property="sequence" column="sequence"/> 
 | 
        <result property="dataType" column="data_type"/> 
 | 
        <result property="t1" column="t1"/> 
 | 
        <result property="t2" column="t2"/> 
 | 
        <result property="t3" column="t3"/> 
 | 
        <result property="t4" column="t4"/> 
 | 
        <result property="t5" column="t5"/> 
 | 
        <result property="t6" column="t6"/> 
 | 
        <result property="t7" column="t7"/> 
 | 
        <result property="t8" column="t8"/> 
 | 
        <result property="t9" column="t9"/> 
 | 
        <result property="t10" column="t10"/> 
 | 
        <result property="t11" column="t11"/> 
 | 
        <result property="t12" column="t12"/> 
 | 
        <result property="t13" column="t13"/> 
 | 
        <result property="t14" column="t14"/> 
 | 
        <result property="t15" column="t15"/> 
 | 
    </resultMap> 
 | 
  
 | 
    <!-- 字段sql --> 
 | 
    <sql id="columns"> 
 | 
        create_by, 
 | 
        create_time, 
 | 
        update_by, 
 | 
        update_time, 
 | 
            id, 
 | 
            time, 
 | 
            company_id, 
 | 
            shop_id, 
 | 
            name, 
 | 
            value, 
 | 
            code, 
 | 
            sequence, 
 | 
            data_type, 
 | 
            t1, 
 | 
            t2, 
 | 
            t3, 
 | 
            t4, 
 | 
            t5, 
 | 
            t6, 
 | 
            t7, 
 | 
            t8, 
 | 
            t9, 
 | 
            t10, 
 | 
            t11, 
 | 
            t12, 
 | 
            t13, 
 | 
            t14, 
 | 
            t15 
 | 
    </sql> 
 | 
  
 | 
    <!-- 属性sql --> 
 | 
    <sql id="propertys"> 
 | 
        #{item.createBy}, 
 | 
        now(), 
 | 
        #{item.updateBy}, 
 | 
        now(), 
 | 
            #{item.id}, 
 | 
            #{item.time}, 
 | 
            #{item.companyId}, 
 | 
            #{item.shopId}, 
 | 
            #{item.name}, 
 | 
            #{item.value}, 
 | 
            #{item.code}, 
 | 
            #{item.sequence}, 
 | 
            #{item.dataType}, 
 | 
            #{item.t1}, 
 | 
            #{item.t2}, 
 | 
            #{item.t3}, 
 | 
            #{item.t4}, 
 | 
            #{item.t5}, 
 | 
            #{item.t6}, 
 | 
            #{item.t7}, 
 | 
            #{item.t8}, 
 | 
            #{item.t9}, 
 | 
            #{item.t10}, 
 | 
            #{item.t11}, 
 | 
            #{item.t12}, 
 | 
            #{item.t13}, 
 | 
            #{item.t14}, 
 | 
            #{item.t15} 
 | 
    </sql> 
 | 
  
 | 
    <!-- where sql --> 
 | 
    <sql id="where_sql"> 
 | 
  
 | 
        <if test="record!=null"> 
 | 
            <if test="(record.id!=null and record.id!='') or  (record.id!='' and record.id==0)  "> 
 | 
                and id = #{record.id} 
 | 
            </if> 
 | 
            <if test="record.time!=null   "> 
 | 
                and to_days(time) = to_days(#{record.time}) 
 | 
            </if> 
 | 
            <if test="(record.companyId!=null and record.companyId!='') or  (record.companyId!='' and record.companyId==0)  "> 
 | 
                and company_id = #{record.companyId} 
 | 
            </if> 
 | 
            <if test="(record.shopId!=null and record.shopId!='') or  (record.shopId!='' and record.shopId==0)  "> 
 | 
                and shop_id = #{record.shopId} 
 | 
            </if> 
 | 
            <if test="(record.name!=null and record.name!='') or  (record.name!='' and record.name==0)  "> 
 | 
                and name = #{record.name} 
 | 
            </if> 
 | 
            <if test="(record.value!=null and record.value!='') or  (record.value!='' and record.value==0)  "> 
 | 
                and value = #{record.value} 
 | 
            </if> 
 | 
            <if test="(record.code!=null and record.code!='') or  (record.code!='' and record.code==0)  "> 
 | 
                and code = #{record.code} 
 | 
            </if> 
 | 
            <if test="(record.sequence!=null and record.sequence!='') or  (record.sequence!='' and record.sequence==0)  "> 
 | 
                and sequence = #{record.sequence} 
 | 
            </if> 
 | 
            <if test="(record.dataType!=null and record.dataType!='') or  (record.dataType!='' and record.dataType==0)  "> 
 | 
                and data_type = #{record.dataType} 
 | 
            </if> 
 | 
            <if test="(record.t1!=null and record.t1!='') or  (record.t1!='' and record.t1==0)  "> 
 | 
                and t1 = #{record.t1} 
 | 
            </if> 
 | 
            <if test="(record.t2!=null and record.t2!='') or  (record.t2!='' and record.t2==0)  "> 
 | 
                and t2 = #{record.t2} 
 | 
            </if> 
 | 
            <if test="(record.t3!=null and record.t3!='') or  (record.t3!='' and record.t3==0)  "> 
 | 
                and t3 = #{record.t3} 
 | 
            </if> 
 | 
            <if test="(record.t4!=null and record.t4!='') or  (record.t4!='' and record.t4==0)  "> 
 | 
                and t4 = #{record.t4} 
 | 
            </if> 
 | 
            <if test="(record.t5!=null and record.t5!='') or  (record.t5!='' and record.t5==0)  "> 
 | 
                and t5 = #{record.t5} 
 | 
            </if> 
 | 
            <if test="(record.t6!=null and record.t6!='') or  (record.t6!='' and record.t6==0)  "> 
 | 
                and t6 = #{record.t6} 
 | 
            </if> 
 | 
            <if test="(record.t7!=null and record.t7!='') or  (record.t7!='' and record.t7==0)  "> 
 | 
                and t7 = #{record.t7} 
 | 
            </if> 
 | 
            <if test="(record.t8!=null and record.t8!='') or  (record.t8!='' and record.t8==0)  "> 
 | 
                and t8 = #{record.t8} 
 | 
            </if> 
 | 
            <if test="(record.t9!=null and record.t9!='') or  (record.t9!='' and record.t9==0)  "> 
 | 
                and t9 = #{record.t9} 
 | 
            </if> 
 | 
            <if test="(record.t10!=null and record.t10!='') or  (record.t10!='' and record.t10==0)  "> 
 | 
                and t10 = #{record.t10} 
 | 
            </if> 
 | 
            <if test="(record.t11!=null and record.t11!='') or  (record.t11!='' and record.t11==0)  "> 
 | 
                and t11 = #{record.t11} 
 | 
            </if> 
 | 
            <if test="(record.t12!=null and record.t12!='') or  (record.t12!='' and record.t12==0)  "> 
 | 
                and t12 = #{record.t12} 
 | 
            </if> 
 | 
            <if test="(record.t13!=null and record.t13!='') or  (record.t13!='' and record.t13==0)  "> 
 | 
                and t13 = #{record.t13} 
 | 
            </if> 
 | 
            <if test="(record.t14!=null and record.t14!='') or  (record.t14!='' and record.t14==0)  "> 
 | 
                and t14 = #{record.t14} 
 | 
            </if> 
 | 
            <if test="(record.t15!=null and record.t15!='') or  (record.t15!='' and record.t15==0)  "> 
 | 
                and t15 = #{record.t15} 
 | 
            </if> 
 | 
        </if> 
 | 
  
 | 
    </sql> 
 | 
  
 | 
    <!--  插入方法   --> 
 | 
    <insert id="insert" parameterType="com.matrix.system.hive.bean.SysBusinessData" 
 | 
            useGeneratedKeys="true" keyProperty="item.id"> 
 | 
        INSERT INTO sys_business_data ( 
 | 
        <include refid="columns"></include> 
 | 
        ) 
 | 
        VALUES ( 
 | 
        <include refid="propertys"></include> 
 | 
        ) 
 | 
    </insert> 
 | 
  
 | 
  
 | 
    <!--  批量插入   --> 
 | 
    <insert id="batchInsert" parameterType="java.util.List"> 
 | 
        INSERT INTO sys_business_data ( 
 | 
        <include refid="columns"></include> 
 | 
        ) 
 | 
        VALUES 
 | 
        <foreach collection="list" item="item" index="index" separator=",">( 
 | 
            <include refid="propertys"></include> 
 | 
            ) 
 | 
        </foreach> 
 | 
    </insert> 
 | 
  
 | 
  
 | 
    <!--  根据Map更新 部分更新   --> 
 | 
    <update id="updateByMap" parameterType="java.util.HashMap"> 
 | 
        UPDATE sys_business_data 
 | 
        <set> 
 | 
            <if test="_parameter.containsKey('time')"> 
 | 
                time = #{time}, 
 | 
            </if> 
 | 
            <if test="_parameter.containsKey('companyId')"> 
 | 
                company_id = #{companyId}, 
 | 
            </if> 
 | 
            <if test="_parameter.containsKey('shopId')"> 
 | 
                shop_id = #{shopId}, 
 | 
            </if> 
 | 
            <if test="_parameter.containsKey('name')"> 
 | 
                name = #{name}, 
 | 
            </if> 
 | 
            <if test="_parameter.containsKey('value')"> 
 | 
                value = #{value}, 
 | 
            </if> 
 | 
            <if test="_parameter.containsKey('code')"> 
 | 
                code = #{code}, 
 | 
            </if> 
 | 
            <if test="_parameter.containsKey('sequence')"> 
 | 
                sequence = #{sequence}, 
 | 
            </if> 
 | 
            <if test="_parameter.containsKey('dataType')"> 
 | 
                data_type = #{dataType}, 
 | 
            </if> 
 | 
            <if test="_parameter.containsKey('t1')"> 
 | 
                t1 = #{t1}, 
 | 
            </if> 
 | 
            <if test="_parameter.containsKey('t2')"> 
 | 
                t2 = #{t2}, 
 | 
            </if> 
 | 
            <if test="_parameter.containsKey('t3')"> 
 | 
                t3 = #{t3}, 
 | 
            </if> 
 | 
            <if test="_parameter.containsKey('t4')"> 
 | 
                t4 = #{t4}, 
 | 
            </if> 
 | 
            <if test="_parameter.containsKey('t5')"> 
 | 
                t5 = #{t5}, 
 | 
            </if> 
 | 
            <if test="_parameter.containsKey('t6')"> 
 | 
                t6 = #{t6}, 
 | 
            </if> 
 | 
            <if test="_parameter.containsKey('t7')"> 
 | 
                t7 = #{t7}, 
 | 
            </if> 
 | 
            <if test="_parameter.containsKey('t8')"> 
 | 
                t8 = #{t8}, 
 | 
            </if> 
 | 
            <if test="_parameter.containsKey('t9')"> 
 | 
                t9 = #{t9}, 
 | 
            </if> 
 | 
            <if test="_parameter.containsKey('t10')"> 
 | 
                t10 = #{t10}, 
 | 
            </if> 
 | 
            <if test="_parameter.containsKey('t11')"> 
 | 
                t11 = #{t11}, 
 | 
            </if> 
 | 
            <if test="_parameter.containsKey('t12')"> 
 | 
                t12 = #{t12}, 
 | 
            </if> 
 | 
            <if test="_parameter.containsKey('t13')"> 
 | 
                t13 = #{t13}, 
 | 
            </if> 
 | 
            <if test="_parameter.containsKey('t14')"> 
 | 
                t14 = #{t14}, 
 | 
            </if> 
 | 
            <if test="_parameter.containsKey('t15')"> 
 | 
                t15 = #{t15}, 
 | 
            </if> 
 | 
        </set> 
 | 
        WHERE id=#{id} 
 | 
    </update> 
 | 
  
 | 
  
 | 
    <!--  根据对象更新 部分更新   --> 
 | 
    <update id="updateByModel" parameterType="Integer"> 
 | 
        UPDATE sys_business_data 
 | 
        <set> 
 | 
            <if test="record.time != null "> 
 | 
                time = #{record.time}, 
 | 
            </if> 
 | 
            <if test="record.companyId != null "> 
 | 
                company_id = #{record.companyId}, 
 | 
            </if> 
 | 
            <if test="record.shopId != null "> 
 | 
                shop_id = #{record.shopId}, 
 | 
            </if> 
 | 
            <if test="record.name != null and record.name != '' "> 
 | 
                name = #{record.name}, 
 | 
            </if> 
 | 
            <if test="record.value != null and record.value != '' "> 
 | 
                value = #{record.value}, 
 | 
            </if> 
 | 
            <if test="record.code != null and record.code != '' "> 
 | 
                code = #{record.code}, 
 | 
            </if> 
 | 
            <if test="record.sequence != null "> 
 | 
                sequence = #{record.sequence}, 
 | 
            </if> 
 | 
            <if test="record.dataType != null "> 
 | 
                data_type = #{record.dataType}, 
 | 
            </if> 
 | 
            <if test="record.t1 != null and record.t1 != '' "> 
 | 
                t1 = #{record.t1}, 
 | 
            </if> 
 | 
            <if test="record.t2 != null and record.t2 != '' "> 
 | 
                t2 = #{record.t2}, 
 | 
            </if> 
 | 
            <if test="record.t3 != null and record.t3 != '' "> 
 | 
                t3 = #{record.t3}, 
 | 
            </if> 
 | 
            <if test="record.t4 != null and record.t4 != '' "> 
 | 
                t4 = #{record.t4}, 
 | 
            </if> 
 | 
            <if test="record.t5 != null and record.t5 != '' "> 
 | 
                t5 = #{record.t5}, 
 | 
            </if> 
 | 
            <if test="record.t6 != null and record.t6 != '' "> 
 | 
                t6 = #{record.t6}, 
 | 
            </if> 
 | 
            <if test="record.t7 != null and record.t7 != '' "> 
 | 
                t7 = #{record.t7}, 
 | 
            </if> 
 | 
            <if test="record.t8 != null and record.t8 != '' "> 
 | 
                t8 = #{record.t8}, 
 | 
            </if> 
 | 
            <if test="record.t9 != null and record.t9 != '' "> 
 | 
                t9 = #{record.t9}, 
 | 
            </if> 
 | 
            <if test="record.t10 != null and record.t10 != '' "> 
 | 
                t10 = #{record.t10}, 
 | 
            </if> 
 | 
            <if test="record.t11 != null and record.t11 != '' "> 
 | 
                t11 = #{record.t11}, 
 | 
            </if> 
 | 
            <if test="record.t12 != null and record.t12 != '' "> 
 | 
                t12 = #{record.t12}, 
 | 
            </if> 
 | 
            <if test="record.t13 != null and record.t13 != '' "> 
 | 
                t13 = #{record.t13}, 
 | 
            </if> 
 | 
            <if test="record.t14 != null and record.t14 != '' "> 
 | 
                t14 = #{record.t14}, 
 | 
            </if> 
 | 
            <if test="record.t15 != null and record.t15 != '' "> 
 | 
                t15 = #{record.t15}, 
 | 
            </if> 
 | 
        </set> 
 | 
        WHERE id=#{record.id} 
 | 
    </update> 
 | 
  
 | 
  
 | 
    <!-- 批量删除 --> 
 | 
    <delete id="deleteByIds" parameterType="java.util.List"> 
 | 
        delete from sys_business_data where id in 
 | 
        <foreach collection="list" index="index" item="item" open="(" 
 | 
                 separator="," close=")"> 
 | 
            #{item} 
 | 
        </foreach> 
 | 
    </delete> 
 | 
  
 | 
    <!-- 根据id删除--> 
 | 
    <delete id="deleteById" parameterType="Integer"> 
 | 
        DELETE FROM sys_business_data 
 | 
        where  id=#{id}  
 | 
    </delete> 
 | 
  
 | 
    <!-- 根据对象删除--> 
 | 
    <delete id="deleteByModel" parameterType="com.matrix.system.hive.bean.SysBusinessData"> 
 | 
        DELETE FROM sys_business_data 
 | 
        <where> 
 | 
            <include refid="where_sql"></include> 
 | 
        </where> 
 | 
    </delete> 
 | 
  
 | 
  
 | 
    <!-- 分页查询 --> 
 | 
    <select id="selectInPage" resultMap="SysBusinessDataMap"> 
 | 
        select 
 | 
        <include refid="columns"></include> 
 | 
        from sys_business_data 
 | 
        <where> 
 | 
            <include refid="where_sql"></include> 
 | 
        </where> 
 | 
        <if test="pageVo !=null"><!-- 判断pageVo对象是否为空 --> 
 | 
            <if test="pageVo.sort !=null  and pageVo.order !=null"> 
 | 
                order by 
 | 
                ${pageVo.sort} ${pageVo.order} 
 | 
            </if> 
 | 
            <if test="pageVo.offset >=0  and pageVo.limit >0"> 
 | 
                limit 
 | 
                #{pageVo.offset},#{pageVo.limit} 
 | 
            </if> 
 | 
        </if> 
 | 
    </select> 
 | 
  
 | 
    <!-- 查询总条数 --> 
 | 
    <select id="selectTotalRecord" parameterType="long" resultType="java.lang.Integer"> 
 | 
        select count(*) 
 | 
        from sys_business_data 
 | 
        <where> 
 | 
            <include refid="where_sql"></include> 
 | 
        </where> 
 | 
    </select> 
 | 
  
 | 
    <!-- 根据id查询--> 
 | 
    <select id="selectById" resultMap="SysBusinessDataMap"> 
 | 
        select 
 | 
        <include refid="columns"></include> 
 | 
        from sys_business_data 
 | 
        where id=#{id} 
 | 
    </select> 
 | 
  
 | 
  
 | 
    <!-- 根据id 锁表查询--> 
 | 
    <select id="selectForUpdate" resultMap="SysBusinessDataMap"> 
 | 
        select 
 | 
        <include refid="columns"></include> 
 | 
        from sys_business_data 
 | 
        where id=#{id} 
 | 
        for update 
 | 
    </select> 
 | 
  
 | 
  
 | 
    <!-- 根据对象查询--> 
 | 
    <select id="selectByModel" resultMap="SysBusinessDataMap"> 
 | 
        select 
 | 
        <include refid="columns"></include> 
 | 
        from sys_business_data 
 | 
        <where> 
 | 
            <include refid="where_sql"></include> 
 | 
        </where> 
 | 
    </select> 
 | 
  
 | 
    <select id="selectShowList" resultType="com.matrix.system.hive.statistics.BusinessDataShowVo"> 
 | 
        SELECT shop_id , 
 | 
        a.time, 
 | 
        b.SHOP_NAME as shopName, 
 | 
        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 
 | 
        left join sys_shop_info b on a.shop_id=b.ID 
 | 
        <where> 
 | 
            <if test="record.beginTime !=null"> 
 | 
                and to_days(a.time) >= to_days(#{record.beginTime}) 
 | 
            </if> 
 | 
            <if test="record.endTime !=null"> 
 | 
                <![CDATA[ and to_days(a.time) <=  to_days(#{record.endTime}) ]]> 
 | 
            </if> 
 | 
            <if test="record.shopId !=null and record.shopId != ''"> 
 | 
                and a.shop_Id = #{record.shopId} 
 | 
            </if> 
 | 
        </where> 
 | 
        GROUP BY a.time ,a.shop_id 
 | 
        <if test="pageVo !=null"><!-- 判断pageVo对象是否为空 --> 
 | 
            <if test="pageVo.sort !=null  and pageVo.order !=null"> 
 | 
                order by 
 | 
                ${pageVo.sort} ${pageVo.order} 
 | 
            </if> 
 | 
            <if test="pageVo.offset >=0  and pageVo.limit >0"> 
 | 
                limit 
 | 
                #{pageVo.offset},#{pageVo.limit} 
 | 
            </if> 
 | 
        </if> 
 | 
    </select> 
 | 
  
 | 
  
 | 
    <select id="selectShowListTotal" resultType="java.lang.Integer"  > 
 | 
        select count(1) from ( 
 | 
        SELECT shop_id , 
 | 
        a.time 
 | 
        FROM sys_business_data a 
 | 
        <where> 
 | 
            <if test="record.beginTime !=null"> 
 | 
                and to_days(a.time) >= to_days(#{record.beginTime}) 
 | 
            </if> 
 | 
            <if test="record.endTime !=null"> 
 | 
                <![CDATA[ and to_days(a.time) <=  to_days(#{record.endTime}) ]]> 
 | 
            </if> 
 | 
            <if test="record.shopId !=null and record.shopId != ''"> 
 | 
                and a.shop_Id = #{record.shopId} 
 | 
            </if> 
 | 
        </where> 
 | 
        GROUP BY a.time ,a.shop_id 
 | 
        ) 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="selectApiBusinessData" resultType="com.matrix.system.app.vo.BusinessesDataShowVo"> 
 | 
        <foreach collection="list" index="index" item="item"   separator="union all"  > 
 | 
            select 
 | 
                #{item.beginTime} dataTime, 
 | 
                (select shop_short_name from sys_shop_info where id=#{shopId}) shopName, 
 | 
                (select IFNULL(sum(a.amount),0) from sys_order_flow a 
 | 
                    inner join sys_order b on a.order_id=b.id and b.statu!='已取消' 
 | 
                    where <![CDATA[ a.create_time > #{item.beginTime} and a.create_time < #{item.endTime}]]> and a.pay_method!='欠款' 
 | 
                    <if test="shopId != null"> 
 | 
                        and a.shop_id=#{shopId} 
 | 
                    </if> 
 | 
                    <if test="companyId != null"> 
 | 
                        and a.company_id=#{companyId} 
 | 
                    </if> 
 | 
                    )totalPay, 
 | 
                (select IFNULL(sum(a.amount),0) from sys_order_flow a 
 | 
                    inner join sys_order b on a.order_id=b.id and b.statu!='已取消' 
 | 
                    where a.pay_method not in ('储值卡', '欠款') 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> 
 | 
                    ) cashPay, 
 | 
                (select IFNULL(sum(a.amount),0) from sys_order_flow a 
 | 
                    inner join sys_order b on a.order_id=b.id and b.statu!='已取消' 
 | 
                    where a.pay_method = '储值卡' and a.flow_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> 
 | 
                    ) cardPay, 
 | 
                (select IFNULL(sum(a.amount),0) from sys_order_flow a 
 | 
                    inner join sys_order b on a.order_id=b.id and b.statu!='已取消' 
 | 
                    where a.pay_method = '欠款' 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> 
 | 
                    ) arrearsPay, 
 | 
                (select IFNULL(sum(a.amount),0) from sys_order_flow a 
 | 
                    inner join sys_order b on a.order_id=b.id and b.statu!='已取消' 
 | 
                    where a.pay_method not in ('储值卡', '欠款') and a.flow_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> 
 | 
                    ) refundCashPay, 
 | 
                (select IFNULL(sum(a.amount),0) from sys_order_flow a 
 | 
                    inner join sys_order b on a.order_id=b.id and b.statu!='已取消' 
 | 
                    where a.pay_method in ('储值卡') and a.flow_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> 
 | 
                    ) refundCardPay, 
 | 
                (select IFNULL(sum(zk_price*count),0) from sys_order_item a 
 | 
                    inner join shopping_goods b on a.goods_id=b.id 
 | 
                    inner join sys_order c on a.ORDER_ID=c.id and c.statu!='已取消' 
 | 
                    where b.good_type='家居产品' and <![CDATA[ c.pay_time > #{item.beginTime} and c.pay_time < #{item.endTime}]]> 
 | 
                    <if test="shopId != null"> 
 | 
                        and c.shop_id=#{shopId} 
 | 
                    </if> 
 | 
                    <if test="companyId != null"> 
 | 
                        and c.company_id=#{companyId} 
 | 
                    </if> 
 | 
                    ) productAchieve, 
 | 
                (select IFNULL(sum(zk_price*count),0) from sys_order_item a 
 | 
                    inner join shopping_goods b on a.goods_id=b.id 
 | 
                    inner join sys_order c on a.ORDER_ID=c.id and c.statu!='已取消' 
 | 
                    where b.good_type!='家居产品' and <![CDATA[ c.pay_time > #{item.beginTime} and c.pay_time < #{item.endTime}]]> 
 | 
                    <if test="shopId != null"> 
 | 
                        and c.shop_id=#{shopId} 
 | 
                    </if> 
 | 
                    <if test="companyId != null"> 
 | 
                        and c.company_id=#{companyId} 
 | 
                    </if> 
 | 
                    ) cardAchieve, 
 | 
                (select IFNULL(sum(a.amount),0) from sys_order_flow a 
 | 
                    inner join sys_order b on a.order_id=b.id and b.statu!='已取消' 
 | 
                    where a.flow_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> 
 | 
                ) refund, 
 | 
                (select sum(IFNULL(amount, 0)) 
 | 
                    from sys_order_flow a 
 | 
                    inner join sys_order b on a.order_id=b.id and b.STATU!='已取消' 
 | 
                    where a.pay_method='储值卡' and a.is_gift='N' 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> 
 | 
                ) cardAmount, 
 | 
                (select sum(IFNULL(amount, 0)) 
 | 
                    from sys_order_flow a 
 | 
                    inner join sys_order b on a.order_id=b.id and b.STATU!='已取消' 
 | 
                    where a.pay_method='储值卡' and a.is_gift='Y' 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> 
 | 
                ) cardFreeAmount, 
 | 
                (select IFNULL(count(1),0) from sys_order 
 | 
                    where STATU in ('已付款', '欠款') and orderType=1 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 a.orderType=1 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 a.orderType=1 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 a.orderType=1 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> 
 | 
  
 | 
    <select id="selectDailySaleData" resultType="com.matrix.system.hive.statistics.DailySaleVo"> 
 | 
        <foreach collection="list" index="index" item="item"   separator="union all"  > 
 | 
            select 
 | 
            #{item.beginTime} dataTime, 
 | 
            (select shop_short_name from sys_shop_info where id=#{shopId}) shopName, 
 | 
            (select sum(total) shouldPay from sys_order 
 | 
                where STATU in ('已付款', '欠款') and orderType=1 and <![CDATA[ create_time > #{item.beginTime} and create_time < #{item.endTime}]]> 
 | 
                <if test="shopId != null"> 
 | 
                    and shop_id=#{shopId} 
 | 
                </if> 
 | 
                ) shouldPay, 
 | 
            (select IFNULL(sum(amount),0) from sys_order_flow 
 | 
                where <![CDATA[ create_time > #{item.beginTime} and create_time < #{item.endTime}]]> and pay_method!='欠款' 
 | 
                <if test="shopId != null"> 
 | 
                    and shop_id=#{shopId} 
 | 
                </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> 
 | 
            ) 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> 
 | 
            ) 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> 
 | 
            ) 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> 
 | 
            ) 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> 
 | 
            ) refundCardPay, 
 | 
            (select IFNULL(sum(zk_price*count),0) from sys_order_item a 
 | 
            inner join shopping_goods b on a.goods_id=b.id 
 | 
            inner join sys_order c on a.ORDER_ID=c.id 
 | 
            where b.good_type='家居产品' and <![CDATA[ c.pay_time > #{item.beginTime} and c.pay_time < #{item.endTime}]]> 
 | 
            <if test="shopId != null"> 
 | 
                and c.shop_id=#{shopId} 
 | 
            </if> 
 | 
            ) productAchieve, 
 | 
            (select IFNULL(sum(zk_price*count),0) from sys_order_item a 
 | 
            inner join shopping_goods b on a.goods_id=b.id 
 | 
            inner join sys_order c on a.ORDER_ID=c.id 
 | 
            where b.good_type!='家居产品' and <![CDATA[ c.pay_time > #{item.beginTime} and c.pay_time < #{item.endTime}]]> 
 | 
            <if test="shopId != null"> 
 | 
                and c.shop_id=#{shopId} 
 | 
            </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> 
 | 
            ) refund, 
 | 
            (select IFNULL(count(1),0) from sys_order 
 | 
            where STATU in ('已付款', '欠款') and orderType=1 and <![CDATA[ ORDER_TIME > #{item.beginTime} and ORDER_TIME < #{item.endTime} ]]> 
 | 
            <if test="shopId != null"> 
 | 
                and shop_id=#{shopId} 
 | 
            </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 a.orderType=1 and <![CDATA[ ORDER_TIME > #{item.beginTime} and ORDER_TIME < #{item.endTime} ]]> 
 | 
            <if test="shopId != null"> 
 | 
                and shop_id=#{shopId} 
 | 
            </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 a.orderType=1 and <![CDATA[ ORDER_TIME > #{item.beginTime} and ORDER_TIME < #{item.endTime} ]]> 
 | 
            <if test="shopId != null"> 
 | 
                and a.shop_id=#{shopId} 
 | 
            </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 a.orderType=1 and <![CDATA[ ORDER_TIME > #{item.beginTime} and ORDER_TIME < #{item.endTime} ]]> 
 | 
            <if test="shopId != null"> 
 | 
                and a.shop_id=#{shopId} 
 | 
            </if> 
 | 
            ) otherCost, 
 | 
            (select  sum(case a.paymethod when '微信' then amount else 0 end) wechat 
 | 
                from (<include refid="dailySaleFlow"></include>) a 
 | 
            ) wechat, 
 | 
            (select 
 | 
                sum(case a.paymethod when '支付宝' then amount else 0 end) alipay 
 | 
                from (<include refid="dailySaleFlow"></include>) a 
 | 
            ) alipay, 
 | 
            (select 
 | 
                sum(case a.paymethod when '现金支付' then amount else 0 end) cash 
 | 
                from (<include refid="dailySaleFlow"></include>) a 
 | 
            ) cash, 
 | 
            (select 
 | 
                sum(case a.paymethod when '银行卡' then amount else 0 end) bankCard 
 | 
                from (<include refid="dailySaleFlow"></include>) a 
 | 
            ) bankCard, 
 | 
            (select 
 | 
                sum(case a.paymethod when '团购' then amount else 0 end) tuan 
 | 
                from (<include refid="dailySaleFlow"></include>) a 
 | 
            ) tuan, 
 | 
            (select 
 | 
                sum(case a.paymethod when '本金收款' then amount else 0 end) cardBj 
 | 
                from (<include refid="dailySaleFlow"></include>) a 
 | 
            ) cardBj, 
 | 
            (select 
 | 
                sum(case a.paymethod when '赠金收款' then amount else 0 end) cardFree 
 | 
            from (<include refid="dailySaleFlow"></include>) a 
 | 
            ) cardFree, 
 | 
            (select 
 | 
                sum(case a.paymethod when '欠款' then amount else 0 end) arrears 
 | 
            from (<include refid="dailySaleFlow"></include>) a 
 | 
            ) arrears 
 | 
            from dual 
 | 
        </foreach> 
 | 
    </select> 
 | 
  
 | 
    <sql id="dailySaleFlow"> 
 | 
        select sum(amount) amount, case when is_gift = 'Y' then '赠金收款' when is_gift='N' then '本金收款' else pay_method end paymethod 
 | 
        from sys_order_flow 
 | 
        where <![CDATA[ create_time > #{item.beginTime} and create_time < #{item.endTime} ]]> 
 | 
        <if test="shopId != null"> 
 | 
            and shop_id=#{shopId} 
 | 
        </if> 
 | 
        group by paymethod 
 | 
    </sql> 
 | 
</mapper> 
 |