tianyabing %!s(int64=2) %!d(string=hai) anos
pai
achega
4edabe4b3a

+ 1 - 1
src/main/java/com/sky/ioc/config/GlobalExceptionHandler.java

@@ -32,7 +32,7 @@ public class GlobalExceptionHandler {
 
     @ExceptionHandler(Exception.class)
     public ReturnMsg exception(Exception e) {
-        log.error(e.getMessage());
+        log.error(e.getMessage(), e);
         return ReturnMsg.fail(e.getMessage());
     }
 

+ 1 - 1
src/main/java/com/sky/ioc/constant/MsgCode.java

@@ -3,7 +3,7 @@ package com.sky.ioc.constant;
 public class MsgCode {
 
     /** 网络请求返回值 **/
-    public final int SUCCESS = 200;
+    public final int SUCCESS = 0;
     /** 无权限 **/
     public final int NO_PERMISSION = 201;
     /** 参数错误 **/

+ 28 - 0
src/main/java/com/sky/ioc/controller/user/PermissionController.java

@@ -0,0 +1,28 @@
+package com.sky.ioc.controller.user;
+
+import com.sky.ioc.service.user.PermissionService;
+import com.sky.ioc.tool.ReturnMsg;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+@Api(tags = "系统--权限管理")
+@Slf4j
+@RestController
+@RequestMapping("/permission")
+public class PermissionController {
+
+    @Autowired
+    private PermissionService permissionService;
+
+    @ApiOperation("获取权限信息")
+    @GetMapping("/permission")
+    public ReturnMsg getPermission() {
+        return permissionService.getPermission();
+    }
+}

+ 47 - 0
src/main/java/com/sky/ioc/entity/domain/system/Menus.java

@@ -0,0 +1,47 @@
+package com.sky.ioc.entity.domain.system;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class Menus {
+
+    @TableId(type = IdType.AUTO)
+    private Integer id;
+
+    private String name;
+
+    private Integer parent_id;
+
+    private String order_num;
+
+    private String path;
+
+    private String router;
+
+    private String query;
+
+    private Integer is_frame;
+
+    private Integer is_cache;
+
+    private String menu_type;
+
+    private String visible;
+
+    private String status;
+
+    private String perms;
+
+    private String icon;
+
+    private String remark;
+
+    @TableField(exist = false)
+    private List<Menus> children;
+
+}

+ 9 - 0
src/main/java/com/sky/ioc/mapper/user/MenusMapper.java

@@ -0,0 +1,9 @@
+package com.sky.ioc.mapper.user;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.sky.ioc.entity.domain.system.Menus;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface MenusMapper extends BaseMapper<Menus> {
+}

+ 7 - 0
src/main/java/com/sky/ioc/service/user/PermissionService.java

@@ -0,0 +1,7 @@
+package com.sky.ioc.service.user;
+
+import com.sky.ioc.tool.ReturnMsg;
+
+public interface PermissionService {
+    ReturnMsg getPermission();
+}

+ 44 - 0
src/main/java/com/sky/ioc/service/user/impl/PermissionServiceImpl.java

@@ -0,0 +1,44 @@
+package com.sky.ioc.service.user.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.sky.ioc.entity.domain.system.Menus;
+import com.sky.ioc.mapper.user.MenusMapper;
+import com.sky.ioc.service.user.PermissionService;
+import com.sky.ioc.tool.ReturnMsg;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.stream.Collectors;
+
+@Service
+public class PermissionServiceImpl implements PermissionService {
+
+    @Autowired
+    private MenusMapper menusMapper;
+
+    @Override
+    public ReturnMsg getPermission() {
+        List<Menus> menus = menusMapper.selectList(new LambdaQueryWrapper<>());
+        List<Menus> menus1 = this.buildTree(menus);
+        return ReturnMsg.ok(menus1);
+    }
+
+    private List<Menus> buildTree(List<Menus> menusList) {
+        List<Menus> tree = new ArrayList<>();
+        List<Menus> roots = menusList.stream().filter(item -> item.getParent_id() == 0).collect(Collectors.toList());
+        roots.forEach(item->tree.add(findChildren(item, menusList)));
+        return tree;
+    }
+
+    private Menus findChildren(Menus menus, List<Menus> menusList) {
+        menusList.stream().filter(node -> menus.getId().equals(node.getParent_id())).collect(Collectors.toList()).forEach(node -> {
+            if (menus.getChildren() == null) {
+                menus.setChildren(new ArrayList<>());
+            }
+            menus.getChildren().add(findChildren(node, menusList));
+        });
+        return menus;
+    }
+}