【新增】自动生成代码

This commit is contained in:
PandaGoAdmin
2022-01-12 16:01:29 +08:00
parent e391895609
commit 4e261811e6
13 changed files with 587 additions and 1374 deletions

View File

@@ -19,7 +19,7 @@ type GenApi struct {
// @Router /develop/code/gen/preview/{tableId} [get]
// @Security X-TOKEN
func (e *GenApi) Preview(rc *ctx.ReqCtx) {
tableId := ginx.PathParamInt(rc.GinCtx, rc.GinCtx.Param("tableId"))
tableId := ginx.PathParamInt(rc.GinCtx, "tableId")
rc.ResData = gen.Preview(int64(tableId))
}
@@ -31,11 +31,6 @@ func (e *GenApi) Preview(rc *ctx.ReqCtx) {
// @Router /develop/code/gen/code/{tableId} [get]
// @Security X-TOKEN
func (e *GenApi) GenCode(rc *ctx.ReqCtx) {
tableId := ginx.PathParamInt(rc.GinCtx, rc.GinCtx.Param("tableId"))
tableId := ginx.PathParamInt(rc.GinCtx, "tableId")
gen.GenCode(int64(tableId))
}
//自动创建菜单api
func (e *GenApi) AutoApi(rc *ctx.ReqCtx) {
}

View File

@@ -8,6 +8,7 @@ import (
"pandax/apps/develop/services"
"pandax/base/biz"
"pandax/base/config"
"pandax/base/global"
"pandax/base/utils"
"strconv"
"strings"
@@ -222,6 +223,10 @@ func (s *toolsGenTableColumn) GenTableInit(tableName string) entity.DevGenTable
data.PkColumn = dcs[i].ColumnName
data.PkGoField = column.GoField
data.PkJsonField = column.JsonField
global.Log.Info("是否自增主键", dcs[i].Extra)
if dcs[i].Extra == "auto_increment" {
column.IsIncrement = "1"
}
}
dataType := s.GetDbType(column.ColumnType)
@@ -236,7 +241,7 @@ func (s *toolsGenTableColumn) GenTableInit(tableName string) entity.DevGenTable
}
} else if s.IsTimeObject(dataType) {
//字段为时间类型
column.GoType = "Time"
column.GoType = "time.Time"
column.HtmlType = "datetime"
} else if s.IsNumberObject(dataType) {
//字段为数字类型
@@ -267,12 +272,12 @@ func (s *toolsGenTableColumn) GenTableInit(tableName string) entity.DevGenTable
column.IsRequired = "0"
column.IsInsert = "0"
} else {
column.IsRequired = "0"
column.IsInsert = "1"
if strings.Index(column.ColumnName, "name") >= 0 || strings.Index(column.ColumnName, "status") >= 0 {
column.IsRequired = "1"
}
}
// 编辑字段
if s.IsNotEdit(column.ColumnName) {
column.IsEdit = "0"
@@ -325,20 +330,20 @@ func Preview(tableId int64) map[string]interface{} {
t2, err := template.ParseFiles("resource/template/go/service.template")
biz.ErrIsNil(err, "service模版读取失败")
//t3, err := template.ParseFiles("resource/template/go/api.template")
//biz.ErrIsNil(err, "api模版读取失败")
//
//t4, err := template.ParseFiles("resource/template/go/router.template")
//biz.ErrIsNil(err, "router模版读取失败")
//
//t5, err := template.ParseFiles("resource/template/js/api.template")
//biz.ErrIsNil(err, "js模版读取失败")
//
//t6, err := template.ParseFiles("resource/template/vue/list-vue.template")
//biz.ErrIsNil(err, "vue列表模版读取失败")
//
//t7, err := template.ParseFiles("resource/template/vue/edit-vue.template")
//biz.ErrIsNil(err,"vue编辑模版读取失败")
t3, err := template.ParseFiles("resource/template/go/api.template")
biz.ErrIsNil(err, "api模版读取失败")
t4, err := template.ParseFiles("resource/template/go/router.template")
biz.ErrIsNil(err, "router模版读取失败")
t5, err := template.ParseFiles("resource/template/js/api.template")
biz.ErrIsNil(err, "js模版读取失败")
t6, err := template.ParseFiles("resource/template/vue/list-vue.template")
biz.ErrIsNil(err, "vue列表模版读取失败")
t7, err := template.ParseFiles("resource/template/vue/edit-vue.template")
biz.ErrIsNil(err, "vue编辑模版读取失败")
tab := services.DevGenTableModelDao.FindOne(entity.DevGenTable{TableId: tableId}, false)
@@ -346,25 +351,25 @@ func Preview(tableId int64) map[string]interface{} {
err = t1.Execute(&b1, tab)
var b2 bytes.Buffer
err = t2.Execute(&b2, tab)
//var b3 bytes.Buffer
//err = t3.Execute(&b3, tab)
//var b4 bytes.Buffer
//err = t4.Execute(&b4, tab)
//var b5 bytes.Buffer
//err = t5.Execute(&b5, tab)
//var b6 bytes.Buffer
//err = t6.Execute(&b6, tab)
//var b7 bytes.Buffer
//err = t7.Execute(&b7, tab)
var b3 bytes.Buffer
err = t3.Execute(&b3, tab)
var b4 bytes.Buffer
err = t4.Execute(&b4, tab)
var b5 bytes.Buffer
err = t5.Execute(&b5, tab)
var b6 bytes.Buffer
err = t6.Execute(&b6, tab)
var b7 bytes.Buffer
err = t7.Execute(&b7, tab)
mp := make(map[string]interface{})
mp["template/entity.template"] = b1.String()
mp["template/service.template"] = b2.String()
//mp["template/api.template"] = b3.String()
//mp["template/router.template"] = b4.String()
//mp["template/jsApi.template"] = b5.String()
//mp["template/listVue.template"] = b6.String()
//mp["template/editVue.template"] = b7.String()
mp["template/api.template"] = b3.String()
mp["template/router.template"] = b4.String()
mp["template/jsApi.template"] = b5.String()
mp["template/listVue.template"] = b6.String()
mp["template/editVue.template"] = b7.String()
return mp
}
@@ -380,19 +385,19 @@ func GenCode(tableId int64) {
t2, err := template.ParseFiles("resource/template/go/service.template")
biz.ErrIsNil(err, "service模版读取失败")
//t3, err := template.ParseFiles("resource/template/go/api.template")
//biz.ErrIsNil(err, "api模版读取失败")
//
//t4, err := template.ParseFiles("resource/template/go/router.template")
//biz.ErrIsNil(err, "router模版读取失败")
//
//t5, err := template.ParseFiles("resource/template/js/api.template")
//biz.ErrIsNil(err, "js模版读取失败")
//
//t6, err := template.ParseFiles("resource/template/vue/list-vue.template")
//biz.ErrIsNil(err, "vue列表模版读取失败")
//t7, err := template.ParseFiles("resource/template/vue/edit-vue.template")
//biz.ErrIsNil(err, "vue编辑模版读取失败")
t3, err := template.ParseFiles("resource/template/go/api.template")
biz.ErrIsNil(err, "api模版读取失败")
t4, err := template.ParseFiles("resource/template/go/router.template")
biz.ErrIsNil(err, "router模版读取失败")
t5, err := template.ParseFiles("resource/template/js/api.template")
biz.ErrIsNil(err, "js模版读取失败")
t6, err := template.ParseFiles("resource/template/vue/list-vue.template")
biz.ErrIsNil(err, "vue列表模版读取失败")
t7, err := template.ParseFiles("resource/template/vue/edit-vue.template")
biz.ErrIsNil(err, "vue编辑模版读取失败")
kgo.KFile.Mkdir("./apps/"+tab.PackageName+"/api/", os.ModePerm)
kgo.KFile.Mkdir("./apps/"+tab.PackageName+"/entity/", os.ModePerm)
@@ -406,22 +411,22 @@ func GenCode(tableId int64) {
err = t1.Execute(&b1, tab)
var b2 bytes.Buffer
err = t2.Execute(&b2, tab)
//var b3 bytes.Buffer
//err = t3.Execute(&b3, tab)
//var b4 bytes.Buffer
//err = t4.Execute(&b4, tab)
//var b5 bytes.Buffer
//err = t5.Execute(&b5, tab)
//var b6 bytes.Buffer
//err = t6.Execute(&b6, tab)
//var b7 bytes.Buffer
//err = t7.Execute(&b7, tab)
var b3 bytes.Buffer
err = t3.Execute(&b3, tab)
var b4 bytes.Buffer
err = t4.Execute(&b4, tab)
var b5 bytes.Buffer
err = t5.Execute(&b5, tab)
var b6 bytes.Buffer
err = t6.Execute(&b6, tab)
var b7 bytes.Buffer
err = t7.Execute(&b7, tab)
kgo.KFile.WriteFile("./apps/"+tab.PackageName+"/entity/"+tab.TableName+".go", b1.Bytes())
kgo.KFile.WriteFile("./apps/"+tab.PackageName+"/services/"+tab.TableName+".go", b2.Bytes())
//kgo.KFile.WriteFile("./apps/"+tab.PackageName+"/api/"+tab.TableName+".go", b3.Bytes())
//kgo.KFile.WriteFile("./apps/"+tab.PackageName+"/router/"+tab.TableName+".go", b4.Bytes())
//kgo.KFile.WriteFile(config.Conf.Gen.Frontpath+"/api/"+tab.PackageName+"/"+tab.ModuleName+".js", b5.Bytes())
//kgo.KFile.WriteFile(config.Conf.Gen.Frontpath+"/views/"+tab.PackageName+"/"+tab.ModuleName+"/index.vue", b6.Bytes())
//kgo.KFile.WriteFile(config.Conf.Gen.Frontpath+"/views/"+tab.PackageName+"/"+tab.ModuleName+"/"+"component"+"/index.vue", b7.Bytes())
kgo.KFile.WriteFile("./apps/"+tab.PackageName+"/api/"+tab.TableName+".go", b3.Bytes())
kgo.KFile.WriteFile("./apps/"+tab.PackageName+"/router/"+tab.TableName+".go", b4.Bytes())
kgo.KFile.WriteFile(config.Conf.Gen.Frontpath+"/api/"+tab.PackageName+"/"+tab.ModuleName+".js", b5.Bytes())
kgo.KFile.WriteFile(config.Conf.Gen.Frontpath+"/views/"+tab.PackageName+"/"+tab.ModuleName+"/index.vue", b6.Bytes())
kgo.KFile.WriteFile(config.Conf.Gen.Frontpath+"/views/"+tab.PackageName+"/"+tab.ModuleName+"/"+"component"+"/editModule.vue", b7.Bytes())
}

View File

@@ -23,10 +23,4 @@ func InitGenRouter(router *gin.RouterGroup) {
gen.GET("code/:tableId", func(c *gin.Context) {
ctx.NewReqCtxWithGin(c).WithLog(genCodeLog).Handle(genApi.GenCode)
})
genApiLog := ctx.NewLogInfo("生成菜单和api配置")
gen.GET("menuAndApi/:tableId", func(c *gin.Context) {
ctx.NewReqCtxWithGin(c).WithLog(genApiLog).Handle(genApi.AutoApi)
})
}

View File

@@ -133,7 +133,7 @@ func (m *devGenTableModelImpl) FindTree(data entity.DevGenTable) *[]entity.DevGe
db = db.Where("table_comment = ?", data.TableComment)
}
err := db.Find(&resData).Error
biz.ErrIsNil(err, err.Error())
biz.ErrIsNil(err, "获取TableTree失败")
for i := 0; i < len(resData); i++ {
var col entity.DevGenTableColumn
col.TableId = resData[i].TableId

View File

@@ -3,8 +3,8 @@ package api
import (
"errors"
"fmt"
entity "pandax/apps/system/entity"
services "pandax/apps/system/services"
"pandax/apps/system/entity"
"pandax/apps/system/services"
"pandax/base/biz"
"pandax/base/ctx"
"pandax/base/ginx"