<?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.MenuSpMapper">

    <resultMap type="MenuSpInfo" id="spMenuResultMap">
        <id column="id" property="menu_id"/>
        <result column="menu_name" property="menuName"/>
        <result column="menu_url" property="menu_url"/>
        <result column="status" property="status"/>
        <result column="parent_id" property="parentid"/>
    </resultMap>

    <select id="listPageParentSpMenu" parameterType="MenuSpInfo"  resultMap="spMenuResultMap">
        select id,menu_name,menu_url,parent_id,status from sms_sp_user_menu where parent_id =0
        <if test="menuName!=null and menuName!=''">
            and menu_name    like CONCAT('%',#{menuName},'%') 
        </if>
         order by id asc 
    </select>
    
    <select id="listAllParentSpMenu" resultMap="spMenuResultMap">
        select id,menu_name,menu_url,parent_id,status from sms_sp_user_menu where parent_id =0  order by id asc
    </select>
    
    <select id="listSubSpMenuByParentId" parameterType="int" resultMap="spMenuResultMap">
        select id,menu_name,menu_url,parent_id,status from sms_sp_user_menu where parent_id=#{menu_id}
    </select>
    <select id="getSpMenuById" parameterType="int" resultMap="spMenuResultMap">
        select id,menu_name,menu_url,parent_id,status from sms_sp_user_menu where id=#{menu_id}
    </select>
    <select id="listAllSubSpMenu" resultMap="spMenuResultMap">
        select id,menu_name,menu_url,parent_id,status from sms_sp_user_menu where parent_id >0
    </select>
    
    <insert id="insertSpMenu"  useGeneratedKeys="true" keyProperty="menu_id" parameterType="MenuSpInfo" >
        insert into sms_sp_user_menu (menu_name,menu_url,parent_id) values (#{menuName},#{menu_url,jdbcType=VARCHAR},#{parentid})
    </insert>
    
    <update id="updateSpMenu" parameterType="MenuSpInfo">
        update sms_sp_user_menu set 
        menu_name=#{menuName},
        menu_url=#{menu_url},
        parent_id=#{parentid} 
        where id=#{menu_id}
    </update>

    <update id="forbidSpMenuById" parameterType="int">
        update  sms_sp_user_menu set status=2 where id=#{menu_id} or parent_id=#{menu_id}
    </update>

    <update id="enableSpMenuById" parameterType="int">
        update  sms_sp_user_menu set status=1 where id=#{menu_id} or parent_id=#{menu_id}
    </update>

    <update id="deleteSpMenuById" parameterType="int">
        DELETE FROM sms_sp_user_menu  where id=#{menu_id} or parent_id=#{menu_id}
    </update>
</mapper>