mirror of
https://gitee.com/XM-GO/PandaX.git
synced 2026-04-23 02:48:34 +08:00
[优化] 将部分在services中抛出异常使用error返回
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
package api
|
||||
|
||||
import (
|
||||
"github.com/PandaXGO/PandaKit/biz"
|
||||
"github.com/PandaXGO/PandaKit/model"
|
||||
"github.com/PandaXGO/PandaKit/restfulx"
|
||||
"github.com/PandaXGO/PandaKit/utils"
|
||||
@@ -23,7 +24,8 @@ func (g *GenTableApi) GetDBTableList(rc *restfulx.ReqCtx) {
|
||||
pageSize := restfulx.QueryInt(rc, "pageSize", 10)
|
||||
dbt.TableName = restfulx.QueryParam(rc, "tableName")
|
||||
|
||||
list, total := g.GenTableApp.FindDbTablesListPage(pageNum, pageSize, dbt)
|
||||
list, total, err := g.GenTableApp.FindDbTablesListPage(pageNum, pageSize, dbt)
|
||||
biz.ErrIsNil(err, "查询配置分页列表信息失败")
|
||||
rc.ResData = model.ResultPage{
|
||||
Total: total,
|
||||
PageNum: int64(pageNum),
|
||||
@@ -42,7 +44,8 @@ func (g *GenTableApi) GetTablePage(rc *restfulx.ReqCtx) {
|
||||
dgt.RoleId = rc.LoginAccount.RoleId
|
||||
dgt.Owner = rc.LoginAccount.UserName
|
||||
|
||||
list, total := g.GenTableApp.FindListPage(pageNum, pageSize, dgt)
|
||||
list, total, err := g.GenTableApp.FindListPage(pageNum, pageSize, dgt)
|
||||
biz.ErrIsNil(err, "分页获取表失败")
|
||||
rc.ResData = model.ResultPage{
|
||||
Total: total,
|
||||
PageNum: int64(pageNum),
|
||||
@@ -56,7 +59,8 @@ func (g *GenTableApi) GetTableInfo(rc *restfulx.ReqCtx) {
|
||||
dgt := entity.DevGenTable{}
|
||||
dgt.TableId = int64(restfulx.PathParamInt(rc, "tableId"))
|
||||
dgt.RoleId = rc.LoginAccount.RoleId
|
||||
result := g.GenTableApp.FindOne(dgt, true)
|
||||
result, err := g.GenTableApp.FindOne(dgt, true)
|
||||
biz.ErrIsNil(err, "分页获取表信息失败")
|
||||
rc.ResData = vo.TableInfoVo{
|
||||
List: result.Columns,
|
||||
Info: *result,
|
||||
@@ -68,7 +72,8 @@ func (g *GenTableApi) GetTableInfoByName(rc *restfulx.ReqCtx) {
|
||||
dgt := entity.DevGenTable{}
|
||||
dgt.TableName = restfulx.QueryParam(rc, "tableName")
|
||||
dgt.RoleId = rc.LoginAccount.RoleId
|
||||
result := g.GenTableApp.FindOne(dgt, true)
|
||||
result, err := g.GenTableApp.FindOne(dgt, true)
|
||||
biz.ErrIsNil(err, "分页获取表信息失败")
|
||||
rc.ResData = vo.TableInfoVo{
|
||||
List: result.Columns,
|
||||
Info: *result,
|
||||
@@ -80,7 +85,9 @@ func (g *GenTableApi) GetTableTree(rc *restfulx.ReqCtx) {
|
||||
dgt := entity.DevGenTable{}
|
||||
dgt.RoleId = rc.LoginAccount.RoleId
|
||||
dgt.Owner = rc.LoginAccount.UserName
|
||||
rc.ResData = g.GenTableApp.FindTree(dgt)
|
||||
tree, err := g.GenTableApp.FindTree(dgt)
|
||||
biz.ErrIsNil(err, "获取树表信息失败")
|
||||
rc.ResData = tree
|
||||
}
|
||||
|
||||
// Insert 添加表结构
|
||||
@@ -92,11 +99,14 @@ func (g *GenTableApi) Insert(rc *restfulx.ReqCtx) {
|
||||
index := i
|
||||
wg.Add(1)
|
||||
go func(wg *sync.WaitGroup, index int) {
|
||||
genTable := gen.ToolsGenTableColumn.GenTableInit(tablesList[index])
|
||||
defer wg.Done()
|
||||
genTable, err := gen.ToolsGenTableColumn.GenTableInit(tablesList[index])
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
genTable.OrgId = rc.LoginAccount.OrganizationId
|
||||
genTable.Owner = rc.LoginAccount.UserName
|
||||
g.GenTableApp.Insert(genTable)
|
||||
wg.Done()
|
||||
}(&wg, index)
|
||||
}
|
||||
wg.Wait()
|
||||
@@ -106,12 +116,14 @@ func (g *GenTableApi) Insert(rc *restfulx.ReqCtx) {
|
||||
func (g *GenTableApi) Update(rc *restfulx.ReqCtx) {
|
||||
var data entity.DevGenTable
|
||||
restfulx.BindJsonAndValid(rc, &data)
|
||||
g.GenTableApp.Update(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)
|
||||
g.GenTableApp.Delete(group)
|
||||
err := g.GenTableApp.Delete(group)
|
||||
biz.ErrIsNil(err, "删除表结构")
|
||||
}
|
||||
|
||||
@@ -169,7 +169,7 @@ func (s *toolsGenTableColumn) CheckSexColumn(columnName string) bool {
|
||||
return false
|
||||
}
|
||||
|
||||
func (s *toolsGenTableColumn) GenTableInit(tableName string) entity.DevGenTable {
|
||||
func (s *toolsGenTableColumn) GenTableInit(tableName string) (entity.DevGenTable, error) {
|
||||
var data entity.DevGenTable
|
||||
data.TableName = tableName
|
||||
tableNameList := strings.Split(tableName, "_")
|
||||
@@ -189,7 +189,10 @@ func (s *toolsGenTableColumn) GenTableInit(tableName string) entity.DevGenTable
|
||||
// 中横线表名称,接口路径、前端文件夹名称和js名称使用
|
||||
data.ModuleName = strings.Replace(tableName, "_", "-", -1)
|
||||
|
||||
dbColumn := services.DevTableColumnModelDao.FindDbTableColumnList(tableName)
|
||||
dbColumn, err := services.DevTableColumnModelDao.FindDbTableColumnList(tableName)
|
||||
if err != nil {
|
||||
return data, err
|
||||
}
|
||||
data.TableComment = data.ClassName
|
||||
data.FunctionAuthor = "panda"
|
||||
|
||||
@@ -335,11 +338,16 @@ func (s *toolsGenTableColumn) GenTableInit(tableName string) entity.DevGenTable
|
||||
}(&wg, index)
|
||||
}
|
||||
wg.Wait()
|
||||
return data
|
||||
return data, nil
|
||||
}
|
||||
|
||||
// 视图预览
|
||||
func Preview(tableId int64) map[string]any {
|
||||
defer func() {
|
||||
if err := recover(); &err != nil {
|
||||
global.Log.Error(err)
|
||||
}
|
||||
}()
|
||||
t1, err := template.ParseFiles("resource/template/go/entity.template")
|
||||
biz.ErrIsNil(err, "entity模版读取失败")
|
||||
|
||||
@@ -361,7 +369,7 @@ func Preview(tableId int64) map[string]any {
|
||||
t7, err := template.ParseFiles("resource/template/vue/edit-vue.template")
|
||||
biz.ErrIsNil(err, "vue编辑模版读取失败!")
|
||||
|
||||
tab := services.DevGenTableModelDao.FindOne(entity.DevGenTable{TableId: tableId}, false)
|
||||
tab, err := services.DevGenTableModelDao.FindOne(entity.DevGenTable{TableId: tableId}, false)
|
||||
|
||||
var b1 bytes.Buffer
|
||||
err = t1.Execute(&b1, tab)
|
||||
@@ -391,8 +399,14 @@ func Preview(tableId int64) map[string]any {
|
||||
|
||||
// 生成 代码
|
||||
func GenCode(tableId int64) {
|
||||
defer func() {
|
||||
if err := recover(); &err != nil {
|
||||
global.Log.Error(err)
|
||||
}
|
||||
}()
|
||||
|
||||
tab := services.DevGenTableModelDao.FindOne(entity.DevGenTable{TableId: tableId}, false)
|
||||
tab, err := services.DevGenTableModelDao.FindOne(entity.DevGenTable{TableId: tableId}, false)
|
||||
biz.ErrIsNil(err, "读取表信息失败!")
|
||||
tab.ModuleName = strings.Replace(tab.TableName, "_", "-", -1)
|
||||
|
||||
t1, err := template.ParseFiles("resource/template/go/entity.template")
|
||||
@@ -449,8 +463,10 @@ func GenCode(tableId int64) {
|
||||
|
||||
// GenConfigure 生成菜单,api
|
||||
func GenConfigure(tableId, parentId int) {
|
||||
tab := services.DevGenTableModelDao.FindOne(entity.DevGenTable{TableId: int64(tableId)}, false)
|
||||
|
||||
tab, err := services.DevGenTableModelDao.FindOne(entity.DevGenTable{TableId: int64(tableId)}, false)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
//生成菜单 一个菜单 三个按钮
|
||||
component := "Layout"
|
||||
if parentId != 0 {
|
||||
|
||||
@@ -17,16 +17,16 @@ import (
|
||||
|
||||
type (
|
||||
SysGenTableModel interface {
|
||||
FindDbTablesListPage(page, pageSize int, data entity.DBTables) (*[]entity.DBTables, int64)
|
||||
FindDbTableOne(tableName string) *entity.DBTables
|
||||
FindDbTablesListPage(page, pageSize int, data entity.DBTables) (*[]entity.DBTables, int64, error)
|
||||
FindDbTableOne(tableName string) (*entity.DBTables, error)
|
||||
|
||||
// 导入表数据
|
||||
Insert(data entity.DevGenTable)
|
||||
FindOne(data entity.DevGenTable, exclude bool) *entity.DevGenTable
|
||||
FindTree(data entity.DevGenTable) *[]entity.DevGenTable
|
||||
FindListPage(page, pageSize int, data entity.DevGenTable) (*[]entity.DevGenTable, int64)
|
||||
Update(data entity.DevGenTable) *entity.DevGenTable
|
||||
Delete(tableIds []int64)
|
||||
Insert(data entity.DevGenTable) error
|
||||
FindOne(data entity.DevGenTable, exclude bool) (*entity.DevGenTable, error)
|
||||
FindTree(data entity.DevGenTable) (*[]entity.DevGenTable, error)
|
||||
FindListPage(page, pageSize int, data entity.DevGenTable) (*[]entity.DevGenTable, int64, error)
|
||||
Update(data entity.DevGenTable) (*entity.DevGenTable, error)
|
||||
Delete(tableIds []int64) error
|
||||
}
|
||||
|
||||
devGenTableModelImpl struct {
|
||||
@@ -38,7 +38,7 @@ var DevGenTableModelDao SysGenTableModel = &devGenTableModelImpl{
|
||||
table: "dev_gen_tables",
|
||||
}
|
||||
|
||||
func (m *devGenTableModelImpl) FindDbTablesListPage(page, pageSize int, data entity.DBTables) (*[]entity.DBTables, int64) {
|
||||
func (m *devGenTableModelImpl) FindDbTablesListPage(page, pageSize int, data entity.DBTables) (*[]entity.DBTables, int64, error) {
|
||||
list := make([]entity.DBTables, 0)
|
||||
pgdata := make([]map[string]any, 0)
|
||||
var total int64 = 0
|
||||
@@ -60,22 +60,20 @@ func (m *devGenTableModelImpl) FindDbTablesListPage(page, pageSize int, data ent
|
||||
}
|
||||
if global.Conf.Server.DbType == "mysql" {
|
||||
err := db.Limit(pageSize).Offset(offset).Find(&list).Offset(-1).Limit(-1).Count(&total).Error
|
||||
biz.ErrIsNil(err, "查询配置分页列表信息失败")
|
||||
return &list, total
|
||||
return &list, total, err
|
||||
} else {
|
||||
err := db.Limit(pageSize).Offset(offset).Find(&pgdata).Offset(-1).Limit(-1).Count(&total).Error
|
||||
biz.ErrIsNil(err, "查询配置分页列表信息失败")
|
||||
for _, pd := range pgdata {
|
||||
list = append(list, entity.DBTables{TableName: utils.B2S(pd["table_name"].([]uint8))})
|
||||
}
|
||||
return &list, total
|
||||
return &list, total, err
|
||||
}
|
||||
}
|
||||
|
||||
func (m *devGenTableModelImpl) FindDbTableOne(tableName string) *entity.DBTables {
|
||||
func (m *devGenTableModelImpl) FindDbTableOne(tableName string) (*entity.DBTables, error) {
|
||||
resData := new(entity.DBTables)
|
||||
if global.Conf.Server.DbType != "mysql" && global.Conf.Server.DbType != "postgresql" {
|
||||
biz.ErrIsNil(errors.New("只支持mysql和postgresql数据库"), "只支持mysql和postgresql数据库")
|
||||
return nil, errors.New("只支持mysql和postgresql数据库")
|
||||
}
|
||||
db := global.Db.Table("information_schema.tables")
|
||||
if global.Conf.Server.DbType == "mysql" {
|
||||
@@ -86,13 +84,14 @@ func (m *devGenTableModelImpl) FindDbTableOne(tableName string) *entity.DBTables
|
||||
}
|
||||
db = db.Where("table_name = ?", tableName)
|
||||
err := db.First(&resData).Error
|
||||
biz.ErrIsNil(err, err.Error())
|
||||
return resData
|
||||
return resData, err
|
||||
}
|
||||
|
||||
func (m *devGenTableModelImpl) Insert(dgt entity.DevGenTable) {
|
||||
func (m *devGenTableModelImpl) Insert(dgt entity.DevGenTable) error {
|
||||
err := global.Db.Table(m.table).Create(&dgt).Error
|
||||
biz.ErrIsNil(err, "新增生成代码表失败")
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
for i := 0; i < len(dgt.Columns); i++ {
|
||||
dgt.Columns[i].TableId = dgt.TableId
|
||||
columns := dgt.Columns[i]
|
||||
@@ -100,9 +99,10 @@ func (m *devGenTableModelImpl) Insert(dgt entity.DevGenTable) {
|
||||
columns.Owner = dgt.Owner
|
||||
DevTableColumnModelDao.Insert(columns)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (m *devGenTableModelImpl) FindOne(data entity.DevGenTable, exclude bool) *entity.DevGenTable {
|
||||
func (m *devGenTableModelImpl) FindOne(data entity.DevGenTable, exclude bool) (*entity.DevGenTable, error) {
|
||||
resData := new(entity.DevGenTable)
|
||||
db := global.Db.Table(m.table)
|
||||
if data.TableName != "" {
|
||||
@@ -115,13 +115,15 @@ func (m *devGenTableModelImpl) FindOne(data entity.DevGenTable, exclude bool) *e
|
||||
db = db.Where("table_comment = ?", data.TableComment)
|
||||
}
|
||||
err := db.First(resData).Error
|
||||
biz.ErrIsNil(err, "查询配置信息失败")
|
||||
list := DevTableColumnModelDao.FindList(entity.DevGenTableColumn{TableId: resData.TableId}, exclude)
|
||||
if err != nil {
|
||||
return resData, err
|
||||
}
|
||||
list, err := DevTableColumnModelDao.FindList(entity.DevGenTableColumn{TableId: resData.TableId}, exclude)
|
||||
resData.Columns = *list
|
||||
return resData
|
||||
return resData, err
|
||||
}
|
||||
|
||||
func (m *devGenTableModelImpl) FindTree(data entity.DevGenTable) *[]entity.DevGenTable {
|
||||
func (m *devGenTableModelImpl) FindTree(data entity.DevGenTable) (*[]entity.DevGenTable, error) {
|
||||
resData := make([]entity.DevGenTable, 0)
|
||||
db := global.Db.Table(m.table)
|
||||
|
||||
@@ -135,20 +137,23 @@ func (m *devGenTableModelImpl) FindTree(data entity.DevGenTable) *[]entity.DevGe
|
||||
db = db.Where("table_comment = ?", data.TableComment)
|
||||
}
|
||||
// 组织数据访问权限
|
||||
model.OrgAuthSet(db, data.RoleId, data.Owner)
|
||||
err := db.Find(&resData).Error
|
||||
biz.ErrIsNil(err, "获取TableTree失败")
|
||||
if err := model.OrgAuthSet(db, data.RoleId, data.Owner); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if err := db.Find(&resData).Error; err != nil {
|
||||
return nil, err
|
||||
}
|
||||
for i := 0; i < len(resData); i++ {
|
||||
var col entity.DevGenTableColumn
|
||||
col.TableId = resData[i].TableId
|
||||
col.RoleId = data.RoleId
|
||||
columns := DevTableColumnModelDao.FindList(col, false)
|
||||
columns, _ := DevTableColumnModelDao.FindList(col, false)
|
||||
resData[i].Columns = *columns
|
||||
}
|
||||
return &resData
|
||||
return &resData, nil
|
||||
}
|
||||
|
||||
func (m *devGenTableModelImpl) FindListPage(page, pageSize int, data entity.DevGenTable) (*[]entity.DevGenTable, int64) {
|
||||
func (m *devGenTableModelImpl) FindListPage(page, pageSize int, data entity.DevGenTable) (*[]entity.DevGenTable, int64, error) {
|
||||
list := make([]entity.DevGenTable, 0)
|
||||
var total int64 = 0
|
||||
offset := pageSize * (page - 1)
|
||||
@@ -162,17 +167,24 @@ func (m *devGenTableModelImpl) FindListPage(page, pageSize int, data entity.DevG
|
||||
db = db.Where("table_comment = ?", data.TableComment)
|
||||
}
|
||||
// 组织数据访问权限
|
||||
model.OrgAuthSet(db, data.RoleId, data.Owner)
|
||||
if err := model.OrgAuthSet(db, data.RoleId, data.Owner); err != nil {
|
||||
return &list, total, err
|
||||
}
|
||||
db.Where("delete_time IS NULL")
|
||||
err := db.Count(&total).Error
|
||||
err = db.Limit(pageSize).Offset(offset).Find(&list).Error
|
||||
biz.ErrIsNil(err, "查询生成代码列表信息失败")
|
||||
return &list, total
|
||||
if err := db.Count(&total).Error; err != nil {
|
||||
return &list, total, err
|
||||
}
|
||||
if err := db.Limit(pageSize).Offset(offset).Find(&list).Error; err != nil {
|
||||
return &list, total, err
|
||||
}
|
||||
return &list, total, nil
|
||||
}
|
||||
|
||||
func (m *devGenTableModelImpl) Update(data entity.DevGenTable) *entity.DevGenTable {
|
||||
func (m *devGenTableModelImpl) Update(data entity.DevGenTable) (*entity.DevGenTable, error) {
|
||||
err := global.Db.Table(m.table).Model(&data).Updates(&data).Error
|
||||
biz.ErrIsNil(err, "修改生成代码信息失败")
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
tableNames := make([]string, 0)
|
||||
for i := range data.Columns {
|
||||
@@ -185,7 +197,9 @@ func (m *devGenTableModelImpl) Update(data entity.DevGenTable) *entity.DevGenTab
|
||||
tableMap := make(map[string]*entity.DevGenTable)
|
||||
if len(tableNames) > 0 {
|
||||
err = global.Db.Table(m.table).Where("table_name in (?)", tableNames).Find(&tables).Error
|
||||
biz.ErrIsNil(err, "关联表不存在")
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
for i := range tables {
|
||||
tableMap[tables[i].TableName] = &tables[i]
|
||||
}
|
||||
@@ -203,10 +217,10 @@ func (m *devGenTableModelImpl) Update(data entity.DevGenTable) *entity.DevGenTab
|
||||
}
|
||||
DevTableColumnModelDao.Update(data.Columns[i])
|
||||
}
|
||||
return &data
|
||||
return &data, nil
|
||||
}
|
||||
|
||||
func (e *devGenTableModelImpl) DeleteTables(tableId int64) bool {
|
||||
func (e *devGenTableModelImpl) DeleteTables(tableId int64) (bool, error) {
|
||||
var err error
|
||||
success := false
|
||||
tx := global.Db.Begin()
|
||||
@@ -218,18 +232,20 @@ func (e *devGenTableModelImpl) DeleteTables(tableId int64) bool {
|
||||
}
|
||||
}()
|
||||
if err = tx.Table("sys_tables").Delete(entity.DevGenTable{}, "table_id = ?", tableId).Error; err != nil {
|
||||
return success
|
||||
return success, err
|
||||
}
|
||||
if err = tx.Table("sys_columns").Delete(entity.DevGenTableColumn{}, "table_id = ?", tableId).Error; err != nil {
|
||||
return success
|
||||
return success, err
|
||||
}
|
||||
success = true
|
||||
return success
|
||||
return success, nil
|
||||
}
|
||||
|
||||
func (m *devGenTableModelImpl) Delete(configIds []int64) {
|
||||
func (m *devGenTableModelImpl) Delete(configIds []int64) error {
|
||||
err := global.Db.Table(m.table).Delete(&entity.DevGenTable{}, "table_id in (?)", configIds).Error
|
||||
biz.ErrIsNil(err, "删除生成代码信息失败")
|
||||
if err != nil {
|
||||
return errors.New("删除生成代码信息失败")
|
||||
}
|
||||
DevTableColumnModelDao.Delete(configIds)
|
||||
return
|
||||
return nil
|
||||
}
|
||||
|
||||
@@ -2,7 +2,6 @@ package services
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"github.com/PandaXGO/PandaKit/biz"
|
||||
"pandax/apps/develop/entity"
|
||||
"pandax/pkg/global"
|
||||
)
|
||||
@@ -15,13 +14,13 @@ import (
|
||||
|
||||
type (
|
||||
SysGenTableColumnModel interface {
|
||||
FindDbTablesColumnListPage(page, pageSize int, data entity.DBColumns) (*[]entity.DBColumns, int64)
|
||||
FindDbTableColumnList(tableName string) []entity.DBColumns
|
||||
FindDbTablesColumnListPage(page, pageSize int, data entity.DBColumns) (*[]entity.DBColumns, int64, error)
|
||||
FindDbTableColumnList(tableName string) ([]entity.DBColumns, error)
|
||||
|
||||
Insert(data entity.DevGenTableColumn) *entity.DevGenTableColumn
|
||||
FindList(data entity.DevGenTableColumn, exclude bool) *[]entity.DevGenTableColumn
|
||||
Update(data entity.DevGenTableColumn) *entity.DevGenTableColumn
|
||||
Delete(tableId []int64)
|
||||
Insert(data entity.DevGenTableColumn) (*entity.DevGenTableColumn, error)
|
||||
FindList(data entity.DevGenTableColumn, exclude bool) (*[]entity.DevGenTableColumn, error)
|
||||
Update(data entity.DevGenTableColumn) (*entity.DevGenTableColumn, error)
|
||||
Delete(tableId []int64) error
|
||||
}
|
||||
|
||||
devTableColumnModelImpl struct {
|
||||
@@ -33,12 +32,12 @@ var DevTableColumnModelDao SysGenTableColumnModel = &devTableColumnModelImpl{
|
||||
table: "dev_gen_table_columns",
|
||||
}
|
||||
|
||||
func (m *devTableColumnModelImpl) FindDbTablesColumnListPage(page, pageSize int, data entity.DBColumns) (*[]entity.DBColumns, int64) {
|
||||
func (m *devTableColumnModelImpl) FindDbTablesColumnListPage(page, pageSize int, data entity.DBColumns) (*[]entity.DBColumns, int64, error) {
|
||||
list := make([]entity.DBColumns, 0)
|
||||
var total int64 = 0
|
||||
offset := pageSize * (page - 1)
|
||||
if global.Conf.Server.DbType != "mysql" && global.Conf.Server.DbType != "postgresql" {
|
||||
biz.ErrIsNil(errors.New("只支持mysql和postgresql数据库"), "只支持mysql和postgresql数据库")
|
||||
return nil, 0, errors.New("只支持mysql和postgresql数据库")
|
||||
}
|
||||
db := global.Db.Table("information_schema.COLUMNS")
|
||||
if global.Conf.Server.DbType == "mysql" {
|
||||
@@ -54,14 +53,13 @@ func (m *devTableColumnModelImpl) FindDbTablesColumnListPage(page, pageSize int,
|
||||
|
||||
err := db.Count(&total).Error
|
||||
err = db.Limit(pageSize).Offset(offset).Find(&list).Error
|
||||
biz.ErrIsNil(err, "查询生成代码列表信息失败")
|
||||
return &list, total
|
||||
return &list, total, err
|
||||
}
|
||||
|
||||
func (m *devTableColumnModelImpl) FindDbTableColumnList(tableName string) []entity.DBColumns {
|
||||
func (m *devTableColumnModelImpl) FindDbTableColumnList(tableName string) ([]entity.DBColumns, error) {
|
||||
|
||||
if global.Conf.Server.DbType != "mysql" && global.Conf.Server.DbType != "postgresql" {
|
||||
biz.ErrIsNil(errors.New("只支持mysql和postgresql数据库"), "只支持mysql和postgresql数据库")
|
||||
return nil, errors.New("只支持mysql和postgresql数据库")
|
||||
}
|
||||
db := global.Db.Table("information_schema.columns")
|
||||
if global.Conf.Server.DbType == "mysql" {
|
||||
@@ -70,21 +68,26 @@ func (m *devTableColumnModelImpl) FindDbTableColumnList(tableName string) []enti
|
||||
if global.Conf.Server.DbType == "postgresql" {
|
||||
db = db.Where("table_schema = ? ", "public")
|
||||
}
|
||||
biz.IsTrue(tableName != "", "table name cannot be empty!")
|
||||
if tableName == "" {
|
||||
return nil, errors.New("table name cannot be empty!")
|
||||
}
|
||||
|
||||
db = db.Where("table_name = ?", tableName)
|
||||
resData := make([]entity.DBColumns, 0)
|
||||
if global.Conf.Server.DbType == "mysql" {
|
||||
err := db.Find(&resData).Error
|
||||
biz.ErrIsNil(err, "查询表字段失败")
|
||||
return resData
|
||||
return resData, err
|
||||
}
|
||||
if global.Conf.Server.DbType == "postgresql" {
|
||||
pr, err := getPgPR(tableName)
|
||||
biz.ErrIsNil(err, "查询PG表主键字段失败")
|
||||
if err != nil {
|
||||
return resData, errors.New("查询PG表主键字段失败")
|
||||
}
|
||||
resDataP := make([]entity.DBColumnsP, 0)
|
||||
err = db.Find(&resDataP).Error
|
||||
biz.ErrIsNil(err, "查询表字段失败")
|
||||
if err != nil {
|
||||
return resData, errors.New("查询表字段失败")
|
||||
}
|
||||
for _, data := range resDataP {
|
||||
dbc := entity.DBColumns{
|
||||
TableSchema: data.TableSchema,
|
||||
@@ -107,9 +110,9 @@ func (m *devTableColumnModelImpl) FindDbTableColumnList(tableName string) []enti
|
||||
resData = append(resData, dbc)
|
||||
}
|
||||
|
||||
return resData
|
||||
return resData, nil
|
||||
}
|
||||
return resData
|
||||
return resData, nil
|
||||
}
|
||||
|
||||
func getPgPR(tableName string) (string, error) {
|
||||
@@ -127,13 +130,15 @@ WHERE
|
||||
return pkname, err
|
||||
}
|
||||
|
||||
func (m *devTableColumnModelImpl) Insert(dgt entity.DevGenTableColumn) *entity.DevGenTableColumn {
|
||||
func (m *devTableColumnModelImpl) Insert(dgt entity.DevGenTableColumn) (*entity.DevGenTableColumn, error) {
|
||||
err := global.Db.Table(m.table).Create(&dgt).Error
|
||||
biz.ErrIsNil(err, "新增生成代码字段表失败")
|
||||
return &dgt
|
||||
if err != nil {
|
||||
global.Log.Error(err)
|
||||
}
|
||||
return &dgt, err
|
||||
}
|
||||
|
||||
func (m *devTableColumnModelImpl) FindList(data entity.DevGenTableColumn, exclude bool) *[]entity.DevGenTableColumn {
|
||||
func (m *devTableColumnModelImpl) FindList(data entity.DevGenTableColumn, exclude bool) (*[]entity.DevGenTableColumn, error) {
|
||||
list := make([]entity.DevGenTableColumn, 0)
|
||||
db := global.Db.Table(m.table).Where("table_id = ?", data.TableId)
|
||||
if exclude {
|
||||
@@ -147,18 +152,15 @@ func (m *devTableColumnModelImpl) FindList(data entity.DevGenTableColumn, exclud
|
||||
db = db.Where("column_name not in(?)", notIn)
|
||||
}
|
||||
err := db.Find(&list).Error
|
||||
biz.ErrIsNil(err, "查询生成代码字段表信息失败")
|
||||
return &list
|
||||
return &list, err
|
||||
}
|
||||
|
||||
func (m *devTableColumnModelImpl) Update(data entity.DevGenTableColumn) *entity.DevGenTableColumn {
|
||||
func (m *devTableColumnModelImpl) Update(data entity.DevGenTableColumn) (*entity.DevGenTableColumn, error) {
|
||||
err := global.Db.Table(m.table).Model(&data).Updates(&data).Error
|
||||
biz.ErrIsNil(err, "修改生成代码字段表失败")
|
||||
return &data
|
||||
return &data, err
|
||||
}
|
||||
|
||||
func (m *devTableColumnModelImpl) Delete(tableId []int64) {
|
||||
func (m *devTableColumnModelImpl) Delete(tableId []int64) error {
|
||||
err := global.Db.Table(m.table).Delete(&entity.DevGenTableColumn{}, "table_id in (?)", tableId).Error
|
||||
biz.ErrIsNil(err, "删除生成代码字段表失败")
|
||||
return
|
||||
return err
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user