浏览代码

实体表保存修改

lvy 1 月之前
父节点
当前提交
70908c432d

+ 1 - 1
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/ProjectInfoController.java

@@ -282,7 +282,7 @@ public class ProjectInfoController extends BladeController {
     @PostMapping("/collectProject")
     @ApiOperationSupport(order = 14)
     @ApiOperation(value = "收藏项目、取消收藏项目", notes = "传入项目id")
-    public R<Boolean> collectProject(@RequestBody Long projectId) {
+    public R<Boolean> collectProject(@RequestParam Long projectId) {
         Long userId = AuthUtil.getUserId();
         if (userId == null) {
             return R.fail("用户未登录");

+ 32 - 16
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/ExcelTabServiceImpl.java

@@ -1410,12 +1410,12 @@ public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTa
             }
         }
         keySql.append("id");
-        valSql.append(id == null ? SnowFlakeUtil.getId() : id + ", ");
+        valSql.append(id == null ? SnowFlakeUtil.getId() : id);
         if (groupId ==  null) {
             groupId = dataMap2.get("group_id");
         }
         if (groupId != null) {
-            keySql.append(", group_id, ");
+            keySql.append(", group_id");
             valSql.append(", ").append(groupId);
         }
         if (pKeyId == null) {
@@ -1431,15 +1431,23 @@ public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTa
         dataMap2.remove("group_id");
         dataMap2.remove("p_key_id");
         String fields = dataMap2.keySet().stream().map(key -> "'" + key + "'").collect(Collectors.joining(","));
-        List<Map<String, Object>> fieldMap = jdbcTemplate.queryForList("select distinct COLUMN_NAME as fieldName, CHARACTER_MAXIMUM_LENGTH as fieldLength from information_schema.COLUMNS where  TABLE_NAME = '" + tabName +
-                "' and COLUMN_NAME in (" + fields + ")");
-        Map<String, Integer> map = fieldMap.stream().collect(toMap(k -> k.get("fieldName") + "", v -> {
+        Map<String, Integer> map = new HashMap<>();
+        if (!fields.isEmpty()) {
             try {
-                return Integer.parseInt(v.get("fieldLength") + "");
+                fields = fields + ", 'key_201'";
+                List<Map<String, Object>> fieldMap = jdbcTemplate.queryForList("select distinct COLUMN_NAME as fieldName, CHARACTER_MAXIMUM_LENGTH as fieldLength from information_schema.COLUMNS where  TABLE_NAME = '" + tabName +
+                        "' and COLUMN_NAME in (" + fields + ")");
+                map = fieldMap.stream().collect(toMap(k -> k.get("fieldName") + "", v -> {
+                    try {
+                        return Integer.parseInt(v.get("fieldLength") + "");
+                    } catch (Exception e) {
+                        return 0;
+                    }
+                }, Math::min));
             } catch (Exception e) {
-                return 0;
+                e.printStackTrace();
             }
-        }, Math::min));
+        }
         for (String key : dataMap2.keySet()) {
             String[] split = key.split("_");
             if (split.length > 1 && Integer.parseInt(split[1]) > 80) {
@@ -1461,16 +1469,24 @@ public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTa
         }
         if (!opsParamMap.isEmpty()) {
             keySql.append(", key_201");
-            Integer i = map.get("key_201");
             String data = DataStructureFormatUtils.buildData(opsParamMap);
-            if (i != null && data.length() > i) {
-                if (i < 10000) {
-                    // 65535 byte
-                    jdbcTemplate.execute("alter table " + tabName + " modify column key_201 text");
-                }else {
-                    // 16777215 byte
-                    jdbcTemplate.execute("alter table " + tabName + " modify column key_201 mediumtext");
+            try {
+                if (!map.containsKey( "key_201")) {
+                    jdbcTemplate.execute("alter table " + tabName + " add column key_201 text");
+                } else  {
+                    Integer i = map.get("key_201");
+                    if (data.length() > i) {
+                        if (i < 10000) {
+                            // 65535 byte
+                            jdbcTemplate.execute("alter table " + tabName + " modify column key_201 text");
+                        }else {
+                            // 16777215 byte
+                            jdbcTemplate.execute("alter table " + tabName + " modify column key_201 mediumtext");
+                        }
+                    }
                 }
+            } catch (Exception e) {
+                e.printStackTrace();
             }
             valSql.append(", '").append(data).append("'");
         }

+ 37 - 21
blade-service/blade-meter/src/main/java/org/springblade/meter/controller/TaskController.java

@@ -3560,7 +3560,7 @@ public class TaskController extends BladeController {
         }
     }
 
-    public StringBuilder buildMTableInsertSql(String tabName, Map<String, Object> dataMap2, Object id, Object groupId, Object pKeyId) {
+    public StringBuilder buildMTableInsertSql(String tabName, Map<String, String> dataMap2, Object id, Object groupId, Object pKeyId) {
         if (dataMap2 == null || dataMap2.isEmpty() || tabName == null || tabName.isEmpty()) {
             return new StringBuilder();
         }
@@ -3574,12 +3574,12 @@ public class TaskController extends BladeController {
             }
         }
         keySql.append("id");
-        valSql.append(id == null ? SnowFlakeUtil.getId() : id + ", ");
+        valSql.append(id == null ? SnowFlakeUtil.getId() : id);
         if (groupId ==  null) {
             groupId = dataMap2.get("group_id");
         }
         if (groupId != null) {
-            keySql.append(", group_id, ");
+            keySql.append(", group_id");
             valSql.append(", ").append(groupId);
         }
         if (pKeyId == null) {
@@ -3595,27 +3595,35 @@ public class TaskController extends BladeController {
         dataMap2.remove("group_id");
         dataMap2.remove("p_key_id");
         String fields = dataMap2.keySet().stream().map(key -> "'" + key + "'").collect(Collectors.joining(","));
-        List<Map<String, Object>> fieldMap = jdbcTemplate.queryForList("select distinct COLUMN_NAME as fieldName, CHARACTER_MAXIMUM_LENGTH as fieldLength from information_schema.COLUMNS where  TABLE_NAME = '" + tabName +
-                "' and COLUMN_NAME in (" + fields + ")");
-        Map<String, Integer> map = fieldMap.stream().collect(toMap(k -> k.get("fieldName") + "", v -> {
+        Map<String, Integer> map = new HashMap<>();
+        if (!fields.isEmpty()) {
             try {
-                return Integer.parseInt(v.get("fieldLength") + "");
+                fields = fields + ", 'key_201'";
+                List<Map<String, Object>> fieldMap = jdbcTemplate.queryForList("select distinct COLUMN_NAME as fieldName, CHARACTER_MAXIMUM_LENGTH as fieldLength from information_schema.COLUMNS where  TABLE_NAME = '" + tabName +
+                        "' and COLUMN_NAME in (" + fields + ")");
+                map = fieldMap.stream().collect(toMap(k -> k.get("fieldName") + "", v -> {
+                    try {
+                        return Integer.parseInt(v.get("fieldLength") + "");
+                    } catch (Exception e) {
+                        return 0;
+                    }
+                }, Math::min));
             } catch (Exception e) {
-                return 0;
+                e.printStackTrace();
             }
-        }, Math::min));
+        }
         for (String key : dataMap2.keySet()) {
             String[] split = key.split("_");
             if (split.length > 1 && Integer.parseInt(split[1]) > 80) {
                 // 大于80则保留在扩展字段中
-                opsParamMap.put(key, dataMap2.get(key) == null ? "" : dataMap2.get(key) + "");
+                opsParamMap.put(key, dataMap2.get(key));
             } else {
-                Object value = dataMap2.get(key);
+                String value = dataMap2.get(key);
                 if (value != null) {
                     Integer i = map.get(key);
                     // 长度超过数据库长度也保留在扩展字段中
-                    if (i != null &&  value.toString().length() > i) {
-                        opsParamMap.put(key, value.toString());
+                    if (i != null &&  value.length() > i) {
+                        opsParamMap.put(key, dataMap2.get(key));
                         continue;
                     }
                 }
@@ -3625,16 +3633,24 @@ public class TaskController extends BladeController {
         }
         if (!opsParamMap.isEmpty()) {
             keySql.append(", key_201");
-            Integer i = map.get("key_201");
             String data = DataStructureFormatUtils.buildData(opsParamMap);
-            if (i != null && data.length() > i) {
-                if (i < 10000) {
-                    // 65535 byte
-                    jdbcTemplate.execute("alter table " + tabName + " modify column key_201 text");
-                }else {
-                    // 16777215 byte
-                    jdbcTemplate.execute("alter table " + tabName + " modify column key_201 mediumtext");
+            try {
+                if (!map.containsKey( "key_201")) {
+                    jdbcTemplate.execute("alter table " + tabName + " add column key_201 text");
+                } else  {
+                    Integer i = map.get("key_201");
+                    if (data.length() > i) {
+                        if (i < 10000) {
+                            // 65535 byte
+                            jdbcTemplate.execute("alter table " + tabName + " modify column key_201 text");
+                        }else {
+                            // 16777215 byte
+                            jdbcTemplate.execute("alter table " + tabName + " modify column key_201 mediumtext");
+                        }
+                    }
                 }
+            } catch (Exception e) {
+                e.printStackTrace();
             }
             valSql.append(", '").append(data).append("'");
         }