|
@@ -3,8 +3,10 @@ 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.constant.GenConstants;
|
|
|
import com.boman.common.core.utils.SecurityUtils;
|
|
|
import com.boman.common.core.utils.StringUtils;
|
|
|
+import com.boman.common.core.utils.array.ArrayUtils;
|
|
|
import com.boman.common.core.utils.collection.CollectionUtils;
|
|
|
import com.boman.common.core.utils.obj.ObjectUtils;
|
|
|
import com.boman.domain.GenTableColumn;
|
|
@@ -13,6 +15,7 @@ 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.math.NumberUtils;
|
|
|
|
|
|
import java.sql.Timestamp;
|
|
|
import java.util.Comparator;
|
|
@@ -239,6 +242,47 @@ public class ColumnUtils {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 功能描述: 处理必填项
|
|
|
+ *
|
|
|
+ * @param commitData 需要提交的数据
|
|
|
+ * @param columns 所有的列
|
|
|
+ */
|
|
|
+ public static void handleRequired(JSONObject commitData, List<GenTableColumn> columns) {
|
|
|
+ for (GenTableColumn column : columns) {
|
|
|
+ if (GenTableColumn.IS_REQUIRED.equalsIgnoreCase(column.getIsRequired())) {
|
|
|
+ Object value = commitData.get(column.getColumnName());
|
|
|
+ if ((value instanceof String)) {
|
|
|
+ requireNonNull((String) value, column.getColumnComment() + " 为必填项");
|
|
|
+ } else {
|
|
|
+ requireNonNull(value, column.getColumnComment() + " 为必填项");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 功能描述: 处理输入类型的不合法
|
|
|
+ *
|
|
|
+ * @param commitData 需要提交的数据
|
|
|
+ * @param columns 所有的列
|
|
|
+ */
|
|
|
+ public static void handleInputType(JSONObject commitData, List<GenTableColumn> columns) {
|
|
|
+ for (Map.Entry<String, Object> entry : commitData.entrySet()) {
|
|
|
+ Object value =entry.getValue();
|
|
|
+ for (GenTableColumn column : columns) {
|
|
|
+ if (entry.getKey().equals(column.getColumnName())
|
|
|
+ && ArrayUtils.arraysContains(GenConstants.COLUMNTYPE_NUMBER, getDbType(column.getColumnType()))) {
|
|
|
+ if ((value instanceof Number)) {
|
|
|
+ // ignore 这里的if不能删掉,因为else if有一个强转
|
|
|
+ } else if (!NumberUtils.isCreatable(((String) value))) {
|
|
|
+ throw new IllegalArgumentException(column.getColumnComment() + "只能输入数字");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 功能描述: 封装成查询条件 key: 列名, value:查询条件_查询类别
|
|
|
* eg: [{"config_name": ["系统配置", "EQ", "varchar(100)"]}]
|