xiaoyong931011
2022-07-27 3280d1bd977e8fb5c9c60e615612fabb7b99c3e3
src/main/resources/mapper/modules/MallOrderInfoMapper.xml
@@ -2,28 +2,93 @@
<!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,
            c.name leader_name,
            c.phone leader_phone,
            c.address_pic,
            c.address_area,
            c.province,
            c.city,
            c.township,
            c.detail_address
        from mall_order_info a
        inner join mall_order_item b on a.id=b.order_id
        inner join mall_team_leader c on a.take_unique_code=c.unique_code
        <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>
            <if test="record.deliveryType != null">
                and a.delivery_type=#{record.deliveryType}
            </if>
            <if test="record.takeUniqueCode != null">
                and a.take_unique_code=#{record.takeUniqueCode}
            </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.phone memberPhone
        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
        left join mall_team_leader c on a.take_unique_code = c.unique_code
        <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.deliveryType != null and record.deliveryType != ''">
                    and a.delivery_type = #{record.deliveryType}
                </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 test="record.uniqueCode != null and record.uniqueCode != ''">
                    and a.take_unique_code = #{record.uniqueCode}
                </if>
            </if>
        </where>
@@ -52,8 +117,21 @@
        <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="carriage" property="carriage" />
        <result column="remark" property="remark" />
        <result column="take_code" property="takeCode" />
        <result column="take_unique_code" property="takeUniqueCode" />
        <result column="del_flag" property="delFlag" />
        <result column="leader_name" property="leaderName" />
        <result column="leader_phone" property="leaderPhone" />
        <result column="address_pic" property="addressPic" />
        <result column="address_area" property="addressArea" />
        <result column="province" property="province" />
        <result column="city" property="city" />
        <result column="township" property="township" />
        <result column="detail_address" property="detailAddress" />
        <collection property="items" ofType="cc.mrbird.febs.mall.entity.MallOrderItem">
            <id property="id" column="item_id" />
            <result property="orderId" column="order_id" />
@@ -66,6 +144,7 @@
            <result property="cnt" column="cnt" />
            <result property="price" column="price" />
            <result property="amount" column="amount" />
            <result property="isNormal" column="is_normal" />
        </collection>
    </resultMap>
@@ -82,22 +161,37 @@
               b.sku_image,
               b.cnt,
               b.price,
               b.amount
               b.amount,
               c.name leader_name,
               c.phone leader_phone,
               c.address_pic,
               c.address_area,
               c.province,
               c.city,
               c.township,
               c.detail_address
        from mall_order_info a
         inner join mall_order_item b on a.id=b.order_id
         inner join mall_team_leader c on a.take_unique_code=c.unique_code
        <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)
                and a.status = 4
            </if>
            <if test="record.status != 4 and record.status != 0">
            <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
@@ -116,9 +210,19 @@
            b.sku_image,
            b.cnt,
            b.price,
            b.amount
            b.amount,
            b.is_normal,
            c.name leader_name,
            c.phone leader_phone,
            c.address_pic,
            c.address_area,
            c.province,
            c.city,
            c.township,
            c.detail_address
        from mall_order_info a
             inner join mall_order_item b on a.id=b.order_id
             inner join mall_team_leader c on a.take_unique_code=c.unique_code
        where a.id=#{id}
    </select>
@@ -139,4 +243,94 @@
        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.receiving_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.order_type=1
        <if test="isNormal == 2">
            and a.status in (2, 3, 4) and b.is_normal = 2 and b.has_settle=1
        </if>
        <if test="isNormal == 1">
            and a.status=4 and b.is_normal = 1 and b.has_settle=1
        </if>
        <if test="member != null">
            and member_id=#{memberId}
        </if>
        <if test='date != null and dateType == "D"'>
            and date_format(a.pay_time, '%Y-%m-%d') = date_format(#{date}, '%Y-%m-%d')
        </if>
        <if test='date != null and dateType == "M"'>
            and date_format(a.pay_time, '%Y-%m') = date_format(#{date}, '%Y-%m')
        </if>
        <if test='date != null and dateType == "Y"'>
            and date_format(a.pay_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>
    <update id="updateOrderConfirmStatus">
        update mall_order_info
        set status=4,
            receiving_time=new Date()
        where status=3 and date_format(pay_time, '%Y-%m-%d') = date_format(#{date}, '%Y-%m-%d')
    </update>
    <select id="selectOrderInfoWithNormalGoods" resultMap="OrderInfoMap">
        select * from mall_order_info a
        inner join mall_order_item b on a.id=b.order_id and b.is_normal=1
        where date_format(pay_time, '%Y-%m-%d') = date_format(#{date}, '%Y-%m-%d')
    </select>
    <select id="selectSumAmountByPayMethodAndStatue" resultType="java.math.BigDecimal">
        select IFNULL(sum(IFNULL(amount,0)),0) from mall_order_info
        where pay_method = #{payMethod} and status = #{statue}
    </select>
</mapper>