Helius
2020-12-29 4860f148b405018ff1f8f99de425ae567a675b94
zq-erp/src/main/resources/mybatis/mapper/hive/SysOrderDao.xml
@@ -475,4 +475,136 @@
        left join sys_shop_info t2 on t1.SHOP_ID=t2.ID
        where VIP_ID=#{vipId} and STATU='已付款';
    </select>
    <select id="selectApiOrderListInPage" resultType="com.matrix.system.app.vo.OrderDetailVo">
        select
           a.id orderId,
           a.ORDER_NO orderNo,
           a.ORDER_TIME orderTime,
           a.STATU orderStatus,
           a.ZK_TOTAL needPay,
           (a.card_Pay + a.cash_Pay) realPay,
           a.arrears arrears,
           b.su_name staffName,
           c.VIP_NAME vipName,
           c.PHONE phone
        from sys_order a
        left join sys_users b on a.STAFF_ID = b.su_id
        left join sys_vip_info c on c.id = a.VIP_ID
        <where>
            <if test="record.queryKey != null and record.queryKey != ''">
                and (instr(c.vip_name, #{record.queryKey}) or instr(c.phone, #{record.queryKey}) or instr(a.order_no, #{record.queryKey}))
            </if>
            <if test="record.status != null and record.status != ''">
                and a.statu = #{record.status}
            </if>
            <if test="record.shopId != null">
                and a.shop_id=#{record.shopId}
            </if>
        </where>
        <if test="pageVo !=null"><!-- 判断pageVo对象是否为空 -->
            order by a.order_time desc
            <if test="pageVo.offset >=0  and pageVo.limit >0">
                limit
                #{pageVo.offset},#{pageVo.limit}
            </if>
        </if>
    </select>
    <select id="selectApiOrderListTotal" resultType="java.lang.Integer">
        select
            count(1)
        from sys_order a
        left join sys_users b on a.STAFF_ID = b.su_id
        left join sys_vip_info c on c.id = a.VIP_ID
        <where>
            <if test="record.queryKey != null and record.queryKey != ''">
                and (instr(c.vip_name, #{record.queryKey}) or instr(c.phone, #{record.queryKey}) or instr(a.order_no, #{record.queryKey}))
            </if>
            <if test="record.status != null and record.status != ''">
                and a.statu = #{record.status}
            </if>
            <if test="record.shopId != null">
                and a.shop_id=#{record.shopId}
            </if>
        </where>
    </select>
    <select id="selectApiOrderDetailById" resultType="com.matrix.system.app.vo.OrderDetailVo">
        select
               a.id orderId,
               b.VIP_NAME vipName,
               b.PHONE phone,
               a.ORDER_NO orderNo,
               c.su_name staffName,
               a.cash_Pay cashPay,
               a.card_Pay cardPay,
               a.ZK_TOTAL needPay,
               a.cash_Pay + a.card_Pay realPay,
               a.arrears arrears,
               a.TOTAL - a.ZK_TOTAL discount,
               a.STATU orderStatus,
               a.order_time orderTime
        from sys_order a
        inner join sys_vip_info b on a.VIP_ID=b.ID
        left join sys_users c on a.STAFF_ID=c.su_id
        where a.id=#{orderId}
    </select>
    <select id="selectShopAchieveRanking" resultType="com.matrix.system.app.vo.RankingVo">
        select
               b.shop_short_name name,
               b.SHOP_IMAG photo,
               sum(IFNULL(a.ZK_TOTAL,0)) amount
        from sys_order a
        left join sys_shop_info b on a.SHOP_ID=b.ID
        <where>
            a.statu in ('已付款', '欠款')
            <if test="record.companyId != null">
                and a.company_id=#{record.companyId}
            </if>
            <if test='record.type == "1" and record.orderTime != null'>
                and date_format(order_time, '%Y-%m-%d') = date_format(#{record.orderTime}, '%Y-%m-%d')
            </if>
            <if test='record.type == "2" and record.orderTime != null'>
                and date_format(order_time, '%Y-%m') = date_format(#{record.orderTime}, '%Y-%m')
            </if>
            <if test='record.type == "3" and record.orderTime != null'>
                and date_format(order_time, '%Y') = date_format(#{record.orderTime}, '%Y')
            </if>
        </where>
        group by a.SHOP_ID
        order by amount desc, a.shop_id
    </select>
    <select id="selectStaffSaleAchieveRanking" resultType="com.matrix.system.app.vo.RankingVo">
        select
               b.su_name name,
               b.su_photo photo,
               sum(ZK_TOTAL) amount,
               c.shop_short_name shopName
        from sys_order a
        left join sys_users b on a.STAFF_ID=b.su_id
        left join sys_shop_info c on a.SHOP_ID=c.ID
        <where>
            a.statu in ('已付款', '欠款') and b.su_id is not null
            <if test="record.companyId != null">
                and a.company_id=#{record.companyId}
            </if>
            <if test="record.shopId != null">
                and a.shop_id=#{record.shopId}
            </if>
            <if test='record.type == "1" and record.orderTime != null'>
                and date_format(order_time, '%Y-%m-%d') = date_format(#{record.orderTime}, '%Y-%m-%d')
            </if>
            <if test='record.type == "2" and record.orderTime != null'>
                and date_format(order_time, '%Y-%m') = date_format(#{record.orderTime}, '%Y-%m')
            </if>
            <if test='record.type == "3" and record.orderTime != null'>
                and date_format(order_time, '%Y') = date_format(#{record.orderTime}, '%Y')
            </if>
        </where>
        group by b.su_id
        order by amount desc, b.su_id
    </select>
</mapper>