Delete QueryManager.go

This commit is contained in:
Xlxinxi 2024-12-18 03:14:51 +08:00
parent 2378d75406
commit 6f28ddd69b

View File

@ -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("不存在")
}
}