diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysMenuController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysMenuController.java index 11bd938e..945c8b97 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysMenuController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysMenuController.java @@ -46,7 +46,8 @@ public class SysMenuController extends BaseController @ResponseBody public List list(SysMenu menu) { - List menuList = menuService.selectMenuList(menu); + Long userId = ShiroUtils.getUserId(); + List menuList = menuService.selectMenuList(menu, userId); return menuList; } @@ -156,7 +157,8 @@ public class SysMenuController extends BaseController @ResponseBody public List roleMenuTreeData(SysRole role) { - List ztrees = menuService.roleMenuTreeData(role); + Long userId = ShiroUtils.getUserId(); + List ztrees = menuService.roleMenuTreeData(role, userId); return ztrees; } @@ -165,9 +167,10 @@ public class SysMenuController extends BaseController */ @GetMapping("/menuTreeData") @ResponseBody - public List menuTreeData(SysRole role) + public List menuTreeData() { - List ztrees = menuService.menuTreeData(); + Long userId = ShiroUtils.getUserId(); + List ztrees = menuService.menuTreeData(userId); return ztrees; } diff --git a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/service/impl/SysJobServiceImpl.java b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/service/impl/SysJobServiceImpl.java index c024fec6..da28feef 100644 --- a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/service/impl/SysJobServiceImpl.java +++ b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/service/impl/SysJobServiceImpl.java @@ -2,7 +2,6 @@ package com.ruoyi.quartz.service.impl; import java.util.List; import javax.annotation.PostConstruct; -import org.quartz.CronTrigger; import org.quartz.Scheduler; import org.quartz.SchedulerException; import org.springframework.beans.factory.annotation.Autowired; @@ -40,16 +39,7 @@ public class SysJobServiceImpl implements ISysJobService List jobList = jobMapper.selectJobAll(); for (SysJob job : jobList) { - CronTrigger cronTrigger = ScheduleUtils.getCronTrigger(scheduler, job.getJobId()); - // 如果不存在,则创建 - if (cronTrigger == null) - { - ScheduleUtils.createScheduleJob(scheduler, job); - } - else - { - ScheduleUtils.updateScheduleJob(scheduler, job); - } + ScheduleUtils.updateScheduleJob(scheduler, job); } } diff --git a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/util/ScheduleUtils.java b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/util/ScheduleUtils.java index 4bfa85c0..4475f2b7 100644 --- a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/util/ScheduleUtils.java +++ b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/util/ScheduleUtils.java @@ -92,6 +92,13 @@ public class ScheduleUtils // 放入参数,运行时的方法可以获取 jobDetail.getJobDataMap().put(ScheduleConstants.TASK_PROPERTIES, job); + // 判断是否存在 + if (scheduler.checkExists(getJobKey(job.getJobId()))) + { + // 防止创建时存在数据问题 先移除,然后在执行创建操作 + scheduler.deleteJob(getJobKey(job.getJobId())); + } + scheduler.scheduleJob(jobDetail, trigger); // 暂停任务 @@ -106,22 +113,7 @@ public class ScheduleUtils */ public static void updateScheduleJob(Scheduler scheduler, SysJob job) throws SchedulerException, TaskException { - JobKey jobKey = getJobKey(job.getJobId()); - - // 判断是否存在 - if (scheduler.checkExists(jobKey)) - { - // 先移除,然后做更新操作 - scheduler.deleteJob(jobKey); - } - createScheduleJob(scheduler, job); - - // 暂停任务 - if (job.getStatus().equals(ScheduleConstants.Status.PAUSE.getValue())) - { - pauseJob(scheduler, job.getJobId()); - } } /** diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysMenuMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysMenuMapper.java index eae456b1..4b09dda5 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysMenuMapper.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysMenuMapper.java @@ -17,14 +17,22 @@ public interface SysMenuMapper * @return 菜单列表 */ public List selectMenuAll(); - + + /** + * 根据用户ID查询菜单 + * + * @param userId 用户ID + * @return 菜单列表 + */ + public List selectMenuAllByUserId(Long userId); + /** * 查询系统正常显示菜单(不含按钮) * * @return 菜单列表 */ public List selectMenuNormalAll(); - + /** * 根据用户ID查询菜单 * @@ -57,6 +65,14 @@ public interface SysMenuMapper */ public List selectMenuList(SysMenu menu); + /** + * 查询系统菜单列表 + * + * @param menu 菜单信息 + * @return 菜单列表 + */ + public List selectMenuListByUserId(SysMenu menu); + /** * 删除菜单管理信息 * diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysMenuService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysMenuService.java index 2b6dc319..04cb8e09 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysMenuService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysMenuService.java @@ -27,16 +27,18 @@ public interface ISysMenuService * 查询系统菜单列表 * * @param menu 菜单信息 + * @param userId 用户ID * @return 菜单列表 */ - public List selectMenuList(SysMenu menu); + public List selectMenuList(SysMenu menu, Long userId); /** * 查询菜单集合 * + * @param userId 用户ID * @return 所有菜单信息 */ - public List selectMenuAll(); + public List selectMenuAll(Long userId); /** * 根据用户ID查询权限 @@ -50,23 +52,26 @@ public interface ISysMenuService * 根据角色ID查询菜单 * * @param role 角色对象 + * @param userId 用户ID * @return 菜单列表 */ - public List roleMenuTreeData(SysRole role); + public List roleMenuTreeData(SysRole role, Long userId); /** * 查询所有菜单信息 * + * @param userId 用户ID * @return 菜单列表 */ - public List menuTreeData(); + public List menuTreeData(Long userId); /** * 查询系统所有权限 * + * @param userId 用户ID * @return 权限列表 */ - public Map selectPermsAll(); + public Map selectPermsAll(Long userId); /** * 删除菜单管理信息 diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java index 19683ded..5dee886b 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java @@ -65,9 +65,19 @@ public class SysMenuServiceImpl implements ISysMenuService * @return 所有菜单信息 */ @Override - public List selectMenuList(SysMenu menu) + public List selectMenuList(SysMenu menu, Long userId) { - return menuMapper.selectMenuList(menu); + List menuList = null; + if (SysUser.isAdmin(userId)) + { + menuList = menuMapper.selectMenuList(menu); + } + else + { + menu.getParams().put("userId", userId); + menuList = menuMapper.selectMenuListByUserId(menu); + } + return menuList; } /** @@ -76,9 +86,18 @@ public class SysMenuServiceImpl implements ISysMenuService * @return 所有菜单信息 */ @Override - public List selectMenuAll() + public List selectMenuAll(Long userId) { - return menuMapper.selectMenuAll(); + List menuList = null; + if (SysUser.isAdmin(userId)) + { + menuList = menuMapper.selectMenuAll(); + } + else + { + menuList = menuMapper.selectMenuAllByUserId(userId); + } + return menuList; } /** @@ -109,11 +128,11 @@ public class SysMenuServiceImpl implements ISysMenuService * @return 菜单列表 */ @Override - public List roleMenuTreeData(SysRole role) + public List roleMenuTreeData(SysRole role, Long userId) { Long roleId = role.getRoleId(); List ztrees = new ArrayList(); - List menuList = menuMapper.selectMenuAll(); + List menuList = selectMenuAll(userId); if (StringUtils.isNotNull(roleId)) { List roleMenuList = menuMapper.selectMenuTree(roleId); @@ -132,9 +151,9 @@ public class SysMenuServiceImpl implements ISysMenuService * @return 菜单列表 */ @Override - public List menuTreeData() + public List menuTreeData(Long userId) { - List menuList = menuMapper.selectMenuAll(); + List menuList = selectMenuAll(userId); List ztrees = initZtree(menuList); return ztrees; } @@ -145,10 +164,10 @@ public class SysMenuServiceImpl implements ISysMenuService * @return 权限列表 */ @Override - public LinkedHashMap selectPermsAll() + public LinkedHashMap selectPermsAll(Long userId) { LinkedHashMap section = new LinkedHashMap<>(); - List permissions = menuMapper.selectMenuAll(); + List permissions = selectMenuAll(userId); if (StringUtils.isNotEmpty(permissions)) { for (SysMenu menu : permissions) diff --git a/ruoyi-system/src/main/resources/mapper/system/SysMenuMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysMenuMapper.xml index a212cc1f..deacfba0 100644 --- a/ruoyi-system/src/main/resources/mapper/system/SysMenuMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/SysMenuMapper.xml @@ -50,6 +50,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" order by parent_id, order_num + + - + + + delete from sys_menu where menu_id = #{menuId} or parent_id = #{menuId}