Compare commits
16 Commits
712250101e
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
| 58d0c8687b | |||
| 1f20a8fc9e | |||
| 2047b54036 | |||
| 25e6913379 | |||
| a553d8a896 | |||
| f056271667 | |||
| 4269707e46 | |||
| 18e90ec4f6 | |||
| 77c6398829 | |||
| 4c3f6f2a43 | |||
| ad300277f8 | |||
| 5a63f40dda | |||
| 74026cf1ac | |||
| c5ca01eb47 | |||
| 6f9150ab08 | |||
| 5b9917cfb0 |
@ -17,7 +17,7 @@ import (
|
|||||||
// Author : go_developer@163.com<白茶清欢>
|
// Author : go_developer@163.com<白茶清欢>
|
||||||
//
|
//
|
||||||
// Date : 15:06 2023/10/14
|
// Date : 15:06 2023/10/14
|
||||||
type IDatabase interface {
|
type IDatabase[DatabaseDataType any, DatabaseTableColumns any] interface {
|
||||||
// Create 创建数据
|
// Create 创建数据
|
||||||
Create(dbInstance *gorm.DB, data any, optionList ...define.SetOption) error
|
Create(dbInstance *gorm.DB, data any, optionList ...define.SetOption) error
|
||||||
// Update 更新数据
|
// Update 更新数据
|
||||||
@ -25,13 +25,13 @@ type IDatabase interface {
|
|||||||
// UpdateOne 更新一条数据
|
// UpdateOne 更新一条数据
|
||||||
UpdateOne(dbInstance *gorm.DB, updateData any, optionFuncList ...define.SetOption) (int64, error)
|
UpdateOne(dbInstance *gorm.DB, updateData any, optionFuncList ...define.SetOption) (int64, error)
|
||||||
// List 查询数据列表
|
// List 查询数据列表
|
||||||
List(dbInstance *gorm.DB, result any, optionFuncList ...define.SetOption) error
|
List(dbInstance *gorm.DB, result *[]DatabaseDataType, optionFuncList ...define.SetOption) error
|
||||||
// ListAndTotal 查询列表并返回满足条件数据总数
|
// ListAndTotal 查询列表并返回满足条件数据总数
|
||||||
ListAndTotal(dbInstance *gorm.DB, listRes any, totalRes *int64, disableTotal bool, optionFuncList ...define.SetOption) error
|
ListAndTotal(dbInstance *gorm.DB, listRes *[]DatabaseDataType, totalRes *int64, disableTotal bool, optionFuncList ...define.SetOption) error
|
||||||
// Delete 删除数据
|
// Delete 删除数据
|
||||||
Delete(dbInstance *gorm.DB, dataModel any, optionFuncList ...define.SetOption) (int64, error)
|
Delete(dbInstance *gorm.DB, dataModel *DatabaseDataType, optionFuncList ...define.SetOption) (int64, error)
|
||||||
// Detail 数据详情
|
// Detail 数据详情
|
||||||
Detail(dbInstance *gorm.DB, result any, optionFuncList ...define.SetOption) error
|
Detail(dbInstance *gorm.DB, result *DatabaseDataType, optionFuncList ...define.SetOption) error
|
||||||
// IsNotFound 错误是否为数据不存在
|
// IsNotFound 错误是否为数据不存在
|
||||||
IsNotFound(err error) bool
|
IsNotFound(err error) bool
|
||||||
// Count 查询数据数量
|
// Count 查询数据数量
|
||||||
@ -45,5 +45,13 @@ type IDatabase interface {
|
|||||||
// Rollback 回滚事务
|
// Rollback 回滚事务
|
||||||
Rollback(db *gorm.DB) error
|
Rollback(db *gorm.DB) error
|
||||||
// DetailByPrimaryID 根据主键ID, 查询任意表的数据详情
|
// DetailByPrimaryID 根据主键ID, 查询任意表的数据详情
|
||||||
DetailByPrimaryID(dbInstance *gorm.DB, result any, primaryID any, primaryKey ...string) error
|
DetailByPrimaryID(dbInstance *gorm.DB, result *DatabaseDataType, primaryID any, primaryKey ...string) error
|
||||||
|
// ColumnComment 表字段注释
|
||||||
|
ColumnComment() map[string]string
|
||||||
|
// Columns 表字段定义
|
||||||
|
Columns() DatabaseTableColumns
|
||||||
|
// DetailForAny 任意数据详情
|
||||||
|
DetailForAny(tx *gorm.DB, tableName string, result any, optionList ...define.SetOption) error
|
||||||
|
// ListForAny 任意数据列表
|
||||||
|
ListForAny(tx *gorm.DB, tableName string, data any, optionList ...define.SetOption) error
|
||||||
}
|
}
|
||||||
|
|||||||
181
base.go
181
base.go
@ -14,78 +14,60 @@ import (
|
|||||||
"gorm.io/gorm/clause"
|
"gorm.io/gorm/clause"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
func NewBaseDao[DatabaseDataType any, DatabaseTableColumns any]() *BaseDao[DatabaseDataType, DatabaseTableColumns] {
|
||||||
|
res := &BaseDao[DatabaseDataType, DatabaseTableColumns]{}
|
||||||
|
res.tableName = res.TableName()
|
||||||
|
res.columns = res.Columns()
|
||||||
|
res.isSetColumns = true
|
||||||
|
res.columnComment = res.ColumnComment()
|
||||||
|
return res
|
||||||
|
}
|
||||||
|
|
||||||
// BaseDao 基础dao层
|
// BaseDao 基础dao层
|
||||||
//
|
type BaseDao[DatabaseDataType any, DatabaseTableColumns any] struct {
|
||||||
// Author : go_developer@163.com<白茶清欢>
|
tableName string // 继承BaseDao,需要指定表名,后续调用不用传递表名进来,如果分表了,使用SetOption设置表名, 这里的优先级更高
|
||||||
//
|
isSetColumns bool
|
||||||
// Date : 14:13 2023/2/9
|
columns DatabaseTableColumns
|
||||||
type BaseDao struct {
|
columnComment map[string]string
|
||||||
TableName string // 继承BaseDao,需要指定表名,后续调用不用传递表名进来,如果分表了,使用SetOption设置表名, 这里的优先级更高
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Create 创建新的数据
|
// Create 创建新的数据
|
||||||
//
|
func (b *BaseDao[DatabaseDataType, DatabaseTableColumns]) Create(dbInstance *gorm.DB, data any, optionList ...define.SetOption) error {
|
||||||
// Author : go_developer@163.com<白茶清欢>
|
|
||||||
//
|
|
||||||
// Date : 8:06 下午 2021/8/8
|
|
||||||
func (b *BaseDao) Create(dbInstance *gorm.DB, data any, optionList ...define.SetOption) error {
|
|
||||||
o := &define.Option{}
|
o := &define.Option{}
|
||||||
for _, itemFunc := range optionList {
|
for _, itemFunc := range optionList {
|
||||||
itemFunc(o)
|
itemFunc(o)
|
||||||
}
|
}
|
||||||
tableName := b.TableName
|
useTableName := b.tableName
|
||||||
if len(o.Table) > 0 {
|
if len(o.Table) > 0 {
|
||||||
tableName = o.Table
|
useTableName = o.Table
|
||||||
}
|
}
|
||||||
return dbInstance.Table(tableName).Create(data).Error
|
return dbInstance.Table(useTableName).Create(data).Error
|
||||||
}
|
}
|
||||||
|
|
||||||
// Update 更新数据
|
// Update 更新数据
|
||||||
//
|
func (b *BaseDao[DatabaseDataType, DatabaseTableColumns]) Update(dbInstance *gorm.DB, updateData any, optionFuncList ...define.SetOption) (int64, error) {
|
||||||
// Author : go_developer@163.com<白茶清欢>
|
|
||||||
//
|
|
||||||
// Date : 8:12 下午 2021/8/8
|
|
||||||
func (b *BaseDao) Update(dbInstance *gorm.DB, updateData any, optionFuncList ...define.SetOption) (int64, error) {
|
|
||||||
dbInstance = b.setTxCondition(dbInstance, optionFuncList...)
|
dbInstance = b.setTxCondition(dbInstance, optionFuncList...)
|
||||||
r := dbInstance.Updates(updateData)
|
r := dbInstance.Updates(updateData)
|
||||||
return r.RowsAffected, r.Error
|
return r.RowsAffected, r.Error
|
||||||
}
|
}
|
||||||
|
|
||||||
// UpdateOne 更新一条数据
|
// UpdateOne 更新一条数据
|
||||||
//
|
func (b *BaseDao[DatabaseDataType, DatabaseTableColumns]) UpdateOne(dbInstance *gorm.DB, updateData any, optionFuncList ...define.SetOption) (int64, error) {
|
||||||
// Author : go_developer@163.com<白茶清欢>
|
|
||||||
//
|
|
||||||
// Date : 17:05 2024/1/13
|
|
||||||
func (b *BaseDao) UpdateOne(dbInstance *gorm.DB, updateData any, optionFuncList ...define.SetOption) (int64, error) {
|
|
||||||
optionFuncList = append(optionFuncList, WithLimit(1, 0))
|
optionFuncList = append(optionFuncList, WithLimit(1, 0))
|
||||||
return b.Update(dbInstance, updateData, optionFuncList...)
|
return b.Update(dbInstance, updateData, optionFuncList...)
|
||||||
}
|
}
|
||||||
|
|
||||||
// List 查询数据列表
|
// List 查询数据列表
|
||||||
//
|
func (b *BaseDao[DatabaseDataType, DatabaseTableColumns]) List(dbInstance *gorm.DB, result *[]DatabaseDataType, optionFuncList ...define.SetOption) error {
|
||||||
// Author : go_developer@163.com<白茶清欢>
|
|
||||||
//
|
|
||||||
// Date : 8:14 下午 2021/8/8
|
|
||||||
func (b *BaseDao) List(dbInstance *gorm.DB, result any, optionFuncList ...define.SetOption) error {
|
|
||||||
dbInstance = b.setTxCondition(dbInstance, optionFuncList...)
|
dbInstance = b.setTxCondition(dbInstance, optionFuncList...)
|
||||||
return dbInstance.Find(result).Error
|
return dbInstance.Find(result).Error
|
||||||
}
|
}
|
||||||
|
|
||||||
// ListAndTotal 同时查询数据列表和数据总数
|
// ListAndTotal 同时查询数据列表和数据总数
|
||||||
//
|
func (b *BaseDao[DatabaseDataType, DatabaseTableColumns]) ListAndTotal(dbInstance *gorm.DB, listRes *[]DatabaseDataType, totalRes *int64, disableTotal bool, optionFuncList ...define.SetOption) error {
|
||||||
// Author : go_developer@163.com<白茶清欢>
|
|
||||||
//
|
|
||||||
// Date : 16:04 2025/2/26
|
|
||||||
func (b *BaseDao) ListAndTotal(dbInstance *gorm.DB, listRes any, totalRes *int64, disableTotal bool, optionFuncList ...define.SetOption) error {
|
|
||||||
var (
|
var (
|
||||||
err error
|
err error
|
||||||
)
|
)
|
||||||
if err = b.receiverTypeValid(listRes); nil != err {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
if err = b.receiverTypeValid(totalRes); nil != err {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
dbInstance = b.setTxCondition(dbInstance, optionFuncList...)
|
dbInstance = b.setTxCondition(dbInstance, optionFuncList...)
|
||||||
if err = dbInstance.Find(listRes).Error; nil != err {
|
if err = dbInstance.Find(listRes).Error; nil != err {
|
||||||
@ -106,32 +88,20 @@ func (b *BaseDao) ListAndTotal(dbInstance *gorm.DB, listRes any, totalRes *int64
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Delete 删除数据, 硬删除, 对应 delete语句
|
// Delete 删除数据, 硬删除, 对应 delete语句
|
||||||
//
|
func (b *BaseDao[DatabaseDataType, DatabaseTableColumns]) Delete(dbInstance *gorm.DB, dataModel *DatabaseDataType, optionFuncList ...define.SetOption) (int64, error) {
|
||||||
// Author : go_developer@163.com<白茶清欢>
|
|
||||||
//
|
|
||||||
// Date : 11:46 2023/2/9
|
|
||||||
func (b *BaseDao) Delete(dbInstance *gorm.DB, dataModel any, optionFuncList ...define.SetOption) (int64, error) {
|
|
||||||
dbInstance = dbInstance.Model(dataModel)
|
dbInstance = dbInstance.Model(dataModel)
|
||||||
dbInstance = b.setTxCondition(dbInstance, optionFuncList...).Delete(dataModel)
|
dbInstance = b.setTxCondition(dbInstance, optionFuncList...).Delete(dataModel)
|
||||||
return dbInstance.RowsAffected, dbInstance.Error
|
return dbInstance.RowsAffected, dbInstance.Error
|
||||||
}
|
}
|
||||||
|
|
||||||
// Detail 查询详情
|
// Detail 查询详情
|
||||||
//
|
func (b *BaseDao[DatabaseDataType, DatabaseTableColumns]) Detail(dbInstance *gorm.DB, result *DatabaseDataType, optionFuncList ...define.SetOption) error {
|
||||||
// Author : go_developer@163.com<白茶清欢>
|
|
||||||
//
|
|
||||||
// Date : 8:25 下午 2021/8/8
|
|
||||||
func (b *BaseDao) Detail(dbInstance *gorm.DB, result any, optionFuncList ...define.SetOption) error {
|
|
||||||
dbInstance = b.setTxCondition(dbInstance, optionFuncList...)
|
dbInstance = b.setTxCondition(dbInstance, optionFuncList...)
|
||||||
return dbInstance.First(result).Error
|
return dbInstance.First(result).Error
|
||||||
}
|
}
|
||||||
|
|
||||||
// DetailByPrimaryID ...
|
// DetailByPrimaryID ...
|
||||||
//
|
func (b *BaseDao[DatabaseDataType, DatabaseTableColumns]) DetailByPrimaryID(dbInstance *gorm.DB, result *DatabaseDataType, primaryID any, primaryKey ...string) error {
|
||||||
// Author : go_developer@163.com<白茶清欢>
|
|
||||||
//
|
|
||||||
// Date : 14:14 2023/10/15
|
|
||||||
func (b *BaseDao) DetailByPrimaryID(dbInstance *gorm.DB, result any, primaryID any, primaryKey ...string) error {
|
|
||||||
primaryKeyField := "id"
|
primaryKeyField := "id"
|
||||||
if len(primaryKey) > 0 {
|
if len(primaryKey) > 0 {
|
||||||
primaryKeyField = primaryKey[0]
|
primaryKeyField = primaryKey[0]
|
||||||
@ -142,20 +112,12 @@ func (b *BaseDao) DetailByPrimaryID(dbInstance *gorm.DB, result any, primaryID a
|
|||||||
}
|
}
|
||||||
|
|
||||||
// IsNotFound 增加结果是否为数据不存在的判断
|
// IsNotFound 增加结果是否为数据不存在的判断
|
||||||
//
|
func (b *BaseDao[DatabaseDataType, DatabaseTableColumns]) IsNotFound(err error) bool {
|
||||||
// Author : go_developer@163.com<白茶清欢>
|
|
||||||
//
|
|
||||||
// Date : 15:57 2023/2/23
|
|
||||||
func (b *BaseDao) IsNotFound(err error) bool {
|
|
||||||
return errors.Is(err, gorm.ErrRecordNotFound)
|
return errors.Is(err, gorm.ErrRecordNotFound)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Count 查询数量
|
// Count 查询数量
|
||||||
//
|
func (b *BaseDao[DatabaseDataType, DatabaseTableColumns]) Count(dbInstance *gorm.DB, optionFuncList ...define.SetOption) (int64, error) {
|
||||||
// Author : go_developer@163.com<白茶清欢>
|
|
||||||
//
|
|
||||||
// Date : 8:25 下午 2021/8/8
|
|
||||||
func (b *BaseDao) Count(dbInstance *gorm.DB, optionFuncList ...define.SetOption) (int64, error) {
|
|
||||||
optionFuncList = append(optionFuncList, WithClearLimit())
|
optionFuncList = append(optionFuncList, WithClearLimit())
|
||||||
dbInstance = b.setTxCondition(dbInstance, optionFuncList...)
|
dbInstance = b.setTxCondition(dbInstance, optionFuncList...)
|
||||||
var cnt int64
|
var cnt int64
|
||||||
@ -163,11 +125,7 @@ func (b *BaseDao) Count(dbInstance *gorm.DB, optionFuncList ...define.SetOption)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Tx 执行事务
|
// Tx 执行事务
|
||||||
//
|
func (b *BaseDao[DatabaseDataType, DatabaseTableColumns]) Tx(dbInstance *gorm.DB, txFunc func(dbInstance *gorm.DB) error) error {
|
||||||
// Author : go_developer@163.com<白茶清欢>
|
|
||||||
//
|
|
||||||
// Date : 20:31 2022/12/24
|
|
||||||
func (b *BaseDao) Tx(dbInstance *gorm.DB, txFunc func(dbInstance *gorm.DB) error) error {
|
|
||||||
if nil == dbInstance {
|
if nil == dbInstance {
|
||||||
return errors.New("db instance is null")
|
return errors.New("db instance is null")
|
||||||
}
|
}
|
||||||
@ -180,38 +138,22 @@ func (b *BaseDao) Tx(dbInstance *gorm.DB, txFunc func(dbInstance *gorm.DB) error
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Begin 开启事务
|
// Begin 开启事务
|
||||||
//
|
func (b *BaseDao[DatabaseDataType, DatabaseTableColumns]) Begin(dbInstance *gorm.DB) *gorm.DB {
|
||||||
// Author : go_developer@163.com<白茶清欢>
|
|
||||||
//
|
|
||||||
// Date : 3:09 下午 2021/8/9
|
|
||||||
func (b *BaseDao) Begin(dbInstance *gorm.DB) *gorm.DB {
|
|
||||||
return dbInstance.Begin()
|
return dbInstance.Begin()
|
||||||
}
|
}
|
||||||
|
|
||||||
// Commit 提交事务
|
// Commit 提交事务
|
||||||
//
|
func (b *BaseDao[DatabaseDataType, DatabaseTableColumns]) Commit(db *gorm.DB) error {
|
||||||
// Author : go_developer@163.com<白茶清欢>
|
|
||||||
//
|
|
||||||
// Date : 3:10 下午 2021/8/9
|
|
||||||
func (b *BaseDao) Commit(db *gorm.DB) error {
|
|
||||||
return db.Commit().Error
|
return db.Commit().Error
|
||||||
}
|
}
|
||||||
|
|
||||||
// Rollback 回滚
|
// Rollback 回滚
|
||||||
//
|
func (b *BaseDao[DatabaseDataType, DatabaseTableColumns]) Rollback(db *gorm.DB) error {
|
||||||
// Author : go_developer@163.com<白茶清欢>
|
|
||||||
//
|
|
||||||
// Date : 3:12 下午 2021/8/9
|
|
||||||
func (b *BaseDao) Rollback(db *gorm.DB) error {
|
|
||||||
return db.Rollback().Error
|
return db.Rollback().Error
|
||||||
}
|
}
|
||||||
|
|
||||||
// setTxCondition 设置查询条件
|
// setTxCondition 设置查询条件
|
||||||
//
|
func (b *BaseDao[DatabaseDataType, DatabaseTableColumns]) setTxCondition(inputTx *gorm.DB, optionFuncList ...define.SetOption) *gorm.DB {
|
||||||
// Author : go_developer@163.com<白茶清欢>
|
|
||||||
//
|
|
||||||
// Date : 17:38 2022/5/15
|
|
||||||
func (b *BaseDao) setTxCondition(inputTx *gorm.DB, optionFuncList ...define.SetOption) *gorm.DB {
|
|
||||||
// 构建查询条件
|
// 构建查询条件
|
||||||
o := &define.Option{}
|
o := &define.Option{}
|
||||||
for _, fn := range optionFuncList {
|
for _, fn := range optionFuncList {
|
||||||
@ -227,7 +169,7 @@ func (b *BaseDao) setTxCondition(inputTx *gorm.DB, optionFuncList ...define.SetO
|
|||||||
if len(o.Table) > 0 {
|
if len(o.Table) > 0 {
|
||||||
tx = tx.Table(o.Table)
|
tx = tx.Table(o.Table)
|
||||||
} else {
|
} else {
|
||||||
tx = tx.Table(b.TableName)
|
tx = tx.Table(b.tableName)
|
||||||
}
|
}
|
||||||
|
|
||||||
if nil != o.Model {
|
if nil != o.Model {
|
||||||
@ -314,26 +256,45 @@ func (b *BaseDao) setTxCondition(inputTx *gorm.DB, optionFuncList ...define.SetO
|
|||||||
tx.Or(orSql, orBindVal)
|
tx.Or(orSql, orBindVal)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/*sqlBlockList := make([]string, 0)
|
|
||||||
bindValueList := make([]any, 0)
|
|
||||||
sql, bindVal := optionToSql(o)
|
|
||||||
tx.Or(sql, bindVal...)
|
|
||||||
sqlBlockList = append(sqlBlockList, sql)
|
|
||||||
bindValueList = append(bindValueList, bindVal)
|
|
||||||
for _, itemOrFuncList := range o.OR {
|
|
||||||
orOption := &Option{}
|
|
||||||
for _, fn := range itemOrFuncList {
|
|
||||||
fn(orOption)
|
|
||||||
}
|
|
||||||
orSql, orBindVal := optionToSql(orOption)
|
|
||||||
tx.Or(orSql, orBindVal...)
|
|
||||||
}*/
|
|
||||||
return tx
|
return tx
|
||||||
}
|
}
|
||||||
|
|
||||||
func (b *BaseDao) receiverTypeValid(receiver any) error {
|
// TableName 获取数据表名
|
||||||
if receiver == nil || reflect.TypeOf(receiver).Kind() != reflect.Ptr {
|
func (b *BaseDao[DatabaseDataType, DatabaseTableColumns]) TableName() string {
|
||||||
return errors.New("receiver is nil or receiver is not a pointer")
|
val := reflect.ValueOf(*new(DatabaseDataType)).MethodByName("TableName").Call(nil)[0]
|
||||||
}
|
return val.Interface().(string)
|
||||||
return nil
|
}
|
||||||
|
|
||||||
|
// ColumnComment 表字段注释
|
||||||
|
func (b *BaseDao[DatabaseDataType, DatabaseTableColumns]) ColumnComment() map[string]string {
|
||||||
|
if len(b.columnComment) > 0 {
|
||||||
|
return b.columnComment
|
||||||
|
}
|
||||||
|
val := reflect.ValueOf(new(DatabaseDataType)).MethodByName("ColumnComment").Call(nil)[0]
|
||||||
|
b.columnComment = val.Interface().(map[string]string)
|
||||||
|
return b.columnComment
|
||||||
|
}
|
||||||
|
|
||||||
|
// Columns 表字段枚举
|
||||||
|
func (b *BaseDao[DatabaseDataType, DatabaseTableColumns]) Columns() DatabaseTableColumns {
|
||||||
|
if b.isSetColumns {
|
||||||
|
return b.columns
|
||||||
|
}
|
||||||
|
b.columns = reflect.ValueOf(new(DatabaseDataType)).MethodByName("Columns").Call(nil)[0].Interface().(DatabaseTableColumns)
|
||||||
|
b.isSetColumns = true
|
||||||
|
return b.columns
|
||||||
|
}
|
||||||
|
|
||||||
|
// DetailForAny 查询任意表数据详情
|
||||||
|
func (b *BaseDao[DatabaseDataType, DatabaseTableColumns]) DetailForAny(tx *gorm.DB, tableName string, result any, optionList ...define.SetOption) error {
|
||||||
|
tx = tx.Table(tableName)
|
||||||
|
tx = b.setTxCondition(tx, optionList...)
|
||||||
|
return tx.First(result).Error
|
||||||
|
}
|
||||||
|
|
||||||
|
// ListForAny 查询任意表数据列表
|
||||||
|
func (b *BaseDao[DatabaseDataType, DatabaseTableColumns]) ListForAny(tx *gorm.DB, tableName string, data any, optionList ...define.SetOption) error {
|
||||||
|
tx = tx.Table(tableName)
|
||||||
|
tx = b.setTxCondition(tx, optionList...)
|
||||||
|
return tx.Find(data).Error
|
||||||
}
|
}
|
||||||
|
|||||||
16
go.mod
16
go.mod
@ -6,10 +6,10 @@ toolchain go1.24.2
|
|||||||
|
|
||||||
require (
|
require (
|
||||||
git.zhangdeman.cn/zhangdeman/consts v0.0.0-20250916024308-d378e6c57772
|
git.zhangdeman.cn/zhangdeman/consts v0.0.0-20250916024308-d378e6c57772
|
||||||
git.zhangdeman.cn/zhangdeman/logger v0.0.0-20251012094811-1afd71fd8627
|
git.zhangdeman.cn/zhangdeman/logger v0.0.0-20251031042950-416e962cbf3b
|
||||||
git.zhangdeman.cn/zhangdeman/op_type v0.0.0-20251013024601-da007da2fb42
|
git.zhangdeman.cn/zhangdeman/op_type v0.0.0-20251013024601-da007da2fb42
|
||||||
git.zhangdeman.cn/zhangdeman/serialize v0.0.0-20251013044511-86c1a4a3a9dd
|
git.zhangdeman.cn/zhangdeman/serialize v0.0.0-20251013044511-86c1a4a3a9dd
|
||||||
git.zhangdeman.cn/zhangdeman/wrapper v0.0.0-20251013091053-fa9097dc09fc
|
git.zhangdeman.cn/zhangdeman/wrapper v0.0.0-20251014035305-c0ec06fa6dff
|
||||||
github.com/pkg/errors v0.9.1
|
github.com/pkg/errors v0.9.1
|
||||||
github.com/xwb1989/sqlparser v0.0.0-20180606152119-120387863bf2
|
github.com/xwb1989/sqlparser v0.0.0-20180606152119-120387863bf2
|
||||||
go.uber.org/zap v1.27.0
|
go.uber.org/zap v1.27.0
|
||||||
@ -22,17 +22,17 @@ require (
|
|||||||
filippo.io/edwards25519 v1.1.0 // indirect
|
filippo.io/edwards25519 v1.1.0 // indirect
|
||||||
git.zhangdeman.cn/zhangdeman/easylock v0.0.0-20230731062340-983985c12eda // indirect
|
git.zhangdeman.cn/zhangdeman/easylock v0.0.0-20230731062340-983985c12eda // indirect
|
||||||
git.zhangdeman.cn/zhangdeman/easymap v0.0.0-20241101082529-28a6c68e38a4 // indirect
|
git.zhangdeman.cn/zhangdeman/easymap v0.0.0-20241101082529-28a6c68e38a4 // indirect
|
||||||
git.zhangdeman.cn/zhangdeman/network v0.0.0-20250726060351-78810e906bfa // indirect
|
git.zhangdeman.cn/zhangdeman/network v0.0.0-20251013095944-5b89fff39bde // indirect
|
||||||
git.zhangdeman.cn/zhangdeman/util v0.0.0-20240618042405-6ee2c904644e // indirect
|
git.zhangdeman.cn/zhangdeman/util v0.0.0-20240618042405-6ee2c904644e // indirect
|
||||||
git.zhangdeman.cn/zhangdeman/websocket v0.0.0-20241125101541-c5ea194c9c1e // indirect
|
git.zhangdeman.cn/zhangdeman/websocket v0.0.0-20251013144324-313024336a6f // indirect
|
||||||
github.com/BurntSushi/toml v1.5.0 // indirect
|
github.com/BurntSushi/toml v1.5.0 // indirect
|
||||||
github.com/axgle/mahonia v0.0.0-20180208002826-3358181d7394 // indirect
|
github.com/axgle/mahonia v0.0.0-20180208002826-3358181d7394 // indirect
|
||||||
github.com/bytedance/gopkg v0.1.3 // indirect
|
github.com/bytedance/gopkg v0.1.3 // indirect
|
||||||
github.com/bytedance/sonic v1.14.1 // indirect
|
github.com/bytedance/sonic v1.14.2 // indirect
|
||||||
github.com/bytedance/sonic/loader v0.3.0 // indirect
|
github.com/bytedance/sonic/loader v0.4.0 // indirect
|
||||||
github.com/cloudwego/base64x v0.1.6 // indirect
|
github.com/cloudwego/base64x v0.1.6 // indirect
|
||||||
github.com/dgrijalva/jwt-go/v4 v4.0.0-preview1 // indirect
|
github.com/dgrijalva/jwt-go/v4 v4.0.0-preview1 // indirect
|
||||||
github.com/gabriel-vasile/mimetype v1.4.10 // indirect
|
github.com/gabriel-vasile/mimetype v1.4.11 // indirect
|
||||||
github.com/gin-contrib/sse v1.1.0 // indirect
|
github.com/gin-contrib/sse v1.1.0 // indirect
|
||||||
github.com/gin-gonic/gin v1.11.0 // indirect
|
github.com/gin-gonic/gin v1.11.0 // indirect
|
||||||
github.com/go-ini/ini v1.67.0 // indirect
|
github.com/go-ini/ini v1.67.0 // indirect
|
||||||
@ -66,7 +66,7 @@ require (
|
|||||||
github.com/tidwall/match v1.2.0 // indirect
|
github.com/tidwall/match v1.2.0 // indirect
|
||||||
github.com/tidwall/pretty v1.2.1 // indirect
|
github.com/tidwall/pretty v1.2.1 // indirect
|
||||||
github.com/twitchyliquid64/golang-asm v0.15.1 // indirect
|
github.com/twitchyliquid64/golang-asm v0.15.1 // indirect
|
||||||
github.com/ugorji/go/codec v1.3.0 // indirect
|
github.com/ugorji/go/codec v1.3.1 // indirect
|
||||||
go.uber.org/mock v0.6.0 // indirect
|
go.uber.org/mock v0.6.0 // indirect
|
||||||
go.uber.org/multierr v1.11.0 // indirect
|
go.uber.org/multierr v1.11.0 // indirect
|
||||||
golang.org/x/arch v0.22.0 // indirect
|
golang.org/x/arch v0.22.0 // indirect
|
||||||
|
|||||||
23
go.sum
23
go.sum
@ -10,8 +10,14 @@ git.zhangdeman.cn/zhangdeman/logger v0.0.0-20250817142254-a501f79e7894 h1:7nT1CA
|
|||||||
git.zhangdeman.cn/zhangdeman/logger v0.0.0-20250817142254-a501f79e7894/go.mod h1:UKGSNWsDmf6pBrC3SuC+jR7/Lj30c6b72hZi8dI+Vp8=
|
git.zhangdeman.cn/zhangdeman/logger v0.0.0-20250817142254-a501f79e7894/go.mod h1:UKGSNWsDmf6pBrC3SuC+jR7/Lj30c6b72hZi8dI+Vp8=
|
||||||
git.zhangdeman.cn/zhangdeman/logger v0.0.0-20251012094811-1afd71fd8627 h1:chAmVCoiWMcrmm+AfvesrhnZH+3+6LZZb+8UDj/E36M=
|
git.zhangdeman.cn/zhangdeman/logger v0.0.0-20251012094811-1afd71fd8627 h1:chAmVCoiWMcrmm+AfvesrhnZH+3+6LZZb+8UDj/E36M=
|
||||||
git.zhangdeman.cn/zhangdeman/logger v0.0.0-20251012094811-1afd71fd8627/go.mod h1:SZsX6q88TdR5JHZenesYhOw1x386ikfs2MkchQmW8D8=
|
git.zhangdeman.cn/zhangdeman/logger v0.0.0-20251012094811-1afd71fd8627/go.mod h1:SZsX6q88TdR5JHZenesYhOw1x386ikfs2MkchQmW8D8=
|
||||||
|
git.zhangdeman.cn/zhangdeman/logger v0.0.0-20251013144549-29cc7ca2481e h1:bfhEntAdt9UrB5A7UC50ts2VoAfEY+524EX9lDC7Q/M=
|
||||||
|
git.zhangdeman.cn/zhangdeman/logger v0.0.0-20251013144549-29cc7ca2481e/go.mod h1:e9YroNosH0QICXABs59RV0UWx8BcFEJQto61iV6f9lM=
|
||||||
|
git.zhangdeman.cn/zhangdeman/logger v0.0.0-20251031042950-416e962cbf3b h1:+ca511XlP+HoBa2zB/ERSIE6yTiqiXpsgqvs64kRAZA=
|
||||||
|
git.zhangdeman.cn/zhangdeman/logger v0.0.0-20251031042950-416e962cbf3b/go.mod h1:tlQR2nfdP291Lug+b3BSu0q+kTPoSVNRL5dPq2nv9zQ=
|
||||||
git.zhangdeman.cn/zhangdeman/network v0.0.0-20250726060351-78810e906bfa h1:r3AK2EKbQ82ShC5+AjbE95sqm90CkpbzLpmoV3zok9Q=
|
git.zhangdeman.cn/zhangdeman/network v0.0.0-20250726060351-78810e906bfa h1:r3AK2EKbQ82ShC5+AjbE95sqm90CkpbzLpmoV3zok9Q=
|
||||||
git.zhangdeman.cn/zhangdeman/network v0.0.0-20250726060351-78810e906bfa/go.mod h1:v0tMMfXvE4WyUxaRo1r/D20BAbMkT5QPLSW7XtgQOxo=
|
git.zhangdeman.cn/zhangdeman/network v0.0.0-20250726060351-78810e906bfa/go.mod h1:v0tMMfXvE4WyUxaRo1r/D20BAbMkT5QPLSW7XtgQOxo=
|
||||||
|
git.zhangdeman.cn/zhangdeman/network v0.0.0-20251013095944-5b89fff39bde h1:+3zIOditaUwzSpl2ybM1PYN4OYTIKiemMBt+pNv3Yko=
|
||||||
|
git.zhangdeman.cn/zhangdeman/network v0.0.0-20251013095944-5b89fff39bde/go.mod h1:Ewh0UYOqXxEh0khgHj9bDz1rbnd7cCCsJrcOTFX/8wg=
|
||||||
git.zhangdeman.cn/zhangdeman/op_type v0.0.0-20240122104027-4928421213c0 h1:gUDlQMuJ4xNfP2Abl1Msmpa3fASLWYkNlqDFF/6GN0Y=
|
git.zhangdeman.cn/zhangdeman/op_type v0.0.0-20240122104027-4928421213c0 h1:gUDlQMuJ4xNfP2Abl1Msmpa3fASLWYkNlqDFF/6GN0Y=
|
||||||
git.zhangdeman.cn/zhangdeman/op_type v0.0.0-20240122104027-4928421213c0/go.mod h1:VHb9qmhaPDAQDcS6vUiDCamYjZ4R5lD1XtVsh55KsMI=
|
git.zhangdeman.cn/zhangdeman/op_type v0.0.0-20240122104027-4928421213c0/go.mod h1:VHb9qmhaPDAQDcS6vUiDCamYjZ4R5lD1XtVsh55KsMI=
|
||||||
git.zhangdeman.cn/zhangdeman/op_type v0.0.0-20251013024601-da007da2fb42 h1:VjYrb4adud7FHeiYS9XA0B/tOaJjfRejzQAlwimrrDc=
|
git.zhangdeman.cn/zhangdeman/op_type v0.0.0-20251013024601-da007da2fb42 h1:VjYrb4adud7FHeiYS9XA0B/tOaJjfRejzQAlwimrrDc=
|
||||||
@ -24,10 +30,16 @@ git.zhangdeman.cn/zhangdeman/util v0.0.0-20240618042405-6ee2c904644e h1:Q973S6Cc
|
|||||||
git.zhangdeman.cn/zhangdeman/util v0.0.0-20240618042405-6ee2c904644e/go.mod h1:VpPjBlwz8U+OxZuxzHQBv1aEEZ3pStH6bZvT21ADEbI=
|
git.zhangdeman.cn/zhangdeman/util v0.0.0-20240618042405-6ee2c904644e/go.mod h1:VpPjBlwz8U+OxZuxzHQBv1aEEZ3pStH6bZvT21ADEbI=
|
||||||
git.zhangdeman.cn/zhangdeman/websocket v0.0.0-20241125101541-c5ea194c9c1e h1:YE2Gi+M03UDImIpWa3I7jzSesyfu2RL8x/4ONs5v0oE=
|
git.zhangdeman.cn/zhangdeman/websocket v0.0.0-20241125101541-c5ea194c9c1e h1:YE2Gi+M03UDImIpWa3I7jzSesyfu2RL8x/4ONs5v0oE=
|
||||||
git.zhangdeman.cn/zhangdeman/websocket v0.0.0-20241125101541-c5ea194c9c1e/go.mod h1:L/7JugxKZL3JP9JP/XDvPAPz0FQXG1u181Su1+u/d1c=
|
git.zhangdeman.cn/zhangdeman/websocket v0.0.0-20241125101541-c5ea194c9c1e/go.mod h1:L/7JugxKZL3JP9JP/XDvPAPz0FQXG1u181Su1+u/d1c=
|
||||||
|
git.zhangdeman.cn/zhangdeman/websocket v0.0.0-20251013144324-313024336a6f h1:InxNoLPHBLwCLblW0lsL2P1ZBYoUEzw9Yh+KNLt4Xmg=
|
||||||
|
git.zhangdeman.cn/zhangdeman/websocket v0.0.0-20251013144324-313024336a6f/go.mod h1:Pbs7tusW6RNcqrNCVcLE2zrM8JfPaO7lBJQuRiAzzLs=
|
||||||
git.zhangdeman.cn/zhangdeman/wrapper v0.0.0-20250321102712-1cbfbe959740 h1:zPUoylfJTbc0EcxW+NEzOTBmoeFZ2I/rLFBnEzxb4Wk=
|
git.zhangdeman.cn/zhangdeman/wrapper v0.0.0-20250321102712-1cbfbe959740 h1:zPUoylfJTbc0EcxW+NEzOTBmoeFZ2I/rLFBnEzxb4Wk=
|
||||||
git.zhangdeman.cn/zhangdeman/wrapper v0.0.0-20250321102712-1cbfbe959740/go.mod h1:1ct92dbVc49pmXusA/iGfcQUJzcYmJ+cjAhgc3sDv1I=
|
git.zhangdeman.cn/zhangdeman/wrapper v0.0.0-20250321102712-1cbfbe959740/go.mod h1:1ct92dbVc49pmXusA/iGfcQUJzcYmJ+cjAhgc3sDv1I=
|
||||||
git.zhangdeman.cn/zhangdeman/wrapper v0.0.0-20251013091053-fa9097dc09fc h1:q+0ZRJ6NxhPHeBqzZPOt27RMuKvGJpwg37W9JdhKpjA=
|
git.zhangdeman.cn/zhangdeman/wrapper v0.0.0-20251013091053-fa9097dc09fc h1:q+0ZRJ6NxhPHeBqzZPOt27RMuKvGJpwg37W9JdhKpjA=
|
||||||
git.zhangdeman.cn/zhangdeman/wrapper v0.0.0-20251013091053-fa9097dc09fc/go.mod h1:mBvTwcdqHRF3QIkAh92j/JRhru2LzyJ2LBqolxjzzKE=
|
git.zhangdeman.cn/zhangdeman/wrapper v0.0.0-20251013091053-fa9097dc09fc/go.mod h1:mBvTwcdqHRF3QIkAh92j/JRhru2LzyJ2LBqolxjzzKE=
|
||||||
|
git.zhangdeman.cn/zhangdeman/wrapper v0.0.0-20251013094128-d57d32b103be h1:mlmXacZHRKxmFmFKNFYRjZJ8+z2+QW3CH8L7AzoMTcQ=
|
||||||
|
git.zhangdeman.cn/zhangdeman/wrapper v0.0.0-20251013094128-d57d32b103be/go.mod h1:mBvTwcdqHRF3QIkAh92j/JRhru2LzyJ2LBqolxjzzKE=
|
||||||
|
git.zhangdeman.cn/zhangdeman/wrapper v0.0.0-20251014035305-c0ec06fa6dff h1:ym1Qs4diJe27CK/0K6vy7RvgH90mXgslWA++L8mXaKE=
|
||||||
|
git.zhangdeman.cn/zhangdeman/wrapper v0.0.0-20251014035305-c0ec06fa6dff/go.mod h1:mBvTwcdqHRF3QIkAh92j/JRhru2LzyJ2LBqolxjzzKE=
|
||||||
github.com/BurntSushi/toml v1.5.0 h1:W5quZX/G/csjUnuI8SUYlsHs9M38FC7znL0lIO+DvMg=
|
github.com/BurntSushi/toml v1.5.0 h1:W5quZX/G/csjUnuI8SUYlsHs9M38FC7znL0lIO+DvMg=
|
||||||
github.com/BurntSushi/toml v1.5.0/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho=
|
github.com/BurntSushi/toml v1.5.0/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho=
|
||||||
github.com/axgle/mahonia v0.0.0-20180208002826-3358181d7394 h1:OYA+5W64v3OgClL+IrOD63t4i/RW7RqrAVl9LTZ9UqQ=
|
github.com/axgle/mahonia v0.0.0-20180208002826-3358181d7394 h1:OYA+5W64v3OgClL+IrOD63t4i/RW7RqrAVl9LTZ9UqQ=
|
||||||
@ -36,8 +48,12 @@ github.com/bytedance/gopkg v0.1.3 h1:TPBSwH8RsouGCBcMBktLt1AymVo2TVsBVCY4b6TnZ/M
|
|||||||
github.com/bytedance/gopkg v0.1.3/go.mod h1:576VvJ+eJgyCzdjS+c4+77QF3p7ubbtiKARP3TxducM=
|
github.com/bytedance/gopkg v0.1.3/go.mod h1:576VvJ+eJgyCzdjS+c4+77QF3p7ubbtiKARP3TxducM=
|
||||||
github.com/bytedance/sonic v1.14.1 h1:FBMC0zVz5XUmE4z9wF4Jey0An5FueFvOsTKKKtwIl7w=
|
github.com/bytedance/sonic v1.14.1 h1:FBMC0zVz5XUmE4z9wF4Jey0An5FueFvOsTKKKtwIl7w=
|
||||||
github.com/bytedance/sonic v1.14.1/go.mod h1:gi6uhQLMbTdeP0muCnrjHLeCUPyb70ujhnNlhOylAFc=
|
github.com/bytedance/sonic v1.14.1/go.mod h1:gi6uhQLMbTdeP0muCnrjHLeCUPyb70ujhnNlhOylAFc=
|
||||||
|
github.com/bytedance/sonic v1.14.2 h1:k1twIoe97C1DtYUo+fZQy865IuHia4PR5RPiuGPPIIE=
|
||||||
|
github.com/bytedance/sonic v1.14.2/go.mod h1:T80iDELeHiHKSc0C9tubFygiuXoGzrkjKzX2quAx980=
|
||||||
github.com/bytedance/sonic/loader v0.3.0 h1:dskwH8edlzNMctoruo8FPTJDF3vLtDT0sXZwvZJyqeA=
|
github.com/bytedance/sonic/loader v0.3.0 h1:dskwH8edlzNMctoruo8FPTJDF3vLtDT0sXZwvZJyqeA=
|
||||||
github.com/bytedance/sonic/loader v0.3.0/go.mod h1:N8A3vUdtUebEY2/VQC0MyhYeKUFosQU6FxH2JmUe6VI=
|
github.com/bytedance/sonic/loader v0.3.0/go.mod h1:N8A3vUdtUebEY2/VQC0MyhYeKUFosQU6FxH2JmUe6VI=
|
||||||
|
github.com/bytedance/sonic/loader v0.4.0 h1:olZ7lEqcxtZygCK9EKYKADnpQoYkRQxaeY2NYzevs+o=
|
||||||
|
github.com/bytedance/sonic/loader v0.4.0/go.mod h1:AR4NYCk5DdzZizZ5djGqQ92eEhCCcdf5x77udYiSJRo=
|
||||||
github.com/cloudwego/base64x v0.1.6 h1:t11wG9AECkCDk5fMSoxmufanudBtJ+/HemLstXDLI2M=
|
github.com/cloudwego/base64x v0.1.6 h1:t11wG9AECkCDk5fMSoxmufanudBtJ+/HemLstXDLI2M=
|
||||||
github.com/cloudwego/base64x v0.1.6/go.mod h1:OFcloc187FXDaYHvrNIjxSe8ncn0OOM8gEHfghB2IPU=
|
github.com/cloudwego/base64x v0.1.6/go.mod h1:OFcloc187FXDaYHvrNIjxSe8ncn0OOM8gEHfghB2IPU=
|
||||||
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||||
@ -48,6 +64,8 @@ github.com/dgrijalva/jwt-go/v4 v4.0.0-preview1 h1:CaO/zOnF8VvUfEbhRatPcwKVWamvbY
|
|||||||
github.com/dgrijalva/jwt-go/v4 v4.0.0-preview1/go.mod h1:+hnT3ywWDTAFrW5aE+u2Sa/wT555ZqwoCS+pk3p6ry4=
|
github.com/dgrijalva/jwt-go/v4 v4.0.0-preview1/go.mod h1:+hnT3ywWDTAFrW5aE+u2Sa/wT555ZqwoCS+pk3p6ry4=
|
||||||
github.com/gabriel-vasile/mimetype v1.4.10 h1:zyueNbySn/z8mJZHLt6IPw0KoZsiQNszIpU+bX4+ZK0=
|
github.com/gabriel-vasile/mimetype v1.4.10 h1:zyueNbySn/z8mJZHLt6IPw0KoZsiQNszIpU+bX4+ZK0=
|
||||||
github.com/gabriel-vasile/mimetype v1.4.10/go.mod h1:d+9Oxyo1wTzWdyVUPMmXFvp4F9tea18J8ufA774AB3s=
|
github.com/gabriel-vasile/mimetype v1.4.10/go.mod h1:d+9Oxyo1wTzWdyVUPMmXFvp4F9tea18J8ufA774AB3s=
|
||||||
|
github.com/gabriel-vasile/mimetype v1.4.11 h1:AQvxbp830wPhHTqc1u7nzoLT+ZFxGY7emj5DR5DYFik=
|
||||||
|
github.com/gabriel-vasile/mimetype v1.4.11/go.mod h1:d+9Oxyo1wTzWdyVUPMmXFvp4F9tea18J8ufA774AB3s=
|
||||||
github.com/gin-contrib/sse v1.1.0 h1:n0w2GMuUpWDVp7qSpvze6fAu9iRxJY4Hmj6AmBOU05w=
|
github.com/gin-contrib/sse v1.1.0 h1:n0w2GMuUpWDVp7qSpvze6fAu9iRxJY4Hmj6AmBOU05w=
|
||||||
github.com/gin-contrib/sse v1.1.0/go.mod h1:hxRZ5gVpWMT7Z0B0gSNYqqsSCNIJMjzvm6fqCz9vjwM=
|
github.com/gin-contrib/sse v1.1.0/go.mod h1:hxRZ5gVpWMT7Z0B0gSNYqqsSCNIJMjzvm6fqCz9vjwM=
|
||||||
github.com/gin-gonic/gin v1.11.0 h1:OW/6PLjyusp2PPXtyxKHU0RbX6I/l28FTdDlae5ueWk=
|
github.com/gin-gonic/gin v1.11.0 h1:OW/6PLjyusp2PPXtyxKHU0RbX6I/l28FTdDlae5ueWk=
|
||||||
@ -137,10 +155,13 @@ github.com/spaolacci/murmur3 v1.1.0/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2
|
|||||||
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
||||||
github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
|
github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
|
||||||
github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=
|
github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=
|
||||||
|
github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA=
|
||||||
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
|
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
|
||||||
github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
||||||
github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
|
github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
|
||||||
github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
|
github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
|
||||||
|
github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
|
||||||
|
github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
|
||||||
github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U=
|
github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U=
|
||||||
github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U=
|
github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U=
|
||||||
github.com/tidwall/gjson v1.18.0 h1:FIDeeyB800efLX89e5a8Y0BNH+LOngJyGrIWxG2FKQY=
|
github.com/tidwall/gjson v1.18.0 h1:FIDeeyB800efLX89e5a8Y0BNH+LOngJyGrIWxG2FKQY=
|
||||||
@ -155,6 +176,8 @@ github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS
|
|||||||
github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08=
|
github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08=
|
||||||
github.com/ugorji/go/codec v1.3.0 h1:Qd2W2sQawAfG8XSvzwhBeoGq71zXOC/Q1E9y/wUcsUA=
|
github.com/ugorji/go/codec v1.3.0 h1:Qd2W2sQawAfG8XSvzwhBeoGq71zXOC/Q1E9y/wUcsUA=
|
||||||
github.com/ugorji/go/codec v1.3.0/go.mod h1:pRBVtBSKl77K30Bv8R2P+cLSGaTtex6fsA2Wjqmfxj4=
|
github.com/ugorji/go/codec v1.3.0/go.mod h1:pRBVtBSKl77K30Bv8R2P+cLSGaTtex6fsA2Wjqmfxj4=
|
||||||
|
github.com/ugorji/go/codec v1.3.1 h1:waO7eEiFDwidsBN6agj1vJQ4AG7lh2yqXyOXqhgQuyY=
|
||||||
|
github.com/ugorji/go/codec v1.3.1/go.mod h1:pRBVtBSKl77K30Bv8R2P+cLSGaTtex6fsA2Wjqmfxj4=
|
||||||
github.com/xwb1989/sqlparser v0.0.0-20180606152119-120387863bf2 h1:zzrxE1FKn5ryBNl9eKOeqQ58Y/Qpo3Q9QNxKHX5uzzQ=
|
github.com/xwb1989/sqlparser v0.0.0-20180606152119-120387863bf2 h1:zzrxE1FKn5ryBNl9eKOeqQ58Y/Qpo3Q9QNxKHX5uzzQ=
|
||||||
github.com/xwb1989/sqlparser v0.0.0-20180606152119-120387863bf2/go.mod h1:hzfGeIUDq/j97IG+FhNqkowIyEcD88LrW6fyU3K3WqY=
|
github.com/xwb1989/sqlparser v0.0.0-20180606152119-120387863bf2/go.mod h1:hzfGeIUDq/j97IG+FhNqkowIyEcD88LrW6fyU3K3WqY=
|
||||||
go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto=
|
go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto=
|
||||||
|
|||||||
@ -26,7 +26,7 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
// NewGormV2 获取日志实例
|
// NewGormV2 获取日志实例
|
||||||
func NewGormV2(loggerLevel consts.LogLevel, consoleOutput bool, encoder zapcore.Encoder, splitConfig *loggerPkg.RotateLogConfig, traceIDField string, skip int) (logger.Interface, error) {
|
func NewGormV2(loggerLevel loggerPkg.LogLevel, consoleOutput bool, encoder zapcore.Encoder, splitConfig *loggerPkg.RotateLogConfig, traceIDField string, skip int) (logger.Interface, error) {
|
||||||
logConfList := []loggerPkg.SetLoggerOptionFunc{loggerPkg.WithEncoder(encoder), loggerPkg.WithCallerSkip(skip), loggerPkg.WithCaller()}
|
logConfList := []loggerPkg.SetLoggerOptionFunc{loggerPkg.WithEncoder(encoder), loggerPkg.WithCallerSkip(skip), loggerPkg.WithCaller()}
|
||||||
if consoleOutput {
|
if consoleOutput {
|
||||||
logConfList = append(logConfList, loggerPkg.WithConsoleOutput())
|
logConfList = append(logConfList, loggerPkg.WithConsoleOutput())
|
||||||
@ -151,7 +151,7 @@ func (g *Gorm) write(ctx context.Context, message string, level consts.LogLevel,
|
|||||||
g.outCtx = context.Background()
|
g.outCtx = context.Background()
|
||||||
}
|
}
|
||||||
|
|
||||||
dataList := loggerPkg.ZapLogDataList(loggerPkg.NewLogData(g.outCtx, consts.LogTypeDatabase, "", data))
|
dataList := loggerPkg.NewLogData(g.outCtx, consts.LogTypeDatabase, "", data).ToFieldList()
|
||||||
switch level {
|
switch level {
|
||||||
case consts.LogLevelDebug:
|
case consts.LogLevelDebug:
|
||||||
g.instance.Debug(message, dataList...)
|
g.instance.Debug(message, dataList...)
|
||||||
|
|||||||
Reference in New Issue
Block a user