1
This commit is contained in:
parent
1301cb260f
commit
9cf96cf800
92
pagequery.go
92
pagequery.go
@ -1,10 +1,8 @@
|
||||
package f5
|
||||
|
||||
/*
|
||||
import (
|
||||
"fmt"
|
||||
)
|
||||
*/
|
||||
|
||||
type LinkOp int32
|
||||
|
||||
@ -130,3 +128,93 @@ func (this *PageQueryOne) IgnoreEmpy() *PageQueryOne {
|
||||
this.ignoreEmpty = true
|
||||
return this
|
||||
}
|
||||
|
||||
|
||||
func (this *PageQueryOne) And() PageQueryFilter {
|
||||
this.linkOp = LK_AND
|
||||
return this
|
||||
}
|
||||
|
||||
func (this *PageQueryOne) Or() PageQueryFilter {
|
||||
this.linkOp = LK_OR
|
||||
return this
|
||||
}
|
||||
|
||||
func (this *PageQueryOne) Not() PageQueryFilter {
|
||||
this.not = true
|
||||
return this
|
||||
}
|
||||
|
||||
func (this *PageQueryOne) GenSql() string {
|
||||
if this.ignoreEmpty && this.val == "" {
|
||||
return " "
|
||||
}
|
||||
sql := ""
|
||||
switch this.cond {
|
||||
case QC_LIKE:
|
||||
sql = fmt.Sprintf("%s LIKE '%%%s%%'", this.fieldName, this.val)
|
||||
case QC_EQ:
|
||||
sql = fmt.Sprintf("%s = '%s'", this.fieldName, this.val)
|
||||
case QC_LT:
|
||||
sql = fmt.Sprintf("%s < '%s'", this.fieldName, this.val)
|
||||
case QC_LE:
|
||||
sql = fmt.Sprintf("%s <= '%s'", this.fieldName, this.val)
|
||||
case QC_GT:
|
||||
sql = fmt.Sprintf("%s > '%s'", this.fieldName, this.val)
|
||||
case QC_GE:
|
||||
sql = fmt.Sprintf("%s >= '%s'", this.fieldName, this.val)
|
||||
case QC_CUSTOM:
|
||||
sql = fmt.Sprintf("%s", this.val)
|
||||
default:
|
||||
panic("page query cond error")
|
||||
}
|
||||
if this.not {
|
||||
sql = fmt.Sprintf( "NOT (%s) ", sql)
|
||||
}
|
||||
switch this.linkOp {
|
||||
case LK_AND:
|
||||
sql = fmt.Sprintf( "AND (%s) ", sql)
|
||||
case LK_OR:
|
||||
sql = fmt.Sprintf(" OR (%s) ", sql)
|
||||
default:
|
||||
panic("page query linkOp error")
|
||||
}
|
||||
return sql
|
||||
}
|
||||
|
||||
func (this *PageQueryComp) And() PageQueryFilter {
|
||||
this.linkOp = LK_AND
|
||||
return this
|
||||
}
|
||||
|
||||
func (this *PageQueryComp) Or() PageQueryFilter {
|
||||
this.linkOp = LK_OR
|
||||
return this
|
||||
}
|
||||
|
||||
func (this *PageQueryComp) Not() PageQueryFilter {
|
||||
this.not = true
|
||||
return this
|
||||
}
|
||||
|
||||
func (this *PageQueryComp) GenSql() string {
|
||||
if len(this.subFilters) <= 0 {
|
||||
return " "
|
||||
}
|
||||
sql := ""
|
||||
for _, filter := range this.subFilters {
|
||||
sql += filter.GenSql()
|
||||
}
|
||||
if this.not {
|
||||
sql = fmt.Sprintf( "NOT (%s) ", sql)
|
||||
}
|
||||
switch this.linkOp {
|
||||
case LK_AND:
|
||||
sql = fmt.Sprintf( "AND (%s) ", sql)
|
||||
case LK_OR:
|
||||
sql = fmt.Sprintf(" OR (%s) ", sql)
|
||||
default:
|
||||
panic("page query linkOp error")
|
||||
}
|
||||
return sql
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user