| <?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.xzx.gc.user.mapper.OrderMapper"> | 
|   | 
|     <resultMap id="OrderMap" type="com.xzx.gc.model.order.OrderInfoVo"> | 
|         <result column="address_id" jdbcType="INTEGER" property="addressId"/> | 
|         <result column="order_id" jdbcType="VARCHAR" property="orderId"/> | 
|         <result column="order_status" jdbcType="VARCHAR" property="orderStatus"/> | 
|         <result column="order_second_status" jdbcType="VARCHAR" property="orderSecondStatus"/> | 
|         <result column="order_type" jdbcType="VARCHAR" property="orderType"/> | 
|         <result column="reserve_time" jdbcType="VARCHAR" property="reserveTime"/> | 
|         <result column="create_user_id" jdbcType="VARCHAR" property="createUserId"/> | 
|         <result column="cancel_user_id" jdbcType="VARCHAR" property="cancelUserId"/> | 
|         <result column="create_time" jdbcType="VARCHAR" property="createTime"/> | 
|         <result column="create_user_name" jdbcType="VARCHAR" property="createUserName"/> | 
|         <result column="receive_time" jdbcType="VARCHAR" property="receiveTime"/> | 
|         <result column="order_pic" jdbcType="VARCHAR" property="orderPic"/> | 
|         <result column="storage_money" jdbcType="VARCHAR" property="storageMoney"/> | 
|         <result column="receiver_name" jdbcType="VARCHAR" property="receiverName"/> | 
|         <result column="take_phone_pic" jdbcType="VARCHAR" property="takePhonePic"/> | 
|         <result column="receiver_phone" jdbcType="VARCHAR" property="receiverPhone"/> | 
|         <result column="cancel_user_phone" jdbcType="VARCHAR" property="cancelUserPhone"/> | 
|         <result column="cancel_user_name" jdbcType="VARCHAR" property="cancelUserName"/> | 
|         <result column="storage_user_id" jdbcType="VARCHAR" property="storageUserId"/> | 
|         <result column="storage_user_name" jdbcType="VARCHAR" property="storageUserName"/> | 
|         <result column="storage_user_phone" jdbcType="VARCHAR" property="storageUserPhone"/> | 
|         <result column="rela_phone" jdbcType="VARCHAR" property="relaPhone"/> | 
|         <result column="rela_name" jdbcType="VARCHAR" property="relaName"/> | 
|         <result column="cancel_reason_code" jdbcType="VARCHAR" property="cancelReasonCode"/> | 
|         <result column="cancel_reason_name" jdbcType="VARCHAR" property="cancelReasonName"/> | 
|         <result column="item_type" jdbcType="VARCHAR" property="itemType"/> | 
|         <result column="item_type_name" jdbcType="VARCHAR" property="itemTypeName"/> | 
|         <result column="address_area" jdbcType="VARCHAR" property="addressArea"/> | 
|         <result column="address_area" jdbcType="VARCHAR" property="addressArea"/> | 
|         <result column="second_price" jdbcType="VARCHAR" property="secondPrice"/> | 
|         <result column="create_type"  property="type"/> | 
|         <result column="store_id"  property="storeId"/> | 
|         <result column="receive_time"  property="receiveTime"/> | 
|         <result column="complete_time"  property="completeTime"/> | 
|         <result column="address_id"  property="addressId"/> | 
|         <result column="complete_time"  property="completeTime"/> | 
|     </resultMap> | 
|   | 
|   | 
|   | 
|     <select id="findOrderItemInfo" resultType="com.xzx.gc.entity.OrderItemInfo"> | 
|         select b.order_id,b.weight,b.money,c.complete_time "createTime" from  xzx_order_info a | 
|         inner  join  xzx_order_item_info b on a.order_id=b.order_id | 
|         inner  join xzx_order_detail_info c on b.order_id=c.order_id | 
|         where  (a.order_status=4 or a.order_status=5 or a.order_status=7) AND b.money is not null  and b.money!='' and cast(b.money as decimal(10,2))!=0 | 
|       and | 
|             <choose> | 
|                 <when test="type==1"> | 
|                     a.create_user_id=#{userId} | 
|                 </when> | 
|                 <otherwise> | 
|                     a.receiver=#{userId} | 
|                 </otherwise> | 
|             </choose> | 
|   | 
|     </select> | 
|   | 
|     <select id="findLastTimeBycreateUserId" resultMap="OrderMap"> | 
|         SELECT | 
|             a.order_id, | 
|             a.address, | 
|             a.address_area, | 
|             a.order_status, | 
|             a.order_type, | 
|             a.reserve_time, | 
|             a.create_user_id, | 
|             a.receiver, | 
|             a.create_time, | 
|             a.rela_phone, | 
|             a.longitude, | 
|             a.latitude, | 
|             d.remark, | 
|             d.create_user_name, | 
|             d.receive_time, | 
|             d.order_pic, | 
|             d.amount, | 
|             d.money, | 
|             d.receiver_name, | 
|             d.take_phone_pic, | 
|             d.receiver_phone, | 
|             d.cancel_user_name, | 
|             d.cancel_user_phone, | 
|             a.rela_name, | 
|             a.order_second_status, | 
|             d.cancel_reason_code, | 
|             d.cancel_reason_name, | 
|             a.store_id, | 
|             d.address_id, | 
|             d.complete_time | 
|         FROM | 
|             xzx_order_info a | 
|             INNER JOIN xzx_order_detail_info d ON a.order_id = d.order_id | 
|         WHERE | 
|             a.create_user_id=#{userId}   and a.order_status in ('4','5','7') | 
|         order by  d.complete_time desc limit 1 | 
|     </select> | 
|   | 
|     <select id="queryCuserOrderByUserIdCount1" resultType="java.util.Map"> | 
|         SELECT | 
|             count(a.order_id)                                           as count, | 
|             (select count(b.order_id) | 
|              from xzx_order_info b | 
|              where b.order_status = 3 and b.create_user_id = #{userId}) as count1 | 
|         FROM xzx_order_info a | 
|         WHERE a.create_user_id = #{userId} and a.order_status in (4, 5, 7) | 
|     </select> | 
|   | 
|     <select id="queryUserOrderList"   resultType="java.util.Map"> | 
|         select a.create_time as createTime,a.order_id as orderId,sum(b.money) as money,sum(b.weight) as weight from | 
|             xzx_order_info a | 
|             LEFT JOIN xzx_order_item_info b ON a.order_id = b.order_id | 
|         where a.create_user_id=#{userId} | 
|               and a.order_status in ('4','5','7') | 
|               and a.del_flag=0 and a.cancel_user_id is null | 
|         GROUP BY a.order_id order by a.create_time | 
|     </select> | 
|   | 
|     <select id="queryCuserOrderCount" resultType="java.util.HashMap"> | 
|         SELECT COUNT(*) as count FROM xzx_order_info WHERE create_user_id=#{userId} | 
|         <if test="status != null"> | 
|             and order_status in | 
|             <foreach collection="status" index="index" item="id" open="(" separator="," close=")"> | 
|                 #{id} | 
|             </foreach> | 
|         </if> | 
|         GROUP BY order_type | 
|     </select> | 
|   | 
|     <select id="queryPromoterOrderWeightMoney" resultType="com.xzx.gc.model.admin.PromoterModel"> | 
|         SELECT SUM(c.weight) as orderWeightCount, SUM(c.money) as orderMoneyCount | 
|         FROM xzx_order_info b | 
|         LEFT JOIN xzx_order_detail_info k on b.order_id=k.order_id | 
|         LEFT JOIN xzx_order_item_info c ON b.order_id=c.order_id | 
|         WHERE b.order_type=1 AND b.order_status in (4,5,7) AND b.rela_phone in ( | 
|         SELECT x.mobile FROM xzx_user_target_info x | 
|         WHERE x.del_flag=0 | 
|         <if test="userId != null and userId != ''"> | 
|             AND x.real_user_id=#{userId} | 
|         </if> | 
|         <if test="startTime != null and startTime != ''"> | 
|             AND k.complete_time<![CDATA[>= ]]>#{startTime} | 
|         </if> | 
|         <if test="endTime != null and endTime != ''"> | 
|             AND k.complete_time<![CDATA[<= ]]>#{endTime} | 
|         </if> | 
|   | 
|         ) | 
|     </select> | 
|   | 
|     <select id="queryAllOrderByUserId" resultType="java.lang.Integer"> | 
|         select IFNULL(count(a.order_id),0) from xzx_order_info a | 
|         left join xzx_order_detail_info b on a.order_id=b.order_id | 
|         where order_type=1 and a.order_status in (4,5,7) and a.rela_phone in | 
|         ( | 
|         SELECT x.mobile FROM xzx_user_target_info x | 
|         WHERE x.del_flag=0 | 
|         <if test="userId != null and userId != ''"> | 
|             AND x.real_user_id=#{userId} | 
|         </if> | 
|         <if test="startTime != null and startTime != ''"> | 
|             AND b.complete_time<![CDATA[>= ]]>#{startTime} | 
|         </if> | 
|         <if test="endTime != null and endTime != ''"> | 
|             AND b.complete_time<![CDATA[<= ]]>#{endTime} | 
|         </if> | 
|         ) | 
|     </select> | 
|   | 
|     <select id="queryQromoterOrderOne" resultType="com.xzx.gc.model.admin.PromoterModel"> | 
|         SELECT x.orderId, x.relaName,x.createTime, x.nickName, x.orderWeightCount, x.orderMoneyCount,x.completeTime ,x.createUserId,x.registTime | 
|         from | 
|         ( SELECT b.order_id as orderId, b.rela_name as relaName,b.create_time as createTime, e.receiver_name as nickName, SUM(c.weight) as orderWeightCount, | 
|         u.regist_time as registTime, | 
|         SUM(c.money) as orderMoneyCount,e.complete_time as completeTime,b.create_user_id as createUserId | 
|         FROM xzx_order_info b | 
|         inner join  xzx_user_info u on b.create_user_id=u.user_id | 
|         LEFT JOIN xzx_order_item_info c ON b.order_id=c.order_id | 
|         LEFT JOIN xzx_order_detail_info e ON e.order_id=b.order_id | 
|         WHERE b.order_type=1 AND b.order_status in (4,5,7) | 
|         <if test="startTime != null and startTime != ''"> | 
|             AND b.create_time >= #{startTime} AND #{endTime} | 
|         </if> | 
|         <if test="endTime != null and endTime != ''"> | 
|             AND b.create_time <= #{endTime} | 
|         </if> | 
|         AND b.create_user_id in ( SELECT user_id FROM xzx_user_info a | 
|         WHERE a.mobile_phone IN | 
|         ( SELECT mobile FROM xzx_user_target_info x | 
|         WHERE del_flag=0 | 
|         <if test="userId != null and userId != ''"> | 
|             AND x.real_user_id=#{userId} | 
|         </if> | 
|         AND regster_type=3 ) ) | 
|         GROUP BY b.create_user_id,b.order_id | 
|         ORDER BY b.create_time asc) x | 
|         <if test="orderWeightCount != null"> | 
|             where x.orderWeightCount >= #{orderWeightCount} | 
|         </if> | 
|         ORDER BY x.registTime desc | 
|     </select> | 
|   | 
|     <select id="queryQromoterOrder" parameterType="com.xzx.gc.model.admin.PromoterModel" resultType="com.xzx.gc.model.admin.PromoterModel"> | 
|         SELECT x.orderId, x.relaName,x.createTime, | 
|         x.nickName, x.orderWeightCount, x.orderMoneyCount,x.completeTime,x.registTime from ( | 
|         SELECT b.order_id as orderId, b.rela_name as relaName,b.create_time as createTime,u.regist_time as registTime, | 
|         e.receiver_name as nickName, SUM(c.weight) as orderWeightCount, | 
|         SUM(c.money) as orderMoneyCount,e.complete_time as completeTime FROM xzx_order_info b | 
|         inner join  xzx_user_info u on b.create_user_id=u.user_id | 
|         LEFT JOIN xzx_order_item_info c ON b.order_id=c.order_id | 
|         LEFT JOIN xzx_order_detail_info e ON e.order_id=b.order_id | 
|         WHERE b.order_type=1 AND order_status in (4,5,7) | 
|         <if test="startTime != null and startTime != ''"> | 
|             AND e.complete_time BETWEEN #{startTime} AND #{endTime} | 
|         </if> | 
|         AND create_user_id in ( | 
|         SELECT user_id FROM xzx_user_info a WHERE a.mobile_phone IN ( | 
|         SELECT mobile FROM xzx_user_target_info x | 
|         WHERE del_flag=0 | 
|         <if test="userId != null and userId != ''"> | 
|             AND x.real_user_id=#{userId} | 
|         </if> | 
|         AND regster_type=3 | 
|         ) | 
|         ) GROUP BY b.order_id | 
|         ) x | 
|         <if test="orderWeightCount != null and orderWeightCount != ''"> | 
|             where x.orderWeightCount <![CDATA[>= ]]> #{orderWeightCount} | 
|         </if> | 
|   | 
|         ORDER BY x.registTime desc | 
|     </select> | 
|   | 
|     <select id="queryUserOrderNum" resultType="java.lang.String"> | 
|         select a.order_id from xzx_order_info b | 
|         left join xzx_order_detail_info a on a.order_id=b.order_id | 
|         left join xzx_user_other_info c on b.receiver=c.user_id | 
|         where b.order_status in (4,5,7) | 
|         <if test="userId != null and userId != ''"> | 
|             AND c.user_id=#{userId} | 
|         </if> | 
|         <if test="startTime != null and startTime != ''"> | 
|             AND a.complete_time<![CDATA[>= ]]>#{startTime} | 
|         </if> | 
|         <if test="endTime != null and endTime != ''"> | 
|             AND a.complete_time<![CDATA[<= ]]>#{endTime} | 
|         </if> | 
|         <if test=" partnerIds != null and partnerIds.size() != 0"> | 
|             AND c.partner_id in | 
|             <foreach collection="partnerIds" index="index" item="id" open="(" separator="," close=")"> | 
|                 #{id} | 
|             </foreach> | 
|         </if> | 
|     </select> | 
|   | 
|     <select id="queryCuserOrderFinishList" resultType="java.util.HashMap"> | 
|         SELECT a.order_id as orderId, sum(d.money) as money,sum(d.weight) as weight,a.create_time as createTime FROM | 
|         xzx_order_info a | 
|         LEFT JOIN xzx_order_item_info d on a.order_id = d.order_id | 
|         WHERE a.create_user_id=#{userId} | 
|         <if test="status != null"> | 
|             and a.order_status in | 
|             <foreach collection="status" index="index" item="id" open="(" separator="," close=")"> | 
|                 #{id} | 
|             </foreach> | 
|         </if> | 
|   | 
|         GROUP BY a.order_id | 
|     </select> | 
|   | 
|   | 
|     <select id="orderCountStat" parameterType="java.util.Map" resultType="String"> | 
|         select count(*) | 
|         from xzx_order_info | 
|         where 1=1 | 
|         <if test="orderType!=null and orderType!=''"> | 
|             and order_type=#{orderType} | 
|         </if> | 
|         <if test="orderStatus!=null and orderStatus!=''"> | 
|             and order_status=#{orderStatus} | 
|         </if> | 
|         <if test="createUserId!=null and createUserId!=''"> | 
|             and create_user_id=#{createUserId} | 
|         </if> | 
|         <if test="receiver!=null and receiver!=''"> | 
|             and receiver=#{receiver} | 
|         </if> | 
|     </select> | 
|   | 
|     <select id="queryOrderById" resultType="java.lang.String"> | 
|         select trace_id from xzx_order_info where order_id =#{orderId} | 
|         <if test="userId != null and userId != ''"> | 
|             and receiver=#{userId} | 
|         </if> | 
|         <if test="startTime != null and startTime != ''"> | 
|             and b.receive_time >= #{startTime} | 
|         </if> | 
|         <if test="endTime != null and endTime != ''"> | 
|             and b.receive_time <= #{endTime} | 
|         </if> | 
|     </select> | 
|   | 
|     <select id="queryOrderByIds" resultType="java.lang.String"> | 
|         select a.trace_id | 
|         from xzx_order_info a | 
|         left join xzx_order_detail_info b on a.order_id = b.order_id | 
|         where a.del_flag = 0 | 
|         <if test="userId != null and userId != ''"> | 
|             and a.receiver=#{userId} | 
|         </if> | 
|   | 
|         <if test="startTime != null and startTime != ''"> | 
|             and b.receive_time >= #{startTime} | 
|         </if> | 
|         <if test="endTime != null and endTime != ''"> | 
|             and b.receive_time <= #{endTime} | 
|         </if> | 
|     </select> | 
|   | 
|     <select id="queryOrderByHsy" resultType="map"> | 
|         select a.order_id as orderId,c.complete_time as completeTime,a.address from xzx_order_info a | 
|         left join xzx_user_other_info b on a.receiver= b.user_id | 
|         left join xzx_order_detail_info c on a.order_id=c.order_id | 
|         where a.del_flag!=1 and b.del_flag=0 and b.user_type=2 | 
|         and order_status in (4,5,7) and a.create_type in (1,3) | 
|         <if test="startTime != null and startTime != ''"> | 
|             and c.complete_time >= #{startTime} | 
|         </if> | 
|         <if test="endTime != null and endTime != ''"> | 
|             and c.complete_time <= #{endTime} | 
|         </if> | 
|   | 
|         <if test="userId != null and userId != ''"> | 
|             and b.user_id=#{userId} | 
|         </if> | 
|     </select> | 
|   | 
|     <select id="findDetailByPartned" resultType="com.xzx.gc.entity.OrderInfo"> | 
|         SELECT | 
|         a.order_id "orderId", | 
|         a.town_id "townId", | 
|         a.create_user_id "createUserId", | 
|         a.order_status "orderStatus", | 
|         a.create_time "createTime", | 
|         b.money, | 
|         ifnull(b.complete_time,a.reserve_time) "completeTime" | 
|         FROM | 
|         xzx_order_info a | 
|         left JOIN xzx_order_detail_info b ON a.order_id = b.order_id | 
|         left JOIN xzx_partner_fence c on a.town_id=c.fence_id and c.del_flag=0 | 
|         left join  xzx_user_other_info d on a.receiver=d.user_id | 
|         <if test="partnerId != null and partnerId != '' and partnerId!=-1"> | 
|             where  c.partner_id=#{partnerId} or d.partner_id=#{partnerId} | 
|         </if> | 
|     </select> | 
|   | 
|     <select id="findDetail" resultType="com.xzx.gc.entity.OrderInfo"> | 
|         SELECT | 
|             a.order_id "orderId", | 
|             c.township_id "townId", | 
|             a.create_user_id "createUserId", | 
|             a.order_status "orderStatus", | 
|             b.money, | 
|             b.complete_time "completeTime", | 
|             a.create_time "createTime" | 
|         FROM | 
|             xzx_order_info a | 
|             INNER JOIN xzx_order_detail_info b ON a.order_id = b.order_id | 
|             LEFT JOIN xzx_user_address_info c on b.address_id=c.address_id | 
|     </select> | 
|     <select id="findServiceOrderByUserIdAndStatus" resultType="com.xzx.gc.entity.OrderInfo"> | 
|         SELECT | 
|             a.order_id "orderId", | 
|             a.create_user_id "createUserId", | 
|             b.complete_time "completeTime", | 
|             b.receive_time "receiveTime" | 
|         FROM | 
|             xzx_order_info a | 
|             INNER JOIN xzx_order_detail_info b ON a.order_id = b.order_id | 
|         where a.receiver=#{userId}  and a.order_status in | 
|         <foreach collection="status" index="index" item="id" open="(" separator="," close=")"> | 
|             #{id} | 
|         </foreach> | 
|   | 
|     </select> | 
|     <select id="findListOrderReceiveTime" resultType="com.xzx.gc.entity.OrderInfo"> | 
|         SELECT | 
|             a.create_user_id as createUserId | 
|         FROM | 
|             xzx_order_info a | 
|             INNER JOIN xzx_order_detail_info b ON a.order_id = b.order_id | 
|         WHERE | 
|             a.order_status = '2'  and a.receiver=#{receiver} | 
|         ORDER BY | 
|             b.receive_time ASC | 
|     </select> | 
|   | 
| </mapper> |