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