<?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.MallTeamLeaderMapper"> 
 | 
  
 | 
    <select id="selectLeaderListInPage" resultType="cc.mrbird.febs.mall.vo.AdminMallTeamLeaderVo"> 
 | 
        select 
 | 
            a.* 
 | 
        from mall_team_leader a 
 | 
        <where> 
 | 
            <if test="record != null"> 
 | 
                <if test="record.name != null and record.name != ''"> 
 | 
                    and a.name like CONCAT('%', CONCAT(#{record.name}, '%')) 
 | 
                </if> 
 | 
                <if test="record.state != null and record.state != ''"> 
 | 
                    and a.state = #{record.state} 
 | 
                </if> 
 | 
            </if> 
 | 
        </where> 
 | 
        order by a.created_time desc 
 | 
    </select> 
 | 
  
 | 
    <select id="selectApiLeaderListInPage" resultType="cc.mrbird.febs.mall.entity.MallTeamLeader"> 
 | 
        select 
 | 
        a.*, 
 | 
        b.longlatiarr, 
 | 
        ROUND( 
 | 
            6378.138 * 2 * ASIN( 
 | 
                SQRT( 
 | 
                    POW(SIN((#{record.latitude} * PI() / 180 - a.latitude * PI() / 180) / 2),2) 
 | 
                        + COS(40.0497810000 * PI() / 180) * COS(a.latitude * PI() / 180) 
 | 
                        * POW(SIN((#{record.longitude}  * PI() / 180 - a.longitude * PI() / 180) / 2),2) 
 | 
                ) 
 | 
            ) * 1000 
 | 
        ) AS distance 
 | 
        from mall_team_leader a 
 | 
        left join mall_electronic_fence b on b.team_leader_code = a.unique_code 
 | 
        <where> 
 | 
            a.state = 1 and a.online_state = 1 
 | 
            <if test="record.query != null and record.query != ''"> 
 | 
                and (a.name like CONCAT('%', CONCAT(#{record.query}, '%')) 
 | 
                    or a.phone like CONCAT('%', CONCAT(#{record.query}, '%')) 
 | 
                    or a.address_area like CONCAT('%', CONCAT(#{record.query}, '%'))) 
 | 
            </if> 
 | 
        </where> 
 | 
        order by distance ASC 
 | 
    </select> 
 | 
  
 | 
    <select id="selectListByMemberIdAndState" resultType="cc.mrbird.febs.mall.entity.MallTeamLeader"> 
 | 
        select 
 | 
        a.* 
 | 
        from mall_team_leader a 
 | 
        where a.state = #{state} and a.member_id = #{memberId} 
 | 
    </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="comment_state" property="commentState" /> 
 | 
        <result column="delivery_state" property="deliveryState" /> 
 | 
        <result column="carriage" property="carriage" /> 
 | 
        <result column="take_code" property="takeCode" /> 
 | 
        <result column="remark" property="remark" /> 
 | 
        <result column="del_flag" property="delFlag" /> 
 | 
        <result column="is_home" property="isHome" /> 
 | 
        <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" /> 
 | 
            <result property="isNormal" column="is_normal" /> 
 | 
            <result property="state" column="state" /> 
 | 
        </collection> 
 | 
    </resultMap> 
 | 
  
 | 
    <select id="selectApiLeaderOrderListInPage" 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.state, 
 | 
        b.cnt, 
 | 
        b.price, 
 | 
        b.amount 
 | 
        from mall_order_info a 
 | 
        inner join mall_order_item b on a.id=b.order_id 
 | 
        inner join mall_member c on a.take_unique_code=c.invite_id 
 | 
        <where> 
 | 
            c.id=#{record.memberId} 
 | 
            <if test="record.status == 4 and record.status != 0"> 
 | 
                and a.status = 4 
 | 
            </if> 
 | 
            <if test="record.status != 4 and record.status != 1 and record.status != 0 and record.status != 5"> 
 | 
                and a.status = #{record.status} 
 | 
            </if> 
 | 
            <if test="record.status == 5"> 
 | 
                and (a.status = 6 or b.state = 2) 
 | 
            </if> 
 | 
            <if test="record.status == 1"> 
 | 
                and a.status = 2 
 | 
            </if> 
 | 
            <if test="record.status == 0"> 
 | 
                and a.status in (2,3,4) 
 | 
            </if> 
 | 
            <if test="record.query != null and record.query != ''"> 
 | 
                and ( a.name like CONCAT('%', CONCAT(#{record.query}, '%')) 
 | 
                    or a.phone like CONCAT('%', CONCAT(#{record.query}, '%')) 
 | 
                    or a.take_code like CONCAT('%', CONCAT(#{record.query}, '%')) 
 | 
                    or b.goods_name like CONCAT('%', CONCAT(#{record.query}, '%')) 
 | 
                    ) 
 | 
            </if> 
 | 
            <if test="record.orderType != null"> 
 | 
                and a.order_type=#{record.orderType} 
 | 
            </if> 
 | 
            and a.delivery_type = 1 
 | 
        </where> 
 | 
        order by a.created_time desc 
 | 
    </select> 
 | 
  
 | 
    <resultMap id="NewOrderInfoMap" 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="comment_state" property="commentState" /> 
 | 
        <result column="delivery_state" property="deliveryState" /> 
 | 
        <result column="carriage" property="carriage" /> 
 | 
        <result column="take_code" property="takeCode" /> 
 | 
        <result column="remark" property="remark" /> 
 | 
        <result column="del_flag" property="delFlag" /> 
 | 
        <result column="is_home" property="isHome" /> 
 | 
    </resultMap> 
 | 
  
 | 
    <select id="selectNewApiLeaderOrderListInPage" resultMap="NewOrderInfoMap"> 
 | 
        select 
 | 
        a.* 
 | 
        from mall_order_info a 
 | 
        inner join mall_member c on a.take_unique_code=c.invite_id 
 | 
        <where> 
 | 
            c.id=#{record.memberId} 
 | 
            <if test="record.status == 4 and record.status != 0"> 
 | 
                and a.status = 4 
 | 
            </if> 
 | 
            <if test="record.status != 4 and record.status != 1 and record.status != 0 and record.status != 5"> 
 | 
                and a.status = #{record.status} 
 | 
            </if> 
 | 
            <if test="record.status == 5"> 
 | 
                and (a.status = 6 or b.state = 2) 
 | 
            </if> 
 | 
            <if test="record.status == 1"> 
 | 
                and a.status = 2 
 | 
            </if> 
 | 
            <if test="record.status == 0"> 
 | 
                and a.status in (2,3,4,5,6) 
 | 
            </if> 
 | 
            <if test="record.query != null and record.query != ''"> 
 | 
                and ( a.name like CONCAT('%', CONCAT(#{record.query}, '%')) 
 | 
                    or a.phone like CONCAT('%', CONCAT(#{record.query}, '%')) 
 | 
                    or a.take_code like CONCAT('%', CONCAT(#{record.query}, '%')) 
 | 
                    ) 
 | 
            </if> 
 | 
            <if test="record.orderType != null"> 
 | 
                and a.order_type=#{record.orderType} 
 | 
            </if> 
 | 
            and a.delivery_type = 1 
 | 
        </where> 
 | 
        order by a.created_time desc 
 | 
    </select> 
 | 
  
 | 
    <select id="getMallTeamLeaderList" resultType="cc.mrbird.febs.mall.entity.MallTeamLeader"> 
 | 
        select 
 | 
            a.* 
 | 
        from mall_team_leader a 
 | 
        where a.state = 1 and a.online_state = 1 
 | 
    </select> 
 | 
  
 | 
    <select id="selectLeaderByUniqueCode" resultType="cc.mrbird.febs.mall.entity.MallTeamLeader"> 
 | 
        select 
 | 
            a.* 
 | 
        from mall_team_leader a 
 | 
        where a.unique_code = #{uniqueCode} and a.state = 1 limit 1 
 | 
    </select> 
 | 
  
 | 
    <select id="selectLeaderByLonAndLat" resultType="cc.mrbird.febs.mall.entity.MallTeamLeader"> 
 | 
        select 
 | 
        a.*, 
 | 
        ROUND( 
 | 
        6378.138 * 2 * ASIN( 
 | 
        SQRT( 
 | 
        POW(SIN((#{latitude} * PI() / 180 - a.latitude * PI() / 180) / 2),2) 
 | 
        + COS(40.0497810000 * PI() / 180) * COS(a.latitude * PI() / 180) 
 | 
        * POW(SIN((#{longitude}  * PI() / 180 - a.longitude * PI() / 180) / 2),2) 
 | 
        ) 
 | 
        ) * 1000 
 | 
        ) AS distance 
 | 
        from mall_team_leader a 
 | 
        where a.state = 1 and a.online_state = 1 
 | 
        order by distance ASC limit 1 
 | 
    </select> 
 | 
  
 | 
    <select id="selectleaderGoodsStockListInPage" resultType="cc.mrbird.febs.mall.entity.MallLeaderStock"> 
 | 
        select a.* from mall_leader_stock a 
 | 
        where a.team_leader_id = #{record.teamLeaderId} 
 | 
    </select> 
 | 
  
 | 
    <select id="selectLeaderByUniqueCodeAndOrderBycreateTime" resultType="cc.mrbird.febs.mall.entity.MallTeamLeader"> 
 | 
        select 
 | 
            a.* 
 | 
        from mall_team_leader a 
 | 
        where a.unique_code = #{uniqueCode} 
 | 
        order by a.CREATED_TIME desc 
 | 
        limit 1 
 | 
    </select> 
 | 
  
 | 
    <select id="selectByFenceIdAndFenceNameAndLonAndLat" resultType="cc.mrbird.febs.mall.entity.MallTeamLeader"> 
 | 
        select 
 | 
            a.*, 
 | 
            ROUND( 
 | 
                        6378.138 * 2 * ASIN( 
 | 
                            SQRT( 
 | 
                                        POW(SIN((#{latitude} * PI() / 180 - a.latitude * PI() / 180) / 2),2) 
 | 
                                        + COS(40.0497810000 * PI() / 180) * COS(a.latitude * PI() / 180) 
 | 
                                            * POW(SIN((#{longitude}  * PI() / 180 - a.longitude * PI() / 180) / 2),2) 
 | 
                                ) 
 | 
                        ) * 1000 
 | 
                ) AS distance 
 | 
        from mall_team_leader a 
 | 
        inner join mall_electronic_fence b on b.team_leader_code = a.unique_code 
 | 
        where b.gid = #{fenceId} 
 | 
        and b.fence_name = #{fenceName} 
 | 
    </select> 
 | 
  
 | 
    <select id="getAllMallTeamLeaderList" resultType="cc.mrbird.febs.mall.entity.MallTeamLeader"> 
 | 
        select 
 | 
            a.* 
 | 
        from mall_team_leader a 
 | 
        where a.state = 1 
 | 
    </select> 
 | 
  
 | 
</mapper> 
 |