Delete QueryManager.go
This commit is contained in:
parent
2378d75406
commit
6f28ddd69b
@ -1,91 +0,0 @@
|
||||
package mySql
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"gorm.io/gorm"
|
||||
"reflect"
|
||||
)
|
||||
|
||||
// 因为有大量的是简单的通过where查询一条数据的,例如查询某个用户的资料,所以封装这个工具类简化操作,用法与query保持一致
|
||||
type QueryManager struct {
|
||||
tableName string
|
||||
wheres []*QueryManagerWhere
|
||||
errorText string
|
||||
error error
|
||||
}
|
||||
|
||||
type QueryManagerWhere struct {
|
||||
colName string
|
||||
value interface{}
|
||||
emptyCheck bool
|
||||
}
|
||||
|
||||
func NewQueryManager(tableName string) *QueryManager {
|
||||
return &QueryManager{
|
||||
tableName: tableName,
|
||||
wheres: make([]*QueryManagerWhere, 0),
|
||||
}
|
||||
}
|
||||
|
||||
func (t *QueryManager) SetErrorText(text string) *QueryManager {
|
||||
t.errorText = text
|
||||
return t
|
||||
}
|
||||
|
||||
func (t *QueryManager) Where(colName string, value interface{}) *QueryManager {
|
||||
t.wheres = append(t.wheres, &QueryManagerWhere{
|
||||
colName: colName,
|
||||
value: value,
|
||||
emptyCheck: true,
|
||||
})
|
||||
return t
|
||||
}
|
||||
func (t *QueryManager) WhereRow(colName string, value interface{}, emptyCheck bool) *QueryManager {
|
||||
t.wheres = append(t.wheres, &QueryManagerWhere{
|
||||
colName: colName,
|
||||
value: value,
|
||||
emptyCheck: emptyCheck,
|
||||
})
|
||||
return t
|
||||
}
|
||||
|
||||
func (t *QueryManager) Take(data interface{}) error {
|
||||
if len(t.wheres) == 0 {
|
||||
return errors.New("not where")
|
||||
}
|
||||
|
||||
for colName := range t.wheres {
|
||||
if isBlank(reflect.ValueOf(t.wheres[colName])) {
|
||||
//如果是空值
|
||||
return t.getEmptyError()
|
||||
}
|
||||
}
|
||||
|
||||
query := NewQuery(t.tableName)
|
||||
for _, where := range t.wheres {
|
||||
if where.emptyCheck {
|
||||
//检查空值
|
||||
if isBlank(reflect.ValueOf(where.value)) {
|
||||
return t.getEmptyError()
|
||||
}
|
||||
}
|
||||
query.Where(where.colName, where.value)
|
||||
}
|
||||
|
||||
err := query.Take(data)
|
||||
if err != nil {
|
||||
if errors.Is(err, gorm.ErrRecordNotFound) {
|
||||
return t.getEmptyError()
|
||||
}
|
||||
}
|
||||
|
||||
return err
|
||||
}
|
||||
|
||||
func (t *QueryManager) getEmptyError() error {
|
||||
if t.errorText != "" {
|
||||
return errors.New(t.errorText)
|
||||
} else {
|
||||
return errors.New("不存在")
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user