search

package
v1.1.1 Latest Latest
Warning

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

Go to latest
Published: Nov 21, 2023 License: Apache-2.0 Imports: 3 Imported by: 0

README

type 描述 query示例
exact/iexact 等于 status=1
contains/icontanins 包含 name=n
gt/gte 大于/大于等于 age=18
lt/lte 小于/小于等于 age=18
startswith/istartswith 以…起始 content=hell
endswith/iendswith 以…结束 content=world
in in查询 status[]=0&status[]=1
isnull isnull查询 startTime=1
order 排序 sort=asc/sort=desc

e.g.

type ApplicationQuery struct {
	Id       string    `search:"type:icontains;column:id;table:receipt" form:"id"`
	Domain   string    `search:"type:icontains;column:domain;table:receipt" form:"domain"`
	Version  string    `search:"type:exact;column:version;table:receipt" form:"version"`
	Status   []int     `search:"type:in;column:status;table:receipt" form:"status"`
	Start    time.Time `search:"type:gte;column:created_at;table:receipt" form:"start"`
	End      time.Time `search:"type:lte;column:created_at;table:receipt" form:"end"`
	TestJoin `search:"type:left;on:id:receipt_id;table:receipt_goods;join:receipts"`
	ApplicationOrder
}
type ApplicationOrder struct {
	IdOrder string `search:"type:order;column:id;table:receipt" form"id_order"`
}

type TestJoin struct {
	PaymentAccount string `search:"type:icontains;column:payment_account;table:receipts" form:"payment_account"`
}

Documentation

Index

Constants

View Source
const (
	// FromQueryTag tag标记
	FromQueryTag = "search"
	// Mysql 数据库标识
	Mysql = "mysql"
	// Postgres 数据库标识
	Postgres = "postgres"
)

Variables

This section is empty.

Functions

func ResolveSearchQuery

func ResolveSearchQuery(driver string, q interface{}, condition Condition)

ResolveSearchQuery 解析 *

  • exact / iexact 等于
  • contains / icontains 包含
  • gt / gte 大于 / 大于等于
  • lt / lte 小于 / 小于等于
  • startswith / istartswith 以…起始
  • endswith / iendswith 以…结束
  • in
  • isnull
  • order 排序 e.g. order[key]=desc order[key]=asc

Types

type Condition

type Condition interface {
	SetWhere(k string, v []interface{})
	SetOr(k string, v []interface{})
	SetOrder(k string)
	SetJoinOn(t, on string) Condition
}

type GormCondition

type GormCondition struct {
	GormPublic
	Join []*GormJoin
}

func (*GormCondition) SetJoinOn

func (e *GormCondition) SetJoinOn(t, on string) Condition

type GormJoin

type GormJoin struct {
	Type   string
	JoinOn string
	GormPublic
}

func (*GormJoin) SetJoinOn

func (e *GormJoin) SetJoinOn(t, on string) Condition

type GormPublic

type GormPublic struct {
	Where map[string][]interface{}
	Order []string
	Or    map[string][]interface{}
}

func (*GormPublic) SetOr

func (e *GormPublic) SetOr(k string, v []interface{})

func (*GormPublic) SetOrder

func (e *GormPublic) SetOrder(k string)

func (*GormPublic) SetWhere

func (e *GormPublic) SetWhere(k string, v []interface{})

Jump to

Keyboard shortcuts

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