Brak opisu
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

operator_enum.go 1.1KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. package queryreq
  2. // Operator 查询运算符枚举
  3. type Operator string
  4. const (
  5. // OpEquals 等于
  6. OpEquals Operator = "="
  7. // OpNotEquals 不等于
  8. OpNotEquals Operator = "!="
  9. // OpLike 模糊匹配
  10. OpLike Operator = "like"
  11. // OpIn IN筛选
  12. OpIn Operator = "in"
  13. // OpGreaterThan 大于
  14. OpGreaterThan Operator = ">"
  15. // OpLessThan 小于
  16. OpLessThan Operator = "<"
  17. // OpGreaterOrEq 大于等于
  18. OpGreaterOrEq Operator = ">="
  19. // OpLessOrEq 小于等于
  20. OpLessOrEq Operator = "<="
  21. )
  22. // IsValid 检查运算符是否有效
  23. func (o Operator) IsValid() bool {
  24. switch o {
  25. case OpEquals, OpNotEquals, OpLike, OpIn, OpGreaterThan,
  26. OpLessThan, OpGreaterOrEq, OpLessOrEq:
  27. return true
  28. default:
  29. return false
  30. }
  31. }
  32. // ToSQL 将运算符转换为SQL操作符
  33. func (o Operator) ToSQL() string {
  34. switch o {
  35. case OpLike:
  36. return "LIKE"
  37. case OpIn:
  38. return "IN"
  39. default:
  40. return string(o)
  41. }
  42. }
  43. // RequiresValue 检查运算符是否需要值
  44. func (o Operator) RequiresValue() bool {
  45. // 所有定义的运算符都需要值
  46. // 未来如果添加IS NULL等不需要值的运算符,可以在此排除
  47. return true
  48. }