Administrator
2025-05-19 9b51a95fa8bc9b3a86108c6900e17fc55f8db467
src/main/resources/mapper/modules/MallSalesmanMapper.xml
@@ -9,4 +9,231 @@
        GROUP BY a.id order by a.CREATED_TIME desc
    </select>
    <select id="selectTreeByState" resultType="cc.mrbird.febs.mall.vo.AdminMallSalesmansTreeVo">
        SELECT
            a.id,
               a.name
        FROM mall_salesman a
        where a.state = #{state}
        GROUP BY a.id order by a.CREATED_TIME desc
    </select>
    <select id="agentSelect" resultType="cc.mrbird.febs.mall.vo.AdminAgentSelectVo">
        SELECT
            a.id,
               a.salesmans_id salesmansId
        FROM mall_member a
        where a.id = #{memberId}
    </select>
    <select id="selectAddressAmountListInPage" resultType="cc.mrbird.febs.mall.vo.AdminMallAddressInfoVo">
        SELECT
            a.province,
            a.city
        FROM mall_address_info a
        <where>
            <if test="record != null" >
                <if test="record.province != null and record.province != ''">
                    and a.province = #{record.province}
                </if>
                <if test="record.city != null and record.city != ''">
                    and a.city = #{record.city}
                </if>
            </if>
        </where>
        group by a.city
    </select>
    <select id="selectSumOrderAmountByProvinceAndCity" resultType="java.math.BigDecimal">
        select
               IFNULL(sum(IFNULL(amount,0)),0)
        from
             mall_order_info
        where
              status in (2, 3, 4)
          and order_type = 1
          and address_id in (
              select
                     a.id
              from mall_address_info a
                <where>
                    <if test="province != null and province != ''">
                        and a.province = #{province}
                    </if>
                    <if test="city != null and city != ''">
                        and a.city = #{city}
                    </if>
                </where>
         )
    </select>
    <select id="selectSumOrderCntByProvinceAndCity" resultType="java.lang.Integer">
        select
               count(id)
        from
             mall_order_info
        where
              status in (2, 3, 4)
          and order_type = 1
          and address_id in (
              select
                     a.id
              from mall_address_info a
                <where>
                    <if test="province != null and province != ''">
                        and a.province = #{province}
                    </if>
                    <if test="city != null and city != ''">
                        and a.city = #{city}
                    </if>
                </where>
         )
    </select>
    <select id="selectProvince" resultType="cc.mrbird.febs.mall.vo.AdminMallAddressInfoVo">
        SELECT
        a.province
        FROM mall_address_info a
        group by a.province
    </select>
    <select id="selectSalesmanAchieveListInPage" resultType="cc.mrbird.febs.mall.vo.AdminSalesmanAchieveVo">
        SELECT
        a.province,
        a.city,
        a.name salesmanName,
        a.id salesmanId,
        (select count(b.id) from mall_member b where b.salesmans_id = a.id) memberCnt
        FROM mall_salesman a
        <where>
            <if test="record != null" >
                <if test="record.province != null and record.province != ''">
                    and a.province = #{record.province}
                </if>
                <if test="record.city != null and record.city != ''">
                    and a.city = #{record.city}
                </if>
                <if test="record.name != null and record.name != ''">
                    and a.name like concat('%',  #{record.name},'%')
                </if>
            </if>
        </where>
        ORDER BY
        memberCnt DESC, a.province ASC
    </select>
    <select id="selectSalesmanAchieveProvince" resultType="cc.mrbird.febs.mall.vo.AdminSalesmanAchieveVo">
        SELECT
            a.province
        FROM mall_salesman a
        group by a.province
    </select>
    <select id="selectAdminMemberOrderVoBySalesmanId" resultType="cc.mrbird.febs.mall.vo.AdminMemberOrderVo">
        select
            c.name memberName,
            c.phone memberPhone,
            a.address memberAddress,
            a.id orderId,
            a.order_no orderNo,
            a.CREATED_TIME createdTime,
            a.amount orderAmount
        from
            mall_order_info a
        left join mall_member c on a.member_id = c.id
        where
            a.status in (2, 3, 4)
            and  a.order_type = 1
            and  a.member_id in (
                select
                    b.id
                from mall_member b
                where
                    b.salesmans_id = #{salesmanId}
            )
    </select>
    <select id="selectAgentAchieveListInPage" resultType="cc.mrbird.febs.mall.vo.AdminMallAgentRecordVo">
        SELECT
        a.province,
        a.city,
        a.name,
        a.phone,
        d.name nickname,
        (
            select ifnull(sum(e.amount),0)
            from mall_money_flow e
            where e.flow_type = 1
            and e.type = 20
            and e.member_id = a.member_id
        ) rechargeSendAmount,
        (
            select count(b.id)
            from mall_order_info b
            <where>
                b.member_id = a.member_id
                    and (b.status = 4)
                <if test="record != null" >
                    <if test="record.startTime != null and record.startTime != ''">
                        and b.order_time &gt;= #{record.startTime}
                    </if>
                    <if test="record.endTime != null and record.endTime != ''">
                        and b.order_time &lt;= #{record.endTime}
                    </if>
                </if>
            </where>
        ) orderCnt,
        (
            select ifnull(sum(c.amount),0)
            from mall_order_info c
            <where>
                c.member_id = a.member_id
                and (c.status = 4)
                <if test="record != null" >
                    <if test="record.startTime != null and record.startTime != ''">
                        and c.order_time &gt;= #{record.startTime}
                    </if>
                    <if test="record.endTime != null and record.endTime != ''">
                        and c.order_time &lt;= #{record.endTime}
                    </if>
                </if>
            </where>
        ) orderAmount
        FROM mall_agent_record a
        inner join mall_member d on a.member_id = d.id
        <where>
            <if test="record != null" >
                <if test="record.province != null and record.province != ''">
                    and a.province = #{record.province}
                </if>
                <if test="record.city != null and record.city != ''">
                    and a.city = #{record.city}
                </if>
                <if test="record.name != null and record.name != ''">
                    and a.name like concat('%',  #{record.name},'%')
                </if>
                <if test="record.nickname != null and record.nickname != ''">
                    and d.name like concat('%',  #{record.nickname},'%')
                </if>
            </if>
        </where>
        ORDER BY orderAmount desc
    </select>
    <select id="selectAgentAddressProvince" resultType="cc.mrbird.febs.mall.vo.AdminMallAgentRecordVo">
        SELECT
            a.province
        FROM mall_agent_record a
        group by a.province
    </select>
    <select id="selectAgentAddressCity" resultType="java.lang.String">
        SELECT
            a.city
        FROM mall_agent_record a
        where a.province = #{province}
        group by a.city
    </select>
</mapper>