fix 优化代码生成关联表选择
This commit is contained in:
parent
5a4e096ee1
commit
8c27093d7f
@ -68,11 +68,16 @@ type ToolsGenTableEditRes struct {
|
|||||||
// ToolsGenRelationTableReq 获取关联表数据
|
// ToolsGenRelationTableReq 获取关联表数据
|
||||||
type ToolsGenRelationTableReq struct {
|
type ToolsGenRelationTableReq struct {
|
||||||
g.Meta `path:"/tools/gen/relationTable" tags:"代码生成" method:"get" summary:"获取关联表数据"`
|
g.Meta `path:"/tools/gen/relationTable" tags:"代码生成" method:"get" summary:"获取关联表数据"`
|
||||||
|
TableName string `p:"tableName"` //表名称
|
||||||
|
TableComment string `p:"tableComment"` //表描述
|
||||||
|
commonApi.PageReq
|
||||||
|
commonApi.Author
|
||||||
}
|
}
|
||||||
|
|
||||||
// ToolsGenRelationTableRes 关联表返回数据
|
// ToolsGenRelationTableRes 关联表返回数据
|
||||||
type ToolsGenRelationTableRes struct {
|
type ToolsGenRelationTableRes struct {
|
||||||
g.Meta `mime:"application/json"`
|
g.Meta `mime:"application/json"`
|
||||||
|
commonApi.ListRes
|
||||||
Data []*model.ToolsGenTableColumnsData `json:"data"`
|
Data []*model.ToolsGenTableColumnsData `json:"data"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -63,8 +63,7 @@ func (c *toolsGenTableController) GenColumnList(ctx context.Context, req *system
|
|||||||
|
|
||||||
// RelationTable 获取关联表数据
|
// RelationTable 获取关联表数据
|
||||||
func (c *toolsGenTableController) RelationTable(ctx context.Context, req *system.ToolsGenRelationTableReq) (res *system.ToolsGenRelationTableRes, err error) {
|
func (c *toolsGenTableController) RelationTable(ctx context.Context, req *system.ToolsGenRelationTableReq) (res *system.ToolsGenRelationTableRes, err error) {
|
||||||
res = new(system.ToolsGenRelationTableRes)
|
res, err = service.ToolsGenTable().GetRelationTable(ctx,req)
|
||||||
res.Data, err = service.ToolsGenTable().GetRelationTable(ctx)
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -294,19 +294,36 @@ func (s *sToolsGenTable) GetTableInfoByTableId(ctx context.Context, tableId int6
|
|||||||
}
|
}
|
||||||
|
|
||||||
// GetRelationTable 获取关联表数据
|
// GetRelationTable 获取关联表数据
|
||||||
func (s *sToolsGenTable) GetRelationTable(ctx context.Context) (res []*model.ToolsGenTableColumnsData, err error) {
|
func (s *sToolsGenTable) GetRelationTable(ctx context.Context, req *system.ToolsGenRelationTableReq) (res *system.ToolsGenRelationTableRes, err error) {
|
||||||
var tableColumnsAll []*entity.ToolsGenTableColumn
|
var tableColumnsAll []*entity.ToolsGenTableColumn
|
||||||
|
res = new(system.ToolsGenRelationTableRes)
|
||||||
err = g.Try(ctx, func(ctx context.Context) {
|
err = g.Try(ctx, func(ctx context.Context) {
|
||||||
|
m := dao.ToolsGenTable.Ctx(ctx)
|
||||||
|
if req.TableName != "" {
|
||||||
|
m = m.WhereLike(dao.ToolsGenTable.Columns().TableName, "%"+req.TableName+"%")
|
||||||
|
}
|
||||||
|
if req.TableComment != "" {
|
||||||
|
m = m.WhereLike(dao.ToolsGenTable.Columns().TableComment, "%"+req.TableComment+"%")
|
||||||
|
}
|
||||||
|
res.Total, err = m.Count()
|
||||||
|
liberr.ErrIsNil(ctx, err, "获取表数据总数失败")
|
||||||
|
if req.PageNum == 0 {
|
||||||
|
req.PageNum = 1
|
||||||
|
}
|
||||||
|
if req.PageSize == 0 {
|
||||||
|
req.PageSize = consts.PageSize
|
||||||
|
}
|
||||||
|
res.CurrentPage = req.PageNum
|
||||||
//获取表数据
|
//获取表数据
|
||||||
err = dao.ToolsGenTable.Ctx(ctx).Order(dao.ToolsGenTable.Columns().TableId + " ASC ").Scan(&res)
|
err = m.Page(req.PageNum, req.PageSize).Order(dao.ToolsGenTable.Columns().TableId + " ASC ").Scan(&res.Data)
|
||||||
liberr.ErrIsNil(ctx, err, "获取表数据失败")
|
liberr.ErrIsNil(ctx, err, "获取表数据失败")
|
||||||
//获取表字段数据
|
//获取表字段数据
|
||||||
tableColumnsAll, err = service.ToolsGenTableColumn().GetAllTableColumns(ctx)
|
tableColumnsAll, err = service.ToolsGenTableColumn().GetAllTableColumns(ctx)
|
||||||
liberr.ErrIsNil(ctx, err)
|
liberr.ErrIsNil(ctx, err)
|
||||||
for k, v := range res {
|
for k, v := range res.Data {
|
||||||
for _, cv := range tableColumnsAll {
|
for _, cv := range tableColumnsAll {
|
||||||
if cv.TableId == v.TableId {
|
if cv.TableId == v.TableId {
|
||||||
res[k].Columns = append(res[k].Columns, cv)
|
res.Data[k].Columns = append(res.Data[k].Columns, cv)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -371,7 +388,7 @@ func (s *sToolsGenTable) SaveEdit(ctx context.Context, req *system.ToolsGenTable
|
|||||||
if req.UseSnowId != "" {
|
if req.UseSnowId != "" {
|
||||||
table.UseSnowId = gconv.Bool(req.UseSnowId)
|
table.UseSnowId = gconv.Bool(req.UseSnowId)
|
||||||
}
|
}
|
||||||
if req.UseVirtual != ""{
|
if req.UseVirtual != "" {
|
||||||
table.UseVirtual = gconv.Bool(req.UseVirtual)
|
table.UseVirtual = gconv.Bool(req.UseVirtual)
|
||||||
}
|
}
|
||||||
if req.TplCategory != "" {
|
if req.TplCategory != "" {
|
||||||
@ -518,11 +535,11 @@ func (s *sToolsGenTable) GenData(ctx context.Context, tableId int64) (data g.Map
|
|||||||
"newArray": func() []interface{} {
|
"newArray": func() []interface{} {
|
||||||
return []interface{}{}
|
return []interface{}{}
|
||||||
},
|
},
|
||||||
"strTrim":func(str interface{},trimStr interface{}) string {
|
"strTrim": func(str interface{}, trimStr interface{}) string {
|
||||||
strCon:=gconv.String(str)
|
strCon := gconv.String(str)
|
||||||
strSub:=gconv.String(trimStr)
|
strSub := gconv.String(trimStr)
|
||||||
if len(strCon)>len(strSub){
|
if len(strCon) > len(strSub) {
|
||||||
strCon = gstr.StrEx(strCon,strSub)
|
strCon = gstr.StrEx(strCon, strSub)
|
||||||
}
|
}
|
||||||
return strCon
|
return strCon
|
||||||
},
|
},
|
||||||
@ -533,7 +550,7 @@ func (s *sToolsGenTable) GenData(ctx context.Context, tableId int64) (data g.Map
|
|||||||
"table": extendData,
|
"table": extendData,
|
||||||
"goModName": g.Cfg().MustGet(ctx, "gen.goModName").String(),
|
"goModName": g.Cfg().MustGet(ctx, "gen.goModName").String(),
|
||||||
"apiVersion": g.Cfg().MustGet(ctx, "gen.apiName").String(),
|
"apiVersion": g.Cfg().MustGet(ctx, "gen.apiName").String(),
|
||||||
"modulePath":gstr.StrEx(extendData.PackageName,"internal/app/"),
|
"modulePath": gstr.StrEx(extendData.PackageName, "internal/app/"),
|
||||||
}
|
}
|
||||||
apiKey := "api"
|
apiKey := "api"
|
||||||
apiValue := ""
|
apiValue := ""
|
||||||
@ -674,10 +691,10 @@ func (s *sToolsGenTable) GenData(ctx context.Context, tableId int64) (data g.Map
|
|||||||
var tmpVue string
|
var tmpVue string
|
||||||
tmpFile := "vue/list-vue.template"
|
tmpFile := "vue/list-vue.template"
|
||||||
if extendData.TplCategory == "tree" {
|
if extendData.TplCategory == "tree" {
|
||||||
if extendData.UseVirtual{
|
if extendData.UseVirtual {
|
||||||
//使用虚拟表树表
|
//使用虚拟表树表
|
||||||
tmpFile = "vue/tree-virtual-vue.template"
|
tmpFile = "vue/tree-virtual-vue.template"
|
||||||
}else{
|
} else {
|
||||||
//树表
|
//树表
|
||||||
tmpFile = "vue/tree-vue.template"
|
tmpFile = "vue/tree-vue.template"
|
||||||
}
|
}
|
||||||
@ -995,7 +1012,7 @@ func (s *sToolsGenTable) GenCode(ctx context.Context, ids []int) (err error) {
|
|||||||
liberr.ErrIsNil(ctx, err)
|
liberr.ErrIsNil(ctx, err)
|
||||||
packageName := extendData.PackageName
|
packageName := extendData.PackageName
|
||||||
businessName := gstr.CaseCamelLower(extendData.BusinessName)
|
businessName := gstr.CaseCamelLower(extendData.BusinessName)
|
||||||
modulePath := gstr.StrEx(extendData.PackageName,"internal/app/")
|
modulePath := gstr.StrEx(extendData.PackageName, "internal/app/")
|
||||||
for key, code := range genData {
|
for key, code := range genData {
|
||||||
switch key {
|
switch key {
|
||||||
case "api":
|
case "api":
|
||||||
@ -1033,7 +1050,7 @@ func (s *sToolsGenTable) GenCode(ctx context.Context, ids []int) (err error) {
|
|||||||
case "router":
|
case "router":
|
||||||
if !gstr.ContainsI(packageName, "system") { // system 模块不生成router文件
|
if !gstr.ContainsI(packageName, "system") { // system 模块不生成router文件
|
||||||
path := strings.Join([]string{curDir, "/", packageName, "/router/router", ".go"}, "")
|
path := strings.Join([]string{curDir, "/", packageName, "/router/router", ".go"}, "")
|
||||||
err = s.createFile(path, code, extendData.Overwrite)
|
err = s.createFile(path, code, false)
|
||||||
liberr.ErrIsNil(ctx, err)
|
liberr.ErrIsNil(ctx, err)
|
||||||
}
|
}
|
||||||
case "router_func":
|
case "router_func":
|
||||||
@ -1061,28 +1078,28 @@ func (s *sToolsGenTable) GenCode(ctx context.Context, ids []int) (err error) {
|
|||||||
err = s.createFile(path, code, extendData.Overwrite)
|
err = s.createFile(path, code, extendData.Overwrite)
|
||||||
liberr.ErrIsNil(ctx, err)
|
liberr.ErrIsNil(ctx, err)
|
||||||
case "tsModel":
|
case "tsModel":
|
||||||
path := strings.Join([]string{frontDir, "/src/views/",modulePath, "/", businessName + "/list/component/model", ".ts"}, "")
|
path := strings.Join([]string{frontDir, "/src/views/", modulePath, "/", businessName + "/list/component/model", ".ts"}, "")
|
||||||
err = s.createFile(path, code, extendData.Overwrite)
|
err = s.createFile(path, code, extendData.Overwrite)
|
||||||
liberr.ErrIsNil(ctx, err)
|
liberr.ErrIsNil(ctx, err)
|
||||||
case "vue":
|
case "vue":
|
||||||
path := strings.Join([]string{frontDir, "/src/views/",modulePath, "/", businessName, "/list/index.vue"}, "")
|
path := strings.Join([]string{frontDir, "/src/views/", modulePath, "/", businessName, "/list/index.vue"}, "")
|
||||||
err = s.createFile(path, code, extendData.Overwrite)
|
err = s.createFile(path, code, extendData.Overwrite)
|
||||||
liberr.ErrIsNil(ctx, err)
|
liberr.ErrIsNil(ctx, err)
|
||||||
case "vueDetail":
|
case "vueDetail":
|
||||||
path := strings.Join([]string{frontDir, "/src/views/" ,modulePath, "/", businessName + "/list/component/detail", ".vue"}, "")
|
path := strings.Join([]string{frontDir, "/src/views/", modulePath, "/", businessName + "/list/component/detail", ".vue"}, "")
|
||||||
err = s.createFile(path, code, extendData.Overwrite)
|
err = s.createFile(path, code, extendData.Overwrite)
|
||||||
liberr.ErrIsNil(ctx, err)
|
liberr.ErrIsNil(ctx, err)
|
||||||
case "vueEdit":
|
case "vueEdit":
|
||||||
path := strings.Join([]string{frontDir, "/src/views/" ,modulePath, "/", businessName + "/list/component/edit", ".vue"}, "")
|
path := strings.Join([]string{frontDir, "/src/views/", modulePath, "/", businessName + "/list/component/edit", ".vue"}, "")
|
||||||
err = s.createFile(path, code, extendData.Overwrite)
|
err = s.createFile(path, code, extendData.Overwrite)
|
||||||
liberr.ErrIsNil(ctx, err)
|
liberr.ErrIsNil(ctx, err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//生成模块路由
|
//生成模块路由
|
||||||
err = s.genModuleRouter(curDir, goModName, extendData.ModuleName,modulePath)
|
err = s.genModuleRouter(curDir, goModName, extendData.ModuleName, modulePath)
|
||||||
liberr.ErrIsNil(ctx, err)
|
liberr.ErrIsNil(ctx, err)
|
||||||
//生成模块boot logic
|
//生成模块boot logic
|
||||||
err = s.genModuleBootLogic(curDir, extendData.ModuleName,modulePath)
|
err = s.genModuleBootLogic(curDir, extendData.ModuleName, modulePath)
|
||||||
liberr.ErrIsNil(ctx, err)
|
liberr.ErrIsNil(ctx, err)
|
||||||
//生成对应模块的业务logic
|
//生成对应模块的业务logic
|
||||||
err = s.genModuleLogic(curDir, goModName, extendData.PackageName)
|
err = s.genModuleLogic(curDir, goModName, extendData.PackageName)
|
||||||
@ -1238,8 +1255,8 @@ func (s *sToolsGenTable) genModuleLogic(curDir, goModName, packageName string) (
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *sToolsGenTable) genModuleRouter(curDir, goModName, moduleName,modulePath string) (err error) {
|
func (s *sToolsGenTable) genModuleRouter(curDir, goModName, moduleName, modulePath string) (err error) {
|
||||||
modulePathName :=gstr.CaseCamelLower(gstr.Replace(modulePath,"/","_"))
|
modulePathName := gstr.CaseCamelLower(gstr.Replace(modulePath, "/", "_"))
|
||||||
path := strings.Join([]string{curDir, "/internal/router/" + modulePathName + ".go"}, "")
|
path := strings.Join([]string{curDir, "/internal/router/" + modulePathName + ".go"}, "")
|
||||||
if gfile.IsFile(path) || moduleName == "system" {
|
if gfile.IsFile(path) || moduleName == "system" {
|
||||||
return
|
return
|
||||||
@ -1259,8 +1276,8 @@ func (router *Router) Bind%sModuleController(ctx context.Context, group *ghttp.R
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *sToolsGenTable) genModuleBootLogic(curDir, moduleName,modulePath string) (err error) {
|
func (s *sToolsGenTable) genModuleBootLogic(curDir, moduleName, modulePath string) (err error) {
|
||||||
modulePathName :=gstr.CaseCamelLower(gstr.Replace(modulePath,"/","_"))
|
modulePathName := gstr.CaseCamelLower(gstr.Replace(modulePath, "/", "_"))
|
||||||
path := strings.Join([]string{curDir, "/internal/app/boot/" + modulePathName + ".go"}, "")
|
path := strings.Join([]string{curDir, "/internal/app/boot/" + modulePathName + ".go"}, "")
|
||||||
if gfile.IsFile(path) || moduleName == "system" {
|
if gfile.IsFile(path) || moduleName == "system" {
|
||||||
return
|
return
|
||||||
|
@ -26,7 +26,7 @@ type (
|
|||||||
DeleteTable(ctx context.Context, req *system.ToolsGenTableDeleteReq) error
|
DeleteTable(ctx context.Context, req *system.ToolsGenTableDeleteReq) error
|
||||||
ColumnList(ctx context.Context, req *system.ToolsGenTableEditReq) (res *system.ToolsGenTableEditRes, err error)
|
ColumnList(ctx context.Context, req *system.ToolsGenTableEditReq) (res *system.ToolsGenTableEditRes, err error)
|
||||||
GetTableInfoByTableId(ctx context.Context, tableId int64) (data *entity.ToolsGenTable, err error)
|
GetTableInfoByTableId(ctx context.Context, tableId int64) (data *entity.ToolsGenTable, err error)
|
||||||
GetRelationTable(ctx context.Context) (res []*model.ToolsGenTableColumnsData, err error)
|
GetRelationTable(ctx context.Context,req *system.ToolsGenRelationTableReq) (res *system.ToolsGenRelationTableRes, err error)
|
||||||
SaveEdit(ctx context.Context, req *system.ToolsGenTableColumnsEditReq) (err error)
|
SaveEdit(ctx context.Context, req *system.ToolsGenTableColumnsEditReq) (err error)
|
||||||
GenData(ctx context.Context, tableId int64) (data g.MapStrStr, extendData *model.ToolsGenTableEx, err error)
|
GenData(ctx context.Context, tableId int64) (data g.MapStrStr, extendData *model.ToolsGenTableEx, err error)
|
||||||
SelectRecordById(ctx context.Context, tableId int64) (tableEx *model.ToolsGenTableEx, err error)
|
SelectRecordById(ctx context.Context, tableId int64) (tableEx *model.ToolsGenTableEx, err error)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user