[feat] 新增 SetOption
This commit is contained in:
parent
37018837d1
commit
a871ccfa75
15
condition.go
15
condition.go
@ -213,6 +213,13 @@ func (this Condition) GetFields(operator ConditionOperator, types ...ConditionTo
|
|||||||
return result
|
return result
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (this *Condition) SetOption(opts ...Option) *Condition {
|
||||||
|
for i := 0; i < len(opts); i++ {
|
||||||
|
opts[i](this)
|
||||||
|
}
|
||||||
|
return this
|
||||||
|
}
|
||||||
|
|
||||||
type Option func(option *Condition)
|
type Option func(option *Condition)
|
||||||
|
|
||||||
func Type(v ConditionType) Option {
|
func Type(v ConditionType) Option {
|
||||||
@ -229,12 +236,6 @@ func Describe(v string) Option {
|
|||||||
|
|
||||||
func New(opts ...Option) *Condition {
|
func New(opts ...Option) *Condition {
|
||||||
cond := &Condition{typ: AND}
|
cond := &Condition{typ: AND}
|
||||||
|
cond.SetOption(opts...)
|
||||||
if l := len(opts); l > 0 {
|
|
||||||
for i := 0; i < l; i++ {
|
|
||||||
opts[i](cond)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return cond
|
return cond
|
||||||
}
|
}
|
||||||
|
@ -39,6 +39,8 @@ const (
|
|||||||
NOT_REGEXP ConditionOperator = "NOT REGEXP"
|
NOT_REGEXP ConditionOperator = "NOT REGEXP"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
type ExprOption func(option *ConditionExpr)
|
||||||
|
|
||||||
type ConditionTokenValue interface {
|
type ConditionTokenValue interface {
|
||||||
GetParam(k string) req.GlobalParams
|
GetParam(k string) req.GlobalParams
|
||||||
GetGlobalParamsUser() req.User
|
GetGlobalParamsUser() req.User
|
||||||
@ -232,7 +234,12 @@ func (this ConditionExpr) IsIgnoreEmptyParma(m ConditionTokenValue) bool {
|
|||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
type ExprOption func(option *ConditionExpr)
|
func (this *ConditionExpr) SetOption(opts ...ExprOption) *ConditionExpr {
|
||||||
|
for i := 0; i < len(opts); i++ {
|
||||||
|
opts[i](this)
|
||||||
|
}
|
||||||
|
return this
|
||||||
|
}
|
||||||
|
|
||||||
func Operator(v ConditionOperator) ExprOption {
|
func Operator(v ConditionOperator) ExprOption {
|
||||||
return func(option *ConditionExpr) {
|
return func(option *ConditionExpr) {
|
||||||
@ -271,12 +278,6 @@ func NewExpr(rResource, rField string, opts ...ExprOption) *ConditionExpr {
|
|||||||
fieldSqlFunc: "",
|
fieldSqlFunc: "",
|
||||||
fieldSqlFuncParam: "",
|
fieldSqlFuncParam: "",
|
||||||
}
|
}
|
||||||
|
expr.SetOption(opts...)
|
||||||
if l := len(opts); l > 0 {
|
|
||||||
for i := 0; i < l; i++ {
|
|
||||||
opts[i](expr)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return expr
|
return expr
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user