<?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.mingsoft.job.dao.IOrgDao">
    <!-- 表字段 -->
    <sql id="column_list">
        orgid,orgname,parentid,createdatetime,updatedatetime,status,bak1,bak2,bak3,bak4,bak5
    </sql>
	<!-- 将实体属性与表字段对接开始 -->    
    <resultMap id="resultMap" type="com.mingsoft.job.entity.OrgEntity">
       <id column="orgid" property="orgid" />
       <result column="orgname" property="orgname" />
       <result column="parentid" property="parentid" />
       <result column="createdatetime" property="createdatetime" />
       <result column="updatedatetime" property="updatedatetime" />
       <result column="status" property="status" />
       <result column="bak1" property="bak1" />
       <result column="bak2" property="bak2" />
       <result column="bak3" property="bak3" />
       <result column="bak4" property="bak4" />
       <result column="bak5" property="bak5" />
    </resultMap>
	<!-- 将实体属性与表字段对接结束 -->
    <!-- 新增 -->
    <insert id="saveEntity" useGeneratedKeys="true" keyProperty="orgid"
       parameterType="com.mingsoft.job.entity.OrgEntity">
       insert into org
       <trim prefix="(" suffix=")" suffixOverrides=",">
           <if test="orgname != null">orgname,</if>
           <if test="parentid != null">parentid,</if>
           <if test="createdatetime != null">createdatetime,</if>
           <if test="updatedatetime != null">updatedatetime,</if>
           <if test="status != null">status,</if>
           <if test="bak1 != null">bak1,</if>
           <if test="bak2 != null">bak2,</if>
           <if test="bak3 != null">bak3,</if>
           <if test="bak4 != null">bak4,</if>
           <if test="bak5 != null">bak5,</if>
       </trim>
       <trim prefix="values (" suffix=")" suffixOverrides=",">
           <if test="orgname != null">#{orgname},</if>
           <if test="parentid != null">#{parentid},</if>
           <if test="createdatetime != null">#{createdatetime},</if>
           <if test="updatedatetime != null">#{updatedatetime},</if>
           <if test="status != null">#{status},</if>
           <if test="bak1 != null">#{bak1},</if>
           <if test="bak2 != null">#{bak2},</if>
           <if test="bak3 != null">#{bak3},</if>
           <if test="bak4 != null">#{bak4},</if>
           <if test="bak5 != null">#{bak5},</if>
       </trim>
    </insert>
    <!-- 查询 -->
    <select id="queryAll" resultMap="resultMap" parameterType="java.lang.String">
       select
       <include refid="column_list" />
       from org
    </select>
    <!-- 查询带分页 -->
    <select id="query" resultMap="resultMap" parameterType="java.util.Map">
       select
       <include refid="column_list" />
       from org j
       <where>
	   	<if test="whereMap!=null">
	   		<if test="whereMap.name!=null">
	   			and j.orgname like CONCAT('%',#{orgname},'%')
	   		</if>
			<if test="whereMap.status!=null">
				and j.status in 
				<foreach collection="whereMap.status" item="status" index="index" open="(" separator="," close=")">
					#{status}
				</foreach>
			</if>
	   	</if>
	   </where>
       <if test="orderBy != null">
           order by ${orderBy}
       </if>
       <if test="order != null">
           ${order}
       </if>
    </select>
    
	<!-- 根据ID查找实体 -->
	<select id="getEntity" resultMap="resultMap" parameterType="int">
       select
       <include refid="column_list" />
       from org where orgid = #{orgid}
	</select>
	
	<select id="queryChild" resultMap="resultMap" parameterType="int">
		select
		<include refid="column_list" />
		from org where parentid = #{parentid}
	</select>
    
    <!-- 更新 -->
    <update id="updateEntity" parameterType="com.mingsoft.job.entity.OrgEntity">
       update org
       <set>
           <if test="orgname != null">orgname=#{orgname},</if>
           <if test="parentid != null">parentid=#{parentid},</if>
           <if test="createdatetime != null">createdatetime=#{createdatetime},</if>
           <if test="updatedatetime != null">updatedatetime=#{updatedatetime},</if>
           <if test="status != null">status=#{status},</if>
           <if test="bak1 != null">bak1=#{bak1},</if>
           <if test="bak2 != null">bak2=#{bak2},</if>
           <if test="bak3 != null">bak3=#{bak3},</if>
           <if test="bak4 != null">bak4=#{bak4},</if>
           <if test="bak5 != null">bak5=#{bak5},</if>
       </set>
       where orgid=#{orgid}
    </update>
    
    <!-- 更新状态 -->
    <update id="updateJobStatus" parameterType="com.mingsoft.job.entity.OrgEntity">
       update org
       <set>
           <if test="updatedatetime != null">updatedatetime=#{updatedatetime},</if>
           <if test="status != null">status=#{status},</if>
       </set>
       where orgid=#{orgid}
    </update> 
       
    <!-- 删除 -->
    <delete id="deleteEntity">
       delete from org
       where 
       orgid =#{orgid}
    </delete>
</mapper>
