<?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.ruoyi.reservation.mapper.ReservationMasterMapper">

	<resultMap type="Reservation" id="ReservationResult">
		<result property="id"    column="id"    />
		<result property="carNumber"    column="car_number"    />
		<result property="examineState"    column="examine_state"    />
		<result property="message"    column="message"    />
		<result property="thirdFlag"    column="third_flag"    />
		<result property="createBy"    column="create_by"    />
		<result property="createTime"    column="create_time"    />
		<result property="updateBy"    column="update_by"    />
		<result property="updateTime"    column="update_time"    />
	</resultMap>

	<sql id="selectReservationVo">
		select id, car_number, examine_state, message, third_flag, create_by, create_time, update_by, update_time from tb_reservation
	</sql>

	<select id="selectMasterReservationList" parameterType="Reservation" resultMap="ReservationResult">
		<include refid="selectReservationVo"/>
		<where>
			<if test="carNumber != null  and carNumber != ''"> and car_number like concat('%', #{carNumber}, '%')</if>
			<if test="examineState != null  and examineState != ''"> and examine_state = #{examineState}</if>
			<if test="message != null  and message != ''"> and message like concat('%', #{message}, '%')</if>
			<if test="thirdFlag != null  and thirdFlag != ''"> and third_flag = #{thirdFlag}</if>
		</where>
	</select>

	<select id="selectMasterReservationById" parameterType="Long" resultMap="ReservationResult">
		<include refid="selectReservationVo"/>
		where id = #{id}
	</select>

	<insert id="insertMasterReservation" parameterType="Reservation" useGeneratedKeys="true" keyProperty="id">
		insert into tb_reservation
		<trim prefix="(" suffix=")" suffixOverrides=",">
			<if test="carNumber != null">car_number,</if>
			<if test="examineState != null">examine_state,</if>
			<if test="message != null">message,</if>
			<if test="thirdFlag != null">third_flag,</if>
			<if test="createBy != null">create_by,</if>
			<if test="createTime != null">create_time,</if>
			<if test="updateBy != null">update_by,</if>
			<if test="updateTime != null">update_time,</if>
		</trim>
		<trim prefix="values (" suffix=")" suffixOverrides=",">
			<if test="carNumber != null">#{carNumber},</if>
			<if test="examineState != null">#{examineState},</if>
			<if test="message != null">#{message},</if>
			<if test="thirdFlag != null">#{thirdFlag},</if>
			<if test="createBy != null">#{createBy},</if>
			<if test="createTime != null">#{createTime},</if>
			<if test="updateBy != null">#{updateBy},</if>
			<if test="updateTime != null">#{updateTime},</if>
		</trim>
	</insert>

	<update id="updateMasterReservation" parameterType="Reservation">
		update tb_reservation
		<trim prefix="SET" suffixOverrides=",">
			<if test="carNumber != null">car_number = #{carNumber},</if>
			<if test="examineState != null">examine_state = #{examineState},</if>
			<if test="message != null">message = #{message},</if>
			<if test="thirdFlag != null">third_flag = #{thirdFlag},</if>
			<if test="createBy != null">create_by = #{createBy},</if>
			<if test="createTime != null">create_time = #{createTime},</if>
			<if test="updateBy != null">update_by = #{updateBy},</if>
			<if test="updateTime != null">update_time = #{updateTime},</if>
		</trim>
		where id = #{id}
	</update>

	<delete id="deleteMasterReservationById" parameterType="Long">
		delete from tb_reservation where id = #{id}
	</delete>

	<delete id="deleteMasterReservationByIds" parameterType="String">
		delete from tb_reservation where id in
		<foreach item="id" collection="array" open="(" separator="," close=")">
			#{id}
		</foreach>
	</delete>
</mapper>
