david 2 years ago
parent
commit
0897318ca1

BIN
out/artifacts/roma_api_jar/roma-api.jar


+ 48 - 4
src/main/java/com/roma/romaapi/controller/ApiController.java

@@ -3,6 +3,7 @@ package com.roma.romaapi.controller;
 
 import com.roma.romaapi.service.ApiService;
 import com.roma.romaapi.service.CaptchaService;
+import com.roma.romaapi.utils.CommonUtil;
 import com.roma.romaapi.utils.CustomResponse;
 import com.roma.romaapi.utils.UUIDUtil;
 import jakarta.servlet.http.HttpServletRequest;
@@ -10,13 +11,11 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.data.redis.core.ValueOperations;
-import org.springframework.web.bind.annotation.CrossOrigin;
-import org.springframework.web.bind.annotation.RequestHeader;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 import java.io.IOException;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 import java.util.concurrent.TimeUnit;
 
@@ -32,6 +31,8 @@ public class ApiController {
     private UUIDUtil uuidUtil;
     @Autowired
     private RedisTemplate<String, String> redisTemplate;
+    @Autowired
+    CommonUtil commonUtil;
     // 获取验证码
     @RequestMapping("/login/verifyCode")
     public Map<String, Object> loginVerifyCode() throws IOException {
@@ -62,4 +63,47 @@ public class ApiController {
 
         return CustomResponse.formatResponse(loginResult);
     }
+
+    //=============================================权限相关======================================
+    // 权限管理-获取所有权限
+    @RequestMapping("/api/permissionList")
+    public Map permissionList(HttpServletRequest request) {
+        Map<String, Object> ret = new HashMap<>();
+        List allPermiss = apiService.permissionList();
+        ret.put("options", allPermiss);
+
+        return CustomResponse.formatResponse(ret);
+    }
+
+    @RequestMapping("/api/addPermissions")
+    public Map addPermissions(HttpServletRequest request, @RequestBody String data) {
+        Map maps = commonUtil.analysisRequestParams(request, data); // 参数
+        Map<String, Object> ret = new HashMap<>();
+
+        apiService.addPermissions(maps);
+
+        return CustomResponse.formatResponse(ret);
+    }
+
+
+
+    // 获取所有页面
+//    @RequestMapping("/api/pageList")
+//    public Map pageList(HttpServletRequest request) {
+//        Map<String, Object> ret = new HashMap<>();
+//
+//
+//        List allPermiss = apiService.pageList();
+//        ret.put("options", allPermiss);
+//        System.out.println("------------------------------"+allPermiss);
+//        return CustomResponse.formatResponse(ret);
+//    }
+
+    // 角色管理-获取全部角色
+
+    // 角色分配权限
+
+    // 用户管理-获取全部用户
+
+    // 用户分配角色
 }

+ 8 - 0
src/main/java/com/roma/romaapi/dao/ApiDao.java

@@ -45,4 +45,12 @@ public class ApiDao {
             return resultMap;
         }
     }
+
+    public void addPermissions(Map bindValue) {
+//        insert into tableName(colunm1,colunm2,...) value(value1,value2,...);
+        String sql = "INSERT INTO `roma_permissions` " +
+                "(`parent_id`,`page_id`,`sort`,`value`,`display_name`,`description`,`type`,`created_at`,`icon`,`is_enable`) " +
+                "value(:parent_id,:page_id,:sort,:value,:display_name,:description,:type,:created_at,:icon,:is_enable) ";
+        Integer row = namedParameterJdbcTemplate.update(sql, bindValue);
+    }
 }

+ 17 - 0
src/main/java/com/roma/romaapi/dao/PageDao.java

@@ -44,4 +44,21 @@ public class PageDao {
 
         return resMap2;
     }
+
+    // 获取全部权限
+    public List<Map<String, Object>> getAllMenuForList(){
+        Map<String, Object> paramMap = new HashMap<>();
+        paramMap.put("append_params", "1");
+        String sql = " SELECT  `rp`.`is_enable`,`rp`.`id`,`rp`.`parent_id`,`rp`.`icon`,`rp`.`type`,`rp`.`value` AS `path`,`pd`.`front_path` AS `url`,`rp`.`display_name` AS `label` " +
+                "FROM `roma_permissions` AS `rp` LEFT JOIN `page_details` AS `pd` ON `pd`.`id`=`rp`.`page_id` " +
+                "WHERE  (1=:append_params )  ORDER BY `rp`.`sort` ASC ";
+        List<Map<String, Object>> resMap2 = namedParameterJdbcTemplate.queryForList(sql, paramMap);
+
+        return resMap2;
+    }
+
+    // 获取全部的页面
+//    public List<Map<String, Object>> getAllPageList() {
+//
+//    }
 }

+ 79 - 3
src/main/java/com/roma/romaapi/service/ApiService.java

@@ -1,6 +1,7 @@
 package com.roma.romaapi.service;
 
 import com.roma.romaapi.dao.ApiDao;
+import com.roma.romaapi.dao.PageDao;
 import com.roma.romaapi.utils.CommonUtil;
 import com.roma.romaapi.utils.JWTUtil;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -8,9 +9,7 @@ import org.springframework.data.redis.core.RedisTemplate;
 import com.roma.romaapi.utils.SecurityUtils;
 import org.springframework.stereotype.Service;
 
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Objects;
+import java.util.*;
 import java.util.concurrent.TimeUnit;
 
 @Service
@@ -21,6 +20,8 @@ public class ApiService {
     @Autowired
     private ApiDao apiDao;
     @Autowired
+    PageDao pageDao;  // 引入dao层
+    @Autowired
     SecurityUtils securityUtils;
     @Autowired
     JWTUtil jwtUtil;
@@ -98,4 +99,79 @@ public class ApiService {
         map.put("sysErrorCode","50000");
         return map;
     }
+
+    // 获取全部菜单
+    public List permissionList() {
+        Map<String, Object> map = new HashMap<>();
+        List<Map<String, Object>> menuData = pageDao.getAllMenuForList(); // 获取全部菜单数据
+        List<Map<String, Object>> treeMenu = this.treeMenu(menuData);  // 生成树结构
+
+        return treeMenu;
+    }
+
+    // 新建权限
+    public void addPermissions(Map maps) {
+        System.out.println("权限数据----------------"+maps);
+    }
+
+//    public List pageList() {
+//        List<Map<String, Object>> pageList = pageDao.getAllPageList(); // 获取全部页面数据
+//
+//        return  pageList;
+//    }
+
+
+
+    // 转换tree结构数据
+    private List<Map<String, Object>> treeMenu(List<Map<String, Object>> renderMenu){
+        // 处理的数据存在
+        List<Map<String, Object>> pList = new ArrayList<Map<String, Object>>();// eTree
+        // 获取父节点
+        for (Map<String, Object> tmp : renderMenu) {
+            Object parentId =  tmp.get("parent_id");
+            String stringParentId = parentId.toString();// 上级id
+            Object dataId = tmp.get("id");
+            String stringDataId = dataId.toString();// 主键id
+            if (stringParentId.equals("0")) {
+                // 组装子节点,开始循环去获取子节点
+                List<?> children = menuChild(stringDataId, renderMenu);
+                if(children == null || children.size() == 0) {
+                    tmp.put("leaf", true); // 如果不存在子元素
+                } else {
+                    tmp.put("children", children); // 存在子元素,则添加
+                }
+
+                pList.add(tmp);
+            }
+        }
+
+        return pList;
+    }
+
+    /**
+     * 处理子节点
+     * @param id
+     * @param data
+     * @return
+     */
+    private List<?> menuChild(String id, List<Map<String, Object>> data) {
+        List<Object> lists = new ArrayList<Object>();
+        for (Map<String, Object> map : data) {
+            Object parentId =  map.get("parent_id");
+            String stringParentId = parentId.toString(); // 上级id
+            Object dataId = map.get("id");
+            String stringDataId = dataId.toString(); // 主键id
+            if (stringParentId.equals(id)) {
+                // 组装子节点,开始循环去获取子节点
+                List<?> children = menuChild(stringDataId, data);
+                if(children == null || children.size() == 0) {
+                    map.put("leaf", true); // 如果不存在子元素
+                } else {
+                    map.put("children", children); // 存在子元素,则添加
+                }
+                lists.add(map);
+            }
+        }
+        return lists;
+    }
 }

+ 1 - 1
src/main/resources/application.properties

@@ -1 +1 @@
-#服务
server.port=8056
server.servlet.session.timeout=600

#数据库
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url = jdbc:mysql://172.30.68.186:3306/lowcode?serverTimezone=UTC&tinyInt1isBit=false&transformedBitIsBoolean=false
spring.datasource.username = root
spring.datasource.password = mypass

#redis
spring.redis.database=0
spring.redis.password=
#spring.redis.password=name:password
spring.redis.port=6379
spring.redis.host=127.0.0.1
spring.redis.timeout=5000
+#服务
server.port=8056
server.servlet.session.timeout=600

#数据库
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url = jdbc:mysql://172.20.133.175:3306/lowcode?serverTimezone=UTC&tinyInt1isBit=false&transformedBitIsBoolean=false
spring.datasource.username = root
spring.datasource.password = mypass

#redis
spring.redis.database=0
spring.redis.password=
#spring.redis.password=name:password
spring.redis.port=6379
spring.redis.host=127.0.0.1
spring.redis.timeout=5000