代码拉取完成,页面将自动刷新
package wrapper
import (
"gitee.com/h79/goutils/common"
"strings"
)
// Range 时间范围
type Range[T common.IntegerType] struct {
Column string `json:"col"`
Operator string `json:"operator"`
Min T `json:"begin"`
Max T `json:"end"`
}
func (rg *Range[T]) HasValid() bool {
// 时间有效,操作符长度不能太长(wrapper.Gt,wrapper.Between...),太长就是无效,在进行ToUpper时,造成时间消耗
return len(rg.Operator) > 0 && len(rg.Operator) < 8 && len(rg.Column) > 0
}
func (rg *Range[T]) Cond(cond *Condition) {
if !rg.HasValid() {
return
}
operator := strings.ToUpper(rg.Operator)
if operator == ">" {
cond.Gt(rg.Column, rg.Min)
} else if operator == ">=" {
cond.GtEq(rg.Column, rg.Min)
} else if operator == "<" {
cond.Lt(rg.Column, rg.Max)
} else if operator == "<=" {
cond.LtEq(rg.Column, rg.Max)
} else if operator == "BETWEEN" {
cond.Between(rg.Column, rg.Min, rg.Max)
}
}
// Range2 时间范围
type Range2[T common.IntegerType] struct {
Column string `json:"col"`
Op string `json:"op"`
Min T `json:"start"`
Max T `json:"end"`
}
func (rg *Range2[T]) HasValid() bool {
// 时间有效,操作符长度不能太长,太长就是无效,在进行ToUpper时,造成时间消耗
return len(rg.Op) > 0 && len(rg.Op) < 5 && len(rg.Column) > 0
}
func (rg *Range2[T]) Cond(cond *Condition) {
if !rg.HasValid() {
return
}
operator := strings.ToUpper(rg.Op)
if operator == "GT" {
cond.Gt(rg.Column, rg.Min)
} else if operator == "GTE" {
cond.GtEq(rg.Column, rg.Min)
} else if operator == "LT" {
cond.Lt(rg.Column, rg.Max)
} else if operator == "LTE" {
cond.LtEq(rg.Column, rg.Max)
} else if operator == "BET" {
cond.Between(rg.Column, rg.Min, rg.Max)
}
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。