<?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.GreenOrderInfoMapper">

    <resultMap type="com.bonus.sharedstation.app.entity.GreenOrderInfo" id="GreenOrderInfoMap">
        <result property="id" column="id" jdbcType="INTEGER"/>
        <result property="orderId" column="order_id" jdbcType="INTEGER"/>
        <result property="greenId" column="green_id" jdbcType="INTEGER"/>
        <result property="greenName" column="green_name" jdbcType="VARCHAR"/>
        <result property="greenNum" column="green_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="url" column="url" jdbcType="VARCHAR"/>
        <result property="tenantId" column="tenant_id" jdbcType="INTEGER"/>
        <result property="greenPrice" column="green_price" jdbcType="NUMERIC"/>
    </resultMap>

    <!--查询单个-->
    <select id="queryById" resultMap="GreenOrderInfoMap">
        select id,
               order_id,
               green_id,
               url,
               green_name,
               green_num,
               remarks,
               created_by,
               created_time,
               updated_time,
               updated_by,
               is_deleted,
               tenant_id,
               green_price
        from yz_green_order_info
        where id = #{id}
    </select>

    <!--查询指定行数据-->
    <select id="queryAllByLimit" resultMap="GreenOrderInfoMap">
        select
        id, order_id, green_id,url, green_name, green_num, remarks, created_by, created_time, updated_time, updated_by,
        is_deleted, tenant_id, green_price
        from yz_green_order_info
        <where>
            <if test="id != null">
                and id = #{id}
            </if>
            <if test="orderId != null">
                and order_id = #{orderId}
            </if>
            <if test="greenId != null">
                and green_id = #{greenId}
            </if>
            <if test="greenName != null and greenName != ''">
                and green_name = #{greenName}
            </if>
            <if test="greenNum != null">
                and green_num = #{greenNum}
            </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="url != null and url != ''">
                and url = #{url}
            </if>
            <if test="tenantId != null">
                and tenant_id = #{tenantId}
            </if>
            <if test="greenPrice != null">
                and green_price = #{greenPrice}
            </if>
        </where>
        limit #{pageable.offset}, #{pageable.pageSize}
    </select>

    <!--统计总行数-->
    <select id="count" resultType="java.lang.Long">
        select count(1)
        from yz_green_order_info
        <where>
            <if test="id != null">
                and id = #{id}
            </if>
            <if test="orderId != null">
                and order_id = #{orderId}
            </if>
            <if test="greenId != null">
                and green_id = #{greenId}
            </if>
            <if test="greenName != null and greenName != ''">
                and green_name = #{greenName}
            </if>
            <if test="greenNum != null">
                and green_num = #{greenNum}
            </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="url != null and url != ''">
                and url = #{url}
            </if>
            <if test="tenantId != null">
                and tenant_id = #{tenantId}
            </if>
            <if test="greenPrice != null">
                and green_price = #{greenPrice}
            </if>
        </where>
    </select>

    <!--新增所有列-->
    <insert id="insert" keyProperty="id" useGeneratedKeys="true">
        insert into yz_green_order_info(order_id, green_id, url, green_name, green_num, remarks, created_by, created_time,
                                     updated_time, updated_by, is_deleted, tenant_id, green_price)
        values (#{orderId}, #{greenId}, #{url}, #{greenName}, #{greenNum}, #{remarks}, #{createdBy}, #{createdTime},
                #{updatedTime}, #{updatedBy}, #{isDeleted}, #{tenantId}, #{greenPrice})
    </insert>

    <insert id="insertBatch" keyProperty="id" useGeneratedKeys="true">
        insert into yz_green_order_info(order_id, green_id, url,green_name, green_num, remarks, created_by, created_time,
        updated_time, updated_by, is_deleted, tenant_id, green_price)
        values
        <foreach collection="entities" item="entity" separator=",">
            (#{entity.orderId}, #{entity.greenId},#{entity.url}, #{entity.greenName}, #{entity.greenNum},
            #{entity.remarks}, #{entity.createdBy}, #{entity.createdTime}, #{entity.updatedTime}, #{entity.updatedBy},
            #{entity.isDeleted}, #{entity.tenantId}, #{entity.greenPrice})
        </foreach>
    </insert>

    <insert id="insertOrUpdateBatch" keyProperty="id" useGeneratedKeys="true">
        insert into yz_green_order_info(order_id, green_id,url, green_name, green_num, remarks, created_by, created_time,
        updated_time, updated_by, is_deleted, tenant_id, green_price)
        values
        <foreach collection="entities" item="entity" separator=",">
            (#{entity.orderId}, #{entity.greenId},#{entity.url}, #{entity.greenName}, #{entity.greenNum},
            #{entity.remarks}, #{entity.createdBy}, #{entity.createdTime}, #{entity.updatedTime}, #{entity.updatedBy},
            #{entity.isDeleted}, #{entity.tenantId}, #{entity.greenPrice})
        </foreach>
        on duplicate key update
        order_id = values(order_id),
        green_id = values(green_id),
        url = values(url),
        green_name = values(green_name),
        green_num = values(green_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),
        green_price = values(green_price)
    </insert>

    <!--通过主键修改数据-->
    <update id="update">
        update yz_green_order_info
        <set>
            <if test="orderId != null">
                order_id = #{orderId},
            </if>
            <if test="greenId != null">
                green_id = #{greenId},
            </if>
            <if test="greenName != null and greenName != ''">
                green_name = #{greenName},
            </if>
            <if test="greenNum != null">
                green_num = #{greenNum},
            </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="url != null and url != ''">
                url = #{url},
            </if>
            <if test="tenantId != null">
                tenant_id = #{tenantId},
            </if>
            <if test="greenPrice != null">
                green_price = #{greenPrice},
            </if>
        </set>
        where id = #{id}
    </update>

    <!--通过主键删除-->
    <delete id="deleteById">
        delete
        from yz_green_order_info
        where id = #{id}
    </delete>

</mapper>

