d31afb4a89ad5fc2b51b695989db063eded63c2a.svn-base 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272
  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="cn.com.goldenwater.dcproj.dao.MenuDao">
  4. <resultMap type="cn.com.goldenwater.dcproj.model.Menu" id="menuResultMap">
  5. <result property="id" column="ID" />
  6. <result property="privId" column="PRIV_ID" />
  7. <result property="parentId" column="PARENT_ID" />
  8. <result property="menuName" column="MENU_NAME" />
  9. <result property="sortLevel" column="SORT_LEVEL" />
  10. <result property="sequence" column="SEQUENCE" />
  11. <result property="href" column="HREF" />
  12. <result property="icon" column="ICON" />
  13. <result property="ownApp" column="OWN_APP" />
  14. </resultMap>
  15. <resultMap type="cn.com.goldenwater.dcproj.dto.MenuDto" id="dtoMenuResultMap">
  16. <result property="id" column="ID" />
  17. <result property="privId" column="PRIV_ID" />
  18. <result property="privName" column="PRIV_NAME" />
  19. <result property="parentId" column="PARENT_ID" />
  20. <result property="parentName" column="PARENT_NAME" />
  21. <result property="menuName" column="MENU_NAME" />
  22. <result property="sortLevel" column="SORT_LEVEL" />
  23. <result property="sequence" column="SEQUENCE" />
  24. <result property="href" column="HREF" />
  25. <result property="icon" column="ICON" />
  26. <result property="checked" column="CHECKED"/>
  27. <result property="code" column="CODE"/>
  28. <result property="flagLeaf" column="FLAG_LEAF"/>
  29. <result property="ownApp" column="OWN_APP" />
  30. </resultMap>
  31. <sql id="table_columns">
  32. ID,
  33. PRIV_ID,
  34. PARENT_ID,
  35. MENU_NAME,
  36. SORT_LEVEL,
  37. SEQUENCE,
  38. HREF,
  39. ICON,OWN_APP
  40. </sql>
  41. <sql id="entity_properties">
  42. #{id},
  43. #{privId},
  44. #{parentId},
  45. #{menuName},
  46. #{sortLevel},
  47. #{sequence},
  48. #{href},
  49. #{icon},#{ownApp}
  50. </sql>
  51. <!-- 使用like用法:columnName like concat('%',#columnName#,'%') -->
  52. <sql id="page_where">
  53. <trim prefix="where" prefixOverrides="and | or ">
  54. <if test="privId != null and privId != ''">and PRIV_ID = #{privId}</if>
  55. <if test="parentId != null and parentId != ''">and PARENT_ID = #{parentId}</if>
  56. <if test="menuName != null and menuName != ''">and MENU_NAME LIKE concat(concat('%',#{menuName}),'%')</if>
  57. <if test="sortLevel != null">and SORT_LEVEL = #{sortLevel}</if>
  58. <if test="href != null and href != ''">and HREF = #{href}</if>
  59. <if test="icon != null and icon != ''">and ICON = #{icon}</if>
  60. <if test="ownApp != null and ownApp != ''">and OWN_APP like '%${ownApp}%'</if>
  61. </trim>
  62. </sql>
  63. <select id="get" resultMap="menuResultMap" parameterType="String" >
  64. select <include refid="table_columns" /> from GW_SYS_MENU where ID = #{id}
  65. </select>
  66. <select id="getBy" resultMap="menuResultMap">
  67. select <include refid="table_columns" /> from GW_SYS_MENU <include refid="page_where" />
  68. </select>
  69. <select id="findAll" resultMap="menuResultMap">
  70. select <include refid="table_columns" /> from GW_SYS_MENU
  71. </select>
  72. <select id="findList" resultMap="menuResultMap">
  73. select <include refid="table_columns" /> from GW_SYS_MENU <include refid="page_where" />
  74. </select>
  75. <select id="selectCount" resultType="int" >
  76. select count(ID) from GW_SYS_MENU <include refid="page_where" />
  77. </select>
  78. <insert id="insert" parameterType="cn.com.goldenwater.dcproj.model.Menu">
  79. insert into GW_SYS_MENU( <include refid="table_columns" /> )
  80. values ( <include refid="entity_properties" /> )
  81. </insert>
  82. <delete id="delete" parameterType="java.lang.String">
  83. delete from GW_SYS_MENU where ID = #{id}
  84. </delete>
  85. <delete id="deleteBy" parameterType="cn.com.goldenwater.dcproj.model.Menu">
  86. delete from GW_SYS_MENU <include refid="page_where" />
  87. </delete>
  88. <update id="deleteInFlag" parameterType="java.lang.String">
  89. update GW_SYS_MENU set flag_valid = 0 where>ID = #{id}
  90. </update>
  91. <update id="update" parameterType="cn.com.goldenwater.dcproj.model.Menu">
  92. update GW_SYS_MENU
  93. <trim prefix="set" suffixOverrides=",">
  94. <if test="privId != null and privId != ''">PRIV_ID = #{privId},</if>
  95. <if test="parentId != null and parentId != ''">PARENT_ID = #{parentId},</if>
  96. <if test="menuName != null and menuName != ''">MENU_NAME = #{menuName},</if>
  97. <if test="sortLevel != null">SORT_LEVEL = #{sortLevel},</if>
  98. <if test="sequence != null">SEQUENCE = #{sequence},</if>
  99. <if test="ownApp != null and ownApp != ''">OWN_APP = #{ownApp},</if>
  100. HREF = #{href},
  101. ICON = #{icon}
  102. </trim>
  103. <where>ID = #{id}</where>
  104. </update>
  105. <update id="clearMemuPriv" parameterType="String">
  106. UPDATE GW_SYS_MENU
  107. <set>
  108. PRIV_ID = null
  109. </set>
  110. <where>
  111. PRIV_ID = #{privId}
  112. </where>
  113. </update>
  114. <update id="updateMemuPriv" parameterType="java.util.List">
  115. <foreach collection="list" index="index" item="item" open="begin" close=";end;" separator=";" >
  116. UPDATE GW_SYS_MENU
  117. <set>
  118. PRIV_ID = #{item.privId}
  119. </set>
  120. <where>
  121. ID = #{item.id}
  122. </where>
  123. </foreach>
  124. </update>
  125. <update id="updateBy" parameterType="cn.com.goldenwater.dcproj.model.Menu">
  126. update GW_SYS_MENU
  127. <trim prefix="set" suffixOverrides=",">
  128. <if test="privId != null and privId != ''">PRIV_ID = #{privId},</if>
  129. <if test="parentId != null and parentId != ''">PARENT_ID = #{parentId},</if>
  130. <if test="menuName != null and menuName != ''">MENU_NAME = #{menuName},</if>
  131. <if test="sortLevel != null">SORT_LEVEL = #{sortLevel},</if>
  132. <if test="sequence != null">SEQUENCE = #{sequence},</if>
  133. <if test="href != null and href != ''">HREF = #{href},</if>
  134. <if test="icon != null and icon != ''">ICON = #{icon},</if>
  135. </trim>
  136. <include refid="page_where" />
  137. </update>
  138. <update id="updateByPrivId" parameterType="cn.com.goldenwater.dcproj.model.Menu">
  139. update GW_SYS_MENU
  140. <trim prefix="set" suffixOverrides=",">
  141. <if test="parentId != null and parentId != ''">PARENT_ID = #{parentId},</if>
  142. <if test="menuName != null and menuName != ''">MENU_NAME = #{menuName},</if>
  143. <if test="sortLevel != null">SORT_LEVEL = #{sortLevel},</if>
  144. <if test="sequence != null">SEQUENCE = #{sequence},</if>
  145. <if test="href != null and href != ''">HREF = #{href},</if>
  146. <if test="icon != null and icon != ''">ICON = #{icon},</if>
  147. <if test="ownApp != null and ownApp != ''"> OWN_APP = #{ownApp},</if>
  148. </trim>
  149. <where>
  150. PRIV_ID = #{privId}
  151. </where>
  152. </update>
  153. <!-- 根据userid查询菜单-->
  154. <select id="getMenuByUserId" resultMap="menuResultMap" parameterType="String">
  155. with recursive
  156. cte0 as (
  157. select t.id,t.priv_id, t.parent_id,t.menu_name,t.sort_level,t.sequence,t.href,t.own_app , t.icon ,t.parent_name,
  158. array[sequence]::INT[] as sort_path
  159. from t_temp t
  160. where coalesce(parent_id::text,'') = '0'
  161. union all select k.id, k.priv_id,k. parent_id, k.menu_name,k.sort_level, k.sequence,k.href,k.own_app , k.icon , k.parent_name,
  162. ct.sort_path || array[k.sequence]::INT[] as sort_path
  163. from t_temp k,
  164. cte0 ct
  165. where ct.id = k.parent_id
  166. ),
  167. t_temp as (select c.id , c.priv_id , c.parent_id , c.menu_name , c.sort_level , c.sequence , c.href , c.own_app , c.icon , e.menu_name as parent_name
  168. from
  169. gw_sys_menu c
  170. left join gw_sys_menu e on
  171. c.parent_id = e.id
  172. left join gw_sys_priv d on
  173. d.id = c.priv_id
  174. where
  175. c.id is not null <if test="name != null and name != ''"> and C.MENU_NAME like '%'||#{name}||'%'</if>
  176. <if test="ownApp !=null and ownApp !=''">
  177. AND C.own_app like '%${ownApp}%'
  178. </if>
  179. <if test="list != null and list.size()>0">
  180. AND D.OWNER_SYSTEM IN
  181. <foreach collection="list" index="index" item="item" open="(" separator="," close=")">
  182. #{item}
  183. </foreach>
  184. </if>)
  185. select * from cte0
  186. order by cte0.sort_path
  187. </select>
  188. <!-- 分页获取列表 -->
  189. <select id="findPage" resultMap="menuResultMap" parameterType="cn.com.goldenwater.dcproj.param.MenuParam">
  190. select
  191. <include refid="table_columns" />
  192. from GW_SYS_MENU
  193. <include refid="page_where" />
  194. order by
  195. <if test="orderBy != null and orderBy != ''"> #{orderBy},</if>id desc
  196. </select>
  197. <!-- 分页获取列表 -->
  198. <select id="findPageDto" resultMap="dtoMenuResultMap" parameterType="cn.com.goldenwater.dcproj.param.MenuParam">
  199. SELECT
  200. A.ID,A.PRIV_ID,B.PRIV_NAME,A.PARENT_ID,C.MENU_NAME PARENT_NAME,A.MENU_NAME,A.SORT_LEVEL,A.SEQUENCE,A.HREF,A.ICON,A.OWN_APP
  201. FROM GW_SYS_MENU A
  202. LEFT JOIN GW_SYS_PRIV B ON A.PRIV_ID=B.ID
  203. LEFT JOIN GW_SYS_MENU C ON A.PARENT_ID=C.ID
  204. WHERE 1 = 1
  205. <if test="id != null and id != ''">AND A.ID = #{id}</if>
  206. <if test="privId != null and privId != ''">AND A.PRIV_ID = #{privId}</if>
  207. <if test="parentId != null and parentId != ''">AND A.PARENT_ID = #{parentId}</if>
  208. <if test="menuName != null and menuName != ''">AND A.MENU_NAME LIKE '%'||#{menuName}||'%'</if>
  209. <if test="sortLevel != null and sortLevel != ''">AND A.SORT_LEVEL = #{sortLevel}</if>
  210. <if test="href != null and href != ''">AND A.HREF=#{href}</if>
  211. <if test="icon != null and icon != ''">AND A.ICON =#{icon}</if>
  212. <if test="ownApp !=null and ownApp !=''">
  213. AND A.own_app like '%${ownApp}%'
  214. </if>
  215. order by
  216. A.id desc
  217. </select>
  218. <!-- 分页获取列表 -->
  219. <select id="findMenuList" resultMap="dtoMenuResultMap" parameterType="cn.com.goldenwater.dcproj.param.MenuParam">
  220. SELECT
  221. A.ID,A.PRIV_ID,B.PRIV_NAME,A.PARENT_ID,C.MENU_NAME PARENT_NAME,A.MENU_NAME,A.SORT_LEVEL,A.SEQUENCE,A.HREF,A.ICON,A.OWN_APP
  222. <if test="privId != null and privId != ''">,CASE WHEN A.PRIV_ID =#{privId} then 1 else 0 END CHECKED </if>
  223. FROM GW_SYS_MENU A
  224. LEFT JOIN GW_SYS_PRIV B ON A.PRIV_ID=B.ID
  225. LEFT JOIN GW_SYS_MENU C ON A.PARENT_ID=C.ID
  226. where 1=1
  227. <if test="ownApp !=null and ownApp !=''">
  228. AND A.own_app like '%${ownApp}%'
  229. </if>
  230. order by
  231. A.id desc
  232. </select>
  233. <select id="getListByUserId" resultMap="dtoMenuResultMap" parameterType="string">
  234. select distinct D.ID,D.MENU_NAME,D.SORT_LEVEL,D.HREF,D.PARENT_ID,D.ICON,D.OWN_APP,D.SEQUENCE,D.PRIV_ID,
  235. E.PRIV_NAME,E.CODE,E.FLAG_LEAF,E.PRIV_NAME,E.CODE,E.FLAG_LEAF from GW_SYS_REL_USER_ROLE B LEFT JOIN GW_SYS_REL_ROLE_PRIV C ON B.ROLE_ID=C.ROLE_ID LEFT JOIN GW_SYS_PRIV E ON C.PRIV_ID=E.ID
  236. RIGHT JOIN GW_SYS_MENU D ON E.ID=D.PRIV_ID
  237. WHERE b.user_id=#{userId} AND E.PRIV_TYPE=#{privType}
  238. <if test="ownApp !=null and ownApp !=''">
  239. AND D.own_app like '%${ownApp}%'
  240. </if>
  241. ORDER BY D.SORT_LEVEL,D.SEQUENCE
  242. </select>
  243. </mapper>