Переглянути джерело

外键的查询优化,FormDataConstant移动到domain中

shiqian 4 роки тому
батько
коміт
1c8848d30a

+ 13 - 5
boman-web-core/src/main/java/com/boman/web/core/constant/FormDataConstant.java → boman-api/boman-domain/src/main/java/com.boman.domain/constant/FormDataConstant.java

@@ -1,8 +1,9 @@
-package com.boman.web.core.constant;
+package com.boman.domain.constant;
 
-import com.google.common.collect.Lists;
 
 import java.util.List;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
 
 /**
  * @author shiqian
@@ -83,7 +84,7 @@ public class FormDataConstant {
     /**
      * Blob
      */
-    public static final List<String> BLOB_LIST = Lists.newArrayList(BLOB, TINYBLOB, MEDIUMBLOB, LONGBLOB);
+    public static final List<String> BLOB_LIST = Stream.of(BLOB, TINYBLOB, MEDIUMBLOB, LONGBLOB).collect(Collectors.toList());
 
     public static final String BYTE_ARRAY = "byte[]";
 
@@ -146,9 +147,10 @@ public class FormDataConstant {
 
 
     /**  需要查字典表的框框 */
-    public static final List<String> NEED_QUERY_DICT_LIST = Lists.newArrayList(RADIO, CHECKBOX, SELECT);
+    public static final List<String> NEED_QUERY_DICT_LIST = Stream.of(RADIO, CHECKBOX, SELECT).collect(Collectors.toList());
+
     /**  需要转换时间类型的 */
-    public static final List<String> NEED_CONVERT_DATE_LIST = Lists.newArrayList(DATETIME);
+    public static final List<String> NEED_CONVERT_DATE_LIST = Stream.of(DATETIME).collect(Collectors.toList());
 
     /**  hr 日志、基础信息..... */
     public static final String HR = "hr";
@@ -169,6 +171,12 @@ public class FormDataConstant {
 
     /** 附件的url */
     public static final String URL = "url";
+    /** fkTableName */
+    public static final String FK_TABLE_NAME = "fkTableName";
+    /** fkColumnName */
+    public static final String FK_COLUMN_NAME = "fkColumnName";
+    /** dkColumnName */
+    public static final String DK_COLUMN_NAME = "dkColumnName";
 
 
 

+ 0 - 5
boman-api/boman-domain/src/main/java/com.boman.domain/exception/UnknownColumnException.java

@@ -1,16 +1,11 @@
 package com.boman.domain.exception;
 
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
 /**
  * @author shiqian
  * @date 2021年04月21日 15:44
  **/
 public class UnknownColumnException extends RuntimeException{
 
-    private static final Logger LOGGER = LoggerFactory.getLogger(UnknownColumnException.class);
-
     public UnknownColumnException(){}
 
     public UnknownColumnException(String errorMsg){

+ 10 - 0
boman-common/boman-common-core/src/main/java/com/boman/common/core/utils/obj/ObjectUtils.java

@@ -213,6 +213,16 @@ public class ObjectUtils {
                 .stream().filter(predicate).collect(Collectors.toList());
     }
 
+
+    public static <T> boolean anyMatch(List<T> input, Predicate<T> predicate){
+        return requireNonNull(input, "list is null").stream().anyMatch(predicate);
+    }
+
+
+    public static <T> boolean noneMatch(List<T> input, Predicate<T> predicate) {
+        return requireNonNull(input, "list is null").stream().noneMatch(predicate);
+    }
+
     /**
      * 功能描述: 根据规则过滤
      *

+ 29 - 0
boman-modules/boman-gen/src/main/java/com/boman/gen/controller/MyController.java

@@ -1,9 +1,11 @@
 package com.boman.gen.controller;
 
+import com.boman.common.core.utils.obj.ObjectUtils;
 import com.boman.common.core.web.controller.BaseController;
 import com.boman.common.core.web.domain.AjaxResult;
 import com.boman.common.redis.RedisKey;
 import com.boman.common.redis.service.RedisService;
+import com.boman.domain.constant.FormDataConstant;
 import com.boman.gen.domain.GenTable;
 import com.boman.gen.domain.GenTableColumn;
 import com.boman.gen.domain.GenTableRelation;
@@ -11,6 +13,7 @@ import com.boman.gen.service.IGenTableColumnService;
 import com.boman.gen.service.IGenTableRelationService;
 import com.boman.gen.service.IGenTableService;
 import com.google.common.collect.Lists;
+import com.google.common.collect.Maps;
 import org.apache.commons.collections4.CollectionUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -20,6 +23,7 @@ import org.springframework.web.bind.annotation.RestController;
 import java.util.ArrayList;
 import java.util.Comparator;
 import java.util.List;
+import java.util.Map;
 import java.util.concurrent.TimeUnit;
 import java.util.stream.Collectors;
 
@@ -121,7 +125,10 @@ public class MyController extends BaseController {
             List<GenTableColumn> columnList = new ArrayList<>(16);
             for (GenTableColumn tableColumn : genTableColumns) {
                 if (table.getTableId().equals(tableColumn.getTableId())) {
+                    // 存一个tableName留作备用
                     tableColumn.setTableName(table.getTableName());
+                    // 把外键信息存进去,留着查询的时候用
+                    packFkInfo(tableColumn);
                     columnList.add(tableColumn);
                 }
             }
@@ -132,6 +139,28 @@ public class MyController extends BaseController {
         }
     }
 
+    private void packFkInfo(GenTableColumn tableColumn) {
+        String foreignKey = tableColumn.getForeignKey();
+        if (ObjectUtils.isNotEmpty(foreignKey)) {
+            // 外键在table_column中的id
+            Long fkColumnId = Long.parseLong(foreignKey);
+            GenTableColumn fkTableColumn = genTableColumnService.selectGenTableColumnListByColumnId(fkColumnId);
+            String fkColumnName = fkTableColumn.getColumnName();
+            Long fkTableId = fkTableColumn.getTableId();
+            GenTable fkGenTable = genTableService.getByTableId(fkTableId);
+            // 显示键 table_column 表的id
+            Long dkColumnId = fkGenTable.getDkColumn();
+            GenTableColumn dkTableColumn = genTableColumnService.selectGenTableColumnListByColumnId(dkColumnId);
+            String dkColumnName = dkTableColumn.getColumnName();
+            String fkTableName = fkGenTable.getTableName();
+            Map<String, String> fkInfo = Maps.newConcurrentMap();
+            fkInfo.put(FormDataConstant.FK_TABLE_NAME, fkTableName);
+            fkInfo.put(FormDataConstant.FK_COLUMN_NAME, fkColumnName);
+            fkInfo.put(FormDataConstant.DK_COLUMN_NAME, dkColumnName);
+            tableColumn.setFkInfo(fkInfo);
+        }
+    }
+
 
     /**
      * 手动更新redis缓存表数据

+ 11 - 0
boman-modules/boman-gen/src/main/java/com/boman/gen/domain/GenTableColumn.java

@@ -5,6 +5,7 @@ import com.boman.common.core.web.domain.BaseEntity;
 import com.boman.domain.SysDictData;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * 代码生成业务字段表 gen_table_column
@@ -139,6 +140,8 @@ public class GenTableColumn extends BaseEntity
      */
     private Object columnValue;
 
+    private Map<String, String> fkInfo;
+
 
     public String getFieldTranslator() {
         return fieldTranslator;
@@ -554,4 +557,12 @@ public class GenTableColumn extends BaseEntity
     public void setColumnValue(Object columnValue) {
         this.columnValue = columnValue;
     }
+
+    public Map<String, String> getFkInfo() {
+        return fkInfo;
+    }
+
+    public void setFkInfo(Map<String, String> fkInfo) {
+        this.fkInfo = fkInfo;
+    }
 }

+ 34 - 34
boman-modules/boman-job/src/main/java/com/boman/job/RuoYiJobApplication.java

@@ -1,34 +1,34 @@
-package com.boman.job;
-
-import org.springframework.boot.SpringApplication;
-import org.springframework.cloud.client.SpringCloudApplication;
-import com.boman.common.security.annotation.EnableCustomConfig;
-import com.boman.common.security.annotation.EnableRyFeignClients;
-import com.boman.common.swagger.annotation.EnableCustomSwagger2;
-
-/**
- * 定时任务
- * 
- * @author ruoyi
- */
-@EnableCustomConfig
-@EnableCustomSwagger2   
-@EnableRyFeignClients
-@SpringCloudApplication
-public class RuoYiJobApplication
-{
-    public static void main(String[] args)
-    {
-        SpringApplication.run(RuoYiJobApplication.class, args);
-        System.out.println("(♥◠‿◠)ノ゙  定时任务模块启动成功   ლ(´ڡ`ლ)゙  \n" +
-                " .-------.       ____     __        \n" +
-                " |  _ _   \\      \\   \\   /  /    \n" +
-                " | ( ' )  |       \\  _. /  '       \n" +
-                " |(_ o _) /        _( )_ .'         \n" +
-                " | (_,_).' __  ___(_ o _)'          \n" +
-                " |  |\\ \\  |  ||   |(_,_)'         \n" +
-                " |  | \\ `'   /|   `-'  /           \n" +
-                " |  |  \\    /  \\      /           \n" +
-                " ''-'   `'-'    `-..-'              ");
-    }
-}
+//package com.boman.job;
+//
+//import org.springframework.boot.SpringApplication;
+//import org.springframework.cloud.client.SpringCloudApplication;
+//import com.boman.common.security.annotation.EnableCustomConfig;
+//import com.boman.common.security.annotation.EnableRyFeignClients;
+//import com.boman.common.swagger.annotation.EnableCustomSwagger2;
+//
+///**
+// * 定时任务
+// *
+// * @author ruoyi
+// */
+//@EnableCustomConfig
+//@EnableCustomSwagger2
+//@EnableRyFeignClients
+//@SpringCloudApplication
+//public class RuoYiJobApplication
+//{
+//    public static void main(String[] args)
+//    {
+//        SpringApplication.run(RuoYiJobApplication.class, args);
+//        System.out.println("(♥◠‿◠)ノ゙  定时任务模块启动成功   ლ(´ڡ`ლ)゙  \n" +
+//                " .-------.       ____     __        \n" +
+//                " |  _ _   \\      \\   \\   /  /    \n" +
+//                " | ( ' )  |       \\  _. /  '       \n" +
+//                " |(_ o _) /        _( )_ .'         \n" +
+//                " | (_,_).' __  ___(_ o _)'          \n" +
+//                " |  |\\ \\  |  ||   |(_,_)'         \n" +
+//                " |  | \\ `'   /|   `-'  /           \n" +
+//                " |  |  \\    /  \\      /           \n" +
+//                " ''-'   `'-'    `-..-'              ");
+//    }
+//}

+ 30 - 30
boman-visual/boman-monitor/src/main/java/com/boman/modules/monitor/RuoYiMonitorApplication.java

@@ -1,30 +1,30 @@
-package com.boman.modules.monitor;
-
-import de.codecentric.boot.admin.server.config.EnableAdminServer;
-import org.springframework.boot.SpringApplication;
-import org.springframework.cloud.client.SpringCloudApplication;
-
-/**
- * 监控中心
- * 
- * @author ruoyi
- */
-@EnableAdminServer
-@SpringCloudApplication
-public class RuoYiMonitorApplication
-{
-    public static void main(String[] args)
-    {
-        SpringApplication.run(RuoYiMonitorApplication.class, args);
-        System.out.println("(♥◠‿◠)ノ゙  监控中心启动成功   ლ(´ڡ`ლ)゙  \n" +
-                " .-------.       ____     __        \n" +
-                " |  _ _   \\      \\   \\   /  /    \n" +
-                " | ( ' )  |       \\  _. /  '       \n" +
-                " |(_ o _) /        _( )_ .'         \n" +
-                " | (_,_).' __  ___(_ o _)'          \n" +
-                " |  |\\ \\  |  ||   |(_,_)'         \n" +
-                " |  | \\ `'   /|   `-'  /           \n" +
-                " |  |  \\    /  \\      /           \n" +
-                " ''-'   `'-'    `-..-'              ");
-    }
-}
+//package com.boman.modules.monitor;
+//
+//import de.codecentric.boot.admin.server.config.EnableAdminServer;
+//import org.springframework.boot.SpringApplication;
+//import org.springframework.cloud.client.SpringCloudApplication;
+//
+///**
+// * 监控中心
+// *
+// * @author ruoyi
+// */
+//@EnableAdminServer
+//@SpringCloudApplication
+//public class RuoYiMonitorApplication
+//{
+//    public static void main(String[] args)
+//    {
+//        SpringApplication.run(RuoYiMonitorApplication.class, args);
+//        System.out.println("(♥◠‿◠)ノ゙  监控中心启动成功   ლ(´ڡ`ლ)゙  \n" +
+//                " .-------.       ____     __        \n" +
+//                " |  _ _   \\      \\   \\   /  /    \n" +
+//                " | ( ' )  |       \\  _. /  '       \n" +
+//                " |(_ o _) /        _( )_ .'         \n" +
+//                " | (_,_).' __  ___(_ o _)'          \n" +
+//                " |  |\\ \\  |  ||   |(_,_)'         \n" +
+//                " |  | \\ `'   /|   `-'  /           \n" +
+//                " |  |  \\    /  \\      /           \n" +
+//                " ''-'   `'-'    `-..-'              ");
+//    }
+//}

+ 11 - 12
boman-web-core/src/main/java/com/boman/web/core/mapper/StandardlyMapper.java

@@ -2,8 +2,6 @@ package com.boman.web.core.mapper;
 
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
-import com.boman.common.core.utils.obj.ObjectUtils;
-import com.boman.web.core.constant.FormDataConstant;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.ibatis.annotations.*;
 import org.apache.ibatis.annotations.Param;
@@ -16,7 +14,7 @@ import java.util.*;
 import java.util.function.Consumer;
 
 import static com.boman.common.core.utils.obj.ObjectUtils.*;
-import static com.boman.web.core.constant.FormDataConstant.*;
+import static com.boman.domain.constant.FormDataConstant.*;
 
 /**
  * @author shiqian
@@ -171,8 +169,7 @@ public interface StandardlyMapper {
      * @return java.util.List<com.alibaba.fastjson.JSONObject>
      */
     @SelectProvider(type = SqlProvider.class, method = "getByMap")
-    List<JSONObject> getByMap(@Param("tableName") String tableName, @Param("param") JSONObject param);
-
+    List<JSONObject> getByMap(@Param("tableName") String tableName, @Param("param") JSONObject param, @Param("limitOne") boolean limitOne);
 
     public static class SqlProvider {
         static final String[] READONLY_COLUMNS = new String[]{"OWNERID", "OWNERNAME", "OWNERENAME", "CREATIONDATE", "ID"};
@@ -541,6 +538,7 @@ public interface StandardlyMapper {
         public String getByMap(Map<String, Object> para) {
             JSONObject param = (JSONObject) para.get("param");
             String tableName = (String) para.get("tableName");
+            boolean limitOne = (boolean) para.get("limitOne");
 
             String result;
             StringBuilder wholeSql = new StringBuilder();
@@ -556,6 +554,7 @@ public interface StandardlyMapper {
                 result = StringUtils.substringBeforeLast(wholeSql.toString(), "and");
             }
 
+            result = limitOne ? result + " limit 1" : result;
             LOGGER.info("查询拼出的sql语句为:{}", result);
             return result;
         }
@@ -647,24 +646,24 @@ public interface StandardlyMapper {
             boolean needEscape = columnType.contains(VARCHAR) || columnType.contains(CHAR)
                     || columnType.contains(DATETIME) || columnType.contains(TIMESTAMP);
             switch (queryType) {
-                case FormDataConstant.EQ:
+                case EQ:
                     value = needEscape ? escapeStr(value) : value;
                     return " = " + value;
-                case FormDataConstant.LIKE:
+                case LIKE:
                     return " like " + "concat('%', #{condition." + key + "}, '%')";
-                case FormDataConstant.NE:
+                case NE:
                     value = needEscape ? escapeStr(value) : value;
                     return " != " + value;
-                case FormDataConstant.GT:
+                case GT:
                     value = needEscape ? escapeStr(value) : value;
                     return " &gt; " + value;
-                case FormDataConstant.GTE:
+                case GTE:
                     value = needEscape ? escapeStr(value) : value;
                     return " &gt;= " + value;
-                case FormDataConstant.LT:
+                case LT:
                     value = needEscape ? escapeStr(value) : value;
                     return " &lt; " + value;
-                case FormDataConstant.LTE:
+                case LTE:
                     value = needEscape ? escapeStr(value) : value;
                     return " &lt;= " + value;
                 default:

+ 42 - 27
boman-web-core/src/main/java/com/boman/web/core/service/TableServiceCmdService.java

@@ -13,16 +13,14 @@ import com.boman.common.core.web.domain.AjaxResult;
 import com.boman.common.redis.RedisKey;
 import com.boman.common.redis.service.RedisService;
 import com.boman.domain.SysDictData;
+import com.boman.domain.constant.FormDataConstant;
 import com.boman.gen.api.RemoteGenTableColumnService;
 import com.boman.gen.api.RemoteGenTableService;
 import com.boman.gen.controller.MyController;
 import com.boman.gen.domain.GenTable;
 import com.boman.gen.domain.GenTableColumn;
-import com.boman.gen.domain.GenTableRelation;
-import com.boman.gen.util.GenUtils;
 import com.boman.system.api.RemoteDictDataService;
 import com.boman.system.api.domain.SysFile;
-import com.boman.web.core.constant.FormDataConstant;
 import com.boman.web.core.constant.MaskConstant;
 import com.boman.web.core.constant.SubmitConstant;
 import com.boman.web.core.domain.*;
@@ -47,7 +45,7 @@ import java.util.concurrent.TimeUnit;
 import java.util.function.Predicate;
 
 import static com.boman.common.core.utils.obj.ObjectUtils.*;
-import static com.boman.web.core.constant.FormDataConstant.*;
+import static com.boman.domain.constant.FormDataConstant.*;
 import static com.boman.web.core.utils.ColumnUtils.*;
 
 /**
@@ -262,30 +260,47 @@ public class TableServiceCmdService {
             String selfColumnName = column.getColumnName();
             for (JSONObject json : result) {
                 if (json.containsKey(selfColumnName.toUpperCase()) || json.containsKey(selfColumnName.toLowerCase())) {
-                    // 外键在table_column中的id
-                    Long fkColumnId = Long.parseLong(column.getForeignKey());
-                    GenTableColumn fkTableColumn = remoteGenTableColumnService.getById(fkColumnId);
-                    String fkColumnName = fkTableColumn.getColumnName();
-                    Long fkTableId = fkTableColumn.getTableId();
-                    GenTable fkGenTable = remoteGenTableService.getByTableId(fkTableId);
-                    // 显示键 table_column 表的id
-                    Long dkColumnId = fkGenTable.getDkColumn();
-                    GenTableColumn dkTableColumn = remoteGenTableColumnService.getById(dkColumnId);
-                    String dkColumnName = dkTableColumn.getColumnName();
-                    String fkTableName = fkGenTable.getTableName();
-                    Object primaryTableFKvalue = json.get(selfColumnName);
-                    // "DEPT_ID": {"value": 104, "name": "开发部"}
+                    Map<String, String> fkInfoMap = column.getFkInfo();
+                    String fkTableName =  fkInfoMap.get(FK_TABLE_NAME);
+                    String fkColumnName = fkInfoMap.get(FK_COLUMN_NAME);
+                    String dkColumnName = fkInfoMap.get(DK_COLUMN_NAME);
+                    Object primaryTableFkValue = json.get(selfColumnName);
+
                     JSONObject param = new JSONObject();
-                    param.put(fkColumnName, primaryTableFKvalue);
-                    List<JSONObject> fkList = selectService.getByMap(fkTableName, param);
-
-                    for (JSONObject object : fkList) {
-                        Object value = object.get(dkColumnName);
-                        jsonObject.put(SINGLE_OBJ_NAME, primaryTableFKvalue);
-                        jsonObject.put(SINGLE_OBJ_VALUE, value);
-                        json.put(selfColumnName.toLowerCase(), jsonObject);
-                        break;
-                    }
+                    param.put(fkColumnName, primaryTableFkValue);
+                    JSONObject fkInfo = selectService.getOneByMap(fkTableName, param);
+
+                    Object value = fkInfo.get(dkColumnName);
+                    jsonObject.put(SINGLE_OBJ_NAME, primaryTableFkValue);
+                    jsonObject.put(SINGLE_OBJ_VALUE, value);
+                    json.put(selfColumnName.toLowerCase(), jsonObject);
+
+
+                    // method();=> fkTableName、fkColumnName
+                    // 外键在table_column中的id
+//                    Long fkColumnId = Long.parseLong(column.getForeignKey());
+//                    GenTableColumn fkTableColumn = remoteGenTableColumnService.getById(fkColumnId);
+//                    String fkColumnName = fkTableColumn.getColumnName();
+//                    Long fkTableId = fkTableColumn.getTableId();
+//                    GenTable fkGenTable = remoteGenTableService.getByTableId(fkTableId);
+//                    // 显示键 table_column 表的id
+//                    Long dkColumnId = fkGenTable.getDkColumn();
+//                    GenTableColumn dkTableColumn = remoteGenTableColumnService.getById(dkColumnId);
+//                    String dkColumnName = dkTableColumn.getColumnName();
+//                    String fkTableName = fkGenTable.getTableName();
+//                    Object primaryTableFkValue = json.get(selfColumnName);
+//                    // "DEPT_ID": {"value": 104, "name": "开发部"}
+//                    JSONObject param = new JSONObject();
+//                    param.put(fkColumnName, primaryTableFkValue);
+//                    List<JSONObject> fkList = selectService.getByMap(fkTableName, param);
+//
+//                    for (JSONObject object : fkList) {
+//                        Object value = object.get(dkColumnName);
+//                        jsonObject.put(SINGLE_OBJ_NAME, primaryTableFkValue);
+//                        jsonObject.put(SINGLE_OBJ_VALUE, value);
+//                        json.put(selfColumnName.toLowerCase(), jsonObject);
+//                        break;
+//                    }
                 }
             }
         }

+ 1 - 1
boman-web-core/src/main/java/com/boman/web/core/service/save/BaseSaveServiceImpl.java

@@ -6,9 +6,9 @@ import com.boman.common.core.utils.SecurityUtils;
 import com.boman.common.core.utils.obj.ObjectUtils;
 import com.boman.common.redis.service.RedisService;
 import com.boman.common.security.service.TokenService;
+import com.boman.domain.constant.FormDataConstant;
 import com.boman.gen.domain.GenTableColumn;
 import com.boman.system.api.model.LoginUser;
-import com.boman.web.core.constant.FormDataConstant;
 import com.boman.web.core.domain.RowResult;
 import com.boman.web.core.domain.TableContext;
 import com.boman.web.core.mapper.StandardlyMapper;

+ 21 - 1
boman-web-core/src/main/java/com/boman/web/core/service/select/BaseSelectServiceImpl.java

@@ -14,6 +14,7 @@ import org.springframework.stereotype.Service;
 
 import java.util.List;
 
+import static com.boman.common.core.utils.obj.ObjectUtils.isEmpty;
 import static com.boman.common.core.utils.obj.ObjectUtils.requireNonNull;
 
 /**
@@ -66,7 +67,26 @@ public class BaseSelectServiceImpl implements IBaseSelectService {
         // 判断condition中列是否都在此table中
         GenTable gent = cmdService.getTableFromRedisByTableName(RedisKey.TABLE_INFO, tableName);
         ColumnUtils.checkColumn(param, gent.getColumns());
-        return mapper.getByMap(tableName, param);
+        return mapper.getByMap(tableName, param, false);
+    }
+
+
+    /**
+     * 功能描述: 根据tableName和map(属性名和属性值)进行查查
+     *
+     * @param tableName tableName
+     * @param param     属性名和属性值
+     * @return com.alibaba.fastjson.JSONObject
+     */
+    @Override
+    public JSONObject getOneByMap(String tableName, JSONObject param) {
+        requireNonNull(tableName, "表名为空");
+
+        // 判断condition中列是否都在此table中
+        GenTable gent = cmdService.getTableFromRedisByTableName(RedisKey.TABLE_INFO, tableName);
+        ColumnUtils.checkColumn(param, gent.getColumns());
+        List<JSONObject> result = mapper.getByMap(tableName, param, true);
+        return isEmpty(result) ? null : result.get(0);
     }
 
     /**

+ 9 - 0
boman-web-core/src/main/java/com/boman/web/core/service/select/IBaseSelectService.java

@@ -20,6 +20,15 @@ public interface IBaseSelectService {
      */
     List<JSONObject> getByMap(String tableName, JSONObject param);
 
+    /**
+     * 功能描述: 根据tableName和map(属性名和属性值)进行查查
+     *
+     * @param tableName tableName
+     * @param param     属性名和属性值
+     * @return jcom.alibaba.fastjson.JSONObject
+     */
+    JSONObject getOneByMap(String tableName, JSONObject param);
+
     /**
      * 功能描述: 根据条件查询
      *

+ 1 - 1
boman-web-core/src/main/java/com/boman/web/core/service/update/BaseUpdateServiceImpl.java

@@ -17,7 +17,7 @@ import java.util.Map;
 
 import static com.boman.common.core.utils.obj.ObjectUtils.escapeStr;
 import static com.boman.common.core.utils.obj.ObjectUtils.requireNonNull;
-import static com.boman.web.core.constant.FormDataConstant.*;
+import static com.boman.domain.constant.FormDataConstant.*;
 
 /**
  * @author shiqian

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

@@ -20,7 +20,7 @@ import java.util.function.Predicate;
 import java.util.stream.Collectors;
 
 import static com.boman.common.core.utils.obj.ObjectUtils.*;
-import static com.boman.web.core.constant.FormDataConstant.*;
+import static com.boman.domain.constant.FormDataConstant.*;
 
 /**
  * @author shiqian