<?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.ics.quartz.mapper.JobLogMapper">

	<resultMap type="com.ics.quartz.domain.JobLog" id="SysJobLogResult">
		<id     property="id"       	  column="id"      		   />
		<result property="jobName"        column="job_name"        />
		<result property="jobGroup"       column="job_group"       />
		<result property="invokeTarget"   column="invoke_target"   />
		<result property="jobMessage"     column="job_message"     />
		<result property="status"         column="status"          />
		<result property="exceptionInfo"  column="exception_info"  />
		<result property="createTime"     column="create_time"     />
	</resultMap>
	
	<sql id="selectJobLogVo">
		SELECT id,
			   job_name,
			   job_group,
			   invoke_target,
			   job_message,
			   status,
			   exception_info,
			   create_time
		FROM sys_job_log
    </sql>
	
	<select id="selectJobLogList" parameterType="com.ics.quartz.domain.JobLog" resultMap="SysJobLogResult">
		<include refid="selectJobLogVo"/>
		<where>
			<if test="jobName != null and jobName != ''">
				AND job_name LIKE concat('%', #{jobName}, '%')
			</if>
			<if test="jobGroup != null and jobGroup != ''">
				AND job_group = #{jobGroup}
			</if>
			<if test="status != null and status != ''">
				AND status = #{status}
			</if>
			<if test="invokeTarget != null and invokeTarget != ''">
				AND invoke_target LIKE concat('%', #{invokeTarget}, '%')
			</if>
			<if test="beginTime != null and beginTime != ''"><!-- 开始时间检索 -->
				AND date_format(create_time,'%y%m%d') &gt;= date_format(#{beginTime},'%y%m%d')
			</if>
			<if test="endTime != null and endTime != ''"><!-- 结束时间检索 -->
				AND date_format(create_time,'%y%m%d') &lt;= date_format(#{endTime},'%y%m%d')
			</if>
		</where>
	</select>
	
	<select id="selectJobLogAll" resultMap="SysJobLogResult">
		<include refid="selectJobLogVo"/>
	</select>
	
	<select id="selectJobLogById" parameterType="Long" resultMap="SysJobLogResult">
		<include refid="selectJobLogVo"/>
		WHERE id = #{id}
	</select>

	<insert id="insertJobLog" parameterType="JobLog">
		INSERT INTO sys_job_log(
			<if test="id != null and id != 0">id,</if>
			<if test="jobName != null and jobName != ''">job_name,</if>
			<if test="jobGroup != null and jobGroup != ''">job_group,</if>
			<if test="invokeTarget != null and invokeTarget != ''">invoke_target,</if>
			<if test="jobMessage != null and jobMessage != ''">job_message,</if>
			<if test="status != null and status != ''">status,</if>
			<if test="exceptionInfo != null and exceptionInfo != ''">exception_info,</if>
			create_time
		) VALUES (
			<if test="id != null and id != 0">#{id},</if>
			<if test="jobName != null and jobName != ''">#{jobName},</if>
			<if test="jobGroup != null and jobGroup != ''">#{jobGroup},</if>
			<if test="invokeTarget != null and invokeTarget != ''">#{invokeTarget},</if>
			<if test="jobMessage != null and jobMessage != ''">#{jobMessage},</if>
			<if test="status != null and status != ''">#{status},</if>
			<if test="exceptionInfo != null and exceptionInfo != ''">#{exceptionInfo},</if>
			sysdate()
		)
	</insert>

	<delete id="deleteJobLogById" parameterType="Long">
 		DELETE FROM sys_job_log WHERE id = #{id}
 	</delete>
 	
 	<delete id="deleteJobLogByIds" parameterType="Long">
 		DELETE FROM sys_job_log WHERE id IN
 		<foreach collection="array" item="id" open="(" separator="," close=")">
 			#{id}
        </foreach> 
 	</delete>
 	
 	<update id="cleanJobLog">
        TRUNCATE TABLE sys_job_log
    </update>

</mapper> 