imboard
Version:
Most convenient platform for webpage development.
155 lines (146 loc) • 4.51 kB
text/xml
<mapper namespace="menu">
<resultMap type="MenuVo" id="menuResult">
<result column="ID" property="id" />
<result column="NAME" property="name" />
<result column="TYPE" property="type" />
<result column="PARAMETER" property="parameter" />
<result column="PRIORITY" property="priority" />
<result column="PARENT_MENU_ID" property="parentMenuId" />
<result column="VIEW_LEVEL" property="viewLevel"/>
<result column="CHILD_MENU_COUNT" property="childMenuCount"/>
<result column="CREATOR" property="creator"/>
</resultMap>
<select id="getMenuList" parameterType="string" resultMap="menuResult">
SELECT
ID,
NAME,
TYPE,
PARAMETER,
PRIORITY,
PARENT_MENU_ID,
VIEW_LEVEL,
(SELECT COUNT(*) FROM IMB_MENU WHERE PARENT_MENU_ID = A.ID) AS CHILD_MENU_COUNT,
CREATOR
FROM
IMB_MENU A
WHERE
<choose>
<when test="!#{parentMenuId}">PARENT_MENU_ID IS NULL OR PARENT_MENU_ID = ID OR PARENT_MENU_ID = ''</when>
<otherwise>PARENT_MENU_ID = #{parentMenuId}</otherwise>
</choose>
ORDER BY
PARENT_MENU_ID, PRIORITY
</select>
<select id="searchMenu" parameterType="MenuVo" resultMap="menuResult">
SELECT
ID,
NAME,
TYPE,
PARAMETER,
PRIORITY,
PARENT_MENU_ID,
VIEW_LEVEL,
(SELECT COUNT(*) FROM IMB_MENU WHERE PARENT_MENU_ID = A.ID) AS CHILD_MENU_COUNT,
CREATOR
FROM
IMB_MENU A
WHERE
1 = 1
<if test="#{id}">
AND ID = #{id}
</if>
<if test="#{name}">
AND NAME = #{name}
</if>
<if test="#{type}">
AND TYPE = #{type}
</if>
<if test="#{parameter}">
AND PARAMETER = #{parameter}
</if>
<if test="#{parentMenuId}">
AND PARENT_MENU_ID = #{parentMenuId}
</if>
<if test="#{creator}">
AND CREATOR = #{creator}
</if>
</select>
<select id="getMenu" parameterType="id" resultMap="menuResult">
SELECT
ID,
NAME,
TYPE,
PARAMETER,
PRIORITY,
PARENT_MENU_ID,
VIEW_LEVEL,
(SELECT COUNT(*) FROM IMB_MENU WHERE PARENT_MENU_ID = A.ID) AS CHILD_MENU_COUNT,
CREATOR
FROM
IMB_MENU A
WHERE
ID = #{id}
</select>
<select id="getNextPriority" resultType="int">
SELECT if(isnull(MAX(PRIORITY)), 0, MAX(PRIORITY)+1) FROM IMB_MENU
</select>
<select id="getMenuByName" parameterType="MenuVo" resultMap="menuResult">
SELECT
ID,
NAME,
TYPE,
PARAMETER,
PRIORITY,
PARENT_MENU_ID,
VIEW_LEVEL,
(SELECT COUNT(*) FROM IMB_MENU WHERE PARENT_MENU_ID = A.ID) AS CHILD_MENU_COUNT,
CREATOR,
FROM
IMB_MENU A
WHERE
NAME = #{name}
</select>
<insert id="insertMenu" parameterType="MenuVo">
INSERT INTO IMB_MENU
(ID, NAME, TYPE, PARAMETER, PRIORITY, PARENT_MENU_ID, VIEW_LEVEL, CREATOR, GROUP_ID)
VALUES
(
#{id},
#{name},
#{type},
#{parameter},
#{priority},
#{parentMenuId},
#{viewLevel},
#{creator},
#{parentMenuId}
)
</insert>
<update id="updateMenu" parameterType="MenuVo">
UPDATE
IMB_MENU
SET
NAME = #{name}
<if test="#{type} != null">,TYPE = #{type}</if>
<if test="#{parameter} != null">,PARAMETER = #{parameter}</if>
<if test="#{priority} != null">,PRIORITY = #{priority}</if>
<if test="#{parentMenuId} != null">,PARENT_MENU_ID = #{parentMenuId}</if>
<if test="#{viewLevel} != null">,VIEW_LEVEL = #{viewLevel}</if>
WHERE
ID = #{id}
</update>
<delete id="deleteMenu" parameterType="string">
DELETE FROM
IMB_MENU
WHERE
ID = #{id}
</delete>
<delete id="deleteMenuByParentMenuId" parameterType="string">
DELETE FROM
IMB_MENU
WHERE
GROUP_ID = #{id}
</delete>
</mapper>