MenuMapper.xml 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  3. <mapper namespace="com.haha.mapper.MenuMapper">
  4. <resultMap id="MenuResultMap" type="com.haha.entity.Menu">
  5. <id column="id" property="id"/>
  6. <result column="parent_id" property="parentId"/>
  7. <result column="menu_type" property="menuType"/>
  8. <result column="title" property="title"/>
  9. <result column="name" property="name"/>
  10. <result column="path" property="path"/>
  11. <result column="component" property="component"/>
  12. <result column="rank" property="rank"/>
  13. <result column="redirect" property="redirect"/>
  14. <result column="icon" property="icon"/>
  15. <result column="extra_icon" property="extraIcon"/>
  16. <result column="enter_transition" property="enterTransition"/>
  17. <result column="leave_transition" property="leaveTransition"/>
  18. <result column="active_path" property="activePath"/>
  19. <result column="auths" property="auths"/>
  20. <result column="frame_src" property="frameSrc"/>
  21. <result column="frame_loading" property="frameLoading"/>
  22. <result column="keep_alive" property="keepAlive"/>
  23. <result column="hidden_tag" property="hiddenTag"/>
  24. <result column="fixed_tag" property="fixedTag"/>
  25. <result column="show_link" property="showLink"/>
  26. <result column="show_parent" property="showParent"/>
  27. <result column="create_time" property="createTime"/>
  28. <result column="update_time" property="updateTime"/>
  29. <result column="deleted" property="deleted"/>
  30. </resultMap>
  31. <!-- 更新菜单排序 (rank 是 MySQL 保留字,必须用反引号) -->
  32. <update id="updateRank">
  33. UPDATE t_menu SET `rank` = #{rank}, update_time = NOW() WHERE id = #{id}
  34. </update>
  35. <!-- 根据角色ID列表查询菜单 -->
  36. <select id="selectMenusByRoleIds" resultMap="MenuResultMap">
  37. SELECT DISTINCT m.* FROM t_menu m
  38. INNER JOIN t_role_menu rm ON m.id = rm.menu_id
  39. WHERE rm.role_id IN
  40. <foreach collection="roleIds" item="roleId" open="(" separator="," close=")">
  41. #{roleId}
  42. </foreach>
  43. AND m.deleted = 0
  44. ORDER BY m.`rank` ASC, m.id ASC
  45. </select>
  46. </mapper>