<?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.clazz.CommonAreaMapper">

	<resultMap id="BaseResultMap" type="cn.timer.api.bean.clazz.CommonArea" >
                <id column="code_id" property="codeId" />
                <result column="parent_id" property="parentId" />
                <result column="city_name" property="cityName" />
    </resultMap>
    
	<resultMap id="BaseResultMap_b" type="cn.timer.api.bean.clazz.CommonArea" >
                <id column="code_id" property="codeId" />
                <result column="parent_id" property="parentId" />
                <result column="city_name" property="cityName" />
                <collection column="CommonArea_c_code_id" property="commonAreas" ofType="cn.timer.api.bean.clazz.CommonArea" 
	                resultMap="cn.timer.api.dao.clazz.CommonAreaMapper.BaseResultMap" columnPrefix="CommonArea_c_">
			    </collection>
    </resultMap>

    <resultMap id="BaseResultMap_Tree" type="cn.timer.api.bean.clazz.CommonArea" >
                <id column="code_id" property="codeId" />
                <result column="parent_id" property="parentId" />
                <result column="city_name" property="cityName" />
                <collection column="CommonArea_b_code_id" property="commonAreas" ofType="cn.timer.api.bean.clazz.CommonArea" 
                resultMap="cn.timer.api.dao.clazz.CommonAreaMapper.BaseResultMap_b" columnPrefix="CommonArea_b_">
		        </collection>
    </resultMap>

    <sql id="Base_Column_List">
                code_id,
                parent_id,
                city_name
    </sql>
    <sql id="Base_Column_List_Alias">
                code_id CommonArea_code_id,
                parent_id CommonArea_parent_id,
                city_name CommonArea_city_name
    </sql>
    
    <sql id="Base_Column_List_Alias_a">
                a.code_id code_id,
                a.parent_id parent_id,
                a.city_name city_name
    </sql>
    <sql id="Base_Column_List_Alias_b">
                b.code_id CommonArea_b_code_id,
                b.parent_id CommonArea_b_parent_id,
                b.city_name CommonArea_b_city_name
    </sql>
    <sql id="Base_Column_List_Alias_c">
                c.code_id CommonArea_b_CommonArea_c_code_id,
                c.parent_id CommonArea_b_CommonArea_c_parent_id,
                c.city_name CommonArea_b_CommonArea_c_city_name
    </sql>
    
    <select id="AllAreaForTree" resultMap="BaseResultMap_Tree">
        SELECT 
        	<include refid="Base_Column_List_Alias_a" />,
        	<include refid="Base_Column_List_Alias_b" />,
        	<include refid="Base_Column_List_Alias_c" />
        FROM common_area a
        LEFT JOIN common_area b ON a.code_id = b.parent_id
        LEFT JOIN common_area c ON b.code_id = c.parent_id
        WHERE a.parent_id = 0
    </select>
    

	<!-- 

    <insert id="insert" useGeneratedKeys="true" keyColumn="id" parameterType="cn.timer.api.bean.clazz.CommonArea">
        INSERT INTO common_area
        <trim prefix="(" suffix=")" suffixOverrides=",">
                        <if test ='null != codeId'>
                        code_id,
                        </if>
                        <if test ='null != parentId'>
                        parent_id,
                        </if>
                        <if test ='null != cityName'>
                        city_name
                        </if>
        </trim>
        <trim prefix="values (" suffix=")" suffixOverrides=",">
                        <if test ='null != codeId'>
                        #{codeId},
                        </if>
                        <if test ='null != parentId'>
                        #{parentId},
                        </if>
                        <if test ='null != cityName'>
                        #{cityName}
                        </if>
        </trim>
    </insert>

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

    <update id="update" parameterType="cn.timer.api.bean.clazz.CommonArea">
        UPDATE common_area
        <set>
                    <if test ='null != codeId'>code_id = #{codeId},</if>
                    <if test ='null != parentId'>parent_id = #{parentId},</if>
                    <if test ='null != cityName'>city_name = #{cityName}</if>
        </set>
        WHERE id = #{id}
    </update>


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

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

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

	 -->

</mapper>