Bläddra i källkod

获取数据库列名&备注改造

guarantee-lsq 9 månader sedan
förälder
incheckning
940ca5373a

+ 19 - 0
platform-dao/src/main/java/com/platform/dao/vo/query/custom/ColumnShowVO.java

@@ -0,0 +1,19 @@
+package com.platform.dao.vo.query.custom;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @Description 自定义表单表VO结果类
+ * @Author lsq
+ * @Date 2024-06-03 16:57:57
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+@Data
+public class ColumnShowVO implements Serializable {
+
+    private String columnName; // 列名
+
+    private String columnComment; // 列名备注
+}

+ 7 - 72
platform-rest/src/main/java/com/platform/rest/controller/workflow/DatabaseController.java

@@ -1,30 +1,12 @@
 package com.platform.rest.controller.workflow;
 
-import com.alibaba.fastjson.JSONObject;
-import com.google.gson.JsonObject;
-import com.platform.common.bean.AbstractPageResultBean;
-import com.platform.common.exception.BusinessException;
-import com.platform.common.util.BeanConverterUtil;
 import com.platform.common.util.R;
-import com.platform.common.validation.group.AddGroup;
-import com.platform.common.validation.group.UpdateGroup;
-import com.platform.dao.dto.workflow.WorkflowConditionSwitchDTO;
-import com.platform.dao.entity.workflow.WorkflowConditionSwitch;
-import com.platform.dao.util.ExcelUtil;
-import com.platform.dao.vo.export.workflow.ExportWorkflowConditionSwitchVO;
-import com.platform.dao.vo.query.workflow.WorkflowConditionSwitchVO;
-import com.platform.rest.log.annotation.SysLog;
-import com.platform.service.util.DatabaseUtil;
-import com.platform.service.workflow.WorkflowConditionSwitchService;
+import com.platform.service.custom.DataBaseOperatorService;
 import lombok.AllArgsConstructor;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.util.unit.DataUnit;
-import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.*;
-
-import javax.servlet.http.HttpServletResponse;
-import java.util.ArrayList;
-import java.util.List;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
 
 /**
  * @Description 流程审核条件分支表 控制器
@@ -37,62 +19,15 @@ import java.util.List;
 @RequestMapping("/database/data")
 public class DatabaseController {
 
-
-    public static void main(String[] args) {
-        String h ="shabi_ga_gawe";
-        String[] arr =h.split("_");
-        String str = h;
-        if (arr.length>1){
-            str = arr[0];
-            for (int i=1;i<arr.length;i++){
-                arr[i] = arr[i].substring(0,1).toUpperCase()+arr[i].substring(1);
-                str+=arr[i];
-            }
-        }
-        System.out.println(str);
-    }
+    private final DataBaseOperatorService dataBaseOperatorService;
     /**
      * 通过id查询单条记录
-     *
      * @param tableName 主键
      * @return R
      */
     @GetMapping("/getTableInfos/{tableName}")
     public R getTableInfos(@PathVariable("tableName") String tableName) {
-        if (tableName==null){
-            throw new BusinessException("表名为空!");
-        }
-        List<String> columnNames2 = DatabaseUtil.getColumnNames(tableName);
-        List<String> columnNames = new ArrayList<>();
-        for (int j=0;j<columnNames2.size();j++ ) {
-            String[] arr = columnNames2.get(j).split("_");
-            String str = columnNames2.get(j);
-            if (arr.length > 1) {
-                str = arr[0];
-                for (int i = 1; i < arr.length; i++) {
-                    arr[i] = arr[i].substring(0, 1).toUpperCase() + arr[i].substring(1);
-                    str += arr[i];
-                }
-            }
-            columnNames.add(str);
-
-        }
-
-        List<String> columnComments = DatabaseUtil.getColumnComments(tableName);
-        List<JSONObject> list = new ArrayList<>();
-        for (int i = 0;i<columnNames.size();i++){
-            for (int j = 0;j<columnComments.size();j++){
-                if (i==j){
-                    JSONObject jsonObject = new JSONObject();
-                    jsonObject.put("columnName",columnNames.get(i));
-                    jsonObject.put("columnComment",columnComments.get(j));
-                    list.add(jsonObject);
-                    break;
-                }
-            }
-        }
-        return new R<>(list);
+        return new R(dataBaseOperatorService.getColumnsByTableName(tableName));
     }
 
-
 }

+ 20 - 0
platform-service/src/main/java/com/platform/service/custom/DataBaseOperatorService.java

@@ -0,0 +1,20 @@
+package com.platform.service.custom;
+
+import com.platform.dao.vo.query.custom.ColumnShowVO;
+
+import java.util.List;
+
+/**
+ * @Description 数据库操作 service
+ * @Author lsq
+ * @Date 2024-08-03 16:57:57
+ * @Version Copyright (c) 2020,合肥乾元坤合科技有限公司 All rights reserved.
+ */
+public interface DataBaseOperatorService {
+
+    /**
+     * 根据表名获取列名备注集合
+     * @return
+     */
+    List<ColumnShowVO> getColumnsByTableName(String tableName);
+}

+ 78 - 0
platform-service/src/main/java/com/platform/service/custom/impl/DataBaseOperatorServiceImpl.java

@@ -0,0 +1,78 @@
+package com.platform.service.custom.impl;
+
+import com.platform.common.exception.DeniedException;
+import com.platform.common.util.ListUtils;
+import com.platform.common.util.StringUtils;
+import com.platform.dao.vo.query.custom.ColumnShowVO;
+import com.platform.service.custom.DataBaseOperatorService;
+import com.platform.service.util.DatabaseUtil;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+@Service("dataBaseOperatorService")
+@Slf4j
+public class DataBaseOperatorServiceImpl implements DataBaseOperatorService {
+    public static List<String> excludeStr = ListUtils.newArrayList();
+    static {
+        excludeStr.add("id");
+        excludeStr.add("remark");
+        excludeStr.add("created_user_name");
+        excludeStr.add("created_time");
+        excludeStr.add("created_user_id");
+        excludeStr.add("update_user_id");
+        excludeStr.add("update_user_name");
+        excludeStr.add("update_time");
+    }
+    @Override
+    public List<ColumnShowVO> getColumnsByTableName(String tableName) {
+        if (StringUtils.isBlank(tableName)) {
+            throw new DeniedException("表名不可为空");
+        }
+        List<ColumnShowVO> columnList = ListUtils.newArrayList();
+        // 获取列名
+        Map<String,String> nameIndexMap = new HashMap<>(); // 下标&列名
+        List<String> columnNames = DatabaseUtil.getColumnNames(tableName);
+        for(int i=0;i<columnNames.size();i++){
+            String columnName = columnNames.get(i);
+            if(excludeStr.contains(columnName)){
+                continue;
+            }
+            nameIndexMap.put(String.valueOf(i),humpColumnName(columnName));
+        }
+        // 获取列名备注
+        List<String> columnComments = DatabaseUtil.getColumnComments(tableName);
+        for(int i=0;i<columnComments.size();i++){
+            String name = nameIndexMap.get(String.valueOf(i));
+            if(StringUtils.isNotBlank(name)){
+                ColumnShowVO item = new ColumnShowVO();
+                item.setColumnName(name);
+                item.setColumnComment(columnComments.get(i));
+                columnList.add(item);
+            }
+        }
+        return columnList;
+    }
+
+    private String humpColumnName(String columnName) {
+        boolean upFlag = false;
+        StringBuffer humpName = new StringBuffer();
+        char[] charArryay = columnName.toCharArray();
+        for(int i=0;i<charArryay.length;i++){
+            if(charArryay[i]=='_'){
+                upFlag = true;
+            }else{
+                if(upFlag){
+                    humpName.append(Character.toUpperCase(charArryay[i]));
+                    upFlag = false;
+                    continue;
+                }
+                humpName.append(charArryay[i]);
+            }
+        }
+        return humpName.toString();
+    }
+}