mirror of
https://github.com/tiger1103/gfast.git
synced 2026-09-21 10:12:59 +00:00
101 lines
3.3 KiB
Go
101 lines
3.3 KiB
Go
// ============================================================================
|
|
// This is auto-generated by gf cli tool only once. Fill this file as you wish.
|
|
// ============================================================================
|
|
|
|
package gen_table_column
|
|
|
|
import (
|
|
"github.com/gogf/gf/database/gdb"
|
|
"github.com/gogf/gf/errors/gerror"
|
|
"github.com/gogf/gf/frame/g"
|
|
)
|
|
|
|
//数据库字符串类型
|
|
var COLUMNTYPE_STR = []string{"char", "varchar", "narchar", "varchar2", "tinytext", "text", "mediumtext", "longtext"}
|
|
|
|
//数据库时间类型
|
|
var COLUMNTYPE_TIME = []string{"datetime", "time", "date", "timestamp"}
|
|
|
|
//数据库数字类型
|
|
var COLUMNTYPE_NUMBER = []string{"tinyint", "smallint", "mediumint", "int", "number", "integer", "bigint", "float", "float", "double", "decimal"}
|
|
|
|
//页面不需要编辑字段
|
|
var COLUMNNAME_NOT_EDIT = []string{"id", "create_by", "create_time", "del_flag", "update_by", "update_time"}
|
|
|
|
//页面不需要显示的列表字段
|
|
var COLUMNNAME_NOT_LIST = []string{"id", "create_by", "create_time", "del_flag", "update_by", "update_time"}
|
|
|
|
//页面不需要查询字段
|
|
var COLUMNNAME_NOT_QUERY = []string{"id", "create_by", "create_time", "del_flag", "update_by", "update_time", "remark"}
|
|
|
|
//根据表名称查询列信息
|
|
func SelectDbTableColumnsByName(tableName string) ([]*Entity, error) {
|
|
db := g.DB()
|
|
var entity []*Entity
|
|
sql := " select column_name, (case when (is_nullable = 'no' && column_key != 'PRI') then '1' else null end) as is_required, " +
|
|
"(case when column_key = 'PRI' then '1' else '0' end) as is_pk, ordinal_position as sort, column_comment," +
|
|
" (case when extra = 'auto_increment' then '1' else '0' end) as is_increment, column_type from information_schema.columns" +
|
|
" where table_schema = (select database()) "
|
|
sql += " and " + gdb.FormatSqlWithArgs(" table_name=? ", []interface{}{tableName}) + " order by ordinal_position ASC "
|
|
result, err := db.GetAll(sql)
|
|
if err != nil {
|
|
g.Log().Error(err)
|
|
return nil, gerror.New("查询列信息失败")
|
|
}
|
|
err = result.Structs(&entity)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return entity, nil
|
|
}
|
|
|
|
//判断是否是数据库字符串类型
|
|
func IsStringObject(value string) bool {
|
|
return IsExistInArray(value, COLUMNTYPE_STR)
|
|
}
|
|
|
|
//判断是否是数据库时间类型
|
|
func IsTimeObject(value string) bool {
|
|
return IsExistInArray(value, COLUMNTYPE_TIME)
|
|
}
|
|
|
|
//判断是否是数据库数字类型
|
|
func IsNumberObject(value string) bool {
|
|
return IsExistInArray(value, COLUMNTYPE_NUMBER)
|
|
}
|
|
|
|
//页面不需要编辑字段
|
|
func IsNotEdit(value string) bool {
|
|
return !IsExistInArray(value, COLUMNNAME_NOT_EDIT)
|
|
}
|
|
|
|
//页面不需要显示的列表字段
|
|
func IsNotList(value string) bool {
|
|
return !IsExistInArray(value, COLUMNNAME_NOT_LIST)
|
|
}
|
|
|
|
//页面不需要查询字段
|
|
func IsNotQuery(value string) bool {
|
|
return !IsExistInArray(value, COLUMNNAME_NOT_QUERY)
|
|
}
|
|
|
|
//判断string 是否存在在数组中
|
|
func IsExistInArray(value string, array []string) bool {
|
|
for _, v := range array {
|
|
if v == value {
|
|
return true
|
|
}
|
|
}
|
|
return false
|
|
}
|
|
|
|
//查询业务字段列表
|
|
func SelectGenTableColumnListByTableId(tableId int64) ([]*Entity, error) {
|
|
list, err := Model.Where(Columns.TableId, tableId).Order(Columns.Sort + " asc, " + Columns.ColumnId + " asc").All()
|
|
if err != nil {
|
|
g.Log().Error(err)
|
|
return nil, gerror.New("获取字段信息出错")
|
|
}
|
|
return list, nil
|
|
}
|