ComMenuMapper.xml 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207
  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.dk.mdm.mapper.mst.ComMenuMapper">
  4. <!-- 通用设置 -->
  5. <!-- 通用查询列 -->
  6. <sql id="Base_Column_List">
  7. menu_uuid
  8. , cp_id, staff_id, app_code, display_no, op_update_time, op_update_user_id, op_app_code, op_timestamp, op_db_user
  9. </sql>
  10. <!-- 通用查询映射结果 -->
  11. <resultMap id="BaseResultMap" type="com.dk.mdm.model.response.mst.ComMenuResponse">
  12. <id column="menu_uuid" property="menuUuid" typeHandler="UuidTypeHandler"/>
  13. <result column="menu_name" property="menuName"/>
  14. <result column="object_code" property="objectCode"/>
  15. <result column="object_path" property="objectPath"/>
  16. <result column="object_icon" property="objectIcon"/>
  17. <result column="cp_id" property="cpId"/>
  18. <result column="staff_id" property="staffId" typeHandler="UuidTypeHandler"/>
  19. <result column="app_code" property="appCode"/>
  20. <result column="display_no" property="displayNo"/>
  21. <result column="op_update_time" property="opUpdateTime" typeHandler="TimestampTypeHandler"/>
  22. <result column="op_update_user_id" property="opUpdateUserId" typeHandler="UuidTypeHandler"/>
  23. <result column="op_app_code" property="opAppCode"/>
  24. <result column="op_timestamp" property="opTimestamp" typeHandler="TimestampTypeHandler"/>
  25. <result column="op_db_user" property="opDbUser"/>
  26. </resultMap>
  27. <!-- 通用条件列 -->
  28. <sql id="Condition">
  29. <where>
  30. <if test="cpId != null">
  31. AND cp_id = #{cpId}
  32. </if>
  33. <if test="staffId != null and staffId != ''">
  34. AND staff_id = #{staffId}
  35. </if>
  36. <if test="appCode != null and appCode != ''">
  37. AND app_code = #{appCode}
  38. </if>
  39. </where>
  40. </sql>
  41. <sql id="idsForeach">
  42. <!-- 根据主键menuUuid批量操作 -->
  43. WHERE menu_uuid in
  44. <foreach collection="ids" index="index" item="item" separator="," open="(" close=")">
  45. #{item}
  46. </foreach>
  47. </sql>
  48. <!-- 查询表t_mst_com_menu,(条件查询+分页)列表 -->
  49. <select id="selectByCond" resultMap="BaseResultMap">
  50. SELECT
  51. sys.f_get_name_i18n ( tam.menu_name_i18n, #{i18n} ) menu_name,
  52. tmcm.menu_uuid,
  53. tam.object_code,
  54. tam.object_path,
  55. CASE WHEN tam.object_icon IS NULL THEN NULL ELSE tam.object_icon || '.png' END AS object_icon
  56. FROM
  57. dkic_b.t_mst_com_menu tmcm
  58. INNER JOIN sys.t_app_menu tam ON tmcm.menu_uuid = tam.menu_uuid
  59. WHERE
  60. tmcm.staff_id = #{staffId} ::uuid
  61. AND tmcm.app_code = #{appCode}
  62. AND tmcm.cp_id = #{cpId}
  63. <if test="gradeCode != null and gradeCode != ''">
  64. AND (tam.grade_codes is null or #{gradeCode} = any(tam.grade_codes))
  65. </if>
  66. </select>
  67. <!--插入常用菜单-->
  68. <insert id="insertComMenu" >
  69. insert into dkic_b.t_mst_com_menu
  70. (
  71. menu_uuid,
  72. cp_id,
  73. staff_id,
  74. app_code,
  75. display_no
  76. )
  77. select menu_uuid,#{cpId},#{staffId},app_code,display_no
  78. from dkic_b.t_mst_com_menu
  79. where cp_id = 0
  80. </insert>
  81. <!-- 查询表t_mst_com_menu,(条件查询)个数 -->
  82. <select id="countByCond" resultType="Long">
  83. SELECT
  84. count(1)
  85. FROM dkic_b.t_mst_com_menu
  86. <include refid="Condition"/>
  87. </select>
  88. <!-- 根据主键查询表t_mst_com_menu的一行数据 -->
  89. <select id="selectById" resultMap="BaseResultMap">
  90. SELECT
  91. <include refid="Base_Column_List"/>
  92. FROM dkic_b.t_mst_com_menu
  93. WHERE menu_uuid = #{id}::uuid
  94. </select>
  95. <!-- 根据主键锁定表t_mst_com_menu的一行数据 -->
  96. <select id="selectByIdForUpdate" resultMap="BaseResultMap">
  97. SELECT
  98. <include refid="Base_Column_List"/>
  99. FROM t_mst_com_menu
  100. WHERE menu_uuid = #{menuUuid}
  101. for update
  102. </select>
  103. <!-- 根据主键锁定表t_mst_com_menu的多行数据 -->
  104. <select id="selectByIdsForUpdate" resultMap="BaseResultMap">
  105. SELECT
  106. <include refid="Base_Column_List"/>
  107. FROM dkic_b.t_mst_com_menu
  108. <include refid="idsForeach"/>
  109. for update
  110. </select>
  111. <!--删除常用功能-->
  112. <delete id="deleteMenuByStaff">
  113. delete from dkic_b.t_mst_com_menu where staff_id = #{staffId} ::uuid
  114. </delete>
  115. <!--删除常用功能-->
  116. <delete id="deleteMenuByCpId">
  117. delete from dkic_b.t_mst_com_menu where cp_id = #{cpId}
  118. </delete>
  119. <!--新建编辑常用功能-->
  120. <insert id="save">
  121. insert into dkic_b.t_mst_com_menu
  122. (
  123. <trim suffixOverrides=",">
  124. menu_uuid,
  125. cp_id,
  126. staff_id,
  127. app_code,
  128. display_no,
  129. </trim>
  130. )
  131. values
  132. <foreach collection="list" index="index" item="item" separator=",">
  133. (
  134. <trim suffixOverrides=",">
  135. #{item.menuUuid} ::uuid,
  136. #{item.cpId},
  137. #{item.staffId} ::uuid,
  138. #{item.appCode},
  139. #{item.displayNo},
  140. </trim>
  141. )
  142. </foreach>
  143. on conflict (menu_uuid,staff_id,app_code) do update set
  144. cp_id = excluded."cp_id",
  145. display_no = excluded."display_no";
  146. </insert>
  147. <!--新建编辑常用功能(建企业时使用)-->
  148. <insert id="saveByCompany">
  149. insert into dkic_b.t_mst_com_menu
  150. (
  151. <trim suffixOverrides=",">
  152. menu_uuid,
  153. cp_id,
  154. staff_id,
  155. app_code,
  156. display_no,
  157. </trim>
  158. )
  159. select tam.menu_uuid,
  160. #{cpId},
  161. #{staffId} ::uuid,
  162. #{appCode},
  163. ROW_NUMBER() OVER () AS row_num
  164. from sys.t_app_menu tam
  165. where tam.app_code = #{appCode}
  166. and tam.object_code = any(#{objectCodeList,typeHandler=StringListTypeHandler})
  167. </insert>
  168. <insert id="insertBatch">
  169. insert into dkic_b.t_mst_com_menu
  170. (
  171. <trim suffixOverrides=",">
  172. cp_id,
  173. staff_id,
  174. menu_uuid,
  175. app_code,
  176. display_no,
  177. </trim>
  178. )
  179. values
  180. <foreach collection="list" index="index" item="item" separator=",">
  181. (
  182. <trim suffixOverrides=",">
  183. #{item.cpId},
  184. #{item.staffId}::uuid,
  185. #{item.menuUuid} ::uuid,
  186. #{item.appCode},
  187. #{item.displayNo},
  188. </trim>
  189. )
  190. </foreach>
  191. </insert>
  192. </mapper>