1
This commit is contained in:
parent
1301cb260f
commit
9cf96cf800
92
pagequery.go
92
pagequery.go
@ -1,10 +1,8 @@
|
|||||||
package f5
|
package f5
|
||||||
|
|
||||||
/*
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
)
|
)
|
||||||
*/
|
|
||||||
|
|
||||||
type LinkOp int32
|
type LinkOp int32
|
||||||
|
|
||||||
@ -130,3 +128,93 @@ func (this *PageQueryOne) IgnoreEmpy() *PageQueryOne {
|
|||||||
this.ignoreEmpty = true
|
this.ignoreEmpty = true
|
||||||
return this
|
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