Documentation
¶
Index ¶
- func FieldAs(tableName, colName string) string
- func GetLowerColNameFromAlias(alias, tableName string) string
- func QuickBetween(column string, min, max interface{}) interface{}
- func QuickEqual(column string, value interface{}) interface{}
- func QuickFilter(column, operator string, value interface{}) interface{}
- func QuickIn(column string, values ...interface{}) interface{}
- func QuickIsNull(column string) interface{}
- func QuickLike(column, value string) interface{}
- type Config
- type FilterBuilder
- func (f *FilterBuilder) And() *FilterBuilder
- func (f *FilterBuilder) Between(column string, min, max interface{}) *FilterBuilder
- func (f *FilterBuilder) Build() interface{}
- func (f *FilterBuilder) BuildJSON() (string, error)
- func (f *FilterBuilder) Custom(column, operator string, value interface{}) *FilterBuilder
- func (f *FilterBuilder) Equal(column string, value interface{}) *FilterBuilder
- func (f *FilterBuilder) GreaterThan(column string, value interface{}) *FilterBuilder
- func (f *FilterBuilder) GreaterThanOrEqual(column string, value interface{}) *FilterBuilder
- func (f *FilterBuilder) Group(groupBuilder func(*FilterBuilder)) *FilterBuilder
- func (f *FilterBuilder) ILike(column string, value string) *FilterBuilder
- func (f *FilterBuilder) In(column string, values ...interface{}) *FilterBuilder
- func (f *FilterBuilder) IsEmpty() bool
- func (f *FilterBuilder) IsNotNull(column string) *FilterBuilder
- func (f *FilterBuilder) IsNull(column string) *FilterBuilder
- func (f *FilterBuilder) Len() int
- func (f *FilterBuilder) LessThan(column string, value interface{}) *FilterBuilder
- func (f *FilterBuilder) LessThanOrEqual(column string, value interface{}) *FilterBuilder
- func (f *FilterBuilder) Like(column string, value string) *FilterBuilder
- func (f *FilterBuilder) NotBetween(column string, min, max interface{}) *FilterBuilder
- func (f *FilterBuilder) NotEqual(column string, value interface{}) *FilterBuilder
- func (f *FilterBuilder) NotILike(column string, value string) *FilterBuilder
- func (f *FilterBuilder) NotIn(column string, values ...interface{}) *FilterBuilder
- func (f *FilterBuilder) NotLike(column string, value string) *FilterBuilder
- func (f *FilterBuilder) Or() *FilterBuilder
- func (f *FilterBuilder) Reset() *FilterBuilder
- func (f *FilterBuilder) SimpleEqual(column string, value interface{}) *FilterBuilder
- type IParameter
- type Page
- type Pagination
- type RequestContext
- type ResponseContext
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func QuickBetween ¶ added in v0.1.1
func QuickBetween(column string, min, max interface{}) interface{}
QuickBetween 快速创建BETWEEN条件
func QuickEqual ¶ added in v0.1.1
func QuickEqual(column string, value interface{}) interface{}
QuickEqual 快速创建等于条件
func QuickFilter ¶ added in v0.1.1
func QuickFilter(column, operator string, value interface{}) interface{}
QuickFilter 快速创建单个过滤器条件
func QuickIn ¶ added in v0.1.1
func QuickIn(column string, values ...interface{}) interface{}
QuickIn 快速创建IN条件
func QuickIsNull ¶ added in v0.1.1
func QuickIsNull(column string) interface{}
QuickIsNull 快速创建IS NULL条件
Types ¶
type Config ¶
type Config struct {
Operator string
FieldWrapper string
ValueWrapper string
DefaultSize int32
SmartSearch bool
Statement *gorm.Statement `json:"-"`
CustomParamEnabled bool
SortParams []string
PageParams []string
OrderParams []string
SizeParams []string
FilterParams []string
FieldsParams []string
FieldSelectorEnabled bool
CacheAdapter *gocache.AdapterInterface `json:"-"`
JSONMarshal func(v interface{}) ([]byte, error) `json:"-"`
JSONUnmarshal func(data []byte, v interface{}) error `json:"-"`
}
Config for customize pagination result
type FilterBuilder ¶ added in v0.1.1
type FilterBuilder struct {
// contains filtered or unexported fields
}
FilterBuilder 提供链式调用的方式构建过滤器参数
func (*FilterBuilder) And ¶ added in v0.1.1
func (f *FilterBuilder) And() *FilterBuilder
And 添加AND逻辑操作符
func (*FilterBuilder) Between ¶ added in v0.1.1
func (f *FilterBuilder) Between(column string, min, max interface{}) *FilterBuilder
Between 添加BETWEEN条件 (column BETWEEN min AND max)
func (*FilterBuilder) Build ¶ added in v0.1.1
func (f *FilterBuilder) Build() interface{}
Build 构建最终的过滤器参数,返回可以直接用于参数的值
func (*FilterBuilder) BuildJSON ¶ added in v0.1.1
func (f *FilterBuilder) BuildJSON() (string, error)
BuildJSON 构建JSON字符串格式的过滤器参数
func (*FilterBuilder) Custom ¶ added in v0.1.1
func (f *FilterBuilder) Custom(column, operator string, value interface{}) *FilterBuilder
Custom 添加自定义条件
func (*FilterBuilder) Equal ¶ added in v0.1.1
func (f *FilterBuilder) Equal(column string, value interface{}) *FilterBuilder
Equal 添加等于条件 (column = value)
func (*FilterBuilder) GreaterThan ¶ added in v0.1.1
func (f *FilterBuilder) GreaterThan(column string, value interface{}) *FilterBuilder
GreaterThan 添加大于条件 (column > value)
func (*FilterBuilder) GreaterThanOrEqual ¶ added in v0.1.1
func (f *FilterBuilder) GreaterThanOrEqual(column string, value interface{}) *FilterBuilder
GreaterThanOrEqual 添加大于等于条件 (column >= value)
func (*FilterBuilder) Group ¶ added in v0.1.1
func (f *FilterBuilder) Group(groupBuilder func(*FilterBuilder)) *FilterBuilder
Group 添加分组条件 (将条件包装在括号中)
func (*FilterBuilder) ILike ¶ added in v0.1.1
func (f *FilterBuilder) ILike(column string, value string) *FilterBuilder
ILike 添加ILIKE条件 (column ILIKE %value%, 大小写不敏感)
func (*FilterBuilder) In ¶ added in v0.1.1
func (f *FilterBuilder) In(column string, values ...interface{}) *FilterBuilder
In 添加IN条件 (column IN (values...))
func (*FilterBuilder) IsEmpty ¶ added in v0.1.1
func (f *FilterBuilder) IsEmpty() bool
IsEmpty 检查是否为空
func (*FilterBuilder) IsNotNull ¶ added in v0.1.1
func (f *FilterBuilder) IsNotNull(column string) *FilterBuilder
IsNotNull 添加IS NOT NULL条件 (column IS NOT NULL)
func (*FilterBuilder) IsNull ¶ added in v0.1.1
func (f *FilterBuilder) IsNull(column string) *FilterBuilder
IsNull 添加IS NULL条件 (column IS NULL)
func (*FilterBuilder) LessThan ¶ added in v0.1.1
func (f *FilterBuilder) LessThan(column string, value interface{}) *FilterBuilder
LessThan 添加小于条件 (column < value)
func (*FilterBuilder) LessThanOrEqual ¶ added in v0.1.1
func (f *FilterBuilder) LessThanOrEqual(column string, value interface{}) *FilterBuilder
LessThanOrEqual 添加小于等于条件 (column <= value)
func (*FilterBuilder) Like ¶ added in v0.1.1
func (f *FilterBuilder) Like(column string, value string) *FilterBuilder
Like 添加LIKE条件 (column LIKE %value%)
func (*FilterBuilder) NotBetween ¶ added in v0.1.1
func (f *FilterBuilder) NotBetween(column string, min, max interface{}) *FilterBuilder
NotBetween 添加NOT BETWEEN条件 (column NOT BETWEEN min AND max)
func (*FilterBuilder) NotEqual ¶ added in v0.1.1
func (f *FilterBuilder) NotEqual(column string, value interface{}) *FilterBuilder
NotEqual 添加不等于条件 (column != value)
func (*FilterBuilder) NotILike ¶ added in v0.1.1
func (f *FilterBuilder) NotILike(column string, value string) *FilterBuilder
NotILike 添加NOT ILIKE条件 (column NOT ILIKE %value%, 大小写不敏感)
func (*FilterBuilder) NotIn ¶ added in v0.1.1
func (f *FilterBuilder) NotIn(column string, values ...interface{}) *FilterBuilder
NotIn 添加NOT IN条件 (column NOT IN (values...))
func (*FilterBuilder) NotLike ¶ added in v0.1.1
func (f *FilterBuilder) NotLike(column string, value string) *FilterBuilder
NotLike 添加NOT LIKE条件 (column NOT LIKE %value%)
func (*FilterBuilder) Reset ¶ added in v0.1.1
func (f *FilterBuilder) Reset() *FilterBuilder
Reset 重置过滤器构建器,清空所有条件
func (*FilterBuilder) SimpleEqual ¶ added in v0.1.1
func (f *FilterBuilder) SimpleEqual(column string, value interface{}) *FilterBuilder
SimpleEqual 添加简单等于条件的简写形式 (column, value)
type IParameter ¶
type Page ¶
type Page struct {
Items []interface{} `json:"items"`
Page int32 `json:"page"`
Size int32 `json:"size"`
MaxPage int32 `json:"max_page"`
TotalPages int32 `json:"total_pages"`
Total int32 `json:"total"`
Last bool `json:"last"`
First bool `json:"first"`
Visible int32 `json:"visible"`
}
Page result wrapper
type Pagination ¶
type Pagination struct {
Config *Config
}
Pagination gorm paginate struct
func (Pagination) ClearAllCache ¶
func (p Pagination) ClearAllCache()
ClearAllCache clear all existing cache
func (Pagination) ClearCache ¶
func (p Pagination) ClearCache(keyPrefixes ...string)
ClearCache clear cache contains prefix
type RequestContext ¶
type RequestContext interface {
Request(IParameter) ResponseContext
}
RequestContext interface
type ResponseContext ¶
type ResponseContext interface {
Cache(string) ResponseContext
Fields([]string) ResponseContext
Distinct([]string) ResponseContext
Response(interface{}) Page
BuildWhereClause() (string, []interface{})
Error() error
}
ResponseContext interface