Ver Fonte

1、获取用户菜单树

machaoyi há 1 ano atrás
pai
commit
e77a8efb57

+ 16 - 0
application/src/main/java/com/ctsi/Auth/web/login.java

@@ -2,14 +2,19 @@ package com.ctsi.Auth.web;
 
 import cn.dev33.satoken.stp.StpUtil;
 import com.ctsi.Auth.entity.UserForm;
+import com.ctsi.SysMenu.entity.SysMenu;
+import com.ctsi.SysMenu.entity.SysMenuSearchPO;
+import com.ctsi.SysMenu.service.SysMenuService;
 import com.ctsi.SysUser.entity.SysUser;
 import com.ctsi.SysUser.service.SysUserService;
 import com.ctsi.utils.ApiResult;
 import com.ctsi.utils.PasswordEncoderUtil;
 import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
+import java.util.List;
 
 @Api(tags = "授权")
 @RestController
@@ -17,6 +22,9 @@ import javax.annotation.Resource;
 public class login {
     @Resource
     private SysUserService sysUserService;
+    @Resource
+    private SysMenuService sysMenuService;
+    @ApiOperation("登录")
     @PostMapping(value = "/login",name = "登录")
     public ApiResult auth(@RequestBody UserForm userForm){
         SysUser User =  sysUserService.queryByUserName(userForm.getUserName());
@@ -30,6 +38,7 @@ public class login {
         return ApiResult.success("登录成功");
     }
 
+    @ApiOperation("登出")
     @GetMapping(value = "/logout",name = "登出")
     public ApiResult logout(){
         StpUtil.logout();
@@ -40,4 +49,11 @@ public class login {
     public ApiResult islogin(){
         return ApiResult.success(StpUtil.getLoginId());
     }
+
+    @ApiOperation("获取当前用户菜单树")
+    @GetMapping(value = "/getMenuTree",name = "获取当前用户菜单树")
+    public ApiResult<List<SysMenuSearchPO>> getMenuTree(){
+         String userId = StpUtil.getLoginId().toString();
+        return ApiResult.success(sysMenuService.getMenuTree(Long.parseLong(userId)));
+    }
 }

+ 4 - 0
application/src/main/java/com/ctsi/SysMenu/service/SysMenuService.java

@@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ctsi.SysMenu.entity.SysMenu;
 import com.ctsi.SysMenu.entity.SysMenuSearchPO;
 
+import java.util.List;
+
 /**
  * 菜单;(sys_menu)表服务接口
  * @author : machaoyi
@@ -49,4 +51,6 @@ public interface SysMenuService{
      * @return 是否成功
      */
     boolean deleteById(Long id);
+
+    List<SysMenuSearchPO> getMenuTree(Long userId);
 }

+ 12 - 0
application/src/main/java/com/ctsi/SysMenu/service/impl/SysMenuServiceImpl.java

@@ -8,6 +8,8 @@ import com.ctsi.SysMenu.entity.SysMenu;
 import com.ctsi.SysMenu.entity.SysMenuSearchPO;
 import com.ctsi.SysMenu.mapper.SysMenuMapper;
 import com.ctsi.SysMenu.service.SysMenuService;
+import com.ctsi.SysRoleMenu.entity.SysRoleMenu;
+import com.ctsi.SysUserRole.entity.SysUserRole;
 import com.github.yulichang.wrapper.MPJLambdaWrapper;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -157,4 +159,14 @@ public class SysMenuServiceImpl implements SysMenuService{
 
         return parentNode;
     }
+
+    public List<SysMenuSearchPO> getMenuTree(Long userId){
+        MPJLambdaWrapper<SysMenu> chainWrapper = new MPJLambdaWrapper<SysMenu>();
+        chainWrapper.leftJoin(SysRoleMenu.class, SysRoleMenu::getMenuId, SysMenu::getId);
+        chainWrapper.leftJoin(SysUserRole.class, SysUserRole::getRoleId, SysRoleMenu::getRoleId);
+        chainWrapper.eq(SysUserRole::getUserId, userId);
+        chainWrapper.selectAll(SysMenu.class);
+        List<SysMenuSearchPO> sysMenuList = sysMenuMapper.selectJoinList(SysMenuSearchPO.class, chainWrapper);
+        return buildTree(sysMenuList);
+    }
 }