<?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.roadm.mapper.MenuMapper">

    <resultMap type="MenuInfo" id="menuResultMap">
        <id column="id" property="menu_id"/>
        <result column="menu_name" property="menuName"/>
        <result column="menu_url" property="menu_url"/>
        <result column="parent_id" property="parentid"/>
    </resultMap>

    <select id="listPageParentMenu" parameterType="MenuInfo"  resultMap="menuResultMap">
        select id,menu_name,menu_url,parent_id from sms_user_menu where parent_id =0 and status=1
        <if test="menuName!=null and menuName!=''">
            and menu_name    like CONCAT('%',#{menuName},'%') 
        </if>
         order by id asc 
    </select>
    
    <select id="listAllParentMenu" resultMap="menuResultMap">
        select id,menu_name,menu_url,parent_id from sms_user_menu where parent_id =0 and status=1 order by id asc 
    </select>
    
    <select id="listSubMenuByParentId" parameterType="int" resultMap="menuResultMap">
        select id,menu_name,menu_url,parent_id from sms_user_menu where parent_id=#{menu_id} and status=1
    </select>
    <select id="getMenuById" parameterType="int" resultMap="menuResultMap">
        select id,menu_name,menu_url,parent_id from sms_user_menu where id=#{menu_id} 
    </select>
    <select id="listAllSubMenu" resultMap="menuResultMap">
        select id,menu_name,menu_url,parent_id from sms_user_menu where parent_id >0 and status=1
    </select>
    
    <insert id="insertMenu"  useGeneratedKeys="true" keyProperty="menu_id" parameterType="MenuInfo" >
        insert into sms_user_menu (menu_name,menu_url,parent_id) values (#{menuName},#{menu_url,jdbcType=VARCHAR},#{parentid})
    </insert>
    
    <update id="updateMenu" parameterType="MenuInfo">
        update sms_user_menu set 
        menu_name=#{menuName},
        <if test="menu_url != null and menu_url != ''">
            menu_url=#{menu_url},
        </if>
        parent_id=#{parentid} 
        where id=#{menu_id}
    </update>
    
    <update id="deleteMenuById" parameterType="int">
        update  sms_user_menu set status=2 where id=#{menu_id} or parent_id=#{menu_id}
    </update>
	<select id="getSystemTitle" parameterType="String"  resultType="String">
        select a.value from sms_system_config a
        where a.config_key = #{key}
               limit 1
    </select>
    
    <select id="listAllParentMenuAgent" resultMap="menuResultMap">
        select id,menu_name,menu_url,parent_id from sms_agent_menu where parent_id =0 and status=1 order by id asc 
    </select>   
    <select id="listSubMenuByParentIdAgent" parameterType="int" resultMap="menuResultMap">
        select id,menu_name,menu_url,parent_id from sms_agent_menu where parent_id=#{menu_id} and status=1
    </select>

    <select id="getAllMenuUrl" resultType="java.lang.String">
        select MENU_URL from sms_user_menu where PARENT_ID != 0 and status=1
    </select>
</mapper>