diff --git a/server/api/v1/sys_auto_code.go b/server/api/v1/sys_auto_code.go
index 93fadf75d..a19aeed71 100644
--- a/server/api/v1/sys_auto_code.go
+++ b/server/api/v1/sys_auto_code.go
@@ -2,6 +2,7 @@ package v1
import (
"fmt"
+ "gin-vue-admin/global"
"gin-vue-admin/global/response"
"gin-vue-admin/model"
"gin-vue-admin/service"
@@ -87,3 +88,61 @@ func CreateTemp(c *gin.Context) {
os.Remove("./ginvueadmin.zip")
}
}
+
+// @Tags SysApi
+// @Summary 获取当前数据库所有表
+// @Security ApiKeyAuth
+// @accept application/json
+// @Produce application/json
+// @Success 200 {string} string "{"success":true,"data":{},"msg":"创建成功"}"
+// @Router /autoCode/getTables [get]
+
+func GetTables(c *gin.Context) {
+ dbName := c.DefaultQuery("dbName", global.GVA_CONFIG.Mysql.Dbname)
+ err, tables := service.GetTables(dbName)
+ if err != nil {
+ response.FailWithMessage(fmt.Sprintf("查询table失败,%v", err), c)
+ } else {
+ response.OkWithData(gin.H{
+ "tables": tables,
+ }, c)
+ }
+}
+
+// @Tags SysApi
+// @Summary 获取当前所有数据库
+// @Security ApiKeyAuth
+// @accept application/json
+// @Produce application/json
+// @Success 200 {string} string "{"success":true,"data":{},"msg":"创建成功"}"
+// @Router /autoCode/getDatabase [get]
+func GetDB(c *gin.Context) {
+ err, dbs := service.GetDB()
+ if err != nil {
+ response.FailWithMessage(fmt.Sprintf("查询table失败,%v", err), c)
+ } else {
+ response.OkWithData(gin.H{
+ "dbs": dbs,
+ }, c)
+ }
+}
+
+// @Tags SysApi
+// @Summary 获取当前表所有字段
+// @Security ApiKeyAuth
+// @accept application/json
+// @Produce application/json
+// @Success 200 {string} string "{"success":true,"data":{},"msg":"创建成功"}"
+// @Router /autoCode/getDatabase [get]
+func GetColume(c *gin.Context) {
+ dbName := c.DefaultQuery("dbName", global.GVA_CONFIG.Mysql.Dbname)
+ tableName := c.Query("tableName")
+ err, columes := service.GetColume(tableName, dbName)
+ if err != nil {
+ response.FailWithMessage(fmt.Sprintf("查询table失败,%v", err), c)
+ } else {
+ response.OkWithData(gin.H{
+ "columes": columes,
+ }, c)
+ }
+}
diff --git a/server/go.mod b/server/go.mod
index 60fc639a3..58893cd8c 100644
--- a/server/go.mod
+++ b/server/go.mod
@@ -14,7 +14,7 @@ require (
github.com/go-openapi/swag v0.19.8 // indirect
github.com/go-playground/validator/v10 v10.3.0 // indirect
github.com/go-redis/redis v6.15.7+incompatible
- github.com/go-sql-driver/mysql v1.5.0 // indirect
+ github.com/go-sql-driver/mysql v1.5.0
github.com/golang/protobuf v1.4.2 // indirect
github.com/jehiah/go-strftime v0.0.0-20171201141054-1d33003b3869 // indirect
github.com/jinzhu/gorm v1.9.12
@@ -32,8 +32,8 @@ require (
github.com/pelletier/go-toml v1.6.0 // indirect
github.com/piexlmax/gvaplug v0.0.8
github.com/pkg/errors v0.9.1 // indirect
- github.com/qiniu/x v1.10.5
github.com/qiniu/api.v7/v7 v7.4.1
+ github.com/qiniu/x v1.10.5
github.com/satori/go.uuid v1.2.0
github.com/spf13/afero v1.2.2 // indirect
github.com/spf13/cast v1.3.1 // indirect
diff --git a/server/model/request/sys_autocode.go b/server/model/request/sys_autocode.go
new file mode 100644
index 000000000..e163fef40
--- /dev/null
+++ b/server/model/request/sys_autocode.go
@@ -0,0 +1,15 @@
+package request
+
+type DBReq struct {
+ Database string `json:"database";gorm:"column:database"`
+}
+
+type TableReq struct {
+ TableName string `json:"tableName"`
+}
+
+type ColumeReq struct {
+ ColumeName string `json:"columeName";gorm:"column:colume_name"`
+ DataType string `json:"dataType";gorm:"column:data_type"`
+ ColumeComment string `json:"columeComment";gorm:"column:colume_comment"`
+}
diff --git a/server/router/sys_auto_code.go b/server/router/sys_auto_code.go
index effbd33d0..617d88aea 100644
--- a/server/router/sys_auto_code.go
+++ b/server/router/sys_auto_code.go
@@ -2,13 +2,16 @@ package router
import (
"gin-vue-admin/api/v1"
- "gin-vue-admin/middleware"
"github.com/gin-gonic/gin"
)
func InitAutoCodeRouter(Router *gin.RouterGroup) {
- AutoCodeRouter := Router.Group("autoCode").Use(middleware.JWTAuth()).Use(middleware.CasbinHandler())
+ AutoCodeRouter := Router.Group("autoCode")
{
AutoCodeRouter.POST("createTemp", v1.CreateTemp) // 创建自动化代码
+ AutoCodeRouter.GET("getTables", v1.GetTables) // 获取对应数据库的表
+ AutoCodeRouter.GET("getDB", v1.GetDB) // 获取数据库
+ AutoCodeRouter.GET("getColume", v1.GetColume) // 获取指定表所有字段信息
}
+
}
diff --git a/server/service/sys_auto_code.go b/server/service/sys_auto_code.go
index 7afda057b..8e7855412 100644
--- a/server/service/sys_auto_code.go
+++ b/server/service/sys_auto_code.go
@@ -1,7 +1,9 @@
package service
import (
+ "gin-vue-admin/global"
"gin-vue-admin/model"
+ "gin-vue-admin/model/request"
"gin-vue-admin/utils"
"io/ioutil"
"os"
@@ -115,3 +117,18 @@ func GetAllTplFile(pathName string, fileList []string) ([]string, error) {
}
return fileList, err
}
+
+func GetTables(dbName string) (err error, TableNames []request.TableReq) {
+ err = global.GVA_DB.Raw("select table_name from information_schema.tables where table_schema= ? and table_type= ? ", dbName, "base table").Scan(&TableNames).Error
+ return err, TableNames
+}
+
+func GetDB() (err error, DBNames []request.DBReq) {
+ err = global.GVA_DB.Raw("SELECT SCHEMA_NAME AS `database` FROM INFORMATION_SCHEMA.SCHEMATA;").Scan(&DBNames).Error
+ return err, DBNames
+}
+
+func GetColume(tableName string, dbName string) (err error, Columes []request.ColumeReq) {
+ err = global.GVA_DB.Raw("select COLUMN_NAME as 'colume_name', DATA_TYPE as 'data_type', COLUMN_COMMENT as 'colume_comment' from information_schema.COLUMNS where table_name = ? and table_schema = ?", tableName, dbName).Scan(&Columes).Error
+ return err, Columes
+}
diff --git a/web/src/api/autoCode.js b/web/src/api/autoCode.js
index 2fd8c7b3d..d727adfb6 100644
--- a/web/src/api/autoCode.js
+++ b/web/src/api/autoCode.js
@@ -18,4 +18,51 @@ export const createTemp = (data) => {
data,
responseType: 'blob'
})
+}
+
+
+// @Tags SysApi
+// @Summary 获取当前所有数据库
+// @Security ApiKeyAuth
+// @accept application/json
+// @Produce application/json
+// @Success 200 {string} string "{"success":true,"data":{},"msg":"创建成功"}"
+// @Router /autoCode/getDatabase [get]
+export const getDB = () => {
+ return service({
+ url: "/autoCode/getDB",
+ method: 'get',
+ })
+}
+
+
+
+// @Tags SysApi
+// @Summary 获取当前数据库所有表
+// @Security ApiKeyAuth
+// @accept application/json
+// @Produce application/json
+// @Success 200 {string} string "{"success":true,"data":{},"msg":"创建成功"}"
+// @Router /autoCode/getTables [get]
+export const getTable = (params) => {
+ return service({
+ url: "/autoCode/getTables",
+ method: 'get',
+ params,
+ })
+}
+
+// @Tags SysApi
+// @Summary 获取当前数据库所有表
+// @Security ApiKeyAuth
+// @accept application/json
+// @Produce application/json
+// @Success 200 {string} string "{"success":true,"data":{},"msg":"创建成功"}"
+// @Router /autoCode/getColume [get]
+export const getColume = (params) => {
+ return service({
+ url: "/autoCode/getColume",
+ method: 'get',
+ params,
+ })
}
\ No newline at end of file
diff --git a/web/src/view/systemTools/autoCode/component/fieldDialog.vue b/web/src/view/systemTools/autoCode/component/fieldDialog.vue
index da2936f79..66c4011a0 100644
--- a/web/src/view/systemTools/autoCode/component/fieldDialog.vue
+++ b/web/src/view/systemTools/autoCode/component/fieldDialog.vue
@@ -29,7 +29,7 @@
-
+
+
+
+
+
+
+
+
+
+
-
+