فهرست منبع

返回给前端的字段类型,按照allColumn对应的类型转换

shiqian 4 سال پیش
والد
کامیت
aaf80f055b

+ 23 - 0
boman-api/boman-domain/src/main/java/com.boman.domain/constant/MysqlDataTypeConst.java

@@ -0,0 +1,23 @@
+package com.boman.domain.constant;
+
+import java.util.List;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+
+/**
+ * @author shiqian
+ * @date 2021年05月13日 18:06
+ **/
+public class MysqlDataTypeConst {
+
+    public static final String BIT_INT = "bigint";
+    public static final String INT = "int";
+    public static final String TINY_INT = "tinyint";
+    public static final String INTEGER = "integer";
+    public static final String MEDIUM_INT = "mediumint";
+
+    public static final List<String> NUMBER = Stream.of(BIT_INT, INT, TINY_INT, INTEGER, MEDIUM_INT)
+            .collect(Collectors.toList());
+
+
+}

+ 4 - 1
boman-web-core/src/main/java/com/boman/web/core/service/TableServiceCmdService.java

@@ -358,7 +358,10 @@ public class TableServiceCmdService {
                         }
                         // fk
                         if (isNotEmpty(column.getForeignKey())) {
-                            column.setFkInfo(getFkInfoForGetObject(column.getFkInfo(), json.get(columnName)));
+                            Object value = json.get(columnName);
+                            column.setFkInfo(getFkInfoForGetObject(column.getFkInfo(), value));
+                            // 转换类型
+                            column.setColumnValue(castNumberValue(columns, columnName, value));
                         }
                         // annex
                         if (HTML_IMAGE_UPLOAD.equalsIgnoreCase(htmlType) || HTML_FILE_UPLOAD.equalsIgnoreCase(htmlType)) {

+ 24 - 4
boman-web-core/src/main/java/com/boman/web/core/utils/ColumnUtils.java

@@ -2,21 +2,19 @@ package com.boman.web.core.utils;
 
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
+import com.alibaba.fastjson.util.TypeUtils;
 import com.boman.common.core.utils.SecurityUtils;
 import com.boman.common.core.utils.StringUtils;
 import com.boman.common.core.utils.collection.CollectionUtils;
 import com.boman.common.core.utils.obj.ObjectUtils;
 import com.boman.domain.GenTableColumn;
+import com.boman.domain.constant.MysqlDataTypeConst;
 import com.boman.domain.exception.UnknownColumnException;
 import com.google.common.base.Joiner;
 import com.google.common.collect.Lists;
 import org.apache.commons.collections4.MapUtils;
-import org.apache.commons.lang3.ArrayUtils;
-import org.apache.commons.lang3.BooleanUtils;
 
-import java.nio.charset.StandardCharsets;
 import java.sql.Timestamp;
-import java.util.ArrayList;
 import java.util.Comparator;
 import java.util.List;
 import java.util.Map;
@@ -320,4 +318,26 @@ public class ColumnUtils {
         return joiner.join(iterable);
     }
 
+    public static String getColumnTypeByColumnName(List<GenTableColumn> columns, String columnName){
+        String result = "";
+        for (GenTableColumn column : columns) {
+            if (column.getColumnName().equals(columnName)) {
+                String columnType = column.getColumnType();
+                result = getDbType(columnType);
+                break;
+            }
+        }
+
+        return result;
+    }
+
+    public static Object castNumberValue(List<GenTableColumn> columns, String columnName, Object value){
+        String columnType = getColumnTypeByColumnName(columns, columnName);
+        if (MysqlDataTypeConst.NUMBER.contains(columnType)) {
+            return TypeUtils.castToLong(value);
+        }
+
+        return value;
+    }
+
 }