fire

package
v2.1.8 Latest Latest
Warning

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

Go to latest
Published: Oct 8, 2022 License: Apache-2.0 Imports: 20 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var DefaultPageSize = 5

Functions

func Camel2Case added in v2.1.2

func Camel2Case(name string) string

func If

func If(isA bool, a, b interface{}) interface{}

func Order added in v2.1.7

func Order(column interface{}, order OrderType) clause.OrderByColumn

func ParseColumn added in v2.1.7

func ParseColumn(c interface{}) (col clause.Column)

func ParseDataType added in v2.1.7

func ParseDataType(data string) interface{}

func Select added in v2.1.7

func Select(exps ...interface{}) clause.Select

func UpdateArithmetic

func UpdateArithmetic(column string, value interface{}, art ArithmeticType) (m map[string]interface{})

UpdateArithmetic field = field ArithmeticType Number # field = field + 1

func WhereCompare added in v2.1.6

func WhereCompare(column interface{}, value interface{}, compare ...CompareType) clause.Expression

WhereCompare column CompareEqual ? # column = ?

func WhereIn added in v2.1.7

func WhereIn(column interface{}, value interface{}, isNot ...bool) clause.Expression

WhereIn column IN(?) column NOT IN(?)

func WhereJsonEq added in v2.1.7

func WhereJsonEq(column interface{}, value interface{}, key ...string) clause.Expression

func WhereJsonHas added in v2.1.7

func WhereJsonHas(column interface{}, key ...string) clause.Expression

func WhereLike added in v2.1.7

func WhereLike(column interface{}, value interface{}, like ...LikeType) clause.Expression

WhereLike column LIKE %?%

func WhereRange added in v2.1.7

func WhereRange(column interface{}, start interface{}, end interface{}) clause.Expression

WhereRange column >= start ANd column <= end

Types

type Allow

type Allow struct {
	// where
	Where Filtered
	Range Filtered
	In    Filtered
	Like  Filtered

	// order
	Sorts Filtered
}

func (*Allow) AllowParams

func (a *Allow) AllowParams(params url.Values, db *gorm.DB) *gorm.DB

AllowParams allow params

func (*Allow) AllowSort

func (a *Allow) AllowSort(params url.Values, db *gorm.DB) *gorm.DB

AllowSort allow sort

func (*Allow) Filtered added in v2.1.7

func (a *Allow) Filtered(params url.Values, f Filtered, callBack func(column clause.Column, value []string))

func (*Allow) ParseColumns added in v2.1.7

func (a *Allow) ParseColumns(columns []interface{}) (res []clause.Column)

type ArithmeticType

type ArithmeticType string
const (
	ArithmeticIncrease ArithmeticType = "+"
	ArithmeticReduce   ArithmeticType = "-"
	ArithmeticMultiply ArithmeticType = "*"
	ArithmeticExcept   ArithmeticType = "/"
)

type COUNT added in v2.1.7

type COUNT struct {
	Column clause.Column
}

COUNT for select

func (COUNT) Build added in v2.1.7

func (c COUNT) Build(builder clause.Builder)

type CompareType

type CompareType string
const (
	CompareEq  CompareType = "="
	CompareNeq CompareType = "<>"
	CompareGte CompareType = ">="
	CompareGt  CompareType = ">"
	CompareLte CompareType = "<="
	CompareLt  CompareType = "<"
)

type Diary added in v2.1.5

type Diary struct {
	Sql []string
}

func (*Diary) Error added in v2.1.5

func (n *Diary) Error(c context.Context, sql string, a ...interface{})

func (*Diary) Info added in v2.1.5

func (n *Diary) Info(c context.Context, sql string, a ...interface{})

func (*Diary) LastSql added in v2.1.5

func (n *Diary) LastSql(position ...int) string

func (*Diary) LogMode added in v2.1.5

func (n *Diary) LogMode(logger.LogLevel) logger.Interface

func (*Diary) Trace added in v2.1.5

func (n *Diary) Trace(ctx context.Context, begin time.Time, fc func() (string, int64), err error)

func (*Diary) Warn added in v2.1.5

func (n *Diary) Warn(c context.Context, sql string, a ...interface{})

type Filtered added in v2.1.7

type Filtered []interface{}

type Fire added in v2.1.0

type Fire struct {
	*gorm.DB
}

func NewInstance

func NewInstance(db *gorm.DB) *Fire

func (*Fire) Allow added in v2.1.0

func (d *Fire) Allow(values url.Values, allow Allow) *Fire

func (*Fire) Clause added in v2.1.7

func (d *Fire) Clause(exps ...clause.Expression) *Fire

func (*Fire) Close added in v2.1.0

func (d *Fire) Close() (err error)

Close DB

func (*Fire) CrudAll added in v2.1.0

func (d *Fire) CrudAll(model interface{}, callListData interface{}) (err error)

func (*Fire) CrudAllPage added in v2.1.0

func (d *Fire) CrudAllPage(model interface{}, callListData interface{}, page interface{}) (pageResult PageResult, err error)

func (*Fire) CrudAllPagePreloadAll added in v2.1.0

func (d *Fire) CrudAllPagePreloadAll(model interface{}, callListData interface{}, page interface{}) (pageResult PageResult, err error)

func (*Fire) CrudAllPagePreloadJoin added in v2.1.0

func (d *Fire) CrudAllPagePreloadJoin(model interface{}, callListData interface{}, page interface{}) (pageResult PageResult, err error)

func (*Fire) CrudAllPreloadAll added in v2.1.0

func (d *Fire) CrudAllPreloadAll(model interface{}, callListData interface{}) (err error)

func (*Fire) CrudAllPreloadJoin added in v2.1.0

func (d *Fire) CrudAllPreloadJoin(model interface{}, callListData interface{}) (err error)

func (*Fire) CrudCount added in v2.1.0

func (d *Fire) CrudCount(model interface{}) (count int64, err error)

func (*Fire) CrudCreate added in v2.1.0

func (d *Fire) CrudCreate(model interface{}, batchSize ...int) (err error)

CrudCreate model support Array,Slice,Struct every struct support tag `gormCreate` validator.Struct()

func (*Fire) CrudDelete added in v2.1.0

func (d *Fire) CrudDelete(model interface{}) (err error)

func (*Fire) CrudOne added in v2.1.0

func (d *Fire) CrudOne(model interface{}, callData interface{}) (err error)

func (*Fire) CrudOnePreloadAll added in v2.1.0

func (d *Fire) CrudOnePreloadAll(model interface{}, callData interface{}) (err error)

func (*Fire) CrudOnePreloadJoin added in v2.1.0

func (d *Fire) CrudOnePreloadJoin(model interface{}, callData interface{}) (err error)

func (*Fire) CrudSum added in v2.1.0

func (d *Fire) CrudSum(model interface{}, column string) (sum float32, err error)

func (*Fire) CrudUpdate added in v2.1.0

func (d *Fire) CrudUpdate(model interface{}, updates ...interface{}) (err error)

CrudUpdate updates support (M or map[string]interface{}) and struct support gorm.Db.Select() and gorm.Db.Omit() TODO: struct only update non-zero fields

func (*Fire) CrudUpdateByPrimaryKey added in v2.1.5

func (d *Fire) CrudUpdateByPrimaryKey(model interface{}, updates ...interface{}) (err error)

CrudUpdateByPrimaryKey Make sure that all primary keys are not zero when updating

func (*Fire) IsExists added in v2.1.0

func (d *Fire) IsExists(model interface{}) bool

func (*Fire) ModelWhere added in v2.1.5

func (d *Fire) ModelWhere(model interface{}) *Fire

ModelWhere

func (*Fire) OrderByColumn added in v2.1.0

func (d *Fire) OrderByColumn(column interface{}, order OrderType) *Fire

func (*Fire) PreloadAll added in v2.1.0

func (d *Fire) PreloadAll() *Fire

PreloadAll TODO:Multiple SQL, gorm bonding data, so query conditions other than the main table are not supported

func (*Fire) PreloadJoin added in v2.1.0

func (d *Fire) PreloadJoin(model interface{}) *Fire

PreloadJoin TODO:Single SQL, mysql bonding data, so the conditions of all query tables are supported. use Join you need to pay attention to performance

type LikeType added in v2.1.7

type LikeType string
const (
	LikeFullText LikeType = "FullText"
	LikePrefix   LikeType = "Begin"
	LikeSuffix   LikeType = "End"
)

type M

type M map[string]interface{}

type OrderType

type OrderType string
const (
	OrderAsc  OrderType = "asc"
	OrderDesc OrderType = "desc"
)

type Page

type Page struct {
	Current  int `json:"current" form:"current"`
	PageSize int `json:"pageSize" form:"pageSize"`
}

func (*Page) GetOffset

func (p *Page) GetOffset() int

type PageResult

type PageResult struct {
	Page
	Total int64       `json:"total"`
	Data  interface{} `json:"data"`
}

PageResult 分页结果 https://gorm.io/docs/scopes.html#Pagination

func (*PageResult) Init

func (p *PageResult) Init(page ...interface{})

func (*PageResult) SetData added in v2.1.5

func (p *PageResult) SetData(d interface{})

type SUM added in v2.1.7

type SUM struct {
	Column clause.Column
}

func (SUM) Build added in v2.1.7

func (s SUM) Build(builder clause.Builder)

type SetArithmetic added in v2.1.7

type SetArithmetic struct {
	Column clause.Column
	Type   ArithmeticType
	Value  interface{}
}

SetArithmetic for set

func (SetArithmetic) Build added in v2.1.7

func (a SetArithmetic) Build(builder clause.Builder)

type SinglePageResult added in v2.1.5

type SinglePageResult struct {
	Data interface{} `json:"data"`
}

SinglePageResult 单页结果

type TimeFields1Model added in v2.1.5

type TimeFields1Model struct {
	// 13位毫秒时间戳
	CreatedAt int64 `gorm:"column:created_at;autoCreateTime:milli;type:bigint;unsigned;comment:创建时间;<-:create" json:"createdAt"`
}

func (*TimeFields1Model) BeforeCreate added in v2.1.5

func (t *TimeFields1Model) BeforeCreate(tx *gorm.DB) (err error)

type TimeFields2Model added in v2.1.5

type TimeFields2Model struct {
	TimeFields1Model
	// 13位毫秒时间戳,兼容用户一秒内多次点击修改
	UpdatedAt int64 `gorm:"column:updated_at;autoUpdateTime:milli;type:bigint;unsigned;comment:修改时间;<-" json:"updatedAt"`
}

type TimeFields3Model added in v2.1.5

type TimeFields3Model struct {
	TimeFields2Model
	// 软删除,默认为0,删除时设置当前10位秒数时间戳
	DeletedAt soft_delete.DeletedAt `gorm:"column:deleted_at;type:bigint;unsigned;comment:删除时间;<-:false" json:"deletedAt"`
}

type UNNEST added in v2.1.7

type UNNEST struct {
	Column clause.Column
}

UNNEST for select

func (UNNEST) Build added in v2.1.7

func (u UNNEST) Build(builder clause.Builder)

Jump to

Keyboard shortcuts

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