| <?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="cc.mrbird.febs.mall.mapper.MallOrderInfoMapper"> | 
|   | 
|     <select id="selectInPage" resultMap="OrderInfoMap"> | 
|         select | 
|             a.*, | 
|             b.id item_id, | 
|             b.order_id, | 
|             b.goods_id, | 
|             b.sku_id, | 
|             b.goods_name, | 
|             b.style_name, | 
|             b.sku_name, | 
|             b.sku_image, | 
|             b.cnt, | 
|             b.price, | 
|             b.amount | 
|         from mall_order_info a | 
|         inner join mall_order_item b on a.id=b.order_id | 
|         <where> | 
|             a.del_flag=2 | 
|             <if test="record.status == 4 and record.status != 0"> | 
|                 and a.status in (5,6) | 
|             </if> | 
|             <if test="record.status != 4 and record.status != 0 and record.status != 5"> | 
|                 and a.status = #{record.status} | 
|             </if> | 
|             <if test="record.status == 5"> | 
|                 and a.status = 7 | 
|             </if> | 
|             <if test="record.memberId != null"> | 
|                 and a.member_id=#{record.memberId} | 
|             </if> | 
|             <if test="record.orderType != null"> | 
|                 and a.order_type=#{record.orderType} | 
|             </if> | 
|         </where> | 
|         order by a.created_time desc | 
|     </select> | 
|   | 
|     <select id="selectOrderByMemberIdAndId" resultType="cc.mrbird.febs.mall.entity.MallOrderInfo"> | 
|         select * from mall_order_info where member_id=#{memberId} and id=#{id} | 
|     </select> | 
|   | 
|     <select id="selectOrderListInPage" resultType="cc.mrbird.febs.mall.vo.AdminMallOrderInfoVo"> | 
|         select *, | 
|                b.name memberName, | 
|                b.bind_phone memberBindPhone, | 
|                b.phone memberPhone | 
|         from mall_order_info a | 
|         left join mall_member b on a.member_id = b.id | 
|         <where> | 
|             a.del_flag=2 | 
|             <if test="record != null"> | 
|                 <if test="record.payResult != null and record.payResult != ''"> | 
|                     and a.pay_result = #{record.payResult} | 
|                 </if> | 
|                 <if test="record.orderType != null"> | 
|                     and a.order_type = #{record.orderType} | 
|                 </if> | 
|                 <if test="record.status != null and record.status != ''"> | 
|                     and a.status = #{record.status} | 
|                 </if> | 
|                 <if test="record.orderNo != null and record.orderNo != ''"> | 
|                     and a.order_no like CONCAT('%', CONCAT(#{record.orderNo}, '%')) | 
|                 </if> | 
|                 <if test="record.name != null and record.name != ''"> | 
|                     and b.name like CONCAT('%', CONCAT(#{record.name}, '%')) | 
|                 </if> | 
|             </if> | 
|         </where> | 
|         order by a.created_time desc | 
|     </select> | 
|   | 
|     <select id="getMallOrderInfoById" resultType="cc.mrbird.febs.mall.vo.AdminMallOrderVo"> | 
|         select * from mall_order_info where id = #{id} | 
|     </select> | 
|   | 
|   | 
|     <resultMap id="OrderInfoMap" type="cc.mrbird.febs.mall.entity.MallOrderInfo"> | 
|         <id column="id" property="id" /> | 
|         <result column="order_no" property="orderNo" /> | 
|         <result column="member_id" property="memberId" /> | 
|         <result column="order_time" property="orderTime" /> | 
|         <result column="pay_time" property="payTime" /> | 
|         <result column="amount" property="amount" /> | 
|         <result column="pay_method" property="payMethod" /> | 
|         <result column="pay_order_no" property="payOrderNo" /> | 
|         <result column="pay_result" property="payResult" /> | 
|         <result column="status" property="status" /> | 
|         <result column="cancel_type" property="cancelType" /> | 
|         <result column="name" property="name" /> | 
|         <result column="phone" property="phone" /> | 
|         <result column="address" property="address" /> | 
|         <result column="longitude" property="longitude" /> | 
|         <result column="latitude" property="latitude" /> | 
|         <result column="order_type" property="orderType" /> | 
|         <result column="carriage" property="carriage" /> | 
|         <result column="remark" property="remark" /> | 
|         <result column="del_flag" property="delFlag" /> | 
|         <collection property="items" ofType="cc.mrbird.febs.mall.entity.MallOrderItem"> | 
|             <id property="id" column="item_id" /> | 
|             <result property="orderId" column="order_id" /> | 
|             <result property="goodsId" column="goods_id" /> | 
|             <result property="skuId" column="sku_id" /> | 
|             <result property="goodsName" column="goods_name" /> | 
|             <result property="styleName" column="style_name" /> | 
|             <result property="skuName" column="sku_name" /> | 
|             <result property="skuImage" column="sku_image" /> | 
|             <result property="cnt" column="cnt" /> | 
|             <result property="price" column="price" /> | 
|             <result property="amount" column="amount" /> | 
|         </collection> | 
|     </resultMap> | 
|   | 
|     <select id="selectApiOrderListInPage" resultMap="OrderInfoMap"> | 
|         select | 
|                a.*, | 
|                b.id item_id, | 
|                b.order_id, | 
|                b.goods_id, | 
|                b.sku_id, | 
|                b.goods_name, | 
|                b.style_name, | 
|                b.sku_name, | 
|                b.sku_image, | 
|                b.cnt, | 
|                b.price, | 
|                b.amount | 
|         from mall_order_info a | 
|          inner join mall_order_item b on a.id=b.order_id | 
|         <where> | 
|             a.del_flag=2 | 
|             <if test="record.query != null and record.query != ''"> | 
|                 and (b.goods_name like CONCAT('%', CONCAT(#{record.query}, '%')) or b.style_name like CONCAT('%', CONCAT(#{record.query}, '%')) or b.sku_name like CONCAT('%', CONCAT(#{record.query}, '%'))) | 
|             </if> | 
|             <if test="record.status == 4 and record.status != 0"> | 
|                 and a.status in (5,6) | 
|             </if> | 
|             <if test="record.status != 4 and record.status != 0 and record.status != 5"> | 
|                 and a.status = #{record.status} | 
|             </if> | 
|             <if test="record.status == 5"> | 
|                 and a.status = 7 | 
|             </if> | 
|             <if test="record.memberId != null"> | 
|                 and a.member_id=#{record.memberId} | 
|             </if> | 
|             <if test="record.orderType != null"> | 
|                 and a.order_type=#{record.orderType} | 
|             </if> | 
|         </where> | 
|         order by a.created_time desc | 
|     </select> | 
|   | 
|     <select id="selectOrderDetailsById" resultMap="OrderInfoMap"> | 
|         select | 
|             a.*, | 
|             b.id item_id, | 
|             b.order_id, | 
|             b.goods_id, | 
|             b.sku_id, | 
|             b.goods_name, | 
|             b.style_name, | 
|             b.sku_name, | 
|             b.sku_image, | 
|             b.cnt, | 
|             b.price, | 
|             b.amount | 
|         from mall_order_info a | 
|              inner join mall_order_item b on a.id=b.order_id | 
|         where a.id=#{id} | 
|     </select> | 
|   | 
|     <select id="selectMemberOrderStatusCnt" resultType="java.util.Map"> | 
|         select | 
|             status, | 
|             count(1) cnt | 
|         from mall_order_info | 
|         where del_flag=2 and member_id=#{memberId} | 
|         group by status | 
|     </select> | 
|   | 
|     <select id="getMallOrderDetailById" resultType="cc.mrbird.febs.mall.vo.AdminOrderDetailVo"> | 
|         select * from mall_order_info a where a.id = #{id} | 
|     </select> | 
|   | 
|     <select id="getMallOrderItemByOrderId" resultType="cc.mrbird.febs.mall.entity.MallOrderItem"> | 
|         select * from mall_order_item where order_id = #{id} | 
|     </select> | 
|   | 
|     <select id="selectOrderInfoByStatus" resultType="cc.mrbird.febs.mall.entity.MallOrderInfo"> | 
|         select * from mall_order_info where status=#{status} | 
|     </select> | 
|   | 
|     <select id="selectCntDirectOrTeam" resultType="java.lang.Integer"> | 
|         select IFNULL(count(1), 0) from mall_order_info a | 
|           inner join mall_member b on a.member_id=b.ID | 
|         <where> | 
|             a.status in (2,3,4) | 
|             <if test="type == 1"> | 
|                 and b.referrer_id=#{inviteId} | 
|             </if> | 
|             <if test="type == 2"> | 
|                 and find_in_set(#{inviteId}, b.referrer_ids) | 
|             </if> | 
|         </where> | 
|     </select> | 
|   | 
|     <select id="selectCntDirect" resultType="java.lang.Integer"> | 
|         select count(1) from ( | 
|         select a.invite_id, count(1) | 
|         from mall_member a | 
|            inner join mall_order_info b on a.ID=b.member_id | 
|         where a.referrer_id=#{inviteId} and b.status in (2,3,4) | 
|         group by a.invite_id | 
|          ) a | 
|     </select> | 
|   | 
|     <select id="selectTotalAmount" resultType="java.math.BigDecimal"> | 
|         select IFNULL(sum(IFNULL(amount,0)),0) from mall_order_info | 
|         where member_id=#{memberId} and status in (2, 3, 4) and order_type=1 | 
|     </select> | 
|   | 
|     <select id="selectTotalAmountForDate" resultType="java.math.BigDecimal"> | 
|         select IFNULL(sum(IFNULL(amount,0)),0) from mall_order_info | 
|         where status = 4 | 
|         <if test="member != null"> | 
|             and member_id=#{memberId} | 
|         </if> | 
|         <if test="date != null"> | 
|             and date_format(a.receving_time, '%Y-%m-%d') = date_format(#{date}, '%Y-%m-%d') | 
|         </if> | 
|     </select> | 
|   | 
|     <select id="selectTotalAmountUnCostForDate" resultType="java.math.BigDecimal"> | 
|         select IFNULL(sum(IFNULL(b.amount,0) - IFNULL(b.cost_price*b.cnt, 0)),0) | 
|         from mall_order_info a | 
|         inner join mall_order_item b on a.id=b.order_id | 
|         where a.status in (2, 3, 4) and a.is_normal = 2 and a.order_type=1 | 
|         <if test="member != null"> | 
|             and member_id=#{memberId} | 
|         </if> | 
|         <if test="date != null and type == 'D'"> | 
|             and date_format(a.receving_time, '%Y-%m-%d') = date_format(#{date}, '%Y-%m-%d') | 
|         </if> | 
|         <if test="date != null and type == 'M'"> | 
|             and date_format(a.receving_time, '%Y-%m') = date_format(#{date}, '%Y-%m') | 
|         </if> | 
|         <if test="date != null and type == 'Y'"> | 
|             and date_format(a.receving_time, '%Y') = date_format(#{date}, '%Y') | 
|         </if> | 
|     </select> | 
|   | 
|     <select id="selectByOrderNo" resultType="cc.mrbird.febs.mall.entity.MallOrderInfo"> | 
|         select * from mall_order_info where order_no=#{orderNo} | 
|     </select> | 
| </mapper> |