shiqian 4 жил өмнө
parent
commit
f75dc6bc47

+ 0 - 17
boman-api/boman-domain/src/main/java/com.boman.domain/GenTable.java

@@ -10,23 +10,6 @@ import java.util.List;
 public class GenTable extends BaseEntity
 {
     private static final long serialVersionUID = 1L;
-    /** {@link com.boman.web.core.utils.AuthUtils#funcType(java.lang.String)}*/
-    /** add */
-    public static final String A = "A";
-    /** modify */
-    public static final String M = "M";
-    /** delete */
-    public static final String D = "D";
-    /** query */
-    public static final String Q = "Q";
-    /** submit */
-    public static final String S = "S";
-    /** unsubmit */
-    public static final String U = "U";
-    /** export */
-    public static final String E = "E";
-    /** import */
-    public static final String I = "I";
 
     /** 编号 */
     private Long id;

+ 12 - 1
boman-api/boman-domain/src/main/java/com.boman.domain/constant/GlobalBtn.java

@@ -6,13 +6,24 @@ package com.boman.domain.constant;
  **/
 public class GlobalBtn {
 
+
+    /** {@link com.boman.web.core.utils.AuthUtils#funcType(java.lang.String)}*/
+
+    /** add */
     public static final String A = "A";
+    /** modify */
     public static final String M = "M";
+    /** delete */
     public static final String D = "D";
+    /** query */
     public static final String Q = "Q";
+    /** submit */
     public static final String S = "S";
+    /** unsubmit */
     public static final String U = "U";
-    public static final String I = "I";
+    /** export */
     public static final String E = "E";
+    /** import */
+    public static final String I = "I";
 
 }

+ 5 - 4
boman-web-core/src/main/java/com/boman/web/core/domain/TableContext.java

@@ -6,6 +6,7 @@ import com.boman.common.redis.RedisKey;
 import com.boman.common.redis.service.RedisService;
 import com.boman.domain.GenTable;
 import com.boman.domain.GenTableColumn;
+import com.boman.domain.constant.GlobalBtn;
 import com.boman.system.api.RemoteMenuService;
 import com.boman.system.api.RemoteRoleDataService;
 import com.boman.system.api.domain.SysUser;
@@ -92,11 +93,11 @@ public class TableContext {
         }
 
         if (ActionType.INSERT.equals(context.getActionType())) {
-            containsFunction(genTable.getMenuRole(), GenTable.A, "模块:[" + functionName + "], 没有新增功能");
-            checkPermsAuth(tableName, GenTable.A);
+            containsFunction(genTable.getMenuRole(), GlobalBtn.A, "模块:[" + functionName + "], 没有新增功能");
+            checkPermsAuth(tableName, GlobalBtn.A);
         } else {
-            containsFunction(genTable.getMenuRole(), GenTable.M, "模块:[" + functionName + "], 没有修改功能");
-            checkPermsAuth(tableName, GenTable.M);
+            containsFunction(genTable.getMenuRole(), GlobalBtn.M, "模块:[" + functionName + "], 没有修改功能");
+            checkPermsAuth(tableName, GlobalBtn.M);
             checkRoleDataAuth(tableName, context.getPkName(), context.getId());
         }
     }

+ 3 - 33
boman-web-core/src/main/java/com/boman/web/core/service/TableServiceCmdService.java

@@ -17,7 +17,6 @@ import com.boman.domain.GenTableColumn;
 import com.boman.domain.SysDictData;
 import com.boman.domain.constant.*;
 import com.boman.domain.dto.RoleMenuDto;
-import com.boman.domain.exception.NoSuchFunctionException;
 import com.boman.gen.api.RemoteGenTableColumnService;
 import com.boman.gen.api.RemoteGenTableService;
 import com.boman.system.api.RemoteMenuService;
@@ -101,9 +100,9 @@ public class TableServiceCmdService {
 
         checkColumn(commitData, context.getColumns());
         // 必填项
-        handlerRequired(commitData, context.getColumns());
+        handleRequired(commitData, context.getColumns());
         // 处理输入类型
-        handlerInputType(commitData, context.getColumns());
+        handleInputType(commitData, context.getColumns());
 
         AjaxResult result;
         // 新增
@@ -133,35 +132,6 @@ public class TableServiceCmdService {
 
     }
 
-    private void handlerInputType(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() + "只能输入数字");
-                    }
-                }
-            }
-        }
-    }
-
-    private void handlerRequired(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() + " 为必填项");
-                }
-            }
-        }
-    }
-
     /**
      * 功能描述: 通用删除接口 (真的删除)
      *
@@ -457,7 +427,7 @@ public class TableServiceCmdService {
             }
         }
         // 删除Q
-        btns.remove(GenTable.Q);
+        btns.remove(GlobalBtn.Q);
         return btns;
     }
 

+ 13 - 12
boman-web-core/src/main/java/com/boman/web/core/utils/AuthUtils.java

@@ -8,6 +8,7 @@ import com.boman.common.redis.service.RedisService;
 import com.boman.domain.GenTable;
 import com.boman.domain.SysRoleData;
 import com.boman.domain.constant.FormDataConstant;
+import com.boman.domain.constant.GlobalBtn;
 import com.boman.domain.exception.NoSuchFunctionException;
 import com.boman.system.api.RemoteMenuService;
 import com.boman.system.api.RemoteRoleDataService;
@@ -35,7 +36,7 @@ public class AuthUtils {
 
     public static boolean checkAuthObjectDelete(GenTable genTable, Long id, String pkName) {
         String functionName = genTable.getFunctionName();
-        if (!containsFunctionBool(genTable.getMenuRole(), GenTable.D, functionName)) {
+        if (!containsFunctionBool(genTable.getMenuRole(), GlobalBtn.D, functionName)) {
             return false;
         }
 
@@ -45,7 +46,7 @@ public class AuthUtils {
             return true;
         }
 
-        if (!checkPermsAuthBool(tableName, GenTable.D)) {
+        if (!checkPermsAuthBool(tableName, GlobalBtn.D)) {
             return false;
         }
 
@@ -53,7 +54,7 @@ public class AuthUtils {
     }
 
     public static void checkAuthQueryList(GenTable genTable, JSONObject condition) {
-        containsFunction(genTable.getMenuRole(), GenTable.Q, "此模块:[" + genTable.getFunctionName() + "], 没有查询功能");
+        containsFunction(genTable.getMenuRole(), GlobalBtn.Q, "此模块:[" + genTable.getFunctionName() + "], 没有查询功能");
 
         LoginUser loginUser = getLoginUser();
         if (SysUser.isAdmin(loginUser.getUserid())) {
@@ -172,7 +173,7 @@ public class AuthUtils {
         List<String> permsList = getLoginUserPermsList();
         String perms = packPermsKey(tableName, funcType);
         if (!permsList.contains(perms)) {
-            LOGGER.error("非法操作,操作人: {},tableName: {}, 操作类型: 此人未配置 {} 权限", getLoginUser().getUsername(), tableName, funcType(GenTable.D));
+            LOGGER.error("非法操作,操作人: {},tableName: {}, 操作类型: 此人未配置 {} 权限", getLoginUser().getUsername(), tableName, funcType(GlobalBtn.D));
            return false;
         }
 
@@ -284,21 +285,21 @@ public class AuthUtils {
 
     public static String funcType(String funcType) {
         switch (funcType) {
-            case GenTable.A:
+            case GlobalBtn.A:
                 return "新增";
-            case GenTable.M:
+            case GlobalBtn.M:
                 return "修改";
-            case GenTable.D:
+            case GlobalBtn.D:
                 return "删除";
-            case GenTable.Q:
+            case GlobalBtn.Q:
                 return "查询";
-            case GenTable.S:
+            case GlobalBtn.S:
                 return "提交";
-            case GenTable.U:
+            case GlobalBtn.U:
                 return "反提交";
-            case GenTable.E:
+            case GlobalBtn.E:
                 return "导出";
-            case GenTable.I:
+            case GlobalBtn.I:
                 return "导入";
             default:
                 return "未知";

+ 44 - 0
boman-web-core/src/main/java/com/boman/web/core/utils/ColumnUtils.java

@@ -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)"]}]