[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
|
||||
}
|
||||
|
||||
func (this *Condition) SetOption(opts ...Option) *Condition {
|
||||
for i := 0; i < len(opts); i++ {
|
||||
opts[i](this)
|
||||
}
|
||||
return this
|
||||
}
|
||||
|
||||
type Option func(option *Condition)
|
||||
|
||||
func Type(v ConditionType) Option {
|
||||
@ -229,12 +236,6 @@ func Describe(v string) Option {
|
||||
|
||||
func New(opts ...Option) *Condition {
|
||||
cond := &Condition{typ: AND}
|
||||
|
||||
if l := len(opts); l > 0 {
|
||||
for i := 0; i < l; i++ {
|
||||
opts[i](cond)
|
||||
}
|
||||
}
|
||||
|
||||
cond.SetOption(opts...)
|
||||
return cond
|
||||
}
|
||||
|
@ -39,6 +39,8 @@ const (
|
||||
NOT_REGEXP ConditionOperator = "NOT REGEXP"
|
||||
)
|
||||
|
||||
type ExprOption func(option *ConditionExpr)
|
||||
|
||||
type ConditionTokenValue interface {
|
||||
GetParam(k string) req.GlobalParams
|
||||
GetGlobalParamsUser() req.User
|
||||
@ -232,7 +234,12 @@ func (this ConditionExpr) IsIgnoreEmptyParma(m ConditionTokenValue) bool {
|
||||
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 {
|
||||
return func(option *ConditionExpr) {
|
||||
@ -271,12 +278,6 @@ func NewExpr(rResource, rField string, opts ...ExprOption) *ConditionExpr {
|
||||
fieldSqlFunc: "",
|
||||
fieldSqlFuncParam: "",
|
||||
}
|
||||
|
||||
if l := len(opts); l > 0 {
|
||||
for i := 0; i < l; i++ {
|
||||
opts[i](expr)
|
||||
}
|
||||
}
|
||||
|
||||
expr.SetOption(opts...)
|
||||
return expr
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user