Browse Source

判断表中是否有UPDATE_BY和UPDATE_TIME两个字段

shiqian 4 years ago
parent
commit
22c2070791

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

@@ -29,7 +29,7 @@ import static com.boman.common.core.utils.obj.ObjectUtils.requiredNonNull;
  * @date 2021年03月17日 16:44
  **/
 @RestController
-@RequestMapping("/my")
+@RequestMapping("/init")
 public class MyController extends BaseController {
 
     @Autowired

+ 8 - 0
boman-modules/boman-system/src/main/java/com/boman/system/common/FormDataConstant.java

@@ -99,5 +99,13 @@ public class FormDataConstant {
     public static final String PAGE_ROWS = "rows";
 
 
+    /**  数据库字段创建人*/
+    public static final String UPDATE_BY = "UPDATE_BY";
+
+
+    /**  数据库字段创建时间*/
+    public static final String UPDATE_TIME = "UPDATE_TIME";
+
+
 
 }

+ 5 - 1
boman-modules/boman-system/src/main/java/com/boman/system/common/TableServiceCmdService.java

@@ -68,8 +68,12 @@ public class TableServiceCmdService {
         String pkName = IdUtils.getPkName(columns);
         requireNonNull(pkName);
 
+        //
+        List<String> allColumnNameList = columns.stream()
+                .map(GenTableColumn::getColumnName)
+                .collect(Collectors.toList());
         Long maxId = IdUtils.getMaxId(baseTableDTO.getTable(), pkName);
-        RowResult rowResult = saveService.insertRow(context.getRealTableName(), pkName, maxId, context.getRows().get(0));
+        RowResult rowResult = saveService.insertRow(context.getRealTableName(), pkName, maxId, context.getRows().get(0), allColumnNameList);
         if (RowResult.checkSuccess(rowResult)) {
             LOGGER.info("保存成功,封装到数据库的数据为: {}", JSON.toJSONString(rowResult.getData()));
         } else {

+ 8 - 5
boman-modules/boman-system/src/main/java/com/boman/system/service/IBaseSaveService.java

@@ -3,6 +3,8 @@ package com.boman.system.service;
 import com.boman.system.common.MainTableRecord;
 import com.boman.system.common.RowResult;
 
+import java.util.List;
+
 /**
  * @author shiqian
  * @description
@@ -14,12 +16,13 @@ public interface IBaseSaveService {
     /**
      * 功能描述: 保存一行
      *
-     * @param tableName tableName
-     * @param pkName    主键名称
-     * @param maxId     最大的SEQ
-     * @param row       要保存的数据
+     * @param tableName         tableName
+     * @param pkName            主键名称
+     * @param maxId             最大的SEQ
+     * @param row               要保存的数据
+     * @param allColumnNameList 这是此表的所有字段属性名称,用来判断是否所有UPDATE_BY和UPDATE_TIME
      * @return com.boman.system.common.RowResult
      */
-    RowResult insertRow(String tableName, String pkName, Long maxId, MainTableRecord row);
+    RowResult insertRow(String tableName, String pkName, Long maxId, MainTableRecord row, List<String> allColumnNameList);
 
 }

+ 18 - 7
boman-modules/boman-system/src/main/java/com/boman/system/service/impl/BaseSaveServiceImpl.java

@@ -2,6 +2,7 @@ package com.boman.system.service.impl;
 
 import com.alibaba.fastjson.JSONObject;
 import com.boman.common.core.utils.SecurityUtils;
+import com.boman.system.common.FormDataConstant;
 import com.boman.system.common.MainTableRecord;
 import com.boman.system.common.RowResult;
 import com.boman.system.mapper.StandardlyMapper;
@@ -12,6 +13,8 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
 import java.sql.Timestamp;
+import java.util.List;
+import java.util.Locale;
 
 /**
  * @author shiqian
@@ -29,18 +32,26 @@ public class BaseSaveServiceImpl implements IBaseSaveService {
     /**
      * 功能描述: 保存一行
      *
-     * @param tableName tableName
-     * @param pkName    主键名称
-     * @param maxId     最大的SEQ
-     * @param row       要保存的数据
+     * @param tableName         tableName
+     * @param pkName            主键名称
+     * @param maxId             最大的SEQ
+     * @param row               要保存的数据
+     * @param allColumnNameList 这是此表的所有字段属性名称,用来判断是否所有UPDATE_BY和UPDATE_TIME
      * @return com.boman.system.common.RowResult
      */
     @Override
-    public RowResult insertRow(String tableName, String pkName, Long maxId, MainTableRecord row) {
+    public RowResult insertRow(String tableName, String pkName, Long maxId, MainTableRecord row, List<String> allColumnNameList) {
         JSONObject commitData = row.getMainData().getCommitData();
         Timestamp currentTime = new Timestamp(System.currentTimeMillis());
-        commitData.put("UPDATE_BY", SecurityUtils.getUserId());
-        commitData.put("UPDATE_TIME", currentTime);
+        if (allColumnNameList.contains(FormDataConstant.UPDATE_BY)
+                || allColumnNameList.contains(FormDataConstant.UPDATE_BY.toLowerCase())) {
+            commitData.put(FormDataConstant.UPDATE_BY, SecurityUtils.getUserId());
+        }
+        if (allColumnNameList.contains(FormDataConstant.UPDATE_TIME)
+                || allColumnNameList.contains(FormDataConstant.UPDATE_TIME.toLowerCase())) {
+            commitData.put(FormDataConstant.UPDATE_TIME, SecurityUtils.getUserId());
+        }
+
         // 新增
         if (row.getId() > 0) {
             commitData.put("CREATE_TIME", currentTime);