This commit is contained in:
azw 2023-08-20 11:21:05 +08:00
parent 1301cb260f
commit 9cf96cf800

View File

@ -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
}