修改 前端菜单 管理菜单,角色前后端分配 及通道创建失败的问题

This commit is contained in:
LEED
2025-07-07 22:26:26 +08:00
parent b2cee8aeb7
commit ac40c5e5ec
29 changed files with 899 additions and 81 deletions

View File

@@ -18,6 +18,7 @@ public interface SysMenuMapper
* @return 菜单列表
*/
public List<SysMenu> selectMenuList(SysMenu menu);
public List<SysMenu> selectMenuListF(SysMenu menu);
/**
* 根据用户所有权限
@@ -33,7 +34,7 @@ public interface SysMenuMapper
* @return 菜单列表
*/
public List<SysMenu> selectMenuListByUserId(SysMenu menu);
public List<SysMenu> selectMenuListByUserIdF(SysMenu menu);
/**
* 根据角色ID查询权限
*
@@ -56,14 +57,15 @@ public interface SysMenuMapper
* @return 菜单列表
*/
public List<SysMenu> selectMenuTreeAll(@Param("language") String language);
public List<SysMenu> selectMenuTreeAllF(@Param("language") String language);
/**
* 根据用户ID查询菜单
*
* @param userId 用户ID
* @return 菜单列表
*/
public List<SysMenu> selectMenuTreeByUserId(@Param("userId") Long userId, @Param("language") String language);
public List<SysMenu> selectMenuTreeByUserId(@Param("userId") Long userId,@Param("language") String language);
public List<SysMenu> selectMenuTreeByUserIdF(@Param("userId") Long userId,@Param("language") String language);
/**
* 根据角色ID查询菜单树信息
@@ -73,7 +75,7 @@ public interface SysMenuMapper
* @return 选中菜单列表
*/
public List<Long> selectMenuListByRoleId(@Param("roleId") Long roleId, @Param("menuCheckStrictly") boolean menuCheckStrictly);
public List<Long> selectMenuListByRoleIdF(@Param("roleId") Long roleId, @Param("menuCheckStrictly") boolean menuCheckStrictly);
/**
* 根据菜单ID查询信息
*
@@ -81,7 +83,7 @@ public interface SysMenuMapper
* @return 菜单信息
*/
public SysMenu selectMenuById(@Param("menuId") Long menuId, @Param("language") String language);
public SysMenu selectMenuByIdF(@Param("menuId") Long menuId, @Param("language") String language);
/**
* 是否存在菜单子节点
*
@@ -89,7 +91,7 @@ public interface SysMenuMapper
* @return 结果
*/
public int hasChildByMenuId(Long menuId);
public int hasChildByMenuIdF(Long menuId);
/**
* 新增菜单信息
*
@@ -97,7 +99,7 @@ public interface SysMenuMapper
* @return 结果
*/
public int insertMenu(SysMenu menu);
public int insertMenuF(SysMenu menu);
/**
* 修改菜单信息
*
@@ -105,7 +107,7 @@ public interface SysMenuMapper
* @return 结果
*/
public int updateMenu(SysMenu menu);
public int updateMenuF(SysMenu menu);
/**
* 删除菜单管理信息
*
@@ -113,7 +115,7 @@ public interface SysMenuMapper
* @return 结果
*/
public int deleteMenuById(Long menuId);
public int deleteMenuByIdF(Long menuId);
/**
* 校验菜单名称是否唯一
*
@@ -122,4 +124,5 @@ public interface SysMenuMapper
* @return 结果
*/
public SysMenu checkMenuNameUnique(@Param("menuName") String menuName, @Param("parentId") Long parentId);
public SysMenu checkMenuNameUniqueF(@Param("menuName") String menuName, @Param("parentId") Long parentId);
}

View File

@@ -27,6 +27,9 @@ public interface SysRoleMapper
*/
public List<SysRole> selectRolePermissionByUserId(Long userId);
public List<SysRole> selectRoleByUserIdAndIm(Long userId);
public List<SysRole> selectRoleByUserIdAndIb(Long userId);
/**
* 查询所有角色
*

View File

@@ -17,7 +17,7 @@ public interface SysRoleMenuMapper
* @return 结果
*/
public int checkMenuExistRole(Long menuId);
public int checkMenuExistRoleF(Long menuId);
/**
* 通过角色ID删除角色和菜单关联
*
@@ -25,7 +25,7 @@ public interface SysRoleMenuMapper
* @return 结果
*/
public int deleteRoleMenuByRoleId(Long roleId);
public int deleteRoleMenuByRoleIdF(Long roleId);
/**
* 批量删除角色菜单关联信息
*
@@ -33,7 +33,7 @@ public interface SysRoleMenuMapper
* @return 结果
*/
public int deleteRoleMenu(Long[] ids);
public int deleteRoleMenuF(Long[] ids);
/**
* 批量新增角色菜单信息
*
@@ -41,11 +41,12 @@ public interface SysRoleMenuMapper
* @return 结果
*/
public int batchRoleMenu(List<SysRoleMenu> roleMenuList);
public int batchRoleMenuF(List<SysRoleMenu> roleMenuList);
/**
* 查询角色权限
* @param roleId 角色id
* @return java.util.List<com.xinda.system.domain.SysRoleMenu>
*/
List<SysRoleMenu> selectRoleMenuList(Long roleId);
List<SysRoleMenu> selectRoleMenuListF(Long roleId);
}

View File

@@ -20,7 +20,7 @@ public interface ISysMenuService
* @return 菜单列表
*/
public List<SysMenu> selectMenuList(Long userId);
public List<SysMenu> selectMenuListF(Long userId);
/**
* 根据用户查询系统菜单列表
*
@@ -29,6 +29,7 @@ public interface ISysMenuService
* @return 菜单列表
*/
public List<SysMenu> selectMenuList(SysMenu menu, Long userId);
public List<SysMenu> selectMenuListF(SysMenu menu, Long userId);
/**
* 根据用户ID查询权限
@@ -54,7 +55,7 @@ public interface ISysMenuService
* @return 菜单列表
*/
public List<SysMenu> selectMenuTreeByUserId(Long userId, String language);
public List<SysMenu> selectMenuTreeByUserIdF(Long userId, String language);
/**
* 根据角色ID查询菜单树信息
*
@@ -62,7 +63,7 @@ public interface ISysMenuService
* @return 选中菜单列表
*/
public List<Long> selectMenuListByRoleId(Long roleId);
public List<Long> selectMenuListByRoleIdF(Long roleId);
/**
* 构建前端路由所需要的菜单
*
@@ -94,6 +95,7 @@ public interface ISysMenuService
* @return 菜单信息
*/
public SysMenu selectMenuById(Long menuId);
public SysMenu selectMenuByIdF(Long menuId);
/**
* 是否存在菜单子节点
@@ -102,7 +104,7 @@ public interface ISysMenuService
* @return 结果 true 存在 false 不存在
*/
public boolean hasChildByMenuId(Long menuId);
public boolean hasChildByMenuIdF(Long menuId);
/**
* 查询菜单是否存在角色
*
@@ -110,7 +112,7 @@ public interface ISysMenuService
* @return 结果 true 存在 false 不存在
*/
public boolean checkMenuExistRole(Long menuId);
public boolean checkMenuExistRoleF(Long menuId);
/**
* 新增保存菜单信息
*
@@ -118,7 +120,7 @@ public interface ISysMenuService
* @return 结果
*/
public int insertMenu(SysMenu menu);
public int insertMenuF(SysMenu menu);
/**
* 修改保存菜单信息
*
@@ -126,7 +128,7 @@ public interface ISysMenuService
* @return 结果
*/
public int updateMenu(SysMenu menu);
public int updateMenuF(SysMenu menu);
/**
* 删除菜单管理信息
*
@@ -134,7 +136,7 @@ public interface ISysMenuService
* @return 结果
*/
public int deleteMenuById(Long menuId);
public int deleteMenuByIdF(Long menuId);
/**
* 校验菜单名称是否唯一
*
@@ -142,8 +144,9 @@ public interface ISysMenuService
* @return 结果
*/
public String checkMenuNameUnique(SysMenu menu);
public String checkMenuNameUniqueF(SysMenu menu);
List<SysMenu> deptMenuTreeselect(Long deptId);
List<SysMenu> deptMenuTreeselectF(Long deptId);
List<SysMenu> deptRoleMenuTreeselect(Long deptId, Long roleId);
List<SysMenu> deptRoleMenuTreeselectF(Long deptId, Long roleId);
}

View File

@@ -170,5 +170,6 @@ public interface ISysRoleService
* @return 结果
*/
public int insertAuthUsers(Long roleId, Long[] userIds);
public List<SysRole> selectRoleByUserIdAndIm(Long userId);
public List<SysRole> selectRoleByUserIdAndIb(Long userId);
}

View File

@@ -66,6 +66,12 @@ public class SysMenuServiceImpl implements ISysMenuService
return selectMenuList(new SysMenu(), userId);
}
@Override
public List<SysMenu> selectMenuListF(Long userId)
{
return selectMenuListF(new SysMenu(), userId);
}
/**
* 查询系统菜单列表
*
@@ -73,7 +79,7 @@ public class SysMenuServiceImpl implements ISysMenuService
* @return 菜单列表
*/
@Override
public List<SysMenu> selectMenuList(SysMenu menu, Long userId)
public List<SysMenu> selectMenuList(SysMenu menu,Long userId)
{
menu.setLanguage(SecurityUtils.getLanguage());
List<SysMenu> menuList = null;
@@ -89,6 +95,23 @@ public class SysMenuServiceImpl implements ISysMenuService
}
return menuList;
}
@Override
public List<SysMenu> selectMenuListF(SysMenu menu,Long userId)
{
menu.setLanguage(SecurityUtils.getLanguage());
List<SysMenu> menuList = null;
// 管理员显示所有菜单信息
if (SysUser.isAdmin(userId))
{
menuList = menuMapper.selectMenuListF(menu);
}
else
{
menu.getParams().put("userId", userId);
menuList = menuMapper.selectMenuListByUserIdF(menu);
}
return menuList;
}
/**
* 根据用户ID查询权限
@@ -154,6 +177,21 @@ public class SysMenuServiceImpl implements ISysMenuService
return getChildPerms(menus, 0);
}
@Override
public List<SysMenu> selectMenuTreeByUserIdF(Long userId, String language)
{
List<SysMenu> menus = null;
if (SecurityUtils.isAdmin(userId))
{
menus = menuMapper.selectMenuTreeAllF(language);
}
else
{
menus = menuMapper.selectMenuTreeByUserIdF(userId, language);
}
return getChildPerms(menus, 0);
}
/**
* 根据角色ID查询菜单树信息
*
@@ -167,6 +205,13 @@ public class SysMenuServiceImpl implements ISysMenuService
return menuMapper.selectMenuListByRoleId(roleId, role.isMenuCheckStrictly());
}
@Override
public List<Long> selectMenuListByRoleIdF(Long roleId)
{
SysRole role = roleMapper.selectRoleById(roleId);
return menuMapper.selectMenuListByRoleIdF(roleId, role.isMenuCheckStrictly());
}
/**
* 构建前端路由所需要的菜单
*
@@ -278,6 +323,12 @@ public class SysMenuServiceImpl implements ISysMenuService
return menuMapper.selectMenuById(menuId, SecurityUtils.getLanguage());
}
@Override
public SysMenu selectMenuByIdF(Long menuId)
{
return menuMapper.selectMenuByIdF(menuId, SecurityUtils.getLanguage());
}
/**
* 是否存在菜单子节点
*
@@ -290,7 +341,12 @@ public class SysMenuServiceImpl implements ISysMenuService
int result = menuMapper.hasChildByMenuId(menuId);
return result > 0;
}
@Override
public boolean hasChildByMenuIdF(Long menuId)
{
int result = menuMapper.hasChildByMenuIdF(menuId);
return result > 0;
}
/**
* 查询菜单使用数量
*
@@ -303,7 +359,12 @@ public class SysMenuServiceImpl implements ISysMenuService
int result = roleMenuMapper.checkMenuExistRole(menuId);
return result > 0;
}
@Override
public boolean checkMenuExistRoleF(Long menuId)
{
int result = roleMenuMapper.checkMenuExistRoleF(menuId);
return result > 0;
}
/**
* 新增保存菜单信息
*
@@ -315,6 +376,11 @@ public class SysMenuServiceImpl implements ISysMenuService
{
return menuMapper.insertMenu(menu);
}
@Override
public int insertMenuF(SysMenu menu)
{
return menuMapper.insertMenuF(menu);
}
/**
* 修改保存菜单信息
@@ -327,7 +393,11 @@ public class SysMenuServiceImpl implements ISysMenuService
{
return menuMapper.updateMenu(menu);
}
@Override
public int updateMenuF(SysMenu menu)
{
return menuMapper.updateMenuF(menu);
}
/**
* 删除菜单管理信息
*
@@ -339,7 +409,11 @@ public class SysMenuServiceImpl implements ISysMenuService
{
return menuMapper.deleteMenuById(menuId);
}
@Override
public int deleteMenuByIdF(Long menuId)
{
return menuMapper.deleteMenuByIdF(menuId);
}
/**
* 校验菜单名称是否唯一
*
@@ -359,6 +433,19 @@ public class SysMenuServiceImpl implements ISysMenuService
return UserConstants.UNIQUE;
}
@Override
public String checkMenuNameUniqueF(SysMenu menu)
{
Long menuId = StringUtils.isNull(menu.getMenuId()) ? -1L : menu.getMenuId();
// 仅匹配菜单表存储的菜单名称,不匹配菜单翻译表存储的对应语言名称
SysMenu info = menuMapper.checkMenuNameUniqueF(menu.getMenuName(), menu.getParentId());
if (StringUtils.isNotNull(info) && info.getMenuId().longValue() != menuId.longValue())
{
return UserConstants.NOT_UNIQUE;
}
return UserConstants.UNIQUE;
}
@Override
public List<SysMenu> deptMenuTreeselect(Long deptId) {
SysDept sysDept = sysDeptMapper.selectDeptById(deptId);
@@ -368,6 +455,15 @@ public class SysMenuServiceImpl implements ISysMenuService
return this.selectMenuList(sysDept.getDeptUserId());
}
@Override
public List<SysMenu> deptMenuTreeselectF(Long deptId) {
SysDept sysDept = sysDeptMapper.selectDeptById(deptId);
if (ObjectUtil.isNull(sysDept) && null == sysDept.getDeptUserId()) {
return new ArrayList<>();
}
return this.selectMenuListF(sysDept.getDeptUserId());
}
@Override
public List<SysMenu> deptRoleMenuTreeselect(Long deptId, Long roleId) {
LoginUser loginUser = getLoginUser();
@@ -389,6 +485,27 @@ public class SysMenuServiceImpl implements ISysMenuService
return this.selectMenuList(new SysMenu(), sysDept.getDeptUserId());
}
@Override
public List<SysMenu> deptRoleMenuTreeselectF(Long deptId, Long roleId) {
LoginUser loginUser = getLoginUser();
Long userDeptId = loginUser.getDeptId();
Long deptUserId = loginUser.getUser().getDept().getDeptUserId();
SysRole sysRole = roleMapper.selectRoleById(roleId);
// List<SysUserRole> sysUserRoleList = sysUserRoleMapper.selectRoleByUserId(sysDept.getDeptUserId());
// SysUserRole sysUserRole = sysUserRoleList.stream().filter(s -> roleId.equals(s.getRoleId())).findAny().orElse(null);
// if (ObjectUtil.isNotNull(sysUserRole)) {
// return menuMapper.selectMenuList(new SysMenu());
// }
if (!deptId.equals(userDeptId) && "manager".equals(sysRole.getRoleKey())) {
return this.selectMenuListF(deptUserId);
}
SysDept sysDept = sysDeptMapper.selectDeptById(deptId);
if (ObjectUtil.isNull(sysDept) && null == sysDept.getDeptUserId()) {
return new ArrayList<>();
}
return this.selectMenuListF(new SysMenu(), sysDept.getDeptUserId());
}
/**
* 获取路由名称
*
@@ -515,6 +632,7 @@ public class SysMenuServiceImpl implements ISysMenuService
return returnList;
}
/**
* 递归列表
*

View File

@@ -206,7 +206,7 @@ public class SysRoleServiceImpl implements ISysRoleService
* @param roleId 角色ID
* @return 角色对象信息
*/
@Cacheable(value = "role", key = "#root.methodName + '_' + #roleId", unless = "#result == null")
// @Cacheable(value = "role", key = "#root.methodName + '_' + #roleId", unless = "#result == null")
@Override
public SysRole selectRoleById(Long roleId)
{
@@ -347,6 +347,7 @@ public class SysRoleServiceImpl implements ISysRoleService
roleMapper.updateRole(role);
// 删除角色与菜单关联
roleMenuMapper.deleteRoleMenuByRoleId(role.getRoleId());
roleMenuMapper.deleteRoleMenuByRoleIdF(role.getRoleId());
return insertRoleMenu(role);
}
@@ -390,6 +391,21 @@ public class SysRoleServiceImpl implements ISysRoleService
*/
public int insertRoleMenu(SysRole role)
{
int rowsF = 1;
// 新增用户与角色管理
List<SysRoleMenu> listF = new ArrayList<SysRoleMenu>();
if (role.getMenuFIds() != null && role.getMenuFIds().length > 0){
for (Long menuId : role.getMenuFIds())
{
SysRoleMenu rmf = new SysRoleMenu();
rmf.setRoleId(role.getRoleId());
rmf.setMenuId(menuId);
listF.add(rmf);
}
roleMenuMapper.batchRoleMenuF(listF);
}
int rows = 1;
// 新增用户与角色管理
List<SysRoleMenu> list = new ArrayList<SysRoleMenu>();
@@ -404,6 +420,7 @@ public class SysRoleServiceImpl implements ISysRoleService
{
rows = roleMenuMapper.batchRoleMenu(list);
}
return rows;
}
@@ -444,6 +461,7 @@ public class SysRoleServiceImpl implements ISysRoleService
{
// 删除角色与菜单关联
roleMenuMapper.deleteRoleMenuByRoleId(roleId);
roleMenuMapper.deleteRoleMenuByRoleIdF(roleId);
// 删除角色与部门关联
roleDeptMapper.deleteRoleDeptByRoleId(roleId);
return roleMapper.deleteRoleById(roleId);
@@ -472,6 +490,7 @@ public class SysRoleServiceImpl implements ISysRoleService
}
// 删除角色与菜单关联
roleMenuMapper.deleteRoleMenu(roleIds);
roleMenuMapper.deleteRoleMenuF(roleIds);
// 删除角色与部门关联
roleDeptMapper.deleteRoleDept(roleIds);
return roleMapper.deleteRoleByIds(roleIds);
@@ -525,4 +544,14 @@ public class SysRoleServiceImpl implements ISysRoleService
}
return userRoleMapper.batchUserRole(list);
}
@Override
public List<SysRole> selectRoleByUserIdAndIm(Long userId) {
return roleMapper.selectRoleByUserIdAndIm(userId);
}
@Override
public List<SysRole> selectRoleByUserIdAndIb(Long userId) {
return roleMapper.selectRoleByUserIdAndIb(userId);
}
}

View File

@@ -208,7 +208,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</update>
<delete id="deleteDeptById" parameterType="Long">
update sys_dept set del_flag = '2' where dept_id = #{deptId}
delete from sys_dept where dept_id = #{deptId}
</delete>
<select id="selectSeniorDeptUser" resultType="java.lang.Long">

View File

@@ -31,15 +31,15 @@
select menu_id, menu_name, parent_id, order_num, path, component, `query`, is_frame, is_cache, menu_type, visible, status, ifnull(perms,'') as perms, icon, create_time
from sys_menu
</sql>
<sql id="selectMenuF">
select menu_id, menu_name, parent_id, order_num, path, component, `query`, is_frame, is_cache, menu_type, visible, status, ifnull(perms,'') as perms, icon, create_time
from sys_menu_f
</sql>
<select id="selectMenuList" parameterType="com.xinda.common.core.domain.entity.SysMenu" resultMap="SysMenuResult">
select distinct m.menu_id,
case
when #{language} = 'zh-CN' then m.menu_name
when #{language} = 'en-US' then t.en_us
else m.menu_name
end as menu_name,
m.parent_id, m.order_num, m.path, m.component, m.query, m.is_frame, m.is_cache, m.menu_type, m.visible, m.status, ifnull(m.perms,'') as perms, m.icon, m.create_time
m. menu_name,
m.parent_id, m.order_num, m.path, m.component, m.query, m.is_frame, m.is_cache, m.menu_type, m.visible, m.status, ifnull(m.perms,'') as perms, m.icon, m.create_time
from sys_menu m
left join sys_menu_translate t on m.menu_id = t.id
<where>
@@ -55,34 +55,70 @@
</where>
order by m.parent_id, m.order_num
</select>
<select id="selectMenuListF" parameterType="com.xinda.common.core.domain.entity.SysMenu" resultMap="SysMenuResult">
select distinct m.menu_id,
m.menu_name,
m.parent_id, m.order_num, m.path, m.component, m.query, m.is_frame, m.is_cache, m.menu_type, m.visible, m.status, ifnull(m.perms,'') as perms, m.icon, m.create_time
from sys_menu_f m
<where>
<if test="menuName != null and menuName != ''">
AND m.menu_name like concat('%', #{menuName}, '%')
</if>
<if test="visible != null and visible != ''">
AND m.visible = #{visible}
</if>
<if test="status != null and status != ''">
AND m.status = #{status}
</if>
</where>
order by m.parent_id, m.order_num
</select>
<select id="selectMenuTreeAll" resultMap="SysMenuResult">
select distinct m.menu_id, m.parent_id,
case
when #{language} = 'zh-CN' then m.menu_name
when #{language} = 'en-US' then t.en_us
else m.menu_name
end as menu_name,
m.menu_name,
m.path, m.component, m.`query`, m.visible, m.status, ifnull(m.perms,'') as perms, m.is_frame, m.is_cache, m.menu_type, m.icon, m.order_num, m.create_time
from sys_menu m
left join sys_menu_translate t on m.menu_id = t.id
where m.menu_type in ('M', 'C') and m.status = 0
order by m.parent_id, m.order_num
</select>
<select id="selectMenuTreeAllF" resultMap="SysMenuResult">
select distinct m.menu_id, m.parent_id,
m.menu_name,
m.path, m.component, m.`query`, m.visible, m.status, ifnull(m.perms,'') as perms, m.is_frame, m.is_cache, m.menu_type, m.icon, m.order_num, m.create_time
from sys_menu_f m
where m.menu_type in ('M', 'C') and m.status = 0
order by m.parent_id, m.order_num
</select>
<select id="selectMenuListByUserId" parameterType="com.xinda.common.core.domain.entity.SysMenu" resultMap="SysMenuResult">
select distinct m.menu_id, m.parent_id,
case
when #{language} = 'zh-CN' then m.menu_name
when #{language} = 'en-US' then t.en_us
else m.menu_name
end as menu_name,
m.menu_name,
m.path, m.component, m.`query`, m.visible, m.status, ifnull(m.perms,'') as perms, m.is_frame, m.is_cache, m.menu_type, m.icon, m.order_num, m.create_time
from sys_menu m
left join sys_role_menu rm on m.menu_id = rm.menu_id
left join sys_user_role ur on rm.role_id = ur.role_id
left join sys_role ro on ur.role_id = ro.role_id
left join sys_menu_translate t on m.menu_id = t.id
where ur.user_id = #{params.userId}
<if test="menuName != null and menuName != ''">
AND m.menu_name like concat('%', #{menuName}, '%')
</if>
<if test="visible != null and visible != ''">
AND m.visible = #{visible}
</if>
<if test="status != null and status != ''">
AND m.status = #{status}
</if>
order by m.parent_id, m.order_num
</select>
<select id="selectMenuListByUserIdF" parameterType="com.xinda.common.core.domain.entity.SysMenu" resultMap="SysMenuResult">
select distinct m.menu_id, m.parent_id,
m.menu_name,
m.path, m.component, m.`query`, m.visible, m.status, ifnull(m.perms,'') as perms, m.is_frame, m.is_cache, m.menu_type, m.icon, m.order_num, m.create_time
from sys_menu_f m
left join sys_role_menu_f rm on m.menu_id = rm.menu_id
left join sys_user_role ur on rm.role_id = ur.role_id
left join sys_role ro on ur.role_id = ro.role_id
where ur.user_id = #{params.userId}
<if test="menuName != null and menuName != ''">
AND m.menu_name like concat('%', #{menuName}, '%')
@@ -98,18 +134,26 @@
<select id="selectMenuTreeByUserId" resultMap="SysMenuResult">
select distinct m.menu_id, m.parent_id,
case
when #{language} = 'zh-CN' then m.menu_name
when #{language} = 'en-US' then t.en_us
else m.menu_name
end as menu_name,
m.menu_name,
m.path, m.component, m.`query`, m.visible, m.status, ifnull(m.perms,'') as perms, m.is_frame, m.is_cache, m.menu_type, m.icon, m.order_num, m.create_time
from sys_menu m
left join sys_role_menu rm on m.menu_id = rm.menu_id
left join sys_user_role ur on rm.role_id = ur.role_id
left join sys_role ro on ur.role_id = ro.role_id
left join sys_user u on ur.user_id = u.user_id
left join sys_menu_translate t on m.menu_id = t.id
where u.user_id = #{userId} and m.menu_type in ('M', 'C') and m.status = 0 AND ro.status = 0
order by m.parent_id, m.order_num
</select>
<select id="selectMenuTreeByUserIdF" resultMap="SysMenuResult">
select distinct m.menu_id, m.parent_id,
m.menu_name,
m.path, m.component, m.`query`, m.visible, m.status, ifnull(m.perms,'') as perms, m.is_frame, m.is_cache, m.menu_type, m.icon, m.order_num, m.create_time
from sys_menu_f m
left join sys_role_menu_f rm on m.menu_id = rm.menu_id
left join sys_user_role ur on rm.role_id = ur.role_id
left join sys_role ro on ur.role_id = ro.role_id
left join sys_user u on ur.user_id = u.user_id
where u.user_id = #{userId} and m.menu_type in ('M', 'C') and m.status = 0 AND ro.status = 0
order by m.parent_id, m.order_num
</select>
@@ -125,12 +169,29 @@
order by m.parent_id, m.order_num
</select>
<select id="selectMenuListByRoleIdF" resultType="Long">
select m.menu_id
from sys_menu_f m
left join sys_role_menu_f rm on m.menu_id = rm.menu_id
where rm.role_id = #{roleId}
<if test="menuCheckStrictly">
and m.menu_id not in (select m.parent_id from sys_menu_f m inner join sys_role_menu_f rm on m.menu_id = rm.menu_id and rm.role_id = #{roleId})
</if>
order by m.parent_id, m.order_num
</select>
<select id="selectMenuPerms" resultType="String">
select distinct m.perms
from sys_menu m
left join sys_role_menu rm on m.menu_id = rm.menu_id
left join sys_user_role ur on rm.role_id = ur.role_id
</select>
<select id="selectMenuPermsF" resultType="String">
select distinct m.perms
from sys_menu_f m
left join sys_role_menu_f rm on m.menu_id = rm.menu_id
left join sys_user_role ur on rm.role_id = ur.role_id
</select>
<select id="selectMenuPermsByUserId" parameterType="Long" resultType="String">
select distinct m.perms
@@ -140,6 +201,14 @@
left join sys_role r on r.role_id = ur.role_id
where m.status = '0' and r.status = '0' and ur.user_id = #{userId}
</select>
<select id="selectMenuPermsByUserIdF" parameterType="Long" resultType="String">
select distinct m.perms
from sys_menu_f m
left join sys_role_menu_f rm on m.menu_id = rm.menu_id
left join sys_user_role ur on rm.role_id = ur.role_id
left join sys_role r on r.role_id = ur.role_id
where m.status = '0' and r.status = '0' and ur.user_id = #{userId}
</select>
<select id="selectMenuPermsByRoleId" parameterType="Long" resultType="String">
select distinct m.perms
@@ -148,28 +217,46 @@
where m.status = '0' and rm.role_id = #{roleId}
</select>
<select id="selectMenuPermsByRoleIdF" parameterType="Long" resultType="String">
select distinct m.perms
from sys_menu_f m
left join sys_role_menu_f rm on m.menu_id = rm.menu_id
where m.status = '0' and rm.role_id = #{roleId}
</select>
<select id="selectMenuById" resultMap="SysMenuResult">
select distinct m.menu_id,
case
when #{language} = 'zh-CN' then m.menu_name
when #{language} = 'en-US' then t.en_us
else m.menu_name
end as menu_name,
m.menu_name,
m.parent_id, m.order_num, m.path, m.component, m.query, m.is_frame, m.is_cache, m.menu_type, m.visible, m.status, ifnull(m.perms,'') as perms, m.icon, m.create_time
from sys_menu m
left join sys_menu_translate t on m.menu_id = t.id
where m.menu_id = #{menuId}
</select>
<select id="selectMenuByIdF" resultMap="SysMenuResult">
select distinct m.menu_id,
m.menu_name,
m.parent_id, m.order_num, m.path, m.component, m.query, m.is_frame, m.is_cache, m.menu_type, m.visible, m.status, ifnull(m.perms,'') as perms, m.icon, m.create_time
from sys_menu_f m
where m.menu_id = #{menuId}
</select>
<select id="hasChildByMenuId" resultType="Integer">
select count(1) from sys_menu where parent_id = #{menuId}
</select>
<select id="hasChildByMenuIdF" resultType="Integer">
select count(1) from sys_menu_f where parent_id = #{menuId}
</select>
<select id="checkMenuNameUnique" parameterType="com.xinda.common.core.domain.entity.SysMenu" resultMap="SysMenuResult">
select distinct menu_id, menu_name, parent_id, order_num, path, component, query, is_frame, is_cache, menu_type, visible, status, ifnull(perms,'') as perms, icon, create_time
from sys_menu
where menu_name=#{menuName} and parent_id = #{parentId} limit 1
</select>
<select id="checkMenuNameUniqueF" parameterType="com.xinda.common.core.domain.entity.SysMenu" resultMap="SysMenuResult">
select distinct menu_id, menu_name, parent_id, order_num, path, component, query, is_frame, is_cache, menu_type, visible, status, ifnull(perms,'') as perms, icon, create_time
from sys_menu_f
where menu_name=#{menuName} and parent_id = #{parentId} limit 1
</select>
<update id="updateMenu" parameterType="com.xinda.common.core.domain.entity.SysMenu">
update sys_menu
@@ -194,6 +281,29 @@
where menu_id = #{menuId}
</update>
<update id="updateMenuF" parameterType="com.xinda.common.core.domain.entity.SysMenu">
update sys_menu_f
<set>
<if test="menuName != null and menuName != ''">menu_name = #{menuName},</if>
<if test="parentId != null">parent_id = #{parentId},</if>
<if test="orderNum != null">order_num = #{orderNum},</if>
<if test="path != null and path != ''">path = #{path},</if>
<if test="component != null">component = #{component},</if>
<if test="query != null">`query` = #{query},</if>
<if test="isFrame != null and isFrame != ''">is_frame = #{isFrame},</if>
<if test="isCache != null and isCache != ''">is_cache = #{isCache},</if>
<if test="menuType != null and menuType != ''">menu_type = #{menuType},</if>
<if test="visible != null">visible = #{visible},</if>
<if test="status != null">status = #{status},</if>
<if test="perms !=null">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 != ''">update_by = #{updateBy},</if>
update_time = sysdate()
</set>
where menu_id = #{menuId}
</update>
<insert id="insertMenu" parameterType="com.xinda.common.core.domain.entity.SysMenu">
insert into sys_menu(
<if test="menuId != null and menuId != 0">menu_id,</if>
@@ -234,8 +344,51 @@
)
</insert>
<insert id="insertMenuF" parameterType="com.xinda.common.core.domain.entity.SysMenu">
insert into sys_menu_f(
<if test="menuId != null and menuId != 0">menu_id,</if>
<if test="parentId != null and parentId != 0">parent_id,</if>
<if test="menuName != null and menuName != ''">menu_name,</if>
<if test="orderNum != null">order_num,</if>
<if test="path != null and path != ''">path,</if>
<if test="component != null and component != ''">component,</if>
<if test="query != null and query != ''">`query`,</if>
<if test="isFrame != null and isFrame != ''">is_frame,</if>
<if test="isCache != null and isCache != ''">is_cache,</if>
<if test="menuType != null and menuType != ''">menu_type,</if>
<if test="visible != null">visible,</if>
<if test="status != null">status,</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 != ''">create_by,</if>
create_time
)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">#{orderNum},</if>
<if test="path != null and path != ''">#{path},</if>
<if test="component != null and component != ''">#{component},</if>
<if test="query != null and query != ''">#{query},</if>
<if test="isFrame != null and isFrame != ''">#{isFrame},</if>
<if test="isCache != null and isCache != ''">#{isCache},</if>
<if test="menuType != null and menuType != ''">#{menuType},</if>
<if test="visible != null">#{visible},</if>
<if test="status != null">#{status},</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>
<delete id="deleteMenuById" parameterType="Long">
delete from sys_menu where menu_id = #{menuId}
</delete>
<delete id="deleteMenuByIdF" parameterType="Long">
delete from sys_menu_f where menu_id = #{menuId}
</delete>
</mapper>

View File

@@ -13,6 +13,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="menuCheckStrictly" column="menu_check_strictly" />
<result property="deptCheckStrictly" column="dept_check_strictly" />
<result property="status" column="status" />
<result property="im" column="im" />
<result property="ib" column="ib" />
<result property="delFlag" column="del_flag" />
<result property="createBy" column="create_by" />
<result property="createTime" column="create_time" />
@@ -23,7 +25,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<sql id="selectRoleVo">
select distinct r.role_id, r.role_name, r.role_key, r.role_sort, r.data_scope, r.menu_check_strictly, r.dept_check_strictly,
r.status, r.del_flag, r.create_time, r.remark
r.status,r.im,r.ib, r.del_flag, r.create_time, r.remark
from sys_role r
left join sys_user_role ur on ur.role_id = r.role_id
left join sys_user u on u.user_id = ur.user_id
@@ -61,6 +63,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
WHERE r.del_flag = '0' and ur.user_id = #{userId}
</select>
<select id="selectRoleByUserIdAndIm" parameterType="Long" resultMap="SysRoleResult">
<include refid="selectRoleVo"/>
WHERE r.del_flag = '0'and r.im = '1' and ur.user_id = #{userId}
</select>
<select id="selectRoleByUserIdAndIb" parameterType="Long" resultMap="SysRoleResult">
<include refid="selectRoleVo"/>
WHERE r.del_flag = '0'and r.ib = '1' and ur.user_id = #{userId}
</select>
<select id="selectRoleAll" resultMap="SysRoleResult">
<include refid="selectRoleVo"/>
</select>
@@ -117,6 +129,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="menuCheckStrictly != null">menu_check_strictly,</if>
<if test="deptCheckStrictly != null">dept_check_strictly,</if>
<if test="status != null and status != ''">status,</if>
<if test="im != null and im != ''">im,</if>
<if test="ib != null and im != ''">ib,</if>
<if test="remark != null and remark != ''">remark,</if>
<if test="createBy != null and createBy != ''">create_by,</if>
create_time
@@ -129,6 +143,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="menuCheckStrictly != null">#{menuCheckStrictly},</if>
<if test="deptCheckStrictly != null">#{deptCheckStrictly},</if>
<if test="status != null and status != ''">#{status},</if>
<if test="im != null and im != ''">im,</if>
<if test="ib != null and im != ''">ib,</if>
<if test="remark != null and remark != ''">#{remark},</if>
<if test="createBy != null and createBy != ''">#{createBy},</if>
sysdate()
@@ -145,6 +161,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="menuCheckStrictly != null">menu_check_strictly = #{menuCheckStrictly},</if>
<if test="deptCheckStrictly != null">dept_check_strictly = #{deptCheckStrictly},</if>
<if test="status != null and status != ''">status = #{status},</if>
<if test="im != null and im != ''">im = #{im},</if>
<if test="ib != null and ib != ''">ib = #{ib},</if>
<if test="remark != null">remark = #{remark},</if>
<if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if>
update_time = sysdate()

View File

@@ -13,15 +13,27 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
select count(1) from sys_role_menu where menu_id = #{menuId}
</select>
<select id="checkMenuExistRoleF" resultType="Integer">
select count(1) from sys_role_menu_f where menu_id = #{menuId}
</select>
<select id="selectRoleMenuList" resultType="com.xinda.system.domain.SysRoleMenu">
select *
from sys_role_menu
where role_id = #{roleId}
</select>
<select id="selectRoleMenuListF" resultType="com.xinda.system.domain.SysRoleMenu">
select *
from sys_role_menu_f
where role_id = #{roleId}
</select>
<delete id="deleteRoleMenuByRoleId" parameterType="Long">
delete from sys_role_menu where role_id=#{roleId}
</delete>
<delete id="deleteRoleMenuByRoleIdF" parameterType="Long">
delete from sys_role_menu_f where role_id=#{roleId}
</delete>
<delete id="deleteRoleMenu" parameterType="Long">
delete from sys_role_menu where role_id in
@@ -29,6 +41,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
#{roleId}
</foreach>
</delete>
<delete id="deleteRoleMenuF" parameterType="Long">
delete from sys_role_menu_f where role_id in
<foreach collection="array" item="ids" index="roleId" open="(" separator="," close=")">
#{roleId}
</foreach>
</delete>
<insert id="batchRoleMenu">
insert into sys_role_menu(role_id, menu_id) values
@@ -36,5 +54,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
(#{item.roleId},#{item.menuId})
</foreach>
</insert>
<insert id="batchRoleMenuF">
insert into sys_role_menu_f(role_id, menu_id) values
<foreach item="item" index="index" collection="list" separator=",">
(#{item.roleId},#{item.menuId})
</foreach>
</insert>
</mapper>