소스 검색

更新service

lzm 2 년 전
부모
커밋
e0e07c80f3
19개의 변경된 파일303개의 추가작업 그리고 227개의 파일을 삭제
  1. 1 1
      README.md
  2. 1 1
      ruoyi-api/ruoyi-api-system/pom.xml
  3. 2 2
      ruoyi-gateway/src/main/java/com/ruoyi/gateway/config/CaptchaConfig.java
  4. 1 4
      ruoyi-modules/mz-portal/src/main/java/com/ruoyi/portal/RuoYiPortalApplication.java
  5. 6 0
      ruoyi-modules/mz-system-ext/pom.xml
  6. 3 3
      ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/RuoYiSystemApplication.java
  7. 30 55
      ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysDeptController.java
  8. 38 8
      ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysRoleController.java
  9. 63 60
      ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java
  10. 8 10
      ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDeptMapper.java
  11. 28 13
      ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysMenuMapper.java
  12. 18 11
      ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysRoleMapper.java
  13. 2 2
      ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java
  14. 1 1
      ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDeptService.java
  15. 10 3
      ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysMenuService.java
  16. 9 5
      ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysPermissionService.java
  17. 2 2
      ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java
  18. 39 21
      ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java
  19. 41 25
      ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysPermissionServiceImpl.java

+ 1 - 1
README.md

@@ -326,7 +326,7 @@ public Object around(ProceedingJoinPoint joinPoint) throws Throwable
 (3)用户管理左侧部门改为懒加载+触发搜索  
 (4)修改gen里的模板生成,添加注解验证等功能  
 (5)扩展数据权限为mybatisplus拦截器,并且做了多菜单分别对应不同的数据权限  
-(6)内置固定角色 养老机构用户,社区养老服务机构用户,评定专家用户, 内置角色不自由分配 指定业务进行授予,该3个内置角色授予后 根据业务不能改变部门和角色。可以扩展(指定内置角色和对应菜单关系,暂时未锁定)  
+(6)内置固定角色 养老机构用户,社区养老服务机构用户,评定专家用户, 内置角色不自由分配 指定业务进行授予,该3个内置角色授予后 根据业务不能改变部门和角色。可以扩展(指定内置角色和对应菜单关系,暂时未锁定),角色表添加字段,内置角色只允许更改菜单,其他功能代码做好逻辑限制(不允许修改其他,不允许外部分配,分配只分配指定类型)。  
 (7)扩展字典表 添加dict_parent_value 组成树形字典,默认框架字典为平级字典,通过该字段扩展为树形字典,一版规则为10是1x的父级  
 (8)查询系统表字段不存在注释得结果  
 ```mysql

+ 1 - 1
ruoyi-api/ruoyi-api-system/pom.xml

@@ -26,7 +26,7 @@
         <dependency>
             <groupId>com.ruoyi</groupId>
             <artifactId>ruoyi-api-ext</artifactId>
-            <version>3.6.0</version>
+            <version>${ruoyi.version}</version>
         </dependency>
         
     </dependencies>

+ 2 - 2
ruoyi-gateway/src/main/java/com/ruoyi/gateway/config/CaptchaConfig.java

@@ -31,7 +31,7 @@ public class CaptchaConfig
         // 验证码图片高度 默认为50
         properties.setProperty(KAPTCHA_IMAGE_HEIGHT, "60");
         // 验证码文本字符大小 默认为40
-        properties.setProperty(KAPTCHA_TEXTPRODUCER_FONT_SIZE, "38");
+        properties.setProperty(KAPTCHA_TEXTPRODUCER_FONT_SIZE, "40");
         // KAPTCHA_SESSION_KEY
         properties.setProperty(KAPTCHA_SESSION_CONFIG_KEY, "kaptchaCode");
         // 验证码文本字符长度 默认为5
@@ -61,7 +61,7 @@ public class CaptchaConfig
         // 验证码图片高度 默认为50
         properties.setProperty(KAPTCHA_IMAGE_HEIGHT, "60");
         // 验证码文本字符大小 默认为40
-        properties.setProperty(KAPTCHA_TEXTPRODUCER_FONT_SIZE, "35");
+        properties.setProperty(KAPTCHA_TEXTPRODUCER_FONT_SIZE, "40");
         // KAPTCHA_SESSION_KEY
         properties.setProperty(KAPTCHA_SESSION_CONFIG_KEY, "kaptchaCodeMath");
         // 验证码文本生成器

+ 1 - 4
ruoyi-modules/mz-portal/src/main/java/com/ruoyi/portal/RuoYiPortalApplication.java

@@ -14,10 +14,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
 @EnableCustomConfig
 @EnableCustomSwagger2
 @EnableRyFeignClients
-@SpringBootApplication(exclude = {
-        org.springframework.boot.actuate.autoconfigure.security.servlet.ManagementWebSecurityAutoConfiguration.class,
-        org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration.class
-})
+@SpringBootApplication
 public class RuoYiPortalApplication
 {
     public static void main(String[] args)

+ 6 - 0
ruoyi-modules/mz-system-ext/pom.xml

@@ -17,6 +17,12 @@
 
     <dependencies>
 
+        <!-- SpringBoot Web容器 -->
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-web</artifactId>
+        </dependency>
+
         <!-- Mysql Connector -->
         <dependency>
             <groupId>mysql</groupId>

+ 3 - 3
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/RuoYiSystemApplication.java

@@ -1,14 +1,14 @@
 package com.ruoyi.system;
 
-import org.springframework.boot.SpringApplication;
-import org.springframework.boot.autoconfigure.SpringBootApplication;
 import com.ruoyi.common.security.annotation.EnableCustomConfig;
 import com.ruoyi.common.security.annotation.EnableRyFeignClients;
 import com.ruoyi.common.swagger.annotation.EnableCustomSwagger2;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
 
 /**
  * 系统模块
- *
+ * 
  * @author ruoyi
  */
 @EnableCustomConfig

+ 30 - 55
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysDeptController.java

@@ -1,5 +1,19 @@
 package com.ruoyi.system.controller;
 
+import java.util.List;
+
+import com.ruoyi.ext.api.validate.group.AddGroup;
+import org.apache.commons.lang3.ArrayUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
 import com.ruoyi.common.core.constant.UserConstants;
 import com.ruoyi.common.core.utils.StringUtils;
 import com.ruoyi.common.core.web.controller.BaseController;
@@ -7,20 +21,13 @@ import com.ruoyi.common.core.web.domain.AjaxResult;
 import com.ruoyi.common.log.annotation.Log;
 import com.ruoyi.common.log.enums.BusinessType;
 import com.ruoyi.common.security.annotation.RequiresPermissions;
-import com.ruoyi.ext.api.validate.group.AddGroup;
+import com.ruoyi.common.security.utils.SecurityUtils;
 import com.ruoyi.system.api.domain.SysDept;
 import com.ruoyi.system.service.ISysDeptService;
-import org.apache.commons.lang3.ArrayUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.*;
-
-import java.util.Iterator;
-import java.util.List;
 
 /**
  * 部门信息
- *
+ * 
  * @author ruoyi
  */
 @RestController
@@ -41,16 +48,6 @@ public class SysDeptController extends BaseController
         return AjaxResult.success(depts);
     }
 
-    /**
-     * 获取部门列表 非菜单权限
-     */
-    @GetMapping("/listByData")
-    public AjaxResult listByData(SysDept dept)
-    {
-        List<SysDept> depts = deptService.selectDeptList(dept);
-        return AjaxResult.success(depts);
-    }
-
     /**
      * 查询部门列表(排除节点)
      */
@@ -61,16 +58,7 @@ public class SysDeptController extends BaseController
         SysDept dept = new SysDept();
         dept.setStatus("0");
         List<SysDept> depts = deptService.selectDeptList(dept);
-        Iterator<SysDept> it = depts.iterator();
-        while (it.hasNext())
-        {
-            SysDept d = (SysDept) it.next();
-            if (d.getDeptId().intValue() == deptId
-                    || ArrayUtils.contains(StringUtils.split(d.getAncestors(), ","), deptId + ""))
-            {
-                it.remove();
-            }
-        }
+        depts.removeIf(d -> d.getDeptId().intValue() == deptId || ArrayUtils.contains(StringUtils.split(d.getAncestors(), ","), deptId + ""));
         return AjaxResult.success(depts);
     }
 
@@ -85,32 +73,6 @@ public class SysDeptController extends BaseController
         return AjaxResult.success(deptService.selectDeptById(deptId));
     }
 
-    /**
-     * 获取部门下拉树列表
-     */
-    @GetMapping("/treeselect")
-    public AjaxResult treeselect(SysDept dept)
-    {
-        List<SysDept> depts = deptService.selectDeptTreeList(dept);
-
-        return AjaxResult.success(deptService.buildDeptTreeSelect(depts));
-    }
-
-    /**
-     * 加载对应角色部门列表树
-     */
-    @GetMapping(value = "/roleDeptTreeselect/{roleId}")
-    public AjaxResult roleDeptTreeselect(@PathVariable("roleId") Long roleId)
-    {
-        SysDept dept = new SysDept();
-        dept.setStatus("0");
-//        List<SysDept> depts = deptService.selectDeptList(dept);
-        AjaxResult ajax = AjaxResult.success();
-        ajax.put("checkedKeys", deptService.selectDeptListByRoleId(roleId));
-//        ajax.put("depts", deptService.buildDeptTreeSelect(depts));
-        return ajax;
-    }
-
     /**
      * 新增部门
      */
@@ -123,6 +85,7 @@ public class SysDeptController extends BaseController
         {
             return AjaxResult.error("新增部门'" + dept.getDeptName() + "'失败,部门名称已存在");
         }
+
         return toAjax(deptService.insertDept(dept));
     }
 
@@ -148,6 +111,7 @@ public class SysDeptController extends BaseController
         {
             return AjaxResult.error("该部门包含未停用的子部门!");
         }
+
         return toAjax(deptService.updateDept(dept));
     }
 
@@ -170,4 +134,15 @@ public class SysDeptController extends BaseController
         deptService.checkDeptDataScope(deptId);
         return toAjax(deptService.deleteDeptById(deptId));
     }
+
+
+    /**
+    * 获取部门列表 非菜单权限
+    */
+    @GetMapping("/listByData")
+    public AjaxResult listByData(SysDept dept)
+    {
+        List<SysDept> depts = deptService.selectDeptList(dept);
+        return AjaxResult.success(depts);
+    }
 }

+ 38 - 8
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysRoleController.java

@@ -1,5 +1,19 @@
 package com.ruoyi.system.controller;
 
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+
+import com.ruoyi.ext.api.validate.group.AddGroup;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
 import com.ruoyi.common.core.constant.UserConstants;
 import com.ruoyi.common.core.utils.poi.ExcelUtil;
 import com.ruoyi.common.core.web.controller.BaseController;
@@ -9,18 +23,13 @@ import com.ruoyi.common.log.annotation.Log;
 import com.ruoyi.common.log.enums.BusinessType;
 import com.ruoyi.common.security.annotation.RequiresPermissions;
 import com.ruoyi.common.security.utils.SecurityUtils;
-import com.ruoyi.ext.api.validate.group.AddGroup;
+import com.ruoyi.system.api.domain.SysDept;
 import com.ruoyi.system.api.domain.SysRole;
 import com.ruoyi.system.api.domain.SysUser;
 import com.ruoyi.system.domain.SysUserRole;
+import com.ruoyi.system.service.ISysDeptService;
 import com.ruoyi.system.service.ISysRoleService;
 import com.ruoyi.system.service.ISysUserService;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.*;
-
-import javax.servlet.http.HttpServletResponse;
-import java.util.List;
 
 /**
  * 角色信息
@@ -37,6 +46,9 @@ public class SysRoleController extends BaseController
     @Autowired
     private ISysUserService userService;
 
+    @Autowired
+    private ISysDeptService deptService;
+
     @RequiresPermissions("system:role:list")
     @GetMapping("/list")
     public TableDataInfo list(SysRole role)
@@ -83,6 +95,7 @@ public class SysRoleController extends BaseController
         {
             return AjaxResult.error("新增角色'" + role.getRoleName() + "'失败,角色权限已存在");
         }
+
         return toAjax(roleService.insertRole(role));
 
     }
@@ -105,6 +118,7 @@ public class SysRoleController extends BaseController
         {
             return AjaxResult.error("修改角色'" + role.getRoleName() + "'失败,角色权限已存在");
         }
+
         return toAjax(roleService.updateRole(role));
     }
 
@@ -131,6 +145,7 @@ public class SysRoleController extends BaseController
     {
         roleService.checkRoleAllowed(role);
         roleService.checkRoleDataScope(role.getRoleId());
+
         return toAjax(roleService.updateRoleStatus(role));
     }
 
@@ -213,4 +228,19 @@ public class SysRoleController extends BaseController
         roleService.checkRoleDataScope(roleId);
         return toAjax(roleService.insertAuthUsers(roleId, userIds));
     }
-}
+
+    /**
+     * 获取对应角色部门树列表
+     */
+    @RequiresPermissions("system:role:query")
+    @GetMapping(value = "/deptTree/{roleId}")
+    public AjaxResult deptTree(@PathVariable("roleId") Long roleId)
+    {
+        AjaxResult ajax = AjaxResult.success();
+        ajax.put("checkedKeys", deptService.selectDeptListByRoleId(roleId));
+        SysDept sysDept = new SysDept();
+        sysDept.setStatus("0");
+        ajax.put("depts", deptService.selectDeptTreeList(sysDept));
+        return ajax;
+    }
+}

+ 63 - 60
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java

@@ -1,5 +1,24 @@
 package com.ruoyi.system.controller;
 
+import java.io.IOException;
+import java.util.List;
+import java.util.Set;
+import java.util.stream.Collectors;
+import javax.servlet.http.HttpServletResponse;
+
+import com.ruoyi.ext.api.validate.group.AddGroup;
+import org.apache.commons.lang3.ArrayUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.multipart.MultipartFile;
 import com.ruoyi.common.core.constant.UserConstants;
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.utils.StringUtils;
@@ -10,32 +29,22 @@ import com.ruoyi.common.core.web.page.TableDataInfo;
 import com.ruoyi.common.log.annotation.Log;
 import com.ruoyi.common.log.enums.BusinessType;
 import com.ruoyi.common.security.annotation.InnerAuth;
-import com.ruoyi.common.security.annotation.Logical;
 import com.ruoyi.common.security.annotation.RequiresPermissions;
 import com.ruoyi.common.security.utils.SecurityUtils;
-import com.ruoyi.ext.api.validate.group.AddGroup;
+import com.ruoyi.system.api.domain.SysDept;
 import com.ruoyi.system.api.domain.SysRole;
 import com.ruoyi.system.api.domain.SysUser;
 import com.ruoyi.system.api.model.LoginUser;
-import com.ruoyi.system.domain.SysMenuRoleVo;
-import com.ruoyi.system.service.*;
-import org.apache.commons.lang3.ArrayUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.*;
-import org.springframework.web.multipart.MultipartFile;
-
-import javax.servlet.http.HttpServletResponse;
-import java.io.IOException;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.stream.Collectors;
+import com.ruoyi.system.service.ISysConfigService;
+import com.ruoyi.system.service.ISysDeptService;
+import com.ruoyi.system.service.ISysPermissionService;
+import com.ruoyi.system.service.ISysPostService;
+import com.ruoyi.system.service.ISysRoleService;
+import com.ruoyi.system.service.ISysUserService;
 
 /**
  * 用户信息
- *
+ * 
  * @author ruoyi
  */
 @RestController
@@ -48,6 +57,9 @@ public class SysUserController extends BaseController
     @Autowired
     private ISysRoleService roleService;
 
+    @Autowired
+    private ISysDeptService deptService;
+
     @Autowired
     private ISysPostService postService;
 
@@ -101,7 +113,7 @@ public class SysUserController extends BaseController
     /**
      * 获取当前用户信息
      */
-    @InnerAuth
+//    @InnerAuth
     @GetMapping("/info/{username}")
     public R<LoginUser> info(@PathVariable("username") String username)
     {
@@ -111,28 +123,13 @@ public class SysUserController extends BaseController
             return R.fail("用户名或密码错误");
         }
         // 角色集合
-        Set<String> roles = permissionService.getRolePermission(sysUser.getUserId());
+        Set<String> roles = permissionService.getRolePermission(sysUser);
         // 权限集合
-//        Set<String> permissions = permissionService.getMenuPermission(sysUser.getUserId());
-        List<SysMenuRoleVo> menuPermission = permissionService.getMenuPermission(sysUser.getUserId());
-        Map<String, String> perms = menuPermission.stream().filter(sysMenuRoleVo -> !StringUtils.isEmpty(sysMenuRoleVo.getPerms()))
-                .collect(Collectors.toMap(SysMenuRoleVo::getPerms, SysMenuRoleVo::getDataScope, (dataScope1, dataScope2) -> {
-                    long l1 = Long.parseLong(dataScope1);
-                    long l2 = Long.parseLong(dataScope2);
-                    return l1 < l2 ? dataScope1 : dataScope2;
-                }));
-//
-        Set<String> permissions = perms.keySet();
-        if (SecurityUtils.isAdmin(sysUser.getUserId())){
-            permissions=new HashSet<>();
-            permissions.add("*:*:*");
-        }
-
+        Set<String> permissions = permissionService.getMenuPermission(sysUser);
         LoginUser sysUserVo = new LoginUser();
         sysUserVo.setSysUser(sysUser);
         sysUserVo.setRoles(roles);
         sysUserVo.setPermissions(permissions);
-//        sysUserVo.setDetailPerms(perms);
         return R.ok(sysUserVo);
     }
 
@@ -157,26 +154,19 @@ public class SysUserController extends BaseController
 
     /**
      * 获取用户信息
-     *
+     * 
      * @return 用户信息
      */
     @GetMapping("getInfo")
     public AjaxResult getInfo()
     {
-        Long userId = SecurityUtils.getUserId();
+        SysUser user = userService.selectUserById(SecurityUtils.getUserId());
         // 角色集合
-        Set<String> roles = permissionService.getRolePermission(userId);
+        Set<String> roles = permissionService.getRolePermission(user);
         // 权限集合
-//        Set<String> permissions = permissionService.getMenuPermission(userId);
-        List<SysMenuRoleVo> menuPermission = permissionService.getMenuPermission(userId);
-        Set<String> permissions = menuPermission.stream().filter(sysMenuRoleVo ->!StringUtils.isEmpty(sysMenuRoleVo.getPerms()))
-                .map(SysMenuRoleVo::getPerms).collect(Collectors.toSet());
-        if (SecurityUtils.isAdmin(userId)){
-            permissions=new HashSet<>();
-            permissions.add("*:*:*");
-        }
+        Set<String> permissions = permissionService.getMenuPermission(user);
         AjaxResult ajax = AjaxResult.success();
-        ajax.put("user", userService.selectUserById(userId));
+        ajax.put("user", user);
         ajax.put("roles", roles);
         ajax.put("permissions", permissions);
         return ajax;
@@ -207,7 +197,7 @@ public class SysUserController extends BaseController
     /**
      * 新增用户
      */
-    @RequiresPermissions(value = "system:user:add")
+    @RequiresPermissions("system:user:add")
     @Log(title = "用户管理", businessType = BusinessType.INSERT)
     @PostMapping
     public AjaxResult add(@Validated({AddGroup.class}) @RequestBody SysUser user)
@@ -226,6 +216,7 @@ public class SysUserController extends BaseController
         {
             return AjaxResult.error("新增用户'" + user.getUserName() + "'失败,邮箱账号已存在");
         }
+
         user.setPassword(SecurityUtils.encryptPassword(user.getPassword()));
         return toAjax(userService.insertUser(user),user.getUserId());
     }
@@ -250,13 +241,14 @@ public class SysUserController extends BaseController
         {
             return AjaxResult.error("修改用户'" + user.getUserName() + "'失败,邮箱账号已存在");
         }
+
         return toAjax(userService.updateUser(user));
     }
 
     /**
      * 删除用户
      */
-    @RequiresPermissions(value = "system:user:remove")
+    @RequiresPermissions("system:user:remove")
     @Log(title = "用户管理", businessType = BusinessType.DELETE)
     @DeleteMapping("/{userIds}")
     public AjaxResult remove(@PathVariable Long[] userIds)
@@ -289,13 +281,14 @@ public class SysUserController extends BaseController
     /**
      * 状态修改
      */
-    @RequiresPermissions(value = {"system:user:edit", "organization:yljgZhgl:editU","organization:sqjgZhgl:editU"}, logical = Logical.OR)
+    @RequiresPermissions("system:user:edit")
     @Log(title = "用户管理", businessType = BusinessType.UPDATE)
     @PutMapping("/changeStatus")
     public AjaxResult changeStatus(@RequestBody SysUser user)
     {
         userService.checkUserAllowed(user);
         userService.checkUserDataScope(user.getUserId());
+
         return toAjax(userService.updateUserStatus(user));
     }
 
@@ -317,13 +310,23 @@ public class SysUserController extends BaseController
     /**
      * 用户授权角色
      */
-//    @RequiresPermissions("system:user:edit")
-//    @Log(title = "用户管理", businessType = BusinessType.GRANT)
-//    @PutMapping("/authRole")
-//    public AjaxResult insertAuthRole(Long userId, Long[] roleIds)
-//    {
-//        userService.checkUserDataScope(userId);
-//        userService.insertUserAuth(userId, roleIds);
-//        return success();
-//    }
+    // @RequiresPermissions("system:user:edit")
+    // @Log(title = "用户管理", businessType = BusinessType.GRANT)
+    // @PutMapping("/authRole")
+    // public AjaxResult insertAuthRole(Long userId, Long[] roleIds)
+    // {
+    //     userService.checkUserDataScope(userId);
+    //     userService.insertUserAuth(userId, roleIds);
+    //     return success();
+    // }
+
+    /**
+     * 获取部门树列表
+     */
+    @RequiresPermissions("system:user:list")
+    @GetMapping("/deptTree")
+    public AjaxResult deptTree(SysDept dept)
+    {
+        return AjaxResult.success(deptService.selectDeptTreeList(dept));
+    }
 }

+ 8 - 10
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDeptMapper.java

@@ -21,13 +21,6 @@ public interface SysDeptMapper extends BaseMapperPlus<SysDept>
      * @return 部门信息集合
      */
     public List<SysDept> selectDeptList(SysDept dept);
-    /**
-     * 查询部门管理数据
-
-     * @param dept 部门树形信息
-     * @return 部门信息集合
-     */
-    public List<SysDept> selectDeptTreeList(SysDept dept);
 
     /**
      * 根据角色ID查询部门树信息
@@ -104,14 +97,14 @@ public interface SysDeptMapper extends BaseMapperPlus<SysDept>
     public int updateDept(SysDept dept);
 
     /**
-     * 修改所在部门正常状态, 更新前记录已经变更了,子部门状态更新暂时不触发时间变更
+     * 修改所在部门正常状态
      *
      * @param deptIds 部门ID组
      */
     public void updateDeptStatusNormal(Long[] deptIds);
 
     /**
-     * 修改子元素关系 更新前记录已经变更了,子部门状态更新暂时不触发时间变更
+     * 修改子元素关系
      *
      * @param depts 子元素
      * @return 结果
@@ -125,6 +118,11 @@ public interface SysDeptMapper extends BaseMapperPlus<SysDept>
      * @return 结果
      */
     public int deleteDeptById(Long deptId);
+    /**
+     * 查询部门管理数据
 
-    public Map<String,Object> selectDeptNamesByCode(String code);
+     * @param dept 部门树形信息
+     * @return 部门信息集合
+     */
+    public List<SysDept> selectDeptTreeList(SysDept dept);
 }

+ 28 - 13
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysMenuMapper.java

@@ -16,38 +16,53 @@ public interface SysMenuMapper extends BaseMapperPlus<SysMenu>
 {
     /**
      * 查询系统菜单列表
-     * 
+     *
      * @param menu 菜单信息
      * @return 菜单列表
      */
     public List<SysMenu> selectMenuList(SysMenu menu);
 
+    /**
+     * 根据用户所有权限
+     *
+     * @return 权限列表
+     */
+    public List<String> selectMenuPerms();
+
     /**
      * 根据用户查询系统菜单列表
-     * 
+     *
      * @param menu 菜单信息
      * @return 菜单列表
      */
     public List<SysMenu> selectMenuListByUserId(SysMenu menu);
 
+    /**
+     * 根据角色ID查询权限
+     *
+     * @param roleId 角色ID
+     * @return 权限列表
+     */
+    public List<String> selectMenuPermsByRoleId(Long roleId);
+
     /**
      * 根据用户ID查询权限
-     * 
+     *
      * @param userId 用户ID
      * @return 权限列表
      */
-    public List<SysMenuRoleVo> selectMenuPermsByUserId(Long userId);
+    public List<String> selectMenuPermsByUserId(Long userId);
 
     /**
      * 根据用户ID查询菜单
-     * 
+     *
      * @return 菜单列表
      */
     public List<SysMenu> selectMenuTreeAll();
 
     /**
      * 根据用户ID查询菜单
-     * 
+     *
      * @param userId 用户ID
      * @return 菜单列表
      */
@@ -55,7 +70,7 @@ public interface SysMenuMapper extends BaseMapperPlus<SysMenu>
 
     /**
      * 根据角色ID查询菜单树信息
-     * 
+     *
      * @param roleId 角色ID
      * @param menuCheckStrictly 菜单树选择项是否关联显示
      * @return 选中菜单列表
@@ -64,7 +79,7 @@ public interface SysMenuMapper extends BaseMapperPlus<SysMenu>
 
     /**
      * 根据菜单ID查询信息
-     * 
+     *
      * @param menuId 菜单ID
      * @return 菜单信息
      */
@@ -72,7 +87,7 @@ public interface SysMenuMapper extends BaseMapperPlus<SysMenu>
 
     /**
      * 是否存在菜单子节点
-     * 
+     *
      * @param menuId 菜单ID
      * @return 结果
      */
@@ -80,7 +95,7 @@ public interface SysMenuMapper extends BaseMapperPlus<SysMenu>
 
     /**
      * 新增菜单信息
-     * 
+     *
      * @param menu 菜单信息
      * @return 结果
      */
@@ -88,7 +103,7 @@ public interface SysMenuMapper extends BaseMapperPlus<SysMenu>
 
     /**
      * 修改菜单信息
-     * 
+     *
      * @param menu 菜单信息
      * @return 结果
      */
@@ -96,7 +111,7 @@ public interface SysMenuMapper extends BaseMapperPlus<SysMenu>
 
     /**
      * 删除菜单管理信息
-     * 
+     *
      * @param menuId 菜单ID
      * @return 结果
      */
@@ -104,7 +119,7 @@ public interface SysMenuMapper extends BaseMapperPlus<SysMenu>
 
     /**
      * 校验菜单名称是否唯一
-     * 
+     *
      * @param menuName 菜单名称
      * @param parentId 父菜单ID
      * @return 结果

+ 18 - 11
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysRoleMapper.java

@@ -14,7 +14,7 @@ public interface SysRoleMapper extends BaseMapperPlus<SysRole>
 {
     /**
      * 根据条件分页查询角色数据
-     * 
+     *
      * @param role 角色信息
      * @return 角色数据集合信息
      */
@@ -22,15 +22,22 @@ public interface SysRoleMapper extends BaseMapperPlus<SysRole>
 
     /**
      * 根据用户ID查询角色
-     * 
+     *
      * @param userId 用户ID
      * @return 角色列表
      */
     public List<SysRole> selectRolePermissionByUserId(Long userId);
 
+    /**
+     * 查询所有角色
+     *
+     * @return 角色列表
+     */
+    public List<SysRole> selectRoleAll();
+
     /**
      * 根据用户ID获取角色选择框列表
-     * 
+     *
      * @param userId 用户ID
      * @return 选中角色ID列表
      */
@@ -38,7 +45,7 @@ public interface SysRoleMapper extends BaseMapperPlus<SysRole>
 
     /**
      * 通过角色ID查询角色
-     * 
+     *
      * @param roleId 角色ID
      * @return 角色对象信息
      */
@@ -46,7 +53,7 @@ public interface SysRoleMapper extends BaseMapperPlus<SysRole>
 
     /**
      * 根据用户ID查询角色
-     * 
+     *
      * @param userName 用户名
      * @return 角色列表
      */
@@ -54,7 +61,7 @@ public interface SysRoleMapper extends BaseMapperPlus<SysRole>
 
     /**
      * 校验角色名称是否唯一
-     * 
+     *
      * @param roleName 角色名称
      * @return 角色信息
      */
@@ -62,7 +69,7 @@ public interface SysRoleMapper extends BaseMapperPlus<SysRole>
 
     /**
      * 校验角色权限是否唯一
-     * 
+     *
      * @param roleKey 角色权限
      * @return 角色信息
      */
@@ -70,7 +77,7 @@ public interface SysRoleMapper extends BaseMapperPlus<SysRole>
 
     /**
      * 修改角色信息
-     * 
+     *
      * @param role 角色信息
      * @return 结果
      */
@@ -78,7 +85,7 @@ public interface SysRoleMapper extends BaseMapperPlus<SysRole>
 
     /**
      * 新增角色信息
-     * 
+     *
      * @param role 角色信息
      * @return 结果
      */
@@ -86,7 +93,7 @@ public interface SysRoleMapper extends BaseMapperPlus<SysRole>
 
     /**
      * 通过角色ID删除角色
-     * 
+     *
      * @param roleId 角色ID
      * @return 结果
      */
@@ -94,7 +101,7 @@ public interface SysRoleMapper extends BaseMapperPlus<SysRole>
 
     /**
      * 批量删除角色信息
-     * 
+     *
      * @param roleIds 需要删除的角色ID
      * @return 结果
      */

+ 2 - 2
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java

@@ -70,8 +70,6 @@ public interface SysUserMapper extends BaseMapperPlus<SysUser>
      */
     public int updateUser(SysUser user);
 
-    public void insertUserHistory(SysUser user);
-
     /**
      * 修改用户头像
      *
@@ -158,4 +156,6 @@ public interface SysUserMapper extends BaseMapperPlus<SysUser>
     public void updateUserByZhxx(SysUser user);
 
     HashMap<String,Long> selectJgCount(SysUser user);
+
+    public void insertUserHistory(SysUser user);
 }

+ 1 - 1
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDeptService.java

@@ -25,7 +25,7 @@ public interface ISysDeptService
      * @param dept 部门树形信息
      * @return 部门信息集合
      */
-    public List<SysDept> selectDeptTreeList(SysDept dept);
+    public List<TreeSelect> selectDeptTreeList(SysDept dept);
 
     /**
      * 构建前端所需要树结构

+ 10 - 3
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysMenuService.java

@@ -1,10 +1,9 @@
 package com.ruoyi.system.service;
 
 import java.util.List;
-
+import java.util.Set;
 import com.ruoyi.system.domain.SysMenu;
 import com.ruoyi.system.domain.vo.RouterVo;
-import com.ruoyi.system.domain.SysMenuRoleVo;
 import com.ruoyi.system.domain.vo.TreeSelect;
 
 /**
@@ -37,7 +36,15 @@ public interface ISysMenuService
      * @param userId 用户ID
      * @return 权限列表
      */
-    public List<SysMenuRoleVo> selectMenuPermsByUserId(Long userId);
+    public Set<String> selectMenuPermsByUserId(Long userId);
+
+    /**
+     * 根据角色ID查询权限
+     * 
+     * @param roleId 角色ID
+     * @return 权限列表
+     */
+    public Set<String> selectMenuPermsByRoleId(Long roleId);
 
     /**
      * 根据用户ID查询菜单树信息

+ 9 - 5
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysPermissionService.java

@@ -1,10 +1,14 @@
 package com.ruoyi.system.service;
 
-import com.ruoyi.system.domain.SysMenuRoleVo;
-
-import java.util.List;
 import java.util.Set;
 
+import com.ruoyi.system.api.domain.SysUser;
+
+/**
+ * 权限信息 服务层
+ * 
+ * @author ruoyi
+ */
 public interface ISysPermissionService
 {
     /**
@@ -13,7 +17,7 @@ public interface ISysPermissionService
      * @param userId 用户Id
      * @return 角色权限信息
      */
-    public Set<String> getRolePermission(Long userId);
+    public Set<String> getRolePermission(SysUser user);
 
     /**
      * 获取菜单数据权限
@@ -21,5 +25,5 @@ public interface ISysPermissionService
      * @param userId 用户Id
      * @return 菜单权限信息
      */
-    public List<SysMenuRoleVo> getMenuPermission(Long userId);
+    public Set<String> getMenuPermission(SysUser user);
 }

+ 2 - 2
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java

@@ -53,9 +53,9 @@ public class SysDeptServiceImpl implements ISysDeptService
 
     @Override
     @DataScope(deptAlias = "d")
-    public List<SysDept> selectDeptTreeList(SysDept dept)
+    public List<TreeSelect> selectDeptTreeList(SysDept dept)
     {
-        return deptMapper.selectDeptTreeList(dept);
+        return buildDeptTreeSelect(deptMapper.selectDeptTreeList(dept));
     }
 
     /**

+ 39 - 21
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java

@@ -10,7 +10,6 @@ import com.ruoyi.system.api.domain.SysRole;
 import com.ruoyi.system.domain.SysMenu;
 import com.ruoyi.system.domain.vo.MetaVo;
 import com.ruoyi.system.domain.vo.RouterVo;
-import com.ruoyi.system.domain.SysMenuRoleVo;
 import com.ruoyi.system.domain.vo.TreeSelect;
 import com.ruoyi.system.mapper.SysMenuMapper;
 import com.ruoyi.system.mapper.SysRoleMapper;
@@ -46,20 +45,19 @@ public class SysMenuServiceImpl implements ISysMenuService
 
     /**
      * 根据用户查询系统菜单列表
-     * 
+     *
      * @param userId 用户ID
      * @return 菜单列表
      */
     @Override
     public List<SysMenu> selectMenuList(Long userId)
     {
-        SysMenu menu = new SysMenu();
-        return selectMenuList(menu, userId);
+        return selectMenuList(new SysMenu(), userId);
     }
 
     /**
      * 查询系统菜单列表
-     * 
+     *
      * @param menu 菜单信息
      * @return 菜单列表
      */
@@ -82,27 +80,47 @@ public class SysMenuServiceImpl implements ISysMenuService
 
     /**
      * 根据用户ID查询权限
-     * 
+     *
      * @param userId 用户ID
      * @return 权限列表
      */
     @Override
-    public List<SysMenuRoleVo> selectMenuPermsByUserId(Long userId)
+    public Set<String> selectMenuPermsByUserId(Long userId)
     {
-        List<SysMenuRoleVo> sysMenuRoleVos = menuMapper.selectMenuPermsByUserId(userId);
-//        List<String> perms = (List<String>) sysMenuRoleVos;
-//        Set<String> permsSet = new HashSet<>();
-//        for (String perm : perms)
-//        {
-//            if (StringUtils.isNotEmpty(perm))
-//            {
-//                permsSet.addAll(Arrays.asList(perm.trim().split(",")));
-//            }
-//        }
-//        return permsSet;
-        return sysMenuRoleVos;
+        List<String> perms = menuMapper.selectMenuPermsByUserId(userId);
+        Set<String> permsSet = new HashSet<>();
+        for (String perm : perms)
+        {
+            if (StringUtils.isNotEmpty(perm))
+            {
+                permsSet.addAll(Arrays.asList(perm.trim().split(",")));
+            }
+        }
+        return permsSet;
     }
 
+    /**
+     * 根据角色ID查询权限
+     *
+     * @param roleId 角色ID
+     * @return 权限列表
+     */
+    @Override
+    public Set<String> selectMenuPermsByRoleId(Long roleId)
+    {
+        List<String> perms = menuMapper.selectMenuPermsByRoleId(roleId);
+        Set<String> permsSet = new HashSet<>();
+        for (String perm : perms)
+        {
+            if (StringUtils.isNotEmpty(perm))
+            {
+                permsSet.addAll(Arrays.asList(perm.trim().split(",")));
+            }
+        }
+        return permsSet;
+    }
+
+
     /**
      * 根据用户ID查询菜单
      * 
@@ -551,8 +569,8 @@ public class SysMenuServiceImpl implements ISysMenuService
      */
     public String innerLinkReplaceEach(String path)
     {
-        return StringUtils.replaceEach(path, new String[] { Constants.HTTP, Constants.HTTPS },
-                new String[] { "", "" });
+        return StringUtils.replaceEach(path, new String[] { Constants.HTTP, Constants.HTTPS, Constants.WWW, "." },
+                new String[] { "", "", "", "/" });
     }
 
 }

+ 41 - 25
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysPermissionServiceImpl.java

@@ -1,17 +1,21 @@
 package com.ruoyi.system.service.impl;
 
-import com.ruoyi.common.security.utils.SecurityUtils;
-import com.ruoyi.system.domain.SysMenuRoleVo;
-import com.ruoyi.system.service.ISysMenuService;
-import com.ruoyi.system.service.ISysPermissionService;
-import com.ruoyi.system.service.ISysRoleService;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
 import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.ruoyi.system.api.domain.SysRole;
+import com.ruoyi.system.api.domain.SysUser;
+import com.ruoyi.system.service.ISysMenuService;
+import com.ruoyi.system.service.ISysPermissionService;
+import com.ruoyi.system.service.ISysRoleService;
 
+/**
+ * 用户权限处理
+ * 
+ * @author ruoyi
+ */
 @Service
 public class SysPermissionServiceImpl implements ISysPermissionService
 {
@@ -28,17 +32,17 @@ public class SysPermissionServiceImpl implements ISysPermissionService
      * @return 角色权限信息
      */
     @Override
-    public Set<String> getRolePermission(Long userId)
+    public Set<String> getRolePermission(SysUser user)
     {
         Set<String> roles = new HashSet<String>();
         // 管理员拥有所有权限
-        if (SecurityUtils.isAdmin(userId))
+        if (user.isAdmin())
         {
             roles.add("admin");
         }
         else
         {
-            roles.addAll(roleService.selectRolePermissionByUserId(userId));
+            roles.addAll(roleService.selectRolePermissionByUserId(user.getUserId()));
         }
         return roles;
     }
@@ -50,20 +54,32 @@ public class SysPermissionServiceImpl implements ISysPermissionService
      * @return 菜单权限信息
      */
     @Override
-    public List<SysMenuRoleVo> getMenuPermission(Long userId)
+    public Set<String> getMenuPermission(SysUser user)
     {
-//        Set<String> perms = new HashSet<String>();
-//        // 管理员拥有所有权限
-//        if (SecurityUtils.isAdmin(userId))
-//        {
-//            perms.add("*:*:*");
-//        }
-//        else
-//        {
-//            perms.addAll(menuService.selectMenuPermsByUserId(userId));
-//        }
-//        return perms;
-
-        return menuService.selectMenuPermsByUserId(userId);
+        Set<String> perms = new HashSet<String>();
+        // 管理员拥有所有权限
+        if (user.isAdmin())
+        {
+            perms.add("*:*:*");
+        }
+        else
+        {
+            List<SysRole> roles = user.getRoles();
+            if (!roles.isEmpty() && roles.size() > 1)
+            {
+                // 多角色设置permissions属性,以便数据权限匹配权限
+                for (SysRole role : roles)
+                {
+                    Set<String> rolePerms = menuService.selectMenuPermsByRoleId(role.getRoleId());
+                    role.setPermissions(rolePerms);
+                    perms.addAll(rolePerms);
+                }
+            }
+            else
+            {
+                perms.addAll(menuService.selectMenuPermsByUserId(user.getUserId()));
+            }
+        }
+        return perms;
     }
 }