MenuMapper.xml 5.84 KB
<?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="com.huaheng.project.system.menu.mapper.MenuMapper">

	<resultMap type="Menu" id="MenuResult">
		<id     property="menuId"         column="menuId"        />
		<result property="menuName"       column="menuName"      />
		<result property="parentName"     column="parent_name"    />
		<result property="parentId"       column="parentId"      />
		<result property="orderNum"       column="orderNum"      />
		<result property="url"            column="url"            />
		<result property="menuType"       column="menuType"      />
		<result property="visible"        column="visible"        />
		<result property="perms"          column="perms"          />
		<result property="icon"           column="icon"           />
		<result property="createBy"       column="createBy"      />
		<result property="createTime"     column="createTime"    />
		<result property="updateTime"     column="updateTime"    />
		<result property="updateBy"       column="updateBy"      />
		<result property="remark"         column="remark"         />
	</resultMap>
	
	<sql id="selectMenuVo">
        select menuId, menuName, parentId, orderNum, url, menuType, visible, perms, icon, createBy, createTime from sys_menu
    </sql>

	<select id="selectMenusByUserId" parameterType="Long" resultMap="MenuResult">
		select distinct m.menuId, m.parentId, m.menuName, m.url, m.perms , m.menuType, m.icon, m.orderNum, m.createTime
		from sys_menu m
			 left join sys_role_menu rm on m.menuId = rm.menuId
			 left join sys_user_role ur on rm.roleId = ur.roleId
			 LEFT JOIN sys_role ro on ur.roleId = ro.roleId
		where ur.userId = #{userId} and m.menuType in ('M', 'C') and m.visible = 0  AND ro.status = 0
		order by m.orderNum
	</select>
	
	<select id="selectPermsByUserId" parameterType="Long" resultType="String">
		select distinct m.perms
		from sys_menu m
			 left join sys_role_menu rm on m.menuId = rm.menuId
			 left join sys_user_role ur on rm.roleId = ur.roleId
		where ur.userId = #{userId}
	</select>
	
	<select id="selectMenuTree" parameterType="Long" resultType="String">
		select concat(m.menuId, m.perms) as perms
		from sys_menu m
			left join sys_role_menu rm on m.menuId = rm.menuId
		where rm.roleId = #{roleId}
		order by m.parentId, m.orderNum
	</select>
	
	<select id="selectMenuList" parameterType="Menu" resultMap="MenuResult">
        <include refid="selectMenuVo"/>
        <where>
			<if test="menuName != null and menuName != ''">
				AND menuName like concat('%', #{menuName}, '%')
			</if>
			<if test="visible != null and visible != ''">
				AND visible = #{visible}
			</if>
		</where>
    </select>
	
	<select id="selectMenuAll" resultMap="MenuResult">
		<include refid="selectMenuVo"/>
	</select>
	
	<delete id="deleteMenuById" parameterType="Long">
	    delete from sys_menu where menuId = #{menuId} or parentId = #{menuId}
	</delete>
	
	<select id="selectMenuById" parameterType="Long" resultMap="MenuResult">
		SELECT t.menuId, t.parentId, t.menuName, t.orderNum, t.url, t.menuType, t.visible, t.perms, t.icon, t.remark,
			(SELECT menuName FROM sys_menu WHERE menuId = t.parentId) parent_name
		FROM sys_menu t
		where t.menuId = #{menuId}
	</select>
	
	<select id="selectCountMenuByParentId" resultType="Integer">
	    select count(1) from sys_menu where parentId=#{menuId}
	</select>
	
	<select id="checkMenuNameUnique" parameterType="String" resultMap="MenuResult">
		<include refid="selectMenuVo"/>
		where menuName=#{menuName}
	</select>
	
	<update id="updateMenu" parameterType="Menu">
 		update sys_menu
 		<set>
 			<if test="menuName != null and menuName != ''">menuName = #{menuName},</if>
 			<if test="parentId != null and parentId != 0">parentId = #{parentId},</if>
 			<if test="orderNum != null and orderNum != ''">orderNum = #{orderNum},</if>
 			<if test="url != null and url != ''">url = #{url},</if>
 			<if test="menuType != null and menuType != ''">menuType = #{menuType},</if>
 			<if test="visible != null">visible = #{visible},</if>
 			<if test="perms !=null and perms != ''">perms = #{perms},</if>
 			<if test="icon !=null and icon != ''">icon = #{icon},</if>
 			<if test="remark != null and remark != ''">remark = #{remark},</if>
 			<if test="updateBy != null and updateBy != ''">updateBy = #{updateBy},</if>
 			updateTime = sysdate()
 		</set>
 		where menuId = #{menuId}
	</update>
 	
 	<insert id="insertMenu" parameterType="Menu">
 		insert into sys_menu(
 			<if test="menuId != null and menuId != 0">menuId,</if>
 			<if test="parentId != null and parentId != 0">parentId,</if>
 			<if test="menuName != null and menuName != ''">menuName,</if>
 			<if test="orderNum != null and orderNum != ''">orderNum,</if>
 			<if test="url != null and url != ''">url,</if>
 			<if test="menuType != null and menuType != ''">menuType,</if>
 			<if test="visible != null">visible,</if>
 			<if test="perms !=null and perms != ''">perms,</if>
 			<if test="icon != null and icon != ''">icon,</if>
 			<if test="remark != null and remark != ''">remark,</if>
 			<if test="createBy != null and createBy != ''">createBy,</if>
 			createTime
 		)values(
 			<if test="menuId != null and menuId != 0">#{menuId},</if>
 			<if test="parentId != null and parentId != 0">#{parentId},</if>
 			<if test="menuName != null and menuName != ''">#{menuName},</if>
 			<if test="orderNum != null and orderNum != ''">#{orderNum},</if>
 			<if test="url != null and url != ''">#{url},</if>
 			<if test="menuType != null and menuType != ''">#{menuType},</if>
 			<if test="visible != null">#{visible},</if>
 			<if test="perms !=null and perms != ''">#{perms},</if>
 			<if test="icon != null and icon != ''">#{icon},</if>
 			<if test="remark != null and remark != ''">#{remark},</if>
 			<if test="createBy != null and createBy != ''">#{createBy},</if>
 			sysdate()
 		)
	</insert>
	
</mapper>