Quellcode durchsuchen

增加数据源管理

david vor 2 Jahren
Ursprung
Commit
ee062151e8

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


+ 39 - 0
src/main/java/com/roma/romaapi/controller/ApiController.java

@@ -147,6 +147,35 @@ public class ApiController {
         return CustomResponse.formatResponse(ret);
     }
 
+    // 返回带分页格式数据-数据源管理
+    @RequestMapping("/api/datasourceManageList")
+    public Map datasourceManageList(HttpServletRequest request, @RequestBody String data){
+        Map maps = commonUtil.analysisRequestParams(request, data); // 参数
+        Map<String, Object> ret;
+        ret = apiService.datasourceListHasPaging(maps);
+
+        return CustomResponse.formatResponse(ret);
+    }
+
+    // 新增/编辑数据源
+    @RequestMapping("/api/saveDatasource")
+    public Map saveDatasource(HttpServletRequest request, @RequestBody String data) {
+        Map maps = commonUtil.analysisRequestParams(request, data); // 参数
+
+        Map ret = apiService.saveDatasource(maps);
+
+        return CustomResponse.formatResponse(ret);
+    }
+
+    // /api/deleteDatasource 删除
+    @RequestMapping("/api/deleteDatasource")
+    public Map deleteDatasource(HttpServletRequest request, @RequestBody String data) {
+        Map maps = commonUtil.analysisRequestParams(request, data); // 参数
+        Map ret = apiService.delDatasource(maps);
+
+        return CustomResponse.formatResponse(ret);
+    }
+
     // 返回带分页格式的数据-sql列表管理页
     @RequestMapping("/api/sqlManageList")
     public Map sqlManageList(HttpServletRequest request, @RequestBody String data){
@@ -363,4 +392,14 @@ public class ApiController {
 
         return CustomResponse.formatResponse(ret);
     }
+
+    // sql管理选择数据库配置项,且为options格式
+    @RequestMapping("/api/datasource")
+    public Map optionDatasource(){
+        Map<String, Object> ret = new HashMap<>();
+        List pageList = apiService.datasource();
+        ret.put("options", pageList);
+
+        return CustomResponse.formatResponse(ret);
+    }
 }

+ 47 - 3
src/main/java/com/roma/romaapi/dao/ApiDao.java

@@ -179,13 +179,36 @@ public class ApiDao {
         }
     }
 
+    // 添加/编辑数据源数据
+    public Integer saveDatasource(Map<String, Object> bindValue, String editId) {
+        String sql = "";
+        if (editId.length()==0) {
+            sql = " INSERT INTO `datasource_config` (`datasource_url`,`datasource_code`,`datasource_username`," +
+                    "`datasource_password`,`created_at`)  " +
+                    "VALUES (:datasourceUrl,:datasourceCode,:datasourceUsername,:datasourcePassword,:createdAt)  ";
+            KeyHolder keyHolder = new GeneratedKeyHolder();
+            Integer row = namedParameterJdbcTemplate.update(sql, new MapSqlParameterSource(bindValue), keyHolder);
+            int k = keyHolder.getKey().intValue();
+
+            return k;
+        } else {
+            bindValue.put("id", editId);
+            sql = " UPDATE `datasource_config` SET `datasource_url`=:datasourceUrl,`datasource_code`=:datasourceCode," +
+                    "`datasource_username`=:datasourceUsername,`datasource_password`=:datasourcePassword " +
+                    " WHERE id=:id";
+            Integer row = namedParameterJdbcTemplate.update(sql, bindValue);
+
+            return row;
+        }
+    }
+
     // 添加/编辑sql_details表数据
     public Integer addSqlDetails(Map<String, Object> bindValue, String editId) {
         String sql = "";
         if (editId.length()==0) {
             sql = " INSERT INTO `sql_details` (`sql_name`,`sql_code`,`sql_string`,`sql_type`,`is_list`," +
-                    "`is_enable`,`created_user`,`created_at`,`sql_description`)  " +
-                    "VALUES (:sqlName,:sqlCode,:sqlString,:sqlType,:isList,:isEnable,:actionUser,:createdAt, :sqlDesc)  ";
+                    "`is_enable`,`created_user`,`created_at`,`sql_description`, `datasource_code`)  " +
+                    "VALUES (:sqlName,:sqlCode,:sqlString,:sqlType,:isList,:isEnable,:actionUser,:createdAt, :sqlDesc, :datasourceCode)  ";
             KeyHolder keyHolder = new GeneratedKeyHolder();
             Integer row = namedParameterJdbcTemplate.update(sql, new MapSqlParameterSource(bindValue), keyHolder);
             int k = keyHolder.getKey().intValue();
@@ -194,7 +217,7 @@ public class ApiDao {
         } else {
             bindValue.put("id", editId);
             sql = " UPDATE `sql_details` SET `sql_name`=:sqlName,`sql_code`=:sqlCode,`sql_string`=:sqlString,`sql_type`=:sqlType," +
-                    "`is_list`=:isList,`is_enable`=:isEnable,`sql_description`=:sqlDesc,`update_user`=:actionUser WHERE id=:id";
+                    "`is_list`=:isList,`is_enable`=:isEnable,`sql_description`=:sqlDesc,`update_user`=:actionUser,`datasource_code`=:datasourceCode WHERE id=:id";
             Integer row = namedParameterJdbcTemplate.update(sql, bindValue);
 
             return row;
@@ -405,4 +428,25 @@ public class ApiDao {
 
         return updateRet;
     }
+
+    // 判断是否有sql在使用此数据源
+    public Boolean usedDatasource(Map params){
+        Map sqlParams = new HashMap<>();
+        sqlParams.put("datasourceCode", params.get("datasource_code"));
+        String hasUserSql = " SELECT * FROM `sql_details` WHERE `datasource_code`=:datasourceCode";
+        List<Map<String, Object>> resMap2 = namedParameterJdbcTemplate.queryForList(hasUserSql, sqlParams);
+        if (resMap2 == null || resMap2.size() < 1) {
+            return true;
+        }
+
+        return false;
+    }
+
+    // 通过id删除此数据
+    public Integer deleteDatasourceById(Map bindValue) {
+        String sql = " DELETE FROM `datasource_config` WHERE id=:id ";
+        Integer updateRet = namedParameterJdbcTemplate.update(sql, bindValue);
+
+        return updateRet;
+    }
 }

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

@@ -121,6 +121,27 @@ public class PageDao {
         return resMap2;
     }
 
+    // Sql页面管理-获取总数
+    public Integer getAllDatasourceListHasPagingCount(Map bindValue) {
+        // 获取总数
+        String countInnerSql = " SELECT * FROM `datasource_config` WHERE 1=1 ";
+        String countSql = "SELECT COUNT(*) AS `totalData` FROM ( " + countInnerSql + " ) AS ROMA";
+        Integer count = namedParameterJdbcTemplate.queryForObject(countSql, bindValue, Integer.class);
+
+        return count;
+    }
+
+    // Sql页面管理-获取带分页的列表数据
+    public List<Map<String, Object>> getAllDatasourceListHasPaging(Map bindValue, String page, String perPage, Integer count) {
+        // 计算分页
+        String limitAfter = commonUtil.calcPagingString(count, page, perPage);
+        String listSql = "SELECT  *  FROM `datasource_config` WHERE 1=1 ORDER BY `id` DESC " + " LIMIT " + limitAfter;
+
+        List<Map<String, Object>> resMap2 = namedParameterJdbcTemplate.queryForList(listSql, bindValue);
+
+        return resMap2;
+    }
+
     // Api页面管理-获取总数
     public Integer getAllApiListHasPagingCount(Map bindValue) {
         // 获取总数
@@ -199,6 +220,15 @@ public class PageDao {
         return resMap2;
     }
 
+    // 获取全部的数据库配置
+    public List<Map<String, Object>> getAllDatasource() {
+        Map<String, Object> paramMap = new HashMap<>();
+        String sql = " SELECT  *  FROM `datasource_config` ORDER BY `id` DESC ";
+        List<Map<String, Object>> resMap2 = namedParameterJdbcTemplate.queryForList(sql, paramMap);
+
+        return resMap2;
+    }
+
     // 用户管理-获取总数
     public Integer getAllUserListHasPagingCount(Map bindValue) {
         // 获取总数

+ 75 - 0
src/main/java/com/roma/romaapi/service/ApiService.java

@@ -201,6 +201,28 @@ public class ApiService {
         return info;
     }
 
+    // 删除数据源表数据
+    public Map delDatasource(Map params) {
+        Map ret = new HashMap<>();
+        String id = params.get("id").toString();
+        Boolean isUsed = apiDao.usedDatasource(params);// 判断是否有sql在使用此数据源
+        if(!isUsed) {
+            ret.put("sysErrorCode", "51000");
+            ret.put("sysErrorMessage", "此数据被Sql使用中,无法删除");
+
+            return ret;
+        }
+        // 删除此数据源配置
+        Map deleteParams = new HashMap<>();
+        deleteParams.put("id", id);
+        Integer delRet = apiDao.deleteDatasourceById(deleteParams);
+        if (delRet < 1) {
+            ret.put("sysErrorCode", "51000");
+        }
+
+        return ret;
+    }
+
     // 删除对应基础表数据
     public Map delDetailById(Map params) {
         Map ret = new HashMap<>();
@@ -315,6 +337,26 @@ public class ApiService {
         return res;
     }
 
+    // 数据源管理列表-获取带分页的page数据
+    public Map datasourceListHasPaging(Map<String, String> maps) {
+        String page = "1"; // 页数
+        String perPage = "15"; // 显示多少条
+        Map res = new HashMap<>();
+        Map bindData = commonUtil.filterApiBindParams(maps);
+        if(maps.containsKey("page")) {
+            page = maps.get("page");
+        }
+        if(maps.containsKey("perPage")) {
+            perPage = maps.get("perPage");
+        }
+        Integer count = pageDao.getAllDatasourceListHasPagingCount(bindData);
+        List info = pageDao.getAllDatasourceListHasPaging(bindData, page, perPage, count);
+        res.put("count", count);
+        res.put("rows", info);
+
+        return res;
+    }
+
     // api管理列表-获取带分页的page数据
     public Map apiListHasPaging(Map<String, String> maps) {
         String page = "1"; // 页数
@@ -385,6 +427,14 @@ public class ApiService {
         return menuData;
     }
 
+    // 获取数据库配置源
+    public List datasource() {
+        Map<String, Object> map = new HashMap<>();
+        List<Map<String, Object>> datasource = pageDao.getAllDatasource();
+
+        return datasource;
+    }
+
     // 获取全部sql_details---配置权限关联item使用,无分页
     public List itemList() {
         Map<String, Object> map = new HashMap<>();
@@ -649,10 +699,34 @@ public class ApiService {
         return retInfo;
     }
 
+    // 添加数据源
+    public Map saveDatasource(Map maps){
+        // 通过是否存在id,判读是新增还是修改
+        String editId = "";
+        if (maps.containsKey("id")) {
+            editId = maps.get("id").toString();
+        }
+        String createdAt = commonUtil.getNowYYMMDDHHIISS();
+        Map params = new HashMap<>();
+        params.put("datasourceCode", maps.get("datasource_code"));
+        params.put("datasourceUrl", maps.get("datasource_url"));
+        params.put("datasourceUsername", maps.get("datasource_username"));
+        params.put("datasourcePassword", maps.get("datasource_password"));
+        params.put("createdAt", createdAt);
+        // 添加/编辑Sql
+        Integer pageId = apiDao.saveDatasource(params, editId);
+        Map retInfo = new HashMap<>();
+        if(pageId <= 0){
+            retInfo.put("sysErrorCode", "500");
+        }
+        return retInfo;
+    }
+
     // 添加sql_details表数据
     public Map addSql(Map maps, String authorization) {
         String sqlDesc = "";
         String isList = "0";
+        String datasource = maps.get("datasource_code").toString();
         if (maps.containsKey("is_list")) {
             isList = maps.get("is_list").toString();
         }
@@ -678,6 +752,7 @@ public class ApiService {
         addPagePamars.put("sqlName", sqlName);
         addPagePamars.put("sqlString", sqlString);
         addPagePamars.put("sqlDesc", sqlDesc);
+        addPagePamars.put("datasourceCode", datasource);
         Map<String, Object> loginResult = this.userInfo(authorization);
         addPagePamars.put("actionUser", loginResult.get("userName")); // 获取当前用户信息
         if (editId.length()==0) {