<?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="cn.timer.api.dao.spmk.SpmkApprovalTemplateGMapper">

    <resultMap id="BaseResultMap" type="cn.timer.api.bean.spmk.SpmkApprovalTemplateG" >
                <id column="id" property="id" />
                <result column="name" property="name" />
                <result column="ranks" property="ranks" />
                <result column="update_time" property="updateTime" />
    </resultMap>
    
    <resultMap id="BaseResultMapDto" type="cn.timer.api.dto.spmk.SpmkApprovalTemplateGDto" >
                <id column="id" property="id" />
                <result column="name" property="name" />
                <result column="ranks" property="ranks" />
                <result column="update_time" property="updateTime" />
                <collection column="SpmkApprovalTemplate_id" property="spmkApprovalTemplates" ofType="cn.timer.api.bean.spmk.SpmkApprovalTemplate" 
                resultMap="cn.timer.api.dao.spmk.SpmkApprovalTemplateMapper.BaseResultMap" columnPrefix="SpmkApprovalTemplate_">
		        </collection>
    </resultMap>

    <sql id="Base_Column_List">
                id,
                name,
                ranks,
                update_time
    </sql>
    
    <sql id="Base_Column_List_Alias">
                id SpmkApprovalTemplateG_id,
                name SpmkApprovalTemplateG_name,
                ranks SpmkApprovalTemplateG_ranks,
                update_time SpmkApprovalTemplateG_update_time
    </sql>
    
    <sql id="Base_Column_List_Alias_a">
                a.id,
                a.name,
                a.ranks,
                a.update_time
    </sql>
    
    <sql id="Base_Column_List_Alias_at">
                b.id SpmkApprovalTemplate_id,
                b.approval_template_g_id SpmkApprovalTemplate_approval_template_g_id,
                b.icon_url SpmkApprovalTemplate_icon_url,
                b.name SpmkApprovalTemplate_name,
                b.description SpmkApprovalTemplate_description,
                b.is_open SpmkApprovalTemplate_is_open,
                b.ranks SpmkApprovalTemplate_ranks,
                b.is_opinion SpmkApprovalTemplate_is_opinion,
                b.update_time SpmkApprovalTemplate_update_time,
                b.create_time SpmkApprovalTemplate_create_time,
                b.asso_type SpmkApprovalTemplate_asso_type<!-- ,
                b.froms SpmkApprovalTemplate_froms,
                b.router SpmkApprovalTemplate_router -->
    </sql>
    
    <select id="selectListAtInAtg" resultMap="BaseResultMapDto">
        SELECT 
        	<include refid="Base_Column_List_Alias_a" />,
        	<include refid="Base_Column_List_Alias_at" />
        FROM spmk_approval_template_g a
        LEFT JOIN spmk_approval_template b ON a.id = b.approval_template_g_id
        ORDER BY a.ranks, b.ranks
    </select>
    
    <update id="updateListRandsById" parameterType="list">
        <foreach item="item" index="index" collection="list" open="" separator=";" close="">
	        		UPDATE spmk_approval_template_g
			        <set>
			                    <if test ='null != item.ranks'>ranks = #{item.ranks},</if>
			        </set>
			        WHERE id = #{item.id}
		</foreach>
    </update>
    
    

	<!-- 

    <insert id="insert" useGeneratedKeys="true" keyColumn="id" parameterType="cn.timer.api.bean.spmk.SpmkApprovalTemplateG">
        INSERT INTO spmk_approval_template_g
        <trim prefix="(" suffix=")" suffixOverrides=",">
                        <if test ='null != name'>
                        name,
                        </if>
                        <if test ='null != ranks'>
                        ranks,
                        </if>
                        <if test ='null != updateTime'>
                        update_time
                        </if>
        </trim>
        <trim prefix="values (" suffix=")" suffixOverrides=",">
                        <if test ='null != name'>
                        #{name},
                        </if>
                        <if test ='null != ranks'>
                        #{ranks},
                        </if>
                        <if test ='null != updateTime'>
                        #{updateTime}
                        </if>
        </trim>
    </insert>

    <delete id="delete" >
        DELETE FROM spmk_approval_template_g
        WHERE id = #{id}
    </delete>

    <update id="update" parameterType="cn.timer.api.bean.spmk.SpmkApprovalTemplateG">
        UPDATE spmk_approval_template_g
        <set>
                    <if test ='null != name'>name = #{name},</if>
                    <if test ='null != ranks'>ranks = #{ranks},</if>
                    <if test ='null != updateTime'>update_time = #{updateTime}</if>
        </set>
        WHERE id = #{id}
    </update>


    <select id="load" resultMap="BaseResultMap">
        SELECT <include refid="Base_Column_List" />
        FROM spmk_approval_template_g
        WHERE id = #{id}
    </select>

    <select id="pageList" resultMap="BaseResultMap">
        SELECT <include refid="Base_Column_List" />
        FROM spmk_approval_template_g
        LIMIT #{offset}, #{pageSize}
    </select>

    <select id="pageListCount" resultType="java.lang.Integer">
        SELECT count(1)
        FROM spmk_approval_template_g
    </select>

	 -->

</mapper>