123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120 |
- package zapx
- // 排序方式
- const (
- OrderAsc = "asc"
- OrderDesc = "desc"
- )
- // 操作符
- const (
- OpLike = "like" // like %s%
- OpIn = "in" // in
- OpNin = "nin" // not in
- OpEq = "eq" // =
- OpNeq = "neq" // <>
- OpGt = "gt" // >
- OpGte = "gte" // >=
- OpLt = "lt" // <
- OpLte = "lte" // <=
- )
- // StringFilter 字符串类型的扩展参数
- type StringFilter struct {
- Key string `json:"key"` // 键。必填。
- Op string `json:"op"` // 操作符。必填。
- Value string `json:"value"` // 值。必填。但可以为空。
- }
- // Validate 校验参数
- func (v StringFilter) Validate() error {
- if v.Key == "" {
- return ValidateError("扩展参数键不能为空")
- }
- if v.Op != OpEq && v.Op != OpNeq && v.Op != OpLike {
- return ValidateError("字符串型扩展参数操作符错误")
- }
- return nil
- }
- // FloatFilter 浮点数类型的扩展参数
- type FloatFilter struct {
- Key string `json:"key"` // 键。必填。
- Op string `json:"op"` // 操作符。必填。
- Value float64 `json:"value"` // 值。必填。
- }
- // Validate 校验参数
- func (v FloatFilter) Validate() error {
- if v.Key == "" {
- return ValidateError("扩展参数键不能为空")
- }
- if v.Op != OpEq && v.Op != OpNeq && v.Op != OpGt && v.Op != OpGte && v.Op != OpLt && v.Op != OpLte {
- return ValidateError("浮点数型扩展参数操作符错误")
- }
- return nil
- }
- // IntFilter 整数类型的扩展参数
- type IntFilter struct {
- Key string `json:"key"` // 键。必填。
- Op string `json:"op"` // 操作符。必填。
- Value int32 `json:"value"` // 值。必填。
- }
- // Validate 校验参数
- func (v IntFilter) Validate() error {
- if v.Key == "" {
- return ValidateError("扩展参数键不能为空")
- }
- if v.Op != OpEq && v.Op != OpNeq && v.Op != OpGt && v.Op != OpGte && v.Op != OpLt && v.Op != OpLte {
- return ValidateError("整数型扩展参数操作符错误")
- }
- return nil
- }
- // BoolFilter 布尔类型的扩展参数
- type BoolFilter struct {
- Key string `json:"key"` // 键。必填。
- Op string `json:"op"` // 操作符。必填。
- Value bool `json:"value"` // 值。必填。
- }
- // Validate 校验参数
- func (v BoolFilter) Validate() error {
- if v.Key == "" {
- return ValidateError("扩展参数键不能为空")
- }
- if v.Op != OpEq && v.Op != OpNeq {
- return ValidateError("布尔型扩展参数操作符错误")
- }
- return nil
- }
- // StringFieldFilter 字段过滤条件,适用于指定了字段的情况。
- type StringFieldFilter struct {
- Op string `json:"op"` // 操作符
- Value string `json:"value"` // 参数。必填但可为空串。
- }
- // Validate 校验参数
- func (v StringFieldFilter) Validate() error {
- if v.Op != OpEq && v.Op != OpNeq && v.Op != OpLike {
- return ValidateError("参数操作符错误")
- }
- return nil
- }
- // StringInFieldFilter 字段过滤条件,适用于指定了字段的情况。
- type StringInFieldFilter struct {
- Op string `json:"op"` // 操作符
- Value []string `json:"value"` // 参数
- }
- // Validate 校验参数
- func (v StringInFieldFilter) Validate() error {
- if v.Op != OpIn && v.Op != OpNin {
- return ValidateError("参数操作符错误")
- }
- return nil
- }
|