瀏覽代碼

getByMap 处理空值

shiqian 3 年之前
父節點
當前提交
526a1cff8b

+ 15 - 4
boman-web-core/src/main/java/com/boman/web/core/service/select/BaseSelectServiceImpl.java

@@ -3,6 +3,8 @@ package com.boman.web.core.service.select;
 import com.alibaba.fastjson.JSONObject;
 import com.boman.common.redis.RedisKey;
 import com.boman.domain.GenTable;
+import com.boman.domain.GenTableColumn;
+import com.boman.domain.constant.MaskConstant;
 import com.boman.domain.dto.FormDataDto;
 import com.boman.domain.dto.QueryBySqlDto;
 import com.boman.web.core.mapper.StandardMapper;
@@ -17,6 +19,7 @@ import java.util.List;
 
 import static com.boman.common.core.utils.obj.ObjectUtils.isEmpty;
 import static com.boman.common.core.utils.obj.ObjectUtils.requireNonNull;
+import static com.boman.web.core.utils.ColumnUtils.filterData;
 import static com.boman.web.core.utils.HandlerFormDataUtils.*;
 
 /**
@@ -79,10 +82,14 @@ public class BaseSelectServiceImpl implements IBaseSelectService {
 
         // 判断condition中列是否都在此table中
         GenTable gent = cmdService.getTableFromRedisByTableName(RedisKey.TABLE_INFO, tableName);
-        ColumnUtils.checkColumn(param, gent.getColumns());
-        JSONObject packColCondition = ColumnUtils.packColCondition(gent.getColumns(), param);
+        List<GenTableColumn> columns = gent.getColumns();
+        ColumnUtils.checkColumn(param, columns);
+        JSONObject packColCondition = ColumnUtils.packColCondition(columns, param);
         List<JSONObject> result = mapper.getByMap(tableName, packColCondition, param, false);
 
+        List<String> showData = filterData(columns, 4, null, MaskConstant.LIST_VISIBLE::equals);
+        // 查询时为null的列不显示的处理
+        handleNullColumnValue(result, showData);
         handleBlob(result, gent.getIsContainsBlob());
         handleDateTimeForQueryList(result, gent.getColumns());
         handleDictForQueryList(result, gent.getColumns());
@@ -105,10 +112,14 @@ public class BaseSelectServiceImpl implements IBaseSelectService {
 
         // 判断condition中列是否都在此table中
         GenTable gent = cmdService.getTableFromRedisByTableName(RedisKey.TABLE_INFO, tableName);
-        ColumnUtils.checkColumn(param, gent.getColumns());
-        JSONObject packColCondition = ColumnUtils.packColCondition(gent.getColumns(), param);
+        List<GenTableColumn> columns = gent.getColumns();
+        ColumnUtils.checkColumn(param, columns);
+        JSONObject packColCondition = ColumnUtils.packColCondition(columns, param);
         List<JSONObject> result = mapper.getByMap(tableName, packColCondition, param, true);
 
+        List<String> showData = filterData(columns, 4, null, MaskConstant.LIST_VISIBLE::equals);
+        // 查询时为null的列不显示的处理
+        handleNullColumnValue(result, showData);
         handleBlob(result, gent.getIsContainsBlob());
         handleDateTimeForQueryList(result, gent.getColumns());
         handleDictForQueryList(result, gent.getColumns());