Files
PandaX/apps/develop/services/gen_table_column.go
2022-08-02 17:46:19 +08:00

116 lines
3.8 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
package services
import (
"errors"
"github.com/XM-GO/PandaKit/biz"
"pandax/apps/develop/entity"
"pandax/pkg/global"
)
/**
* @Description
* @Author Panda
* @Date 2021/12/31 14:44
**/
type (
SysGenTableColumnModel interface {
FindDbTablesColumnListPage(page, pageSize int, data entity.DBColumns) (*[]entity.DBColumns, int64)
FindDbTableColumnList(tableName string) *[]entity.DBColumns
Insert(data entity.DevGenTableColumn) *entity.DevGenTableColumn
FindList(data entity.DevGenTableColumn, exclude bool) *[]entity.DevGenTableColumn
Update(data entity.DevGenTableColumn) *entity.DevGenTableColumn
Delete(tableId []int64)
}
devTableColumnModelImpl struct {
table string
}
)
var DevTableColumnModelDao SysGenTableColumnModel = &devTableColumnModelImpl{
table: "dev_gen_table_columns",
}
func (m *devTableColumnModelImpl) FindDbTablesColumnListPage(page, pageSize int, data entity.DBColumns) (*[]entity.DBColumns, int64) {
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数据库")
}
db := global.Db.Table("information_schema.COLUMNS")
if global.Conf.Server.DbType == "mysql" {
db = db.Where("table_schema= ? ", global.Conf.Gen.Dbname)
}
if global.Conf.Server.DbType == "postgresql" {
db = db.Where("table_schema = ? ", "public")
}
if data.TableName != "" {
db = db.Where("table_name = ?", data.TableName)
}
err := db.Count(&total).Error
err = db.Limit(pageSize).Offset(offset).Find(&list).Error
biz.ErrIsNil(err, "查询生成代码列表信息失败")
return &list, total
}
func (m *devTableColumnModelImpl) FindDbTableColumnList(tableName string) *[]entity.DBColumns {
resData := make([]entity.DBColumns, 0)
if global.Conf.Server.DbType != "mysql" && global.Conf.Server.DbType != "postgresql" {
biz.ErrIsNil(errors.New("只支持mysql和postgresql数据库"), "只支持mysql和postgresql数据库")
}
db := global.Db.Table("information_schema.columns")
if global.Conf.Server.DbType == "mysql" {
db = db.Where("table_schema= ? ", global.Conf.Gen.Dbname)
}
if global.Conf.Server.DbType == "postgresql" {
db = db.Where("table_schema = ? ", "public")
}
biz.IsTrue(tableName != "", "table name cannot be empty")
db = db.Where("table_name = ?", tableName)
err := db.Find(&resData).Error
biz.ErrIsNil(err, "查询表字段失败")
return &resData
}
func (m *devTableColumnModelImpl) Insert(dgt entity.DevGenTableColumn) *entity.DevGenTableColumn {
err := global.Db.Table(m.table).Create(&dgt).Error
biz.ErrIsNil(err, "新增生成代码字段表失败")
return &dgt
}
func (m *devTableColumnModelImpl) FindList(data entity.DevGenTableColumn, exclude bool) *[]entity.DevGenTableColumn {
list := make([]entity.DevGenTableColumn, 0)
db := global.Db.Table(m.table).Where("table_id = ?", data.TableId)
if exclude {
notIn := make([]string, 6)
notIn = append(notIn, "id")
notIn = append(notIn, "create_by")
notIn = append(notIn, "update_by")
notIn = append(notIn, "create_time")
notIn = append(notIn, "update_time")
notIn = append(notIn, "delete_time")
db = db.Where("column_name not in(?)", notIn)
}
err := db.Find(&list).Error
biz.ErrIsNil(err, "查询生成代码字段表信息失败")
return &list
}
func (m *devTableColumnModelImpl) Update(data entity.DevGenTableColumn) *entity.DevGenTableColumn {
err := global.Db.Table(m.table).Model(&data).Updates(&data).Error
biz.ErrIsNil(err, "修改生成代码字段表失败")
return &data
}
func (m *devTableColumnModelImpl) Delete(tableId []int64) {
err := global.Db.Table(m.table).Delete(&entity.DevGenTableColumn{}, "table_id in (?)", tableId).Error
biz.ErrIsNil(err, "删除生成代码字段表失败")
return
}