<?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.bonus.sharedstation.app.mapper.WashClothingOrderInfoMapper">

    <resultMap type="com.bonus.sharedstation.app.entity.WashClothingOrderInfo" id="WashClothingOrderInfoMap">
        <result property="id" column="id" jdbcType="INTEGER"/>
        <result property="orderId" column="order_id" jdbcType="INTEGER"/>
        <result property="washClothingId" column="wash_clothing_id" jdbcType="INTEGER"/>
        <result property="clothingName" column="clothing_name" jdbcType="VARCHAR"/>
        <result property="clothingNum" column="clothing_num" jdbcType="INTEGER"/>
        <result property="remarks" column="remarks" jdbcType="VARCHAR"/>
        <result property="createdBy" column="created_by" jdbcType="VARCHAR"/>
        <result property="createdTime" column="created_time" jdbcType="TIMESTAMP"/>
        <result property="updatedTime" column="updated_time" jdbcType="TIMESTAMP"/>
        <result property="updatedBy" column="updated_by" jdbcType="VARCHAR"/>
        <result property="isDeleted" column="is_deleted" jdbcType="VARCHAR"/>
        <result property="tenantId" column="tenant_id" jdbcType="INTEGER"/>
    </resultMap>

    <!--查询单个-->
    <select id="queryById" resultMap="WashClothingOrderInfoMap">
        select
          id, order_id, wash_clothing_id, clothing_name, clothing_num, remarks, created_by, created_time, updated_time, updated_by, is_deleted, tenant_id
        from yz_wash_clothing_order_info
        where id = #{id}
    </select>

    <!--查询指定行数据-->
    <select id="queryAllByLimit" resultMap="WashClothingOrderInfoMap">
        select
          id, order_id, wash_clothing_id, clothing_name, clothing_num, remarks, created_by, created_time, updated_time, updated_by, is_deleted, tenant_id
        from yz_wash_clothing_order_info
        <where>
            <if test="id != null">
                and id = #{id}
            </if>
            <if test="orderId != null">
                and order_id = #{orderId}
            </if>
            <if test="washClothingId != null">
                and wash_clothing_id = #{washClothingId}
            </if>
            <if test="clothingName != null and clothingName != ''">
                and clothing_name = #{clothingName}
            </if>
            <if test="clothingNum != null">
                and clothing_num = #{clothingNum}
            </if>
            <if test="remarks != null and remarks != ''">
                and remarks = #{remarks}
            </if>
            <if test="createdBy != null and createdBy != ''">
                and created_by = #{createdBy}
            </if>
            <if test="createdTime != null">
                and created_time = #{createdTime}
            </if>
            <if test="updatedTime != null">
                and updated_time = #{updatedTime}
            </if>
            <if test="updatedBy != null and updatedBy != ''">
                and updated_by = #{updatedBy}
            </if>
            <if test="isDeleted != null and isDeleted != ''">
                and is_deleted = #{isDeleted}
            </if>
            <if test="tenantId != null">
                and tenant_id = #{tenantId}
            </if>
        </where>
        limit #{pageable.offset}, #{pageable.pageSize}
    </select>

    <!--统计总行数-->
    <select id="count" resultType="java.lang.Long">
        select count(1)
        from yz_wash_clothing_order_info
        <where>
            <if test="id != null">
                and id = #{id}
            </if>
            <if test="orderId != null">
                and order_id = #{orderId}
            </if>
            <if test="washClothingId != null">
                and wash_clothing_id = #{washClothingId}
            </if>
            <if test="clothingName != null and clothingName != ''">
                and clothing_name = #{clothingName}
            </if>
            <if test="clothingNum != null">
                and clothing_num = #{clothingNum}
            </if>
            <if test="remarks != null and remarks != ''">
                and remarks = #{remarks}
            </if>
            <if test="createdBy != null and createdBy != ''">
                and created_by = #{createdBy}
            </if>
            <if test="createdTime != null">
                and created_time = #{createdTime}
            </if>
            <if test="updatedTime != null">
                and updated_time = #{updatedTime}
            </if>
            <if test="updatedBy != null and updatedBy != ''">
                and updated_by = #{updatedBy}
            </if>
            <if test="isDeleted != null and isDeleted != ''">
                and is_deleted = #{isDeleted}
            </if>
            <if test="tenantId != null">
                and tenant_id = #{tenantId}
            </if>
        </where>
    </select>

    <!--新增所有列-->
    <insert id="insert" keyProperty="id" useGeneratedKeys="true">
        insert into yz_wash_clothing_order_info(order_id, wash_clothing_id, clothing_name, clothing_num, remarks,
                                              created_by, created_time, updated_time, updated_by, is_deleted, tenant_id)
        values (#{orderId}, #{washClothingId}, #{clothingName}, #{clothingNum}, #{remarks}, #{createdBy}, #{createdTime}, #{updatedTime}, #{updatedBy}, #{isDeleted}, #{tenantId})
    </insert>

    <insert id="insertBatch" keyProperty="id" useGeneratedKeys="true">
        insert into yz_wash_clothing_order_info(order_id, wash_clothing_id, clothing_name, clothing_num, remarks,
        created_by, created_time, updated_time, updated_by, is_deleted, tenant_id)
        values
        <foreach collection="entities" item="entity" separator=",">
        (#{entity.orderId}, #{entity.washClothingId}, #{entity.clothingName}, #{entity.clothingNum}, #{entity.remarks}, #{entity.createdBy}, #{entity.createdTime}, #{entity.updatedTime}, #{entity.updatedBy}, #{entity.isDeleted}, #{entity.tenantId})
        </foreach>
    </insert>

    <insert id="insertOrUpdateBatch" keyProperty="id" useGeneratedKeys="true">
        insert into yz_wash_clothing_order_info(order_id, wash_clothing_id, clothing_name, clothing_num, remarks,
        created_by, created_time, updated_time, updated_by, is_deleted, tenant_id)
        values
        <foreach collection="entities" item="entity" separator=",">
            (#{entity.orderId}, #{entity.washClothingId}, #{entity.clothingName}, #{entity.clothingNum}, #{entity.remarks}, #{entity.createdBy}, #{entity.createdTime}, #{entity.updatedTime}, #{entity.updatedBy}, #{entity.isDeleted}, #{entity.tenantId})
        </foreach>
        on duplicate key update
        order_id = values(order_id),
        wash_clothing_id = values(wash_clothing_id),
        clothing_name = values(clothing_name),
        clothing_num = values(clothing_num),
        remarks = values(remarks),
        created_by = values(created_by),
        created_time = values(created_time),
        updated_time = values(updated_time),
        updated_by = values(updated_by),
        is_deleted = values(is_deleted),
        tenant_id = values(tenant_id)
    </insert>

    <!--通过主键修改数据-->
    <update id="update">
        update yz_wash_clothing_order_info
        <set>
            <if test="orderId != null">
                order_id = #{orderId},
            </if>
            <if test="washClothingId != null">
                wash_clothing_id = #{washClothingId},
            </if>
            <if test="clothingName != null and clothingName != ''">
                clothing_name = #{clothingName},
            </if>
            <if test="clothingNum != null">
                clothing_num = #{clothingNum},
            </if>
            <if test="remarks != null and remarks != ''">
                remarks = #{remarks},
            </if>
            <if test="createdBy != null and createdBy != ''">
                created_by = #{createdBy},
            </if>
            <if test="createdTime != null">
                created_time = #{createdTime},
            </if>
            <if test="updatedTime != null">
                updated_time = #{updatedTime},
            </if>
            <if test="updatedBy != null and updatedBy != ''">
                updated_by = #{updatedBy},
            </if>
            <if test="isDeleted != null and isDeleted != ''">
                is_deleted = #{isDeleted},
            </if>
            <if test="tenantId != null">
                tenant_id = #{tenantId},
            </if>
        </set>
        where id = #{id}
    </update>

    <!--通过主键删除-->
    <delete id="deleteById">
        update yz_wash_clothing_order_info set is_deleted = '1' where id = #{id}
    </delete>

</mapper>

