Files
PandaX/apps/develop/api/table.go
lixxxww 1f661627c2 优化生成逻辑
Signed-off-by: lixxxww <941403820@qq.com>
2024-01-22 05:26:33 +00:00

132 lines
3.8 KiB
Go

package api
import (
"pandax/apps/develop/api/vo"
"pandax/apps/develop/entity"
"pandax/apps/develop/gen"
"pandax/apps/develop/services"
"github.com/PandaXGO/PandaKit/biz"
"github.com/PandaXGO/PandaKit/model"
"github.com/PandaXGO/PandaKit/restfulx"
"github.com/PandaXGO/PandaKit/utils"
"strings"
"sync"
)
type GenTableApi struct {
GenTableApp services.SysGenTableModel
}
// GetDBTableList 获取数据库表列表
func (g *GenTableApi) GetDBTableList(rc *restfulx.ReqCtx) {
dbTables := entity.DBTables{}
pageNum := restfulx.QueryInt(rc, "pageNum", 1)
pageSize := restfulx.QueryInt(rc, "pageSize", 10)
dbTables.TableName = restfulx.QueryParam(rc, "tableName")
list, total, err := g.GenTableApp.FindDbTablesListPage(pageNum, pageSize, dbTables)
biz.ErrIsNil(err, "查询配置分页列表信息失败")
rc.ResData = model.ResultPage{
Total: total,
PageNum: int64(pageNum),
PageSize: int64(pageSize),
Data: list,
}
}
// GetTablePage 获取表页列表数据
func (g *GenTableApi) GetTablePage(rc *restfulx.ReqCtx) {
devGenTable := entity.DevGenTable{}
pageNum := restfulx.QueryInt(rc, "pageNum", 1)
pageSize := restfulx.QueryInt(rc, "pageSize", 10)
devGenTable.TableName = restfulx.QueryParam(rc, "tableName")
devGenTable.TableComment = restfulx.QueryParam(rc, "tableComment")
devGenTable.RoleId = rc.LoginAccount.RoleId
devGenTable.Owner = rc.LoginAccount.UserName
list, total, err := g.GenTableApp.FindListPage(pageNum, pageSize, devGenTable)
biz.ErrIsNil(err, "分页获取表失败")
rc.ResData = model.ResultPage{
Total: total,
PageNum: int64(pageNum),
PageSize: int64(pageSize),
Data: list,
}
}
// GetTableInfo 获取表信息
func (g *GenTableApi) GetTableInfo(rc *restfulx.ReqCtx) {
devGenTable := entity.DevGenTable{}
devGenTable.TableId = int64(restfulx.PathParamInt(rc, "tableId"))
devGenTable.RoleId = rc.LoginAccount.RoleId
result, err := g.GenTableApp.FindOne(devGenTable, true)
biz.ErrIsNil(err, "分页获取表信息失败")
rc.ResData = vo.TableInfoVo{
List: result.Columns,
Info: *result,
}
}
// GetTableInfoByName 获取表信息
func (g *GenTableApi) GetTableInfoByName(rc *restfulx.ReqCtx) {
devGenTable := entity.DevGenTable{}
devGenTable.TableName = restfulx.QueryParam(rc, "tableName")
devGenTable.RoleId = rc.LoginAccount.RoleId
result, err := g.GenTableApp.FindOne(devGenTable, true)
biz.ErrIsNil(err, "分页获取表信息失败")
rc.ResData = vo.TableInfoVo{
List: result.Columns,
Info: *result,
}
}
// GetTableTree 获取树表信息
func (g *GenTableApi) GetTableTree(rc *restfulx.ReqCtx) {
devGenTable := entity.DevGenTable{}
devGenTable.RoleId = rc.LoginAccount.RoleId
devGenTable.Owner = rc.LoginAccount.UserName
tree, err := g.GenTableApp.FindTree(devGenTable)
biz.ErrIsNil(err, "获取树表信息失败")
rc.ResData = tree
}
// Insert 添加表结构
func (g *GenTableApi) Insert(rc *restfulx.ReqCtx) {
tables := strings.Split(restfulx.QueryParam(rc, "tables"), ",")
var wg sync.WaitGroup
for _, table := range tables {
wg.Add(1)
go func(table string) {
defer wg.Done()
var tg = gen.Generator{
TableName: table,
}
genTable, err := tg.Generate()
if err != nil {
biz.ErrIsNil(err, "创建表结构")
}
genTable.OrgId = rc.LoginAccount.OrganizationId
genTable.Owner = rc.LoginAccount.UserName
g.GenTableApp.Insert(genTable)
}(table)
}
wg.Wait()
}
// Update 修改表结构
func (g *GenTableApi) Update(rc *restfulx.ReqCtx) {
var data entity.DevGenTable
restfulx.BindJsonAndValid(rc, &data)
_, err := g.GenTableApp.Update(data)
biz.ErrIsNil(err, "修改表结构")
}
// Delete 删除表结构
func (g *GenTableApi) Delete(rc *restfulx.ReqCtx) {
tableIds := restfulx.PathParam(rc, "tableId")
group := utils.IdsStrToIdsIntGroup(tableIds)
err := g.GenTableApp.Delete(group)
biz.ErrIsNil(err, "删除表结构")
}