| <?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.mzl.flower.mapper.payment.OrderMapper"> | 
|   | 
|     <update id="setPartnerOrderReceive"> | 
|         update t_order set status_backend = 'RECEIVE', status = 'RECEIVE' | 
|         where status_backend = 'SEND' and partner_id is not null | 
|     </update> | 
|   | 
|     <select id="getOrderStatusCount" resultType="com.mzl.flower.dto.response.payment.OrderStatusCountDTO"> | 
|         SELECT q.status_backend value, count(1) orderCount | 
|         FROM t_order q | 
|         WHERE q.deleted = 0 | 
|         <if test="condition.orderNo != null and condition.orderNo != ''"> | 
|             AND q.order_no LIKE concat('%', #{condition.orderNo},'%') | 
|         </if> | 
|         <if test="condition.customerAddress != null and condition.customerAddress != ''"> | 
|             AND q.customer_address LIKE concat('%', #{condition.customerAddress},'%') | 
|         </if> | 
|         <if test="condition.customer != null and condition.customer != ''"> | 
|             AND (q.customer LIKE concat('%', #{condition.customer},'%') | 
|                 or q.customer_tel LIKE concat('%', #{condition.customer},'%') | 
|             ) | 
|         </if> | 
|         <if test="condition.createBy != null and condition.createBy != ''"> | 
|             AND q.create_by = #{condition.createBy} | 
|         </if> | 
|         <if test="condition.status != null and condition.status != ''"> | 
|             AND q.status = #{condition.status} | 
|         </if> | 
|         <if test="condition.statusBackend != null and condition.statusBackend != ''"> | 
|             AND q.status_backend = #{condition.statusBackend} | 
|         </if> | 
|         <if test="condition.startDate != null"> | 
|             AND q.payment_time >= #{condition.startDate} | 
|         </if> | 
|         <if test="condition.endDate != null"> | 
|             AND q.payment_time <= #{condition.endDate} | 
|         </if> | 
|         <if test="condition.createStartDate != null"> | 
|             AND q.create_time >= #{condition.createStartDate} | 
|         </if> | 
|         <if test="condition.createEndDate != null"> | 
|             AND q.create_time <= #{condition.createEndDate} | 
|         </if> | 
|         <if test="condition.partnerId != null"> | 
|             AND q.partner_id = #{condition.partnerId} | 
|         </if> | 
|         <if test="condition.partnerName != null and condition.partnerName != ''"> | 
|             AND q.partner_name LIKE concat('%', #{condition.partnerName},'%') | 
|         </if> | 
|         <if test="condition.levelDown != null and condition.levelDown != ''"> | 
|             AND exists( | 
|                 select 1 from t_order_item oi | 
|                 where oi.order_id = q.id | 
|                 and oi.status = 'reduce' | 
|             ) | 
|             and q.transfer_id is null | 
|         </if> | 
|         <if test="condition.billId != null and condition.billId != ''"> | 
|             AND q.bill_id = #{condition.billId} | 
|         </if> | 
|         <if test="condition.flowerName != null and condition.flowerName != ''"> | 
|             AND exists( | 
|                 select 1 from t_order_item oi | 
|                 where oi.order_id = q.id | 
|                 and oi.flower_name LIKE concat('%', #{condition.flowerName},'%') | 
|             ) | 
|         </if> | 
|         GROUP BY q.status_backend | 
|     </select> | 
|   | 
|     <select id="selectOrderList" resultType="com.mzl.flower.dto.response.payment.OrderListDTO"> | 
|         SELECT q.*, u.nick_name createName | 
|             , ( | 
|                 select count(1) from t_order_item oi | 
|                 where oi.order_id = q.id | 
|                 and (oi.status = 'reduce' or oi.status = 'abnormal') | 
|             ) levelDownCount | 
|         FROM t_order q | 
|         left join t_user u on q.create_by = u.id | 
|         WHERE q.deleted = 0 | 
|         <if test="condition.orderNo != null and condition.orderNo != ''"> | 
|             AND q.order_no LIKE concat('%', #{condition.orderNo},'%') | 
|         </if> | 
|         <if test="condition.customerAddress != null and condition.customerAddress != ''"> | 
|             AND q.customer_address LIKE concat('%', #{condition.customerAddress},'%') | 
|         </if> | 
|         <if test="condition.customer != null and condition.customer != ''"> | 
|             AND (q.customer LIKE concat('%', #{condition.customer},'%') | 
|                 or q.customer_tel LIKE concat('%', #{condition.customer},'%') | 
|             ) | 
|         </if> | 
|         <if test="condition.createBy != null and condition.createBy != ''"> | 
|             AND q.create_by = #{condition.createBy} | 
|         </if> | 
|         <if test="condition.status != null and condition.status != ''"> | 
|             AND q.status = #{condition.status} | 
|         </if> | 
|         <if test="condition.statusBackend != null and condition.statusBackend != ''"> | 
|             AND q.status_backend = #{condition.statusBackend} | 
|         </if> | 
|         <if test="condition.startDate != null"> | 
|             AND q.payment_time >= #{condition.startDate} | 
|         </if> | 
|         <if test="condition.endDate != null"> | 
|             AND q.payment_time <= #{condition.endDate} | 
|         </if> | 
|         <if test="condition.createStartDate != null"> | 
|             AND q.create_time >= #{condition.createStartDate} | 
|         </if> | 
|         <if test="condition.createEndDate != null"> | 
|             AND q.create_time <= #{condition.createEndDate} | 
|         </if> | 
|         <if test="condition.partnerId != null"> | 
|             AND q.partner_id = #{condition.partnerId} | 
|         </if> | 
|         <if test="condition.partnerName != null and condition.partnerName != ''"> | 
|             AND q.partner_name LIKE concat('%', #{condition.partnerName},'%') | 
|         </if> | 
|         <if test="condition.levelDown != null and condition.levelDown != ''"> | 
|             AND exists( | 
|                 select 1 from t_order_item oi | 
|                 where oi.order_id = q.id | 
|                 and (oi.status = 'reduce' or oi.status = 'abnormal') | 
|             ) | 
|             and q.transfer_id is null | 
|         </if> | 
|         <if test="condition.billId != null and condition.billId != ''"> | 
|             AND q.bill_id = #{condition.billId} | 
|         </if> | 
|         <if test="condition.flowerName != null and condition.flowerName != ''"> | 
|             AND exists( | 
|                 select 1 from t_order_item oi | 
|                 where oi.order_id = q.id | 
|                 and oi.flower_name LIKE concat('%', #{condition.flowerName},'%') | 
|             ) | 
|         </if> | 
|   | 
|         ORDER BY q.create_time desc, q.payment_time desc | 
|     </select> | 
|   | 
|     <select id="selectOrderCheckList" resultType="com.mzl.flower.dto.response.payment.OrderCheckListDTO"> | 
|         SELECT q.* | 
|         FROM t_order q | 
|         WHERE q.deleted = 0 | 
|         <if test="condition.orderNo != null and condition.orderNo != ''"> | 
|             AND q.order_no LIKE concat('%', #{condition.orderNo},'%') | 
|         </if> | 
|         <if test="condition.customerAddress != null and condition.customerAddress != ''"> | 
|             AND q.customer_address LIKE concat('%', #{condition.customerAddress},'%') | 
|         </if> | 
|         <if test="condition.customer != null and condition.customer != ''"> | 
|             AND (q.customer LIKE concat('%', #{condition.customer},'%') | 
|             or q.customer_tel LIKE concat('%', #{condition.customer},'%') | 
|             ) | 
|         </if> | 
|         <if test="condition.createBy != null and condition.createBy != ''"> | 
|             AND q.create_by = #{condition.createBy} | 
|         </if> | 
|         <if test="condition.status != null and condition.status != ''"> | 
|             AND q.status = #{condition.status} | 
|         </if> | 
|         <if test="condition.statusBackend != null and condition.statusBackend != ''"> | 
|             AND q.status_backend = #{condition.statusBackend} | 
|         </if> | 
|         <if test="condition.startDate != null"> | 
|             AND q.payment_time >= #{condition.startDate} | 
|         </if> | 
|         <if test="condition.endDate != null"> | 
|             AND q.payment_time <= #{condition.endDate} | 
|         </if> | 
|         <if test="condition.createStartDate != null"> | 
|             AND q.create_time >= #{condition.createStartDate} | 
|         </if> | 
|         <if test="condition.createEndDate != null"> | 
|             AND q.create_time <= #{condition.createEndDate} | 
|         </if> | 
|         <if test="condition.partnerId != null"> | 
|             AND q.partner_id = #{condition.partnerId} | 
|         </if> | 
|         <if test="condition.partnerName != null and condition.partnerName != ''"> | 
|             AND q.partner_name LIKE concat('%', #{condition.partnerName},'%') | 
|         </if> | 
|         <if test="condition.levelDown != null and condition.levelDown != ''"> | 
|             AND exists( | 
|             select 1 from t_order_item oi | 
|             where oi.order_id = q.id | 
|             and oi.status = 'reduce' | 
|             ) | 
|             and q.transfer_id is null | 
|         </if> | 
|         <if test="condition.idList != null and condition.idList.size > 0"> | 
|             and q.id in | 
|             <foreach collection="condition.idList" item="id" open="(" separator="," close=")"> | 
|                 #{id} | 
|             </foreach> | 
|         </if> | 
|   | 
|         ORDER BY q.partner_id, q.warehouse_name, q.warehouse_location_code, q.create_time desc, q.payment_time desc | 
|     </select> | 
|   | 
|     <select id="getSupplierSaleNum" resultType="com.mzl.flower.dto.response.payment.SupplierNumDTO"> | 
|         select oi.supplier_id, sum(oi.num) num | 
|         from t_order_item oi | 
|         join t_order o on oi.order_id = o.id | 
|         where o.status_backend in ('EVALUATE', 'COMPLETED') | 
|         and oi.supplier_id is not null | 
|         and o.payment_time >= #{startTime} | 
|         and o.payment_time < #{endTime} | 
|         GROUP BY oi.supplier_id | 
|     </select> | 
|   | 
|     <select id="getOrderForSettlement" resultType="com.mzl.flower.entity.payment.Order"> | 
|         select o.* | 
|         from t_order o | 
|         where o.status_backend = 'EVALUATE' | 
|     </select> | 
|   | 
|     <select id="getOrderForAutoReceive" resultType="com.mzl.flower.entity.payment.Order"> | 
|         select o.* | 
|         from t_order o | 
|         where o.status_backend = 'RECEIVE' | 
|         and o.create_time < #{endTime} | 
|         and not exists( | 
|             select 1 from t_order_item_sales os | 
|             where os.order_id = o.id | 
|             and os.status = 'PENDING' | 
|         ) | 
|     </select> | 
|   | 
|     <select id="getOrderForBill" resultType="com.mzl.flower.entity.payment.Order"> | 
|         select o.* | 
|         from t_order o | 
|         where o.receive_time >= #{startTime} | 
|         and o.receive_time < #{endTime} | 
|         and o.bill_id is null | 
|     </select> | 
| </mapper> |