dbinfo

package module
v0.0.0-...-941deda Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 5, 2025 License: GPL-3.0 Imports: 15 Imported by: 8

Documentation

Index

Constants

View Source
const (
	Eq         = "="
	Lt         = "<"
	Le         = "<="
	Gt         = ">"
	Ge         = ">="
	Ne         = "<>"
	Between    = "BETWEEN"
	NotBetween = "NOT BETWEEN"
	Like       = "LIKE"
	NoLike     = "NOT LIKE"
	IsNull     = "IS NULL"
	IsNotNull  = "IS NOT NULL"
	In         = "IN"
	NotIn      = "NOT IN"
)

*

  • @Description: 查询条件符号
View Source
const SPECIAL_STR = "/INTEGER/STRING/INT/NULL/LONG/FLOAT/DOUBLE/FUNCTION/" // /Integer/string/int/null/long/float/double/function/

要被过滤的特殊字符串,用'/'分隔

Variables

View Source
var (
	BaseSystemDb         []string //基本数据库库名
	TableMajorKeyString  []string //数据库表主键名称(字符串形式)
	TableMajorKeyAutoInt []string //数据库表主键名称(自增长形式)
	TableMajorKeyUuId    []string //数据库表主键名称(UUID形式)
	TablePidKey          []string //数据库表字段名称-上级字段名
	TablePathKey         []string //数据库表字段名称-主键路径名
	TableTreeNode        []string //数据库表字段名称-树形节点名
	TableCreator         []string //数据库表字段名称-创建人
	TableCreateDate      []string //数据库表字段名称-创建时间
	TableModifieder      []string //数据库表字段名称-修改人
	TableModifiedDate    []string //数据库表字段名称-修改时间
	TableState           []string //数据库表字段名称-状态值
	TableRrank           []string //数据库表字段名称-排序值
	TableEdition         []string //数据库表字段名称-版本号
	TablePassword        []string //数据库表字段名称-密码
	TableDelSign         []string //数据库表字段名称-逻辑删除标识
	TableSetp            []string //数据库表字段名称-步骤值
	TableOnlyign         []string //数据库表字段名称-唯一标识
	TableNameDictionary  []string //字典表表名
	TableDictionaryValue []string //字典表值字段名
	TableRecordKey       []string //记录验证串字段名
	TableSign            []string //标识字段名
	TableMemo            []string //备注字段名
	RecordKeyIgnoreField []string //创建RecordKey值时忽略字段

	TableTreeRootValue = []string{"00", "00", "00"} //数据库树型表根节点默认值
)

Functions

func BaseAttribNameArray

func BaseAttribNameArray(refer Entity) []string

*

  • 取结构体属性名串数组
  • @param refer
  • @return

func BaseAttribNameMap

func BaseAttribNameMap(refer Entity) map[string]string

*

  • 取结构体属性名串Map
  • @param refer
  • @return

func BaseAttribNames

func BaseAttribNames(refer Entity) string

*

  • 取结构体属性名串
  • @param refer
  • @return

func BaseFieldNameArray

func BaseFieldNameArray(refer Entity) []string

*

  • 取结构体映射表的字段名串数组
  • @param refer
  • @return

func BaseFieldNameMap

func BaseFieldNameMap(refer Entity) map[string]string

*

  • 取结构体映射表的字段名串Map
  • @param refer
  • @return

func BaseFieldNames

func BaseFieldNames(refer Entity) string

*

  • 取结构体映射表的字段名串
  • @param refer
  • @return

func BaseJsonNameArray

func BaseJsonNameArray(refer Entity) []string

*

  • 取结构体Json名串数组
  • @param refer
  • @return

func BaseJsonNameMap

func BaseJsonNameMap(refer Entity) map[string]string

*

  • 取结构体Json名串Map
  • @param refer
  • @return

func BaseJsonNames

func BaseJsonNames(refer Entity) string

*

  • 取结构体Json名串
  • @param refer
  • @return

func BigTextFields

func BigTextFields(refer Entity) []string

*

  • 大文本字段名称集合
  • @param refer
  • @return

func CheckRecordKey

func CheckRecordKey(entity Entity) bool

*

  • 验证'记录验证串'是否正确
  • @param entity
  • @return

func CreateRecordKey

func CreateRecordKey(entity Entity) string

* 创建记录验证值 * @param entity * @return

func CreateRecordKeyByMap

func CreateRecordKeyByMap(refer Entity, data map[string]interface{}) string

* 根据结构体创建map的记录验证值 * @param refer 参照结构体,仅用于取结构 * @param data 数据 * @return

func EntityAutoKey

func EntityAutoKey(refer Entity) bool

*

  • 是否存在自增主键
  • @param refer
  • @return

func EntityDbName

func EntityDbName(refer Entity) string

*

  • 取所属数据库名
  • @param refer
  • @return

func EntityDbObj

func EntityDbObj(refer Entity) string

*

  • 取数据库名称别名,对应数据库全局配置名
  • @param refer
  • @return

func EntityHasCreateDate

func EntityHasCreateDate(refer Entity) bool

*

  • 是否存在CreateDate
  • @param refer
  • @return

func EntityHasCreator

func EntityHasCreator(refer Entity) bool

*

  • 是否存在Creator
  • @param refer
  • @return

func EntityHasDelSign

func EntityHasDelSign(refer Entity) bool

*

  • 是否存在iDelSign
  • @param refer
  • @return

func EntityHasEdition

func EntityHasEdition(refer Entity) bool

*

  • 是否存在Edition
  • @param refer
  • @return

func EntityHasMemo

func EntityHasMemo(refer Entity) bool

*

  • 是否存在Memo
  • @param refer
  • @return

func EntityHasModifiedDate

func EntityHasModifiedDate(refer Entity) bool

*

  • 是否存在ModifiedDate
  • @param refer
  • @return

func EntityHasModifieder

func EntityHasModifieder(refer Entity) bool

*

  • 是否存在Modifieder
  • @param refer
  • @return

func EntityHasOnlyign

func EntityHasOnlyign(refer Entity) bool

*

  • 是否存在sOnlyign
  • @param refer
  • @return

func EntityHasPassword

func EntityHasPassword(refer Entity) bool

*

  • 是否存在password
  • @param refer
  • @return

func EntityHasPath

func EntityHasPath(refer Entity) bool

*

  • 是否存在Path
  • @param refer
  • @return

func EntityHasPid

func EntityHasPid(refer Entity) bool

*

  • 是否存在Pid
  • @param refer
  • @return

func EntityHasRank

func EntityHasRank(refer Entity) bool

*

  • 是否存在Rank
  • @param refer
  • @return

func EntityHasRecordKey

func EntityHasRecordKey(refer Entity) bool

*

  • 是否存在sRecordKey
  • @param refer
  • @return

func EntityHasSign

func EntityHasSign(refer Entity) bool

*

  • 是否存在sign
  • @param refer
  • @return

func EntityHasState

func EntityHasState(refer Entity) bool

*

  • 是否存在State
  • @param refer
  • @return

func EntityKeyField

func EntityKeyField(refer Entity) string

*

  • 取所属数据库表主键名
  • 注意:如果有多个主键,则取第一个主键
  • @param refer
  • @return

func EntityKeyFields

func EntityKeyFields(refer Entity) string

*

  • 取所属数据库表主键名
  • 注意:如果有多个主键,则全取,并以','分隔
  • @param refer
  • @return

func EntityKeyJson

func EntityKeyJson(refer Entity) string

*

  • 取所属数据库表主键Json名
  • 注意:如果有多个主键,则取第一个主键
  • @param refer
  • @return

func EntityKeyLength

func EntityKeyLength(refer Entity) int

*

  • 取所属数据库表主键长度
  • 注意:如果有多个主键,则取第一个主键
  • @param refer
  • @return

func EntityKeyName

func EntityKeyName(refer Entity) string

*

  • 取所属数据库表主键对象名
  • 注意:如果有多个主键,则取第一个主键
  • @param refer
  • @return

func EntityKeyNames

func EntityKeyNames(refer Entity) string

*

  • 取所属数据库表主键对象名
  • 注意:如果有多个主键,则全取,并以','分隔
  • @param refer
  • @return

func EntityKeysLength

func EntityKeysLength(refer Entity) map[string]int

*

  • 取所属数据库表主键长度
  • 注意:如果有多个主键,则全取
  • @param refer
  • @return

func EntityTableName

func EntityTableName(refer Entity) string

*

  • 取所属数据库表名
  • @param refer
  • @return

func GetFieldName

func GetFieldName(refer Entity, name string) string

*

  • 按名称取取数据库字段名
  • @param refer
  • @param name
  • @return

func GetVal

func GetVal(entity Entity, name string) interface{}

*

  • 取数据值
  • @param entity
  • @param name 字段名
  • @return

func HasColumnName

func HasColumnName(refer Entity, name string) bool

*

  • 判断是否存在字段名
  • @param refer
  • @param name
  • @return

func HoldByEntity

func HoldByEntity(refer Entity, data map[string]interface{}) map[string]interface{}

*

  • 按实体保留map中的数据
  • refer 检查用数据结构
  • data 数据

func RemoveData

func RemoveData(data map[string]interface{}, refer Entity, removeNames ...string) map[string]interface{}

*

  • 参考结构体排除指定属性名称的字段
  • data 数据
  • refer 检查用数据结构
  • removeNames 待移除的json名集合

func SetDefault

func SetDefault(entity Entity, cover bool)

*

  • 设置默认值
  • @param entity
  • @param cover 是否覆盖

func SetRecordKey

func SetRecordKey(entity Entity) string

*

  • 设置当前实体的'记录验证串'值
  • @param entity
  • @return 返回新值

func SetVal

func SetVal(entity Entity, name string, val interface{})

*

  • 设置数据值(此函数用于未知结构体的情况下调用)
  • @param name 字段名
  • @param val 值
  • @return

func SimpleTableName

func SimpleTableName(refer Entity) string

* 结构体简略表名(无库名) * @return

func ToMap

func ToMap(entity interface{}) map[string]interface{}

将结构体的所有属性及其值存入 map[string]interface{}

func TrimFields

func TrimFields(entity Entity)

*

  • 去除字符类型属性前后空格

func ValidAttr

func ValidAttr(data map[string]interface{}, refer Entity, ignoreNames ...string) (int, error)

*

  • 对对象中添加了DataInfo注解的不为null的属性检查限制
  • data 数据
  • refer 检查用数据结构
  • ignoreNames 待忽略的字段

func ValidAttrByAdd

func ValidAttrByAdd(refer Entity, ignoreNames ...string) (int, error)

*

  • 对'新增'对象中添加了DataInfo注解的属性检查限制
  • refer 检查用数据结构
  • ignoreNames 待忽略的字段

func ValidAttrByEdit

func ValidAttrByEdit(data map[string]interface{}, refer Entity, ignoreNames ...string) (int, error)

*

  • 对'编辑'对象中添加了DataInfo注解的不为null的属性检查限制
  • data 数据
  • refer 检查用数据结构
  • ignoreNames 待忽略的字段

Types

type DataInfo

type DataInfo struct {
	Name          string      `json:"name"`          //对象属性名
	JsonName      string      `json:"jsonName"`      //Json名
	IsDbField     bool        `json:"isDbField"`     //是否数据库字段
	Field         string      `json:"field"`         //字段名称
	DbName        string      `json:"dbName"`        //所在数据库名称
	DbObj         string      `json:"dbObj"`         //数据库名称别名,对应数据库全局配置名
	TableName     string      `json:"tableName"`     //所在数据库表表名称
	KeyName       string      `json:"keyName"`       //表主键名称
	Index         int         `json:"index"`         //序号
	MaxLength     int         `json:"maxLength"`     //最大长度
	IsNull        bool        `json:"isNull"`        //是否允许为空
	IsKey         bool        `json:"isKey"`         //是否主键
	IsExtra       bool        `json:"isExtra"`       //是否自增
	IsBigTxt      bool        `json:"isBigTxt"`      //是否大文本字段
	IsDecimal     bool        `json:"isDecimal"`     //是否浮点数字段
	DefaultData   string      `json:"defaultData"`   //默认值
	GoDefaultData interface{} `json:"goDefaultData"` //默认值(Go语言用)
	Comment       string      `json:"comment"`       //字段备注
	HasDecimal    bool        `json:"hasDecimal"`    //类型是否有小数
	IntLength     int         `json:"intLength"`     //整数位的长度
	DecimalLength int         `json:"decimalLength"` //小数位的长度
	DbFileType    string      `json:"dbFileType"`    //字段在数据库中的类型
	RelTitle      string      `json:"relTitle"`      //关联后显示的名称
	RelName       string      `json:"relName"`       //关联关系中被动关联的字段名,如 (LEFT JOIN RelTable ON RelTable.A = MainTable.B )中的A
	RelMainName   string      `json:"relMainName"`   //关联关系中被关联的字段名,如 (LEFT JOIN RelTable ON RelTable.A = MainTable.B )中的B
}

数据信息注解

func AllDataInfo

func AllDataInfo(refer Entity) []*DataInfo

*

  • 取所有数据结构信息
  • @param refer
  • @return

func GetDataInfo

func GetDataInfo(refer Entity, name string) *DataInfo

*

  • 按名称取数据结构信息
  • @param refer
  • @param name
  • @return

func GetDataInfoByIndex

func GetDataInfoByIndex(refer Entity, index int) *DataInfo

*

  • 按字段顺序取数据结构信息
  • @param refer
  • @param index
  • @return

func GetKeyDataInfo

func GetKeyDataInfo(refer Entity) []*DataInfo

*

  • 取主键数据结构信息
  • @param refer
  • @return

func (DataInfo) New

func (DataInfo) New() *DataInfo

创建结构体,并设置默认值

type Entity

type Entity interface {
	New() Entity                       //创建结构实体
	BaseColumnNames() string           //结构体的属性名串(首字母小写)
	BaseEntity() Entity                //取基础实体,用于在子类(嵌套结构体)时同样获得基类
	GetDataInfo(name string) *DataInfo //取数据结构信息
	TableName() string                 //结构体映射表名,当gorm进行查询时要明确与gorm规则不同的表名时使用
	OwnerName() string                 //结构体映射全局库名,需要对应数据库全局变量才能获得真正的库名
	OwnerTable() string                //结构体映射表名,无库名
	TableInfo() *TableInfo             //结构体映射表简化信息
}

实体接口定义,用于规范实体结构体

func BaseEntity

func BaseEntity(refer Entity) Entity

*

  • 取基础实体,用于在子类(嵌套结构体)时同样获得基类
  • @param refer
  • @return

func GetEntity

func GetEntity(name string) Entity

*

  • 取实体结构体
  • @param name
  • @return

func MapSetEntity

func MapSetEntity(data map[string]interface{}, entity Entity) Entity

Map设置结构体

func MapToEntity

func MapToEntity(data map[string]interface{}, entity Entity) Entity

将map数据转换为实体

func NewList

func NewList(refer Entity, size int) []Entity

*

  • 创建指定长度的结构实体集合
  • @param refer
  • @param size
  • @return

func RegisterEntity

func RegisterEntity(name string, refer Entity) Entity

*

  • 注册实体结构体
  • @param name
  • @param refer

func ToEntity

func ToEntity(data map[string]interface{}, entity Entity) (Entity, int, error)

*

  • 将map转成实体
  • data 数据
  • entity 数据结构

type EntityEmptyFunc

type EntityEmptyFunc struct {
}

实体接口实现空类(用于不那么依赖框架的模块)

func (EntityEmptyFunc) BaseColumnNames

func (EntityEmptyFunc) BaseColumnNames() string

*

  • 结构体的属性名串(首字母小写)

func (EntityEmptyFunc) BaseEntity

func (EntityEmptyFunc) BaseEntity() Entity

*

  • 取基础实体,用于在子类(嵌套结构体)时同样获得基类

func (EntityEmptyFunc) GetDataInfo

func (EntityEmptyFunc) GetDataInfo(name string) *DataInfo

*

  • 取数据结构信息

func (EntityEmptyFunc) New

func (EntityEmptyFunc) New() Entity

*

  • 创建结构实体

func (EntityEmptyFunc) OwnerName

func (EntityEmptyFunc) OwnerName() string

*

  • 结构体映射全局库名,需要对应数据库全局变量才能获得真正的库名

func (EntityEmptyFunc) OwnerTable

func (EntityEmptyFunc) OwnerTable() string

*

  • 结构体映射表名,无库名

func (EntityEmptyFunc) TableInfo

func (EntityEmptyFunc) TableInfo() *TableInfo

*

  • 结构体映射表简化信息

func (EntityEmptyFunc) TableName

func (EntityEmptyFunc) TableName() string

*

  • 结构体映射表名,当gorm进行查询时要明确与gorm规则不同的表名时使用

type FieldInfo

type FieldInfo struct {
	Name          string      `json:"name"`          //对象属性名(驼峰名称头字母大写)
	JsonName      string      `json:"jsonName"`      //Json名(驼峰名称头字母小写)
	IsDbField     bool        `json:"isDbField"`     //是否数据库字段
	Field         string      `json:"field"`         //字段名称
	DbName        string      `json:"dbName"`        //所在数据库名称
	DbObj         string      `json:"dbObj"`         //数据库名称别名,对应数据库全局配置名
	TableName     string      `json:"tableName"`     //所在数据库表表名称
	TableJson     string      `json:"tableJson"`     //所在数据库表Json名称(驼峰名称头字母大写)
	KeyName       string      `json:"keyName"`       //表主键名称
	Index         int         `json:"index"`         //序号
	MaxLength     int         `json:"maxLength"`     //最大长度
	IsNull        bool        `json:"isNull"`        //是否允许为空
	IsKey         bool        `json:"isKey"`         //是否主键
	IsExtra       bool        `json:"isExtra"`       //是否自增
	IsBigTxt      bool        `json:"isBigTxt"`      //是否大文本字段
	IsDecimal     bool        `json:"isDecimal"`     //是否浮点数字段
	DefaultData   string      `json:"defaultData"`   //默认值
	GoDefaultData interface{} `json:"goDefaultData"` //默认值(Go语言用)
	Comment       string      `json:"comment"`       //字段备注
	HasDecimal    bool        `json:"hasDecimal"`    //类型是否有小数
	IntLength     int         `json:"intLength"`     //整数位的长度
	DecimalLength int         `json:"decimalLength"` //小数位的长度
	DbFileType    string      `json:"dbFileType"`    //字段在数据库中的类型
	RelTitle      string      `json:"relTitle"`      //关联后显示的名称
	RelName       string      `json:"relName"`       //关联关系中被动关联的字段名,如 (LEFT JOIN RelTable ON RelTable.A = MainTable.B )中的A
	RelMainName   string      `json:"relMainName"`   //关联关系中被关联的字段名,如 (LEFT JOIN RelTable ON RelTable.A = MainTable.B )中的B
	Value         interface{} `json:"value"`         //字段值
}

字段信息信息结构体

func (*FieldInfo) Copy

func (field *FieldInfo) Copy() *FieldInfo

复制字段信息

func (FieldInfo) New

func (FieldInfo) New() *FieldInfo

创建结构体,并设置默认值

type FindByPageParam

type FindByPageParam struct {
	Page        Page                   `json:"page"`        //分页信息对象
	Orders      []OrderInfo            `json:"orders"`      //排序信息对象集合
	LikeStr     string                 `json:"likeStr"`     //全文检索条件
	LikeDateSt  string                 `json:"likeDateSt"`  //全文检索查询记录修改时间范围条件-开始
	LikeDateEd  string                 `json:"likeDateEd"`  //全文检索查询记录修改时间范围条件-结束
	Condition   interface{}            `json:"condition"`   //常规查询条件对象(根据定义的类型转换)
	HideBigText bool                   `json:"hideBigText"` //是否隐藏大文本字段
	HideFields  string                 `json:"hideFields"`  //隐藏字段集合';'分隔
	Fields      []string               `json:"fields"`      //字段集合
	Extend      map[string]interface{} `json:"extend"`      // 附加信息
}

分页查询条件组合类

type OrderInfo

type OrderInfo struct {
	OrderDbName string `json:"orderDbName"` //排序字段名所属库名
	OrderTable  string `json:"orderTable"`  //排序字段名所属表
	OrderField  string `json:"orderField"`  //排序字段名
	Direction   string `json:"direction"`   //排序方式(升序ASC 降序DESC)
	Rank        int    `json:"rank"`        //排序顺序
}

排序信息

func (*OrderInfo) SetDirection

func (o *OrderInfo) SetDirection(Direction string)

*

  • 设置 排序方式(升序ASC 降序DESC)
  • @param Direction 排序方式(升序ASC 降序DESC)

func (*OrderInfo) SetOrderDbName

func (o *OrderInfo) SetOrderDbName(OrderDbName string)

*

  • 设置 排序字段名所属库名
  • @param OrderDbName 排序字段名所属库名

func (*OrderInfo) SetOrderField

func (o *OrderInfo) SetOrderField(OrderField string)

*

  • 设置 排序字段名
  • @param OrderField 排序字段名

func (*OrderInfo) SetOrderTable

func (o *OrderInfo) SetOrderTable(OrderTable string)

*

  • 设置 排序字段名所属表
  • @param OrderTable 排序字段名所属表

func (*OrderInfo) String

func (o *OrderInfo) String() string

*

  • 输出排序字符串

type Page

type Page struct {
	Current   int                      `json:"current"`   //当前页
	Size      int                      `json:"size"`      //每页显示记录
	CountRow  int                      `json:"countRow"`  //总记录数
	CountPage int                      `json:"countPage"` //总页数
	Record    []map[string]interface{} `json:"record"`    //本页的数据列表
}

分页数据信息对象,常用于前端与后台列表数据交互

func MapToPage

func MapToPage(data map[string]interface{}) *Page

*

  • 将map数据转换为分页信息
  • @param data
  • @return

func (Page) New

func (Page) New() *Page

创建分页信息

func (*Page) Set

func (p *Page) Set(start, size, countRow int, record []map[string]interface{}) *Page

设置分页信息

func (*Page) SetRecord

func (p *Page) SetRecord(record []map[string]interface{}) *Page

设置数据列表

type TableInfo

type TableInfo struct {
	DbName          string `json:"dbName"`          //所在数据库名称
	DbObj           string `json:"dbObj"`           //数据库名称别名,对应数据库全局配置名
	TableFullName   string `json:"tableFullName"`   //所在数据库表表全名(数据库.表名)
	TableName       string `json:"tableName"`       //所在数据库表表名称
	TableObj        string `json:"tableObj"`        //所在数据库表对象名(首字母大写)
	KeyName         string `json:"keyName"`         //表主键名称(首字母大写)
	KeyJson         string `json:"keyJson"`         //表主键名称(json名称)
	KeyField        string `json:"keyField"`        //表主键字段
	KeyFields       string `json:"keyFields"`       //表主键字段集合(如果有多个主键,则全取,并以','分隔)
	KeyLen          int    `json:"keyLen"`          //主键长度
	AutoKey         bool   `json:"autoKey"`         //是否自增主键
	HasPid          bool   `json:"hasPid"`          //是否存在pid
	HasPath         bool   `json:"hasPath"`         //是否存在path
	HasRecordKey    bool   `json:"hasRecordKey"`    //是否存在recordKey
	HasMemo         bool   `json:"hasMemo"`         //是否存在memo
	HasCreator      bool   `json:"hasCreator"`      //是否存在creator
	HasCreateDate   bool   `json:"hasCreateDate"`   //是否存在createDate
	HasModifieder   bool   `json:"hasModifieder"`   //是否存在modifieder
	HasModifiedDate bool   `json:"hasModifiedDate"` //是否存在modifiedDate
	HasState        bool   `json:"hasState"`        //是否存在state
	HasRank         bool   `json:"hasRank"`         //是否存在rank
	HasEdition      bool   `json:"hasEdition"`      //是否存在edition
	HasPassword     bool   `json:"hasPassword"`     //是否存在password
	HasSign         bool   `json:"hasSign"`         //是否存在sign
	HasOnlyign      bool   `json:"hasOnlyign"`      //是否存在onlyign
	HasDelSign      bool   `json:"hasDelSign"`      //是否存在delSign
	HasAttached     bool   `json:"hasAttached"`     //是否存在attached
	BigTextFields   string `json:"bigTextFields"`   //大文本字段名称集合,';'分隔
}

数据信息注解

func GetTableInfo

func GetTableInfo(refer Entity) *TableInfo

*

  • 结构体映射表简化信息

type Time

type Time time.Time

自定义时间类型

func (*Time) MarshalJSON

func (tu *Time) MarshalJSON() ([]byte, error)

重写MarshalJSON方法来实现gorm查询时间字段事数据解析

func (Time) Now

func (tu Time) Now() Time

取当前时间

func (Time) String

func (tu Time) String() string

func (*Time) UnmarshalJSON

func (t *Time) UnmarshalJSON(data []byte) (err error)

type VirtualEntity

type VirtualEntity struct {
	EnableTag              int            `json:"enableTag"`              //控制操作值集合
	CheckRepeatCombination []string       `json:"checkRepeatCombination"` //检查待新增内容是否存在重复数据(多字段组合重复即重复)集合
	CheckRepeatAlone       map[string]int `json:"checkRepeatAlone"`       //检查待新增内容是否存在重复数据(单独字段重复即重复)集合

	JsonDbName      string `json:"jsonDbName"`      // 数据库名称别名,对应数据库全局配置名
	JsonName        string `json:"jsonName"`        // 所在数据库表对象名(首字母小写)
	DbName          string `json:"dbName"`          // 所在数据库名称
	TableFullName   string `json:"tableFullName"`   // 所在数据库表表全名(数据库.表名)
	TableName       string `json:"tableName"`       // 所在数据库表表名称
	TableObj        string `json:"tableObj"`        // 所在数据库表对象名(首字母大写)
	KeyName         string `json:"keyName"`         // 表主键名称(首字母大写)
	KeyJson         string `json:"keyJson"`         // 表主键名称(json名称)
	KeyField        string `json:"keyField"`        // 表主键字段
	KeyFields       string `json:"keyFields"`       // 表主键字段集合(如果有多个主键,则全取,并以','分隔)
	KeyLen          int    `json:"keyLen"`          // 主键长度
	AutoKey         bool   `json:"autoKey"`         // 是否自增主键
	HasPid          bool   `json:"hasPid"`          // 是否存在pid
	HasPath         bool   `json:"hasPath"`         // 是否存在path
	HasRecordKey    bool   `json:"hasRecordKey"`    // 是否存在recordKey
	HasMemo         bool   `json:"hasMemo"`         // 是否存在memo
	HasCreator      bool   `json:"hasCreator"`      // 是否存在creator
	HasCreateDate   bool   `json:"hasCreateDate"`   // 是否存在createDate
	HasModifieder   bool   `json:"hasModifieder"`   // 是否存在modifieder
	HasModifiedDate bool   `json:"hasModifiedDate"` // 是否存在modifiedDate
	HasState        bool   `json:"hasState"`        // 是否存在state
	HasRank         bool   `json:"hasRank"`         // 是否存在rank
	HasEdition      bool   `json:"hasEdition"`      // 是否存在edition
	HasPassword     bool   `json:"hasPassword"`     // 是否存在password
	HasSign         bool   `json:"hasSign"`         // 是否存在sign
	HasOnlyign      bool   `json:"hasOnlyign"`      // 是否存在onlyign
	HasDelSign      bool   `json:"hasDelSign"`      // 是否存在delSign
	HasAttached     bool   `json:"hasAttached"`     // 是否存在attached
	BigTextFields   string `json:"bigTextFields"`   // 大文本字段名称集合,';'分隔

	Fields    map[string]*FieldInfo `json:"fields"`    // 字段信息,以字段名小驼峰形式做键
	RelFields map[string]*FieldInfo `json:"relFields"` // 关联字段信息,以字段名小驼峰形式做键
}

虚拟实体

func CreateVirtualEntity

func CreateVirtualEntity(jsonDbName, jsonName string) *VirtualEntity

*

  • 创建虚拟实体
  • @param jsonDbName 数据库名称别名,对应数据库全局配置名
  • @param jsonName 数据库表对象名(首字母小写)
  • @return *VirtualEntity 返回虚拟实体
  • @return

func (*VirtualEntity) Copy

func (entity *VirtualEntity) Copy() *VirtualEntity

func (*VirtualEntity) CreateRecordKey

func (entity *VirtualEntity) CreateRecordKey(key string) string

*

  • 创建当前'记录验证串'
  • @param key 加密密钥
  • @return String 子节点集合

func (*VirtualEntity) CreateRecordKeyByMap

func (entity *VirtualEntity) CreateRecordKeyByMap(data map[string]interface{}) string

* 根据结构体创建map的记录验证值 * @param data 数据 * @return

func (*VirtualEntity) FormMap

func (entity *VirtualEntity) FormMap(data map[string]interface{}) *VirtualEntity

*

  • map赋值对象字段
  • @param map
  • @return

func (*VirtualEntity) GetField

func (entity *VirtualEntity) GetField(name string) *FieldInfo

*

  • 取字段信息
  • @param map
  • @return

func (*VirtualEntity) GetFieldName

func (entity *VirtualEntity) GetFieldName(name string) string

*

  • 取字段名称
  • @param map
  • @return

func (*VirtualEntity) GetKeyField

func (entity *VirtualEntity) GetKeyField() *FieldInfo

func (*VirtualEntity) GetKeyValue

func (entity *VirtualEntity) GetKeyValue() interface{}

*

  • 取主键值
  • @return

func (*VirtualEntity) GetRelField

func (entity *VirtualEntity) GetRelField(name string) *FieldInfo

*

  • 取关联字段信息
  • @param map
  • @return

func (*VirtualEntity) GetRelValue

func (entity *VirtualEntity) GetRelValue(name string) interface{}

*

  • 取指定关联字段值
  • @param name
  • @return

func (*VirtualEntity) GetValue

func (entity *VirtualEntity) GetValue(name string) interface{}

*

  • 取指定字段值
  • @param name
  • @return

func (*VirtualEntity) HasFieldName

func (entity *VirtualEntity) HasFieldName(name string) bool

*

  • 判断是否存在指定名称的字段
  • @param name
  • @return

func (*VirtualEntity) HoldByEntity

func (entity *VirtualEntity) HoldByEntity(data map[string]interface{}) map[string]interface{}

*

  • 按实体保留map中的数据
  • object 待检查对象
  • data 数据

func (VirtualEntity) New

创建虚拟实体

func (*VirtualEntity) RemoveData

func (entity *VirtualEntity) RemoveData(data map[string]interface{}, removeNames ...string) map[string]interface{}

*

  • 参考结构体排除指定属性名称的字段
  • data 数据
  • removeNames 待移除的json名集合

func (*VirtualEntity) SetDefault

func (entity *VirtualEntity) SetDefault(cover bool) *VirtualEntity

*

  • 设置默认值
  • @param cover 是否覆盖

func (*VirtualEntity) SetKeyValue

func (entity *VirtualEntity) SetKeyValue(val interface{}) *VirtualEntity

*

  • 设置主键值
  • @param value
  • @return

func (*VirtualEntity) SetRelValue

func (entity *VirtualEntity) SetRelValue(name string, value interface{}) bool

*

  • 设置指定关联字段值
  • @param name
  • @param value
  • @return

func (*VirtualEntity) SetValue

func (entity *VirtualEntity) SetValue(name string, value interface{}) bool

*

  • 设置指定字段值
  • @param name
  • @param value
  • @return

func (*VirtualEntity) ToMap

func (entity *VirtualEntity) ToMap() map[string]interface{}

*

  • 对象值数据转map
  • @return

func (*VirtualEntity) ValidAttr

func (entity *VirtualEntity) ValidAttr(data map[string]interface{}, ignoreNames ...string) (int, error)

*

  • 对对象中添加了FieldInfo字段的不为null的属性检查限制
  • data 数据
  • ignoreNames 待忽略的字段

func (*VirtualEntity) ValidAttrByAdd

func (entity *VirtualEntity) ValidAttrByAdd(ignoreNames ...string) (int, error)

*

  • 对'新增'对象中添加了FieldInfo字段的属性检查限制
  • ignoreNames 待忽略的字段

func (*VirtualEntity) ValidAttrByEdit

func (entity *VirtualEntity) ValidAttrByEdit(data map[string]interface{}, ignoreNames ...string) (int, error)

*

  • 对'编辑'对象中添加了FieldInfo字段的不为null的属性检查限制
  • data 数据
  • ignoreNames 待忽略的字段

func (*VirtualEntity) ValidRecordKey

func (entity *VirtualEntity) ValidRecordKey(key string) bool

*

  • 验证当前'记录验证串'是否正确
  • @param key 加密密钥
  • @return boolean 正确返回true

type WhereInfo

type WhereInfo struct {
	Name      string      //属性名(注意:非字段名)
	Value     interface{} //字段值
	ValueName string      //值字段名,与Value互斥, 一般用于条件 Name < ValueNmae的情况,如 'where dStTime < dStopTime'
	Condition string      //查询条件符号
}

*

  • @Description: 查询条件

func NewWhereInfo

func NewWhereInfo(name string, value interface{}) *WhereInfo

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL