Prechádzať zdrojové kódy

自定义表单相关

zhouyy 2 mesiacov pred
rodič
commit
e5894ce610

+ 27 - 0
fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/controller/TableColumnController.java

@@ -0,0 +1,27 @@
+package com.management.platform.controller;
+
+import com.management.platform.service.CusTableColumnService;
+import com.management.platform.util.HttpRespMsg;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+
+@RestController
+@RequestMapping("/tableColumn")
+public class TableColumnController {
+
+    @Resource
+    private CusTableColumnService cusTableColumnService;
+
+//    @RequestMapping("/")
+
+    @RequestMapping("/getStructByTableName")
+    public HttpRespMsg getStructByTableName(@RequestParam("tableName") String tableName, HttpServletRequest request) {
+        HttpRespMsg msg = new HttpRespMsg();
+        msg = cusTableColumnService.getStructByTableName(tableName,request);
+        return msg;
+    }
+}

+ 27 - 0
fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/entity/BusObject.java

@@ -0,0 +1,27 @@
+package com.management.platform.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class BusObject extends Model<BusObject> {
+    private static final long serialVersionUID=1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**业务对象名称*/
+    @TableField("name")
+    private String name;
+
+    /**对应数据库里的表名*/
+    @TableField("tbl_name")
+    private String tblName;
+}

+ 43 - 0
fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/entity/CusTableColumn.java

@@ -0,0 +1,43 @@
+package com.management.platform.entity;
+
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class CusTableColumn extends Model<CusTableColumn> {
+//    private String TABLE_CATALOG;
+    private String tableCatalog;
+//    private String IS_NULLABLE;
+    private String isNullable;
+//    private String TABLE_NAME;
+    private String tableName;
+//    private String TABLE_SCHEMA;
+    private String tableSchema;
+//    private String EXTRA;
+    private String extra;
+//    private String COLUMN_NAME;
+    private String columnName;
+//    private String COLUMN_KEY;
+    private String columnKey;
+//    private String NUMERIC_PRECISION;
+    private String numericPrecision;
+//    private String PRIVILEGES;
+    private String privileges;
+//    private String COLUMN_COMMENT;
+    private String columnComment;
+//    private String NUMERIC_SCALE;
+    private String numericScale;
+//    private String COLUMN_TYPE;
+    private String columnType;
+//    private String GENERATION_EXPRESSION;
+    private String generationExpression;
+//    private String ORDINAL_POSITION;
+    private String ordinalPosition;
+//    private String DATA_TYPE;
+    private String dataType;
+
+}

+ 9 - 0
fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/mapper/BusObjectMapper.java

@@ -0,0 +1,9 @@
+package com.management.platform.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.management.platform.entity.BusObject;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface BusObjectMapper extends BaseMapper<BusObject> {
+}

+ 16 - 0
fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/mapper/CusTableColumnMapper.java

@@ -0,0 +1,16 @@
+package com.management.platform.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.management.platform.entity.CusTableColumn;
+import com.management.platform.provider.CusTableColumnProvider;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.SelectProvider;
+
+import java.util.List;
+
+@Mapper
+public interface CusTableColumnMapper extends BaseMapper<CusTableColumn> {
+
+    @SelectProvider(type = CusTableColumnProvider.class,method = "getStructByTableName")
+    List<CusTableColumn> getStructByTableName(String tableName);
+}

+ 14 - 0
fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/provider/CusTableColumnProvider.java

@@ -0,0 +1,14 @@
+package com.management.platform.provider;
+
+public class CusTableColumnProvider {
+    public String getStructByTableName(String tableName){
+        StringBuilder stringBuilder = new StringBuilder();
+        stringBuilder
+                .append("SELECT * FROM information_schema.`COLUMNS` WHERE TABLE_SCHEMA=(SELECT DATABASE()) AND TABLE_NAME = ")
+                .append("'")
+                .append(tableName).append("'")
+                .append(" AND COLUMN_NAME not like '%_id%' AND COLUMN_NAME not like '%id%' ")
+        ;
+        return stringBuilder.toString();
+    }
+}

+ 11 - 0
fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/service/CusTableColumnService.java

@@ -0,0 +1,11 @@
+package com.management.platform.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.management.platform.entity.CusTableColumn;
+import com.management.platform.util.HttpRespMsg;
+
+import javax.servlet.http.HttpServletRequest;
+
+public interface CusTableColumnService extends IService<CusTableColumn> {
+    HttpRespMsg getStructByTableName(String tableName, HttpServletRequest request);
+}

+ 58 - 0
fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/service/impl/CusTableColumnServiceImpl.java

@@ -0,0 +1,58 @@
+package com.management.platform.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.management.platform.entity.BusObject;
+import com.management.platform.entity.CusTableColumn;
+import com.management.platform.entity.User;
+import com.management.platform.mapper.BusObjectMapper;
+import com.management.platform.mapper.CusTableColumnMapper;
+import com.management.platform.mapper.UserMapper;
+import com.management.platform.service.CusTableColumnService;
+import com.management.platform.util.HttpRespMsg;
+import com.management.platform.util.MessageUtils;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+@Service
+public class CusTableColumnServiceImpl extends ServiceImpl<CusTableColumnMapper, CusTableColumn> implements CusTableColumnService {
+
+    @Resource
+    private CusTableColumnMapper cusTableColumnMapper;
+
+    @Resource
+    private UserMapper userMapper;
+
+    @Resource
+    private BusObjectMapper busObjectMapper;
+
+
+    @Override
+    public HttpRespMsg getStructByTableName(String tableName, HttpServletRequest request) {
+        HttpRespMsg msg = new HttpRespMsg();
+        String userId = request.getHeader("Token");
+        User user = userMapper.selectById(userId);
+        if(null == user){
+            msg.setError(MessageUtils.message("user.notExists"));
+            return msg;
+        }
+        BusObject busObject = busObjectMapper.selectOne(new LambdaQueryWrapper<BusObject>()
+                .eq(BusObject::getTblName, tableName)
+        );
+        if(null == busObject){
+            msg.setError("该表不存在");
+            return msg;
+        }
+        Map<String,Object> resMap = new HashMap<>();
+        resMap.put("busObject",busObject);
+        List<CusTableColumn> columnList = cusTableColumnMapper.getStructByTableName(tableName);
+        resMap.put("columnList",columnList);
+        msg.setData(resMap);
+        return msg;
+    }
+}