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

    <resultMap type="com.bonus.sharedstation.app.entity.GreenInfo" id="GreenInfoMap">
        <result property="id" column="id" jdbcType="INTEGER"/>
        <result property="greenName" column="green_name" jdbcType="VARCHAR"/>
        <result property="greenPrice" column="green_price" jdbcType="NUMERIC"/>
        <result property="unit" column="unit" jdbcType="VARCHAR"/>
        <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"/>
        <result property="url" column="url" jdbcType="VARCHAR"/>
        <result property="type" column="type" jdbcType="VARCHAR"/>
    </resultMap>

    <!--查询单个-->
    <select id="queryById" resultMap="GreenInfoMap">
        select id,
               green_name,
               url,
               type,
               green_price,
               unit,
               remarks,
               created_by,
               created_time,
               updated_time,
               updated_by,
               is_deleted,
               tenant_id
        from yz_green_info
        where id = #{id}
    </select>

    <!--查询指定行数据-->
    <select id="queryAllByLimit" resultMap="GreenInfoMap">
        select
        id, green_name,url,type, green_price, unit, remarks, created_by, created_time, updated_time, updated_by,
        is_deleted,
        tenant_id
        from yz_green_info
        <where>
            <if test="id != null">
                and id = #{id}
            </if>
            <if test="greenName != null and greenName != ''">
                and green_name = #{greenName}
            </if>
            <if test="greenPrice != null">
                and green_price = #{greenPrice}
            </if>
            <if test="unit != null and unit != ''">
                and unit = #{unit}
            </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="type != null and type != ''">
                and type = #{type}
            </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_green_info
        <where>
            <if test="id != null">
                and id = #{id}
            </if>
            <if test="greenName != null and greenName != ''">
                and green_name = #{greenName}
            </if>
            <if test="greenPrice != null">
                and green_price = #{greenPrice}
            </if>
            <if test="unit != null and unit != ''">
                and unit = #{unit}
            </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="type != null and type != ''">
                and type = #{type}
            </if>
            <if test="tenantId != null">
                and tenant_id = #{tenantId}
            </if>
        </where>
    </select>

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

    <insert id="insertBatch" keyProperty="id" useGeneratedKeys="true">
        insert into yz_green_info(green_name,url,type,green_price, unit, remarks, created_by, created_time, updated_time,
        updated_by, is_deleted, tenant_id)
        values
        <foreach collection="entities" item="entity" separator=",">
            (#{entity.greenName},#{entity.url},#{entity.type}, #{entity.greenPrice}, #{entity.unit}, #{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_green_info(green_name,url,type, green_price, unit, remarks, created_by, created_time, updated_time,
        updated_by, is_deleted, tenant_id)
        values
        <foreach collection="entities" item="entity" separator=",">
            (#{entity.greenName},#{entity.url},#{entity.type}, #{entity.greenPrice}, #{entity.unit}, #{entity.remarks},
            #{entity.createdBy},
            #{entity.createdTime}, #{entity.updatedTime}, #{entity.updatedBy}, #{entity.isDeleted}, #{entity.tenantId})
        </foreach>
        on duplicate key update
        green_name = values(green_name),
        green_price = values(green_price),
        unit = values(unit),
        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),
        url = values(url),
        type = values(type),
        tenant_id = values(tenant_id)
    </insert>

    <!--通过主键修改数据-->
    <update id="update">
        update yz_green_info
        <set>
            <if test="greenName != null and greenName != ''">
                green_name = #{greenName},
            </if>
            <if test="greenPrice != null">
                green_price = #{greenPrice},
            </if>
            <if test="unit != null and unit != ''">
                unit = #{unit},
            </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="type != null and type != ''">
                type = #{type},
            </if>
            <if test="tenantId != null">
                tenant_id = #{tenantId},
            </if>
        </set>
        where id = #{id}
    </update>

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

</mapper>

