OrderItemMapper.xml 4.5 KB
<?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="cn.iocoder.mall.order.biz.dao.OrderItemMapper">

    <sql id="FIELDS">
        id, order_id, order_no, sku_id, sku_name, sku_image, quantity, price, pay_amount,
        payment_time, delivery_time, receiver_time, closing_time,
        has_return_exchange, status, create_time, update_time, deleted
    </sql>

    <!--
        插入数据
    -->
    <insert id="insert" parameterType="OrderItemDO" useGeneratedKeys="true" keyColumn="id" keyProperty="id">
        INSERT INTO `order_item` (
            order_id, order_no, sku_id, sku_name, sku_image, quantity, price, pay_amount,
            payment_time, delivery_time, receiver_time, closing_time,
            has_return_exchange, status, create_time, update_time, deleted
        ) VALUES (
            #{orderId}, #{orderNo}, #{skuId}, #{quantity}, #{price},
            #{paymentTime}, #{deliveryTime}, #{receiverTime}, #{closingTime},
            #{hasReturnExchange}, #{status},
            #{createTime}, #{updateTime}, #{deleted}
        )
    </insert>

    <!--
        更新 - 可更新的字段
    -->
    <sql id="updateFieldSql" >
        <set>
            <if test="orderId != null">
                , order_id = #{orderId}
            </if>
            <if test="orderNo != null">
                , order_no = #{orderNo}
            </if>
            <if test="skuId != null">
                , sku_id = #{skuId}
            </if>
            <if test="skuName != null">
                , sku_name = #{skuName}
            </if>
            <if test="skuImage != null">
                , sku_image = #{skuImage}
            </if>
            <if test="quantity != null">
                , quantity = #{quantity}
            </if>
            <if test="price != null">
                , price = #{price}
            </if>
            <if test="payAmount != null">
                , pay_amount = #{payAmount}
            </if>

            <if test="paymentTime != null">
                , payment_time = #{paymentTime}
            </if>
            <if test="deliveryTime != null">
                , delivery_time = #{deliveryTime}
            </if>
            <if test="receiverTime != null">
                , receiver_time = #{receiverTime}
            </if>
            <if test="closingTime != null">
                , closing_time = #{closingTime}
            </if>

            <if test="hasReturnExchange != null">
                , has_return_exchange = #{hasReturnExchange}
            </if>
            <if test="status != null">
                , status = #{status}
            </if>
            <if test="deleted != null">
                , `deleted` = #{deleted}
            </if>
            <if test="createTime != null">
                , create_time = #{createTime}
            </if>
            <if test="updateTime != null">
                , update_time = #{updateTime}
            </if>
        </set>
    </sql>

    <!--
        更新 - 根据 id 更新
    -->
    <update id="updateById" parameterType="OrderDO">
        UPDATE `order_item`
        <include refid="updateFieldSql" />
        WHERE id = #{id}
    </update>

    <!--
       更新 - 根据 ids 更新
   -->
    <update id="updateByIds">
        UPDATE `order_item`
        <include refid="updateFieldSql" />
        WHERE id IN
        <foreach collection="ids" item="id" separator="," open="(" close=")">
          #{id}
        </foreach>
    </update>

    <!--
        更新 - 根据 orderId
    -->
    <update id="updateByOrderId">
        UPDATE `order_item`
        <include refid="updateFieldSql" />
        WHERE order_id = #{orderId}
    </update>

    <!--
        查询 - 根据 orderId 下的 item
    -->
    <select id="selectByOrderIdAndDeleted" resultType="cn.iocoder.mall.order.biz.dataobject.OrderItemDO">
        SELECT * FROM `order_item`
        WHERE 1=1
        <if test="deleted">
            AND deleted = #{deleted}
        </if>
        <if test="orderId">
          AND order_id = #{orderId}
        </if>
    </select>

    <!--
        查询 - 根据 orderIds 和 status
    -->
    <select id="selectByOrderIdsAndDeleted" resultType="cn.iocoder.mall.order.biz.dataobject.OrderItemDO">
        SELECT
        <include refid="FIELDS" />
        FROM `order_item`
        WHERE `deleted` = #{deleted}
        AND `order_id`
        IN
        <foreach collection="orderIds" item="orderId" open="(" close=")" separator=",">
          #{orderId}
        </foreach>
    </select>
</mapper>