<?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.bootdo.common.dao.TaskDao">

	<select id="get" resultType="com.bootdo.common.domain.TaskDO">
		select `id`,`cron_expression`,`method_name`,`is_concurrent`,`description`,`update_by`,`bean_class`,`create_date`,`job_status`,`job_group`,`update_date`,`create_by`,`spring_bean`,`job_name` from sys_task where id = #{value}
	</select>

	<select id="list" resultType="com.bootdo.common.domain.TaskDO">
		select `id`,`cron_expression`,`method_name`,`is_concurrent`,`description`,`update_by`,`bean_class`,`create_date`,`job_status`,`job_group`,`update_date`,`create_by`,`spring_bean`,`job_name` from sys_task
        <where>  
		  		  <if test="id != null and id != ''"> and id = #{id} </if>
		  		  <if test="cronExpression != null and cronExpression != ''"> and cron_expression = #{cronExpression} </if>
		  		  <if test="methodName != null and methodName != ''"> and method_name = #{methodName} </if>
		  		  <if test="isConcurrent != null and isConcurrent != ''"> and is_concurrent = #{isConcurrent} </if>
		  		  <if test="description != null and description != ''"> and description = #{description} </if>
		  		  <if test="updateBy != null and updateBy != ''"> and update_by = #{updateBy} </if>
		  		  <if test="beanClass != null and beanClass != ''"> and bean_class = #{beanClass} </if>
		  		  <if test="createDate != null and createDate != ''"> and create_date = #{createDate} </if>
		  		  <if test="jobStatus != null and jobStatus != ''"> and job_status = #{jobStatus} </if>
		  		  <if test="jobGroup != null and jobGroup != ''"> and job_group = #{jobGroup} </if>
		  		  <if test="updateDate != null and updateDate != ''"> and update_date = #{updateDate} </if>
		  		  <if test="createBy != null and createBy != ''"> and create_by = #{createBy} </if>
		  		  <if test="springBean != null and springBean != ''"> and spring_bean = #{springBean} </if>
		  		  <if test="jobName != null and jobName != ''"> and job_name = #{jobName} </if>
		  		</where>
        <choose>
            <when test="sort != null and sort.trim() != ''">
                order by ${sort} ${order}
            </when>
			<otherwise>
                order by id desc
			</otherwise>
        </choose>
		<if test="offset != null and limit != null">
			limit #{offset}, #{limit}
		</if>
	</select>
	
 	<select id="count" resultType="int">
		select count(*) from sys_task
		 <where>  
		  		  <if test="id != null and id != ''"> and id = #{id} </if>
		  		  <if test="cronExpression != null and cronExpression != ''"> and cron_expression = #{cronExpression} </if>
		  		  <if test="methodName != null and methodName != ''"> and method_name = #{methodName} </if>
		  		  <if test="isConcurrent != null and isConcurrent != ''"> and is_concurrent = #{isConcurrent} </if>
		  		  <if test="description != null and description != ''"> and description = #{description} </if>
		  		  <if test="updateBy != null and updateBy != ''"> and update_by = #{updateBy} </if>
		  		  <if test="beanClass != null and beanClass != ''"> and bean_class = #{beanClass} </if>
		  		  <if test="createDate != null and createDate != ''"> and create_date = #{createDate} </if>
		  		  <if test="jobStatus != null and jobStatus != ''"> and job_status = #{jobStatus} </if>
		  		  <if test="jobGroup != null and jobGroup != ''"> and job_group = #{jobGroup} </if>
		  		  <if test="updateDate != null and updateDate != ''"> and update_date = #{updateDate} </if>
		  		  <if test="createBy != null and createBy != ''"> and create_by = #{createBy} </if>
		  		  <if test="springBean != null and springBean != ''"> and spring_bean = #{springBean} </if>
		  		  <if test="jobName != null and jobName != ''"> and job_name = #{jobName} </if>
		  		</where>
	</select>
	 
	<insert id="save" parameterType="com.bootdo.common.domain.TaskDO" useGeneratedKeys="true" keyProperty="id">
		insert into sys_task
		(
			`cron_expression`, 
			`method_name`, 
			`is_concurrent`, 
			`description`, 
			`update_by`, 
			`bean_class`, 
			`create_date`, 
			`job_status`, 
			`job_group`, 
			`update_date`, 
			`create_by`, 
			`spring_bean`, 
			`job_name`
		)
		values
		(
			#{cronExpression}, 
			#{methodName}, 
			#{isConcurrent}, 
			#{description}, 
			#{updateBy}, 
			#{beanClass}, 
			#{createDate}, 
			#{jobStatus}, 
			#{jobGroup}, 
			#{updateDate}, 
			#{createBy}, 
			#{springBean}, 
			#{jobName}
		)
	</insert>
	 
	<update id="update" parameterType="com.bootdo.common.domain.TaskDO">
		update sys_task 
		<set>
			<if test="cronExpression != null">`cron_expression` = #{cronExpression}, </if>
			<if test="methodName != null">`method_name` = #{methodName}, </if>
			<if test="isConcurrent != null">`is_concurrent` = #{isConcurrent}, </if>
			<if test="description != null">`description` = #{description}, </if>
			<if test="updateBy != null">`update_by` = #{updateBy}, </if>
			<if test="beanClass != null">`bean_class` = #{beanClass}, </if>
			<if test="createDate != null">`create_date` = #{createDate}, </if>
			<if test="jobStatus != null">`job_status` = #{jobStatus}, </if>
			<if test="jobGroup != null">`job_group` = #{jobGroup}, </if>
			<if test="updateDate != null">`update_date` = #{updateDate}, </if>
			<if test="createBy != null">`create_by` = #{createBy}, </if>
			<if test="springBean != null">`spring_bean` = #{springBean}, </if>
			<if test="jobName != null">`job_name` = #{jobName}</if>
		</set>
		where id = #{id}
	</update>
	
	<delete id="remove">
		delete from sys_task where id = #{value}
	</delete>
	
	<delete id="batchRemove">
		delete from sys_task where id in 
		<foreach item="id" collection="array" open="(" separator="," close=")">
			#{id}
		</foreach>
	</delete>

</mapper>