/**
* @Author: zou.yingbin
* @Create  : 2021/1/29 9:30
* @Modify  : 2021/1/29 9:30
 */

package utils

import "fmt"

// sql辅助构建工具

type SQLVal string

// 返回自身字符串
func (r *SQLVal) String() string {
	return string(*r)
}

// 增加and 条件
func (r *SQLVal) And(fieldName string, val interface{}) {
	*r = *r + SQLVal(fmt.Sprintf(" and %v = %v", fieldName, val))
}

// 大于
func (r *SQLVal) Bigger(fieldName string, val interface{}) {
	*r = *r + SQLVal(fmt.Sprintf(" and %v > %v", fieldName, val))
}

// 大于等于
func (r *SQLVal) BiggerOrEq(fieldName string, val interface{}) {
	*r = *r + SQLVal(fmt.Sprintf(" and %v >= %v", fieldName, val))
}

// 小于等于
func (r *SQLVal) Less(fieldName string, val interface{}) {
	*r = *r + SQLVal(fmt.Sprintf(" and %v < %v", fieldName, val))
}

// 小于等于
func (r *SQLVal) LessOrEq(fieldName string, val interface{}) {
	*r = *r + SQLVal(fmt.Sprintf(" and %v <= %v", fieldName, val))
}

// 自由增加条件
func (r *SQLVal) Join(condition string) {
	*r = *r + SQLVal(condition)
}