fix 优化代码生成关联表选择

This commit is contained in:
yxh 2023-11-15 14:25:25 +08:00
parent 5a4e096ee1
commit 8c27093d7f
4 changed files with 49 additions and 28 deletions

View File

@ -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"`
} }

View File

@ -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
} }

View File

@ -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)
} }
} }
} }
@ -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":

View File

@ -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)