You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

519 lines
18 KiB
XML

<?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.manage.dao.Power_MenuMapper">
<resultMap id="BaseResultMap" type="com.manage.entity.Power_Menu">
<id column="menu_id" jdbcType="INTEGER" property="menuId" />
<result column="menu_name" jdbcType="VARCHAR" property="menuName" />
<result column="menu_icon" jdbcType="VARCHAR" property="menuIcon" />
<result column="menu_url" jdbcType="VARCHAR" property="menuUrl" />
<result column="menu_desc" jdbcType="VARCHAR" property="menuDesc" />
<result column="method" jdbcType="VARCHAR" property="method" />
<result column="function_type" jdbcType="VARCHAR" property="functionType" />
<result column="method_type" jdbcType="VARCHAR" property="methodType" />
<result column="sys_id" jdbcType="INTEGER" property="sysId" />
<result column="sys_flag" jdbcType="VARCHAR" property="sysFlag" />
<result column="parent_id" jdbcType="INTEGER" property="parentId" />
<result column="sort" jdbcType="INTEGER" property="sort" />
<result column="effective" jdbcType="INTEGER" property="effective" />
<result column="create_date" jdbcType="CHAR" property="createDate" />
<result column="creater" jdbcType="VARCHAR" property="creater" />
<result column="update_date" jdbcType="CHAR" property="updateDate" />
<result column="updater" jdbcType="VARCHAR" property="updater" />
<result column="remark" jdbcType="VARCHAR" property="remark" />
</resultMap>
<resultMap id="ResultMap" type="com.manage.entity.Power_Menu">
<id column="menu_id" jdbcType="INTEGER" property="menuId" />
<result column="menu_name" jdbcType="VARCHAR" property="menuName" />
<result column="menu_icon" jdbcType="VARCHAR" property="menuIcon" />
<result column="menu_url" jdbcType="VARCHAR" property="menuUrl" />
<result column="menu_desc" jdbcType="VARCHAR" property="menuDesc" />
<result column="method" jdbcType="VARCHAR" property="method" />
<result column="method_type" jdbcType="VARCHAR" property="methodType" />
<result column="sys_id" jdbcType="INTEGER" property="sysId" />
<result column="sys_flag" jdbcType="VARCHAR" property="sysFlag" />
<result column="parent_id" jdbcType="INTEGER" property="parentId" />
<result column="sort" jdbcType="INTEGER" property="sort" />
<result column="effective" jdbcType="INTEGER" property="effective" />
<result column="create_date" jdbcType="CHAR" property="createDate" />
<result column="creater" jdbcType="VARCHAR" property="creater" />
<result column="update_date" jdbcType="CHAR" property="updateDate" />
<result column="updater" jdbcType="VARCHAR" property="updater" />
<result column="remark" jdbcType="VARCHAR" property="remark" />
<result column="flag" jdbcType="INTEGER" property="flag" />
</resultMap>
<sql id="Base_Column_List">
menu_id, menu_name, menu_icon, menu_url, menu_desc, method, function_type,method_type, sys_id, sys_flag,
parent_id, sort,effective,create_date, creater, update_date, updater, remark
</sql>
<select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="BaseResultMap">
select
<include refid="Base_Column_List" />
from power_menu
where menu_id = #{menuId,jdbcType=INTEGER}
</select>
<delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">
delete from power_menu
where menu_id = #{menuId,jdbcType=INTEGER}
</delete>
<insert id="insert" parameterType="com.manage.entity.Power_Menu">
insert into power_menu (menu_id, menu_name, menu_icon,
menu_url, menu_desc, method, function_type,
method_type, sys_id, sys_flag,parent_id,
sort,effective,create_date, creater,
update_date, updater, remark
)
values (#{menuId,jdbcType=INTEGER}, #{menuName,jdbcType=VARCHAR}, #{menuIcon,jdbcType=VARCHAR},
#{menuUrl,jdbcType=VARCHAR}, #{menuDesc,jdbcType=VARCHAR}, #{method,jdbcType=VARCHAR},#{functionType,jdbcType=VARCHAR},
#{methodType,jdbcType=VARCHAR}, #{sysId,jdbcType=INTEGER},#{sysFlag,jdbcType=VARCHAR}, #{parentId,jdbcType=INTEGER},
#{sort,jdbcType=INTEGER},#{effective,jdbcType=INTEGER}, #{createDate,jdbcType=CHAR}, #{creater,jdbcType=VARCHAR},
#{updateDate,jdbcType=CHAR}, #{updater,jdbcType=VARCHAR}, #{remark,jdbcType=VARCHAR}
)
</insert>
<insert id="insertSelective" parameterType="com.manage.entity.Power_Menu">
insert into power_menu
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="menuId != null">
menu_id,
</if>
<if test="menuName != null">
menu_name,
</if>
<if test="menuIcon != null">
menu_icon,
</if>
<if test="menuUrl != null">
menu_url,
</if>
<if test="menuDesc != null">
menu_desc,
</if>
<if test="method != null">
method,
</if>
<if test="functionType != null">
function_type,
</if>
<if test="methodType != null">
method_type,
</if>
<if test="sysId != null">
sys_id,
</if>
<if test="sysFlag != null">
sys_flag,
</if>
<if test="parentId != null">
parent_id,
</if>
<if test="sort != null">
sort,
</if>
<if test="effective != null">
effective,
</if>
<if test="createDate != null">
create_date,
</if>
<if test="creater != null">
creater,
</if>
<if test="updateDate != null">
update_date,
</if>
<if test="updater != null">
updater,
</if>
<if test="remark != null">
remark,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="menuId != null">
#{menuId,jdbcType=INTEGER},
</if>
<if test="menuName != null">
#{menuName,jdbcType=VARCHAR},
</if>
<if test="menuIcon != null">
#{menuIcon,jdbcType=VARCHAR},
</if>
<if test="menuUrl != null">
#{menuUrl,jdbcType=VARCHAR},
</if>
<if test="menuDesc != null">
#{menuDesc,jdbcType=VARCHAR},
</if>
<if test="method != null">
#{method,jdbcType=VARCHAR},
</if>
<if test="functionType != null">
#{functionType,jdbcType=VARCHAR},
</if>
<if test="methodType != null">
#{methodType,jdbcType=VARCHAR},
</if>
<if test="sysId != null">
#{sysId,jdbcType=INTEGER},
</if>
<if test="sysFlag != null">
#{sysFlag,jdbcType=VARCHAR},
</if>
<if test="parentId != null">
#{parentId,jdbcType=INTEGER},
</if>
<if test="sort != null">
#{sort,jdbcType=INTEGER},
</if>
<if test="effective != null">
#{effective,jdbcType=INTEGER},
</if>
<if test="createDate != null">
#{createDate,jdbcType=CHAR},
</if>
<if test="creater != null">
#{creater,jdbcType=VARCHAR},
</if>
<if test="updateDate != null">
#{updateDate,jdbcType=CHAR},
</if>
<if test="updater != null">
#{updater,jdbcType=VARCHAR},
</if>
<if test="remark != null">
#{remark,jdbcType=VARCHAR},
</if>
</trim>
</insert>
<update id="updateByPrimaryKeySelective" parameterType="com.manage.entity.Power_Menu">
update power_menu
<set>
<if test="menuName != null">
menu_name = #{menuName,jdbcType=VARCHAR},
</if>
<if test="menuIcon != null">
menu_icon = #{menuIcon,jdbcType=VARCHAR},
</if>
<if test="menuUrl != null">
menu_url = #{menuUrl,jdbcType=VARCHAR},
</if>
<if test="menuDesc != null">
menu_desc = #{menuDesc,jdbcType=VARCHAR},
</if>
<if test="method != null">
method = #{method,jdbcType=VARCHAR},
</if>
<if test="methodType != null">
method_type = #{methodType,jdbcType=VARCHAR},
</if>
<if test="functionType != null">
function_type = #{functionType,jdbcType=VARCHAR},
</if>
<if test="sysId != null">
sys_id = #{sysId,jdbcType=INTEGER},
</if>
<if test="sysFlag != null">
sys_flag = #{sysFlag,jdbcType=VARCHAR},
</if>
<if test="parentId != null">
parent_id = #{parentId,jdbcType=INTEGER},
</if>
<if test="sort != null">
sort = #{sort,jdbcType=INTEGER},
</if>
<if test="effective != null">
effective = #{effective,jdbcType=INTEGER},
</if>
<if test="createDate != null">
create_date = #{createDate,jdbcType=CHAR},
</if>
<if test="creater != null">
creater = #{creater,jdbcType=VARCHAR},
</if>
<if test="updateDate != null">
update_date = #{updateDate,jdbcType=CHAR},
</if>
<if test="updater != null">
updater = #{updater,jdbcType=VARCHAR},
</if>
<if test="remark != null">
remark = #{remark,jdbcType=VARCHAR},
</if>
</set>
where menu_id = #{menuId,jdbcType=INTEGER}
</update>
<update id="updateByPrimaryKey" parameterType="com.manage.entity.Power_Menu">
update power_menu
set menu_name = #{menuName,jdbcType=VARCHAR},
menu_icon = #{menuIcon,jdbcType=VARCHAR},
menu_url = #{menuUrl,jdbcType=VARCHAR},
menu_desc = #{menuDesc,jdbcType=VARCHAR},
method = #{method,jdbcType=VARCHAR},
function_type = #{functionType,jdbcType=VARCHAR},
method_type = #{methodType,jdbcType=VARCHAR},
sys_id = #{sysId,jdbcType=INTEGER},
sys_flag = #{sysFlag,jdbcType=VARCHAR},
parent_id = #{parentId,jdbcType=INTEGER},
sort = #{sort,jdbcType=INTEGER},
effective = #{effective,jdbcType=INTEGER},
create_date = #{createDate,jdbcType=CHAR},
creater = #{creater,jdbcType=VARCHAR},
update_date = #{updateDate,jdbcType=CHAR},
updater = #{updater,jdbcType=VARCHAR},
remark = #{remark,jdbcType=VARCHAR}
where menu_id = #{menuId,jdbcType=INTEGER}
</update>
<select id="queryAllPowerMenu" resultMap="BaseResultMap">
select DISTINCT sys_id,menu_id,menu_name,menu_icon,method,menu_url,parent_id,sort,sys_flag
from power_menu
where effective=1 and parent_id != 0
<if test="roleId != null and roleId != 0">
AND menu_name != '菜单管理'
AND menu_name != '归属管理'
AND menu_name != '自定义模板'
</if>
<if test="sysFlag != '' and sysFlag != null">
and sys_flag=#{sysFlag}
</if>
order by sort
</select>
<!--<select id="queryMenuViewByUserId" parameterType="java.lang.Integer"
resultType="com.manage.entity.Power_Detailed_Menu">
select null as dict_id,null as hospital_name,m.sys_id,null as sys_flag,null as sys_name,null as sysParent,cc.menu_id, m.menu_name,m.menu_icon,m.menu_url,m.method,m.parent_id,m.sort as menu_sort from(
select u.user_id,u2.role_id,u.menu_id,u.flag
from power_user_menu u
left join power_user u2
on u2.user_id=u.user_id
where u2.role_id!=0 and u2.role_id!=-100
union
select u2.user_id ,r.role_id,r.menu_id,0 as flag from power_role_menu r
left join power_user u2
on u2.role_id=r.role_id
where u2.role_id!=0 and u2.role_id!=-100
) cc
left join power_menu m
on m.menu_id=cc.menu_id
where m.effective=1 and cc.user_id=#{userId,jdbcType=INTEGER}
union
select d.dict_id,d.hospital_name,null as sys_id,d.sys_flag,d.sys_name,d.parent_id as sysParent,null as menu_id,null as menu_name,null as menu_icon,null as menu_url,null as method,null as parent_id,null as menu_sort
from power_sys_dict d
where d.dict_status=1
and d.dict_id=(select dict_id from power_dept where dept_id =(select substring_index(dept_id,',', 1) from power_user where effective=1 and user_id=#{userId,jdbcType=INTEGER}))
or (d.parent_id=(select dict_id from power_dept where dept_id =(select substring_index(dept_id,',', 1) from power_user where effective=1 and user_id=#{userId,jdbcType=INTEGER}))
and d.sys_flag='power')
</select>-->
<select id="queryPoswerMenuByUserId" parameterType="java.lang.Integer" resultType="com.manage.entity.Power_Menu_User">
SELECT
distinct
sys_id dict_id,
hospital_name,
sys_flag,
sys_name,
hospital_id AS sys_parent,
menu_id,
menu_name,
menu_icon,
menu_url,
method,
sort menu_sort,
method_parent parent_id
FROM
user_dept_menu
WHERE
user_id = #{userId,jdbcType=INTEGER}
AND menu_name != '菜单管理'
AND menu_name != '归属管理'
AND menu_name != '自定义模板'
AND method_parent != 0
<if test="sysFlag != '' and sysFlag != null">
and sys_flag=#{sysFlag}
</if>
order by sys_id,menu_id,sort
</select>
<!--/* select * from(
select d.dict_id,d.hospital_name,d.sys_flag,d.sys_name,d.parent_id as sys_parent ,null as menu_id,null as menu_name,null as menu_icon,null as menu_url,null as method,null as sys_id,null as parent_id,null as menu_sort
from power_sys_dict d
where d.dict_status=1
union
select d.dict_id,d.hospital_name,d.sys_flag,d.sys_name,d.parent_id as sys_parent,m.menu_id,m.menu_name,m.menu_icon,m.menu_url,m.method,m.sys_id,m.parent_id,m.sort as menu_sort
from power_sys_dict d
left join power_menu m
on m.sys_id=d.dict_id
where d.dict_status=1
) cc
where dict_id=(select dict_id from power_dept where dept_id =(select substring_index(dept_id,',', 1) from power_user where effective=1 and user_id=#{userId,jdbcType=INTEGER}))
or (sys_parent=(select dict_id from power_dept where dept_id =(select substring_index(dept_id,',', 1) from power_user where effective=1 and user_id=#{userId,jdbcType=INTEGER}))
and sys_flag='power')
*/ -->
<!--2019-04-29zengwh-->
<!--查询全部-->
<select id="selectAll" resultMap="BaseResultMap" parameterType="string">
SELECT
*,
menu_name newName
FROM power_menu
<where>
<if test="sysFlag != null and sysFlag != ''">
sys_flag = #{sysFlag}
</if>
<if test="isEffective == 1">
AND effective = 1
</if>
<if test="roleId != null and roleId != 0">
AND menu_name != '菜单管理'
AND menu_name != '归属管理'
AND menu_name != '自定义模板'
</if>
</where>
ORDER BY parent_id,sort
</select>
<!--2019-04-29zengwh-->
<!--根据菜单id查询功能方法集合-->
<select id="selectMethodByMenuIdPowerTree" resultMap="BaseResultMap" parameterType="java.lang.Integer">
SELECT
*
FROM
power_menu
WHERE
parent_id = ${parentId}
AND effective = 1
AND method IS NOT NULL
ORDER BY
sort
</select>
<!--2019-06-28 ljx-->
<!--根据系统id和角色id查出角色菜单-->
<select id="selectRoleMenuByUserIdAndDictId" resultMap="BaseResultMap" parameterType="java.lang.Integer">
SELECT
a.*
FROM
power_menu a,
power_role_menu b
WHERE
a.sys_id = ${dictId}
AND b.role_id in (SELECT role_id FROM power_user WHERE user_id = ${userId} and effective = 1)
AND a.menu_id = b.menu_id
</select>
<!--2019-06-28 ljx-->
<!--根据系统id和角色id查出用户菜单-->
<select id="selectUserMenuByUserIdAndDictId" resultMap="ResultMap" parameterType="java.lang.Integer">
SELECT
a.*,b.flag
FROM
power_menu a,
power_user_menu b
WHERE
a.sys_id = ${dictId}
AND b.user_id = ${userId}
AND a.menu_id = b.menu_id
</select>
<!--验证同一系统菜单名不能重复-->
<select id="checkMenuNameBySysId" resultMap="ResultMap" parameterType="java.lang.String">
SELECT
menu_id
FROM
power_menu
WHERE
sys_flag = #{sysFlag}
AND menu_name = #{menuName}
</select>
<!--验证同一菜单功能名或功能方法不能重复-->
<select id="checkMethodByParentId" resultMap="ResultMap" parameterType="java.lang.Integer">
SELECT
menu_id,sys_id,sys_flag
FROM
power_menu
WHERE
parent_id = ${parentId}
<if test="menuName != null and menuName != ''">
AND menu_name = #{menuName}
</if>
<if test="method != null and method != ''">
AND method = #{method}
</if>
</select>
<!--根据系统id和用户id查出对应该系统在用户菜单表和角色菜单表的综合表-->
<select id="selectUserAndRoleMenuListPower" parameterType="string" resultMap="BaseResultMap">
SELECT DISTINCT power_menu.menu_id, menu_name, menu_icon, menu_url, menu_desc, method, function_type,method_type, sys_id,
sys_flag,
parent_id, sort,effective,create_date, creater, update_date, updater, remark FROM power_menu
INNER JOIN (
SELECT
m.menu_id
FROM
power_menu m
WHERE
m.menu_id IN (
SELECT
r.menu_id
FROM
power_role_menu r
WHERE
r.role_id = (
SELECT
u.role_id
FROM
power_user u
WHERE
u.user_id = #{userId}
)
AND r.menu_id NOT IN (
SELECT
m.menu_id
FROM
power_menu m
WHERE
m.menu_id IN (
SELECT
pu.menu_id
FROM
power_user_menu pu
WHERE
pu.user_id = #{userId}
AND pu.flag = 0
)
<if test="sysFlag != null and sysFlag != ''">AND m.sys_flag = #{sysFlag}
</if>
)
)
<if test="sysFlag != null and sysFlag != ''">
AND m.sys_flag = #{sysFlag}
</if>
UNION ALL
SELECT
m.menu_id
FROM
power_menu
m
WHERE
m.menu_id IN (
SELECT
pu.menu_id menuId1
FROM
power_user_menu pu
WHERE
pu.user_id = #{userId}
AND pu.flag = 1
)
<if test="sysFlag != null and sysFlag != ''">
AND m.sys_flag = #{sysFlag}
</if>) a
on a.menu_id = power_menu.menu_id AND power_menu.effective=1 and power_menu.parent_id != 0
order by power_menu.sort
</select>
<update id="updateChildSysFlagAndSysId">
update power_menu set sys_id = #{sysId},sys_flag = #{sysFlag} where parent_id = #{menuId}
</update>
</mapper>