fire

package
v2.1.0 Latest Latest
Warning

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

Go to latest
Published: Jul 21, 2021 License: Apache-2.0 Imports: 13 Imported by: 0

Documentation

Overview

* * @Author: TheLife * @Date: 2021/5/26 下午11:21

* * @Author: TheLife * @Date: 2021/5/27 下午5:08

* * @Author: TheLife * @Date: 2021/5/26 下午5:01

* * @Author: TheLife * @Date: 2021/6/23 下午9:37

* * @Author: TheLife * @Date: 2021/5/27 下午4:34

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func FormatColumn

func FormatColumn(column string) (res string)

格式化列

func If

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

func UpdateArithmetic

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

field = field ArithmeticType Number # field = field + 1

Types

type Allow

type Allow struct {
	// where
	Where []string
	Range []string
	In    []string
	Like  []string

	// order
	Sorts []string
}

func (*Allow) AllowParams

func (a *Allow) AllowParams(params Params, db *Fire) *Fire

allowParams

func (*Allow) AllowSort

func (a *Allow) AllowSort(sort Sort, db *Fire) *Fire

allowSort

type ArithmeticType

type ArithmeticType string

=== update ===

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

type CompareType

type CompareType string
const (
	CompareEqual      CompareType = "="
	CompareAboutEqual CompareType = ">="
	CompareAbout      CompareType = ">"
	CompareLessEqual  CompareType = "<="
	CompareLess       CompareType = "<"
)

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(param Param, allow Allow) *Fire

allow

func (*Fire) Close added in v2.1.0

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

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 ...Page) (pageResult PageResult, err error)

func (*Fire) CrudAllPagePreloadAll added in v2.1.0

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

func (*Fire) CrudAllPagePreloadJoin added in v2.1.0

func (d *Fire) CrudAllPagePreloadJoin(model interface{}, callListData interface{}, page ...Page) (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)

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)

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) CrudUpdatePrimaryKey added in v2.1.0

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

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) OrderByColumn added in v2.1.0

func (d *Fire) OrderByColumn(column string, order OrderType, many ...bool) *Fire

func (*Fire) PreloadAll added in v2.1.0

func (d *Fire) PreloadAll() *Fire

=== SELECT === 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

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

func (*Fire) WhereCompare added in v2.1.0

func (d *Fire) WhereCompare(column string, value interface{}, compare ...CompareType) *Fire

column CompareEqual ? # column = ?

func (*Fire) WhereIn added in v2.1.0

func (d *Fire) WhereIn(column string, value interface{}, isNot ...bool) *Fire

column IN(?) column NOT IN(?)

func (*Fire) WhereLike added in v2.1.0

func (d *Fire) WhereLike(column string, value interface{}) *Fire

column LIKE %?%

func (*Fire) WhereRange added in v2.1.0

func (d *Fire) WhereRange(column string, start interface{}, end interface{}) *Fire

column >= start ANd column <= end

type M

type M map[string]interface{}

type OrderType

type OrderType string

=== order ===

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

type Page

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

func (*Page) GetOffset

func (p *Page) GetOffset() int

type PageParam

type PageParam struct {
	Page
	Param
}

分页参数

type PageResult

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

分页结果

func (*PageResult) Init

func (p *PageResult) Init(page ...Page)

type Param

type Param struct {
	Params Params `form:"params" json:"params"`
	Sort   Sort   `form:"sort" json:"sort" binding:"omitempty,eq=1,dive,keys,required,endkeys,eq=ascend|eq=descend"`
}

筛选、排序参数

type Params

type Params map[string]interface{}

type Sort

type Sort map[string]string

type TimeFieldsModel

type TimeFieldsModel struct {
	// 13位毫秒时间戳
	CreatedAt int64 `gorm:"autoCreateTime:milli;type:bigint(13);unsigned;comment:创建时间" json:"created_at"`
	// 13位毫秒时间戳,兼容用户一秒内多次点击
	UpdatedAt int64 `gorm:"autoUpdateTime:milli;type:bigint(13);unsigned;comment:修改时间" json:"updated_at"`
	// 软删除,默认为0,删除时设置当前10位秒数时间戳
	DeletedAt soft_delete.DeletedAt `gorm:"type:bigint(13);unsigned;comment:删除时间" json:"deleted_at"`
}

Jump to

Keyboard shortcuts

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