From c6b8d29b610cbd22dda8ed909fb079b74fb3db9d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=99=BD=E8=8C=B6=E6=B8=85=E6=AC=A2?= Date: Fri, 23 Aug 2024 17:54:48 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E4=BB=A3=E7=A0=81BUG=20+=20?= =?UTF-8?q?=E5=BE=AA=E7=8E=AF=E5=BC=95=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- abstract/database.go | 16 ++--- api2sql/execute.go | 8 +-- api2sql/execute_test.go | 31 +++++++++ base.go | 23 +++---- define/api2sql.go | 2 +- define/sql_option.go | 39 +++++++++++ option.go | 142 ++++++++++++++++------------------------ option_test.go | 6 +- wrapper_client.go | 2 +- 9 files changed, 154 insertions(+), 115 deletions(-) create mode 100644 api2sql/execute_test.go create mode 100644 define/sql_option.go diff --git a/abstract/database.go b/abstract/database.go index 7b0d052..51b546b 100644 --- a/abstract/database.go +++ b/abstract/database.go @@ -8,7 +8,7 @@ package abstract import ( - "git.zhangdeman.cn/zhangdeman/database" + "git.zhangdeman.cn/zhangdeman/database/define" "gorm.io/gorm" ) @@ -19,21 +19,21 @@ import ( // Date : 15:06 2023/10/14 type IDatabase interface { // Create 创建数据 - Create(dbInstance *gorm.DB, data any, optionList ...database.SetOption) error + Create(dbInstance *gorm.DB, data any, optionList ...define.SetOption) error // Update 更新数据 - Update(dbInstance *gorm.DB, updateData any, optionFuncList ...database.SetOption) (int64, error) + Update(dbInstance *gorm.DB, updateData any, optionFuncList ...define.SetOption) (int64, error) // UpdateOne 更新一条数据 - UpdateOne(dbInstance *gorm.DB, updateData any, optionFuncList ...database.SetOption) (int64, error) + UpdateOne(dbInstance *gorm.DB, updateData any, optionFuncList ...define.SetOption) (int64, error) // List 查询数据列表 - List(dbInstance *gorm.DB, result any, optionFuncList ...database.SetOption) error + List(dbInstance *gorm.DB, result any, optionFuncList ...define.SetOption) error // Delete 删除数据 - Delete(dbInstance *gorm.DB, dataModel any, optionFuncList ...database.SetOption) (int64, error) + Delete(dbInstance *gorm.DB, dataModel any, optionFuncList ...define.SetOption) (int64, error) // Detail 数据详情 - Detail(dbInstance *gorm.DB, result any, optionFuncList ...database.SetOption) error + Detail(dbInstance *gorm.DB, result any, optionFuncList ...define.SetOption) error // IsNotFound 错误是否为数据不存在 IsNotFound(err error) bool // Count 查询数据数量 - Count(dbInstance *gorm.DB, optionFuncList ...database.SetOption) (int64, error) + Count(dbInstance *gorm.DB, optionFuncList ...define.SetOption) (int64, error) // Tx 执行事务 Tx(dbInstance *gorm.DB, txFunc func(dbInstance *gorm.DB) error) error // Begin 开启事务 diff --git a/api2sql/execute.go b/api2sql/execute.go index 66bd615..98a7fd0 100644 --- a/api2sql/execute.go +++ b/api2sql/execute.go @@ -78,7 +78,7 @@ func (e *execute) List(ctx context.Context, inputParam *define.Api2SqlParam) (an var ( err error tx *gorm.DB - optionList []database.SetOption + optionList []define.SetOption ) if tx, err = e.getTx(ctx, inputParam); nil != err { return nil, err @@ -227,7 +227,7 @@ func (e *execute) validateColumn(inputParam *define.Api2SqlParam) error { // 验证字段是否都正确 tableColumnTable := make(map[string]bool) for _, itemColumn := range inputParam.TableColumnConfig { - tableColumnTable[itemColumn.ColumnName] = true + tableColumnTable[itemColumn.Column] = true } for _, columnConfig := range inputParam.ColumnList { if !tableColumnTable[columnConfig.Column] { @@ -261,8 +261,8 @@ func (e *execute) getTx(ctx context.Context, inputParam *define.Api2SqlParam) (* // Author : go_developer@163.com<白茶清欢> // // Date : 12:31 2024/8/23 -func (e *execute) getOptionList(ctx context.Context, inputParam *define.Api2SqlParam) ([]database.SetOption, error) { - optionList := []database.SetOption{ +func (e *execute) getOptionList(ctx context.Context, inputParam *define.Api2SqlParam) ([]define.SetOption, error) { + optionList := []define.SetOption{ database.WithTable(inputParam.Table), } // 设置 limit offset diff --git a/api2sql/execute_test.go b/api2sql/execute_test.go new file mode 100644 index 0000000..2172c22 --- /dev/null +++ b/api2sql/execute_test.go @@ -0,0 +1,31 @@ +// Package api2sql ... +// +// Description : api2sql ... +// +// Author : go_developer@163.com<白茶清欢> +// +// Date : 2024-08-23 17:36 +package api2sql + +import ( + "git.zhangdeman.cn/zhangdeman/database" + "git.zhangdeman.cn/zhangdeman/database/define" + "testing" +) + +func Test_execute_Run(t *testing.T) { + clientManager := database.NewWrapperClient() + if err := clientManager.AddWithConfig("TEST_DATABASE", nil, &define.Database{ + Master: &define.Driver{ + DBType: "sqlite3", + Host: "/tmp/gateway.db", + }, + Slave: &define.Driver{ + DBType: "sqlite3", + Host: "/tmp/gateway.db", + }, + }, []string{}); nil != err { + panic(err.Error()) + } + Exec.SetDatabaseClientManager(clientManager) +} diff --git a/base.go b/base.go index 7fba777..b6ae157 100644 --- a/base.go +++ b/base.go @@ -7,6 +7,7 @@ package database import ( "errors" + "git.zhangdeman.cn/zhangdeman/database/define" "gorm.io/gorm" ) @@ -25,8 +26,8 @@ type BaseDao struct { // Author : go_developer@163.com<白茶清欢> // // Date : 8:06 下午 2021/8/8 -func (b *BaseDao) Create(dbInstance *gorm.DB, data any, optionList ...SetOption) error { - o := &Option{} +func (b *BaseDao) Create(dbInstance *gorm.DB, data any, optionList ...define.SetOption) error { + o := &define.Option{} for _, itemFunc := range optionList { itemFunc(o) } @@ -42,7 +43,7 @@ func (b *BaseDao) Create(dbInstance *gorm.DB, data any, optionList ...SetOption) // Author : go_developer@163.com<白茶清欢> // // Date : 8:12 下午 2021/8/8 -func (b *BaseDao) Update(dbInstance *gorm.DB, updateData any, optionFuncList ...SetOption) (int64, error) { +func (b *BaseDao) Update(dbInstance *gorm.DB, updateData any, optionFuncList ...define.SetOption) (int64, error) { dbInstance = b.setTxCondition(dbInstance, optionFuncList...) r := dbInstance.Updates(updateData) return r.RowsAffected, r.Error @@ -53,7 +54,7 @@ func (b *BaseDao) Update(dbInstance *gorm.DB, updateData any, optionFuncList ... // Author : go_developer@163.com<白茶清欢> // // Date : 17:05 2024/1/13 -func (b *BaseDao) UpdateOne(dbInstance *gorm.DB, updateData any, optionFuncList ...SetOption) (int64, error) { +func (b *BaseDao) UpdateOne(dbInstance *gorm.DB, updateData any, optionFuncList ...define.SetOption) (int64, error) { optionFuncList = append(optionFuncList, WithLimit(1, 0)) return b.Update(dbInstance, updateData, optionFuncList...) } @@ -63,7 +64,7 @@ func (b *BaseDao) UpdateOne(dbInstance *gorm.DB, updateData any, optionFuncList // Author : go_developer@163.com<白茶清欢> // // Date : 8:14 下午 2021/8/8 -func (b *BaseDao) List(dbInstance *gorm.DB, result any, optionFuncList ...SetOption) error { +func (b *BaseDao) List(dbInstance *gorm.DB, result any, optionFuncList ...define.SetOption) error { dbInstance = b.setTxCondition(dbInstance, optionFuncList...) return dbInstance.Find(result).Error } @@ -73,7 +74,7 @@ func (b *BaseDao) List(dbInstance *gorm.DB, result any, optionFuncList ...SetOpt // Author : go_developer@163.com<白茶清欢> // // Date : 11:46 2023/2/9 -func (b *BaseDao) Delete(dbInstance *gorm.DB, dataModel any, optionFuncList ...SetOption) (int64, error) { +func (b *BaseDao) Delete(dbInstance *gorm.DB, dataModel any, optionFuncList ...define.SetOption) (int64, error) { dbInstance = dbInstance.Model(dataModel) dbInstance = b.setTxCondition(dbInstance, optionFuncList...).Delete(dataModel) return dbInstance.RowsAffected, dbInstance.Error @@ -84,7 +85,7 @@ func (b *BaseDao) Delete(dbInstance *gorm.DB, dataModel any, optionFuncList ...S // Author : go_developer@163.com<白茶清欢> // // Date : 8:25 下午 2021/8/8 -func (b *BaseDao) Detail(dbInstance *gorm.DB, result any, optionFuncList ...SetOption) error { +func (b *BaseDao) Detail(dbInstance *gorm.DB, result any, optionFuncList ...define.SetOption) error { dbInstance = b.setTxCondition(dbInstance, optionFuncList...) return dbInstance.First(result).Error } @@ -118,7 +119,7 @@ func (b *BaseDao) IsNotFound(err error) bool { // Author : go_developer@163.com<白茶清欢> // // Date : 8:25 下午 2021/8/8 -func (b *BaseDao) Count(dbInstance *gorm.DB, optionFuncList ...SetOption) (int64, error) { +func (b *BaseDao) Count(dbInstance *gorm.DB, optionFuncList ...define.SetOption) (int64, error) { dbInstance = b.setTxCondition(dbInstance, optionFuncList...) var cnt int64 return cnt, dbInstance.Count(&cnt).Error @@ -173,10 +174,10 @@ func (b *BaseDao) Rollback(db *gorm.DB) error { // Author : go_developer@163.com<白茶清欢> // // Date : 17:38 2022/5/15 -func (b *BaseDao) setTxCondition(tx *gorm.DB, optionFuncList ...SetOption) *gorm.DB { +func (b *BaseDao) setTxCondition(tx *gorm.DB, optionFuncList ...define.SetOption) *gorm.DB { // 构建查询条件 - o := &Option{} + o := &define.Option{} for _, fn := range optionFuncList { fn(o) } @@ -256,7 +257,7 @@ func (b *BaseDao) setTxCondition(tx *gorm.DB, optionFuncList ...SetOption) *gorm // or 语句 if nil != o.OR { for _, itemOr := range o.OR { - orOption := &Option{} + orOption := &define.Option{} for _, fn := range itemOr { fn(orOption) } diff --git a/define/api2sql.go b/define/api2sql.go index 989388f..b96c7a8 100644 --- a/define/api2sql.go +++ b/define/api2sql.go @@ -43,7 +43,7 @@ type Api2SqlParam struct { OrderRule string `json:"order_rule"` // 排序规则, Asc / Desc WithCount bool `json:"with_count"` // 是否返回数据总量, 仅 sqlType = list 生效 ConditionList []SqlCondition `json:"value_list"` // 字段列表 - TableColumnConfig []*ColumnInfo `json:"table_column_config"` // 表字段配置 + TableColumnConfig []*ColumnConfig `json:"table_column_config"` // 表字段配置 Tx *gorm.DB `json:"-"` // 前后已有的数据库连接, 直接复用 } diff --git a/define/sql_option.go b/define/sql_option.go new file mode 100644 index 0000000..7518d2f --- /dev/null +++ b/define/sql_option.go @@ -0,0 +1,39 @@ +// Package define ... +// +// Description : define ... +// +// Author : go_developer@163.com<白茶清欢> +// +// Date : 2024-08-23 17:46 +package define + +// SetOption 设置选项 +// +// Author : go_developer@163.com<白茶清欢> +// +// Date : 11:46 2022/5/15 +type SetOption func(o *Option) + +// Option 扩展选项 +// +// Author : go_developer@163.com<白茶清欢> +// +// Date : 8:05 下午 2021/8/8 +type Option struct { + Model any `json:"-"` // 操作model + Table string `json:"table"` // 查询的数据表 + Limit int `json:"limit"` // 限制数量 + Offset int `json:"offset"` // 偏移量 + In map[string]any `json:"in"` // in语句 + NotIn map[string]any `json:"not_in"` // not in语句 + Where map[string]any `json:"where"` // where 条件 + Between map[string][2]any `json:"between"` // between 条件 + NotBetween map[string][2]any `json:"not_between"` // not between 条件 + Start map[string]any `json:"start"` // >= 条件 + End map[string]any `json:"end"` // < 条件 + Like map[string]string `json:"like"` // like 语句 + NotLike map[string]string `json:"not_like"` // not like 语句 + NotEqual map[string]any `json:"not_equal"` // != 语句 + Order []string `json:"order"` // 排序规则 + OR [][]SetOption `json:"or"` // or 语句, or 和其他属性 and 关系, 内部 OR 关系 +} diff --git a/option.go b/option.go index 42e4a03..3da670a 100644 --- a/option.go +++ b/option.go @@ -12,50 +12,20 @@ import ( "errors" "fmt" "git.zhangdeman.cn/zhangdeman/consts" + "git.zhangdeman.cn/zhangdeman/database/define" "git.zhangdeman.cn/zhangdeman/op_type" "git.zhangdeman.cn/zhangdeman/serialize" "reflect" "strings" ) -// SetOption 设置选项 -// -// Author : go_developer@163.com<白茶清欢> -// -// Date : 11:46 2022/5/15 -type SetOption func(o *Option) - -// Option 扩展选项 -// -// Author : go_developer@163.com<白茶清欢> -// -// Date : 8:05 下午 2021/8/8 -type Option struct { - Model any `json:"-"` // 操作model - Table string `json:"table"` // 查询的数据表 - Limit int `json:"limit"` // 限制数量 - Offset int `json:"offset"` // 偏移量 - In map[string]any `json:"in"` // in语句 - NotIn map[string]any `json:"not_in"` // not in语句 - Where map[string]any `json:"where"` // where 条件 - Between map[string][2]any `json:"between"` // between 条件 - NotBetween map[string][2]any `json:"not_between"` // not between 条件 - Start map[string]any `json:"start"` // >= 条件 - End map[string]any `json:"end"` // < 条件 - Like map[string]string `json:"like"` // like 语句 - NotLike map[string]string `json:"not_like"` // not like 语句 - NotEqual map[string]any `json:"not_equal"` // != 语句 - Order []string `json:"order"` // 排序规则 - OR [][]SetOption `json:"or"` // or 语句, or 和其他属性 and 关系, 内部 OR 关系 -} - // WithModel ... // // Author : go_developer@163.com<白茶清欢> // // Date : 15:18 2024/1/15 -func WithModel(model any) SetOption { - return func(o *Option) { +func WithModel(model any) define.SetOption { + return func(o *define.Option) { o.Model = model } } @@ -65,8 +35,8 @@ func WithModel(model any) SetOption { // Author : go_developer@163.com<白茶清欢> // // Date : 20:56 2023/3/22 -func WithTable(tableName string) SetOption { - return func(o *Option) { +func WithTable(tableName string) define.SetOption { + return func(o *define.Option) { o.Table = tableName } } @@ -76,8 +46,8 @@ func WithTable(tableName string) SetOption { // Author : go_developer@163.com<白茶清欢> // // Date : 12:17 2022/5/15 -func WithWhere[T op_type.BaseType](where map[string]T) SetOption { - return func(o *Option) { +func WithWhere[T op_type.BaseType](where map[string]T) define.SetOption { + return func(o *define.Option) { if nil == o.Where { o.Where = make(map[string]any) } @@ -92,8 +62,8 @@ func WithWhere[T op_type.BaseType](where map[string]T) SetOption { // Author : go_developer@163.com<白茶清欢> // // Date : 12:00 2022/5/15 -func WithLimit[T op_type.Int](limit T, offset T) SetOption { - return func(o *Option) { +func WithLimit[T op_type.Int](limit T, offset T) define.SetOption { + return func(o *define.Option) { o.Limit = int(limit) o.Offset = int(offset) } @@ -104,8 +74,8 @@ func WithLimit[T op_type.Int](limit T, offset T) SetOption { // Author : go_developer@163.com<白茶清欢> // // Date : 21:42 2023/10/14 -func WithLimitByPageAndSize[T op_type.Int](page T, size T) SetOption { - return func(o *Option) { +func WithLimitByPageAndSize[T op_type.Int](page T, size T) define.SetOption { + return func(o *define.Option) { if size > 0 { o.Limit = int(size) } @@ -121,8 +91,8 @@ func WithLimitByPageAndSize[T op_type.Int](page T, size T) SetOption { // Author : go_developer@163.com<白茶清欢> // // Date : 12:23 2022/5/15 -func WithIn[T op_type.Array](field string, value T) SetOption { - return func(o *Option) { +func WithIn[T op_type.Array](field string, value T) define.SetOption { + return func(o *define.Option) { if nil == value { return } @@ -141,8 +111,8 @@ func WithIn[T op_type.Array](field string, value T) SetOption { // Author : go_developer@163.com<白茶清欢> // // Date : 12:24 2022/5/15 -func WithBatchIn[T op_type.Array](batchIn map[string]T) SetOption { - return func(o *Option) { +func WithBatchIn[T op_type.Array](batchIn map[string]T) define.SetOption { + return func(o *define.Option) { if nil == o.In { o.In = make(map[string]any) } @@ -157,8 +127,8 @@ func WithBatchIn[T op_type.Array](batchIn map[string]T) SetOption { // Author : go_developer@163.com<白茶清欢> // // Date : 16:18 2022/5/15 -func WithNotIn[T op_type.Array](field string, value T) SetOption { - return func(o *Option) { +func WithNotIn[T op_type.Array](field string, value T) define.SetOption { + return func(o *define.Option) { if nil == o.NotIn { o.NotIn = make(map[string]any) } @@ -174,8 +144,8 @@ func WithNotIn[T op_type.Array](field string, value T) SetOption { // Author : go_developer@163.com<白茶清欢> // // Date : 16:23 2022/5/15 -func WithBatchNotIn[T op_type.Array](data map[string]T) SetOption { - return func(o *Option) { +func WithBatchNotIn[T op_type.Array](data map[string]T) define.SetOption { + return func(o *define.Option) { if nil == o.NotIn { o.NotIn = make(map[string]any) } @@ -193,8 +163,8 @@ func WithBatchNotIn[T op_type.Array](data map[string]T) SetOption { // Author : go_developer@163.com<白茶清欢> // // Date : 17:01 2022/5/15 -func WithStart(field string, value any) SetOption { - return func(o *Option) { +func WithStart(field string, value any) define.SetOption { + return func(o *define.Option) { if nil == o.Start { o.Start = make(map[string]any) } @@ -207,8 +177,8 @@ func WithStart(field string, value any) SetOption { // Author : go_developer@163.com<白茶清欢> // // Date : 17:03 2022/5/15 -func WithBatchStart(data map[string]any) SetOption { - return func(o *Option) { +func WithBatchStart(data map[string]any) define.SetOption { + return func(o *define.Option) { if nil == o.Start { o.Start = make(map[string]any) } @@ -223,8 +193,8 @@ func WithBatchStart(data map[string]any) SetOption { // Author : go_developer@163.com<白茶清欢> // // Date : 17:07 2022/5/15 -func WithEnd(field string, value any) SetOption { - return func(o *Option) { +func WithEnd(field string, value any) define.SetOption { + return func(o *define.Option) { if nil == o.End { o.End = make(map[string]any) } @@ -237,8 +207,8 @@ func WithEnd(field string, value any) SetOption { // Author : go_developer@163.com<白茶清欢> // // Date : 17:10 2022/5/15 -func WithBatchEnd(data map[string]any) SetOption { - return func(o *Option) { +func WithBatchEnd(data map[string]any) define.SetOption { + return func(o *define.Option) { if nil == o.End { o.End = make(map[string]any) } @@ -253,8 +223,8 @@ func WithBatchEnd(data map[string]any) SetOption { // Author : go_developer@163.com<白茶清欢> // // Date : 17:16 2022/5/15 -func WithLike(field string, value string) SetOption { - return func(o *Option) { +func WithLike(field string, value string) define.SetOption { + return func(o *define.Option) { if nil == o.Like { o.Like = make(map[string]string) } @@ -270,8 +240,8 @@ func WithLike(field string, value string) SetOption { // Author : go_developer@163.com<白茶清欢> // // Date : 17:19 2022/5/15 -func WithBatchLike(data map[string]string) SetOption { - return func(o *Option) { +func WithBatchLike(data map[string]string) define.SetOption { + return func(o *define.Option) { if nil == o.Like { o.Like = make(map[string]string) } @@ -289,8 +259,8 @@ func WithBatchLike(data map[string]string) SetOption { // Author : go_developer@163.com<白茶清欢> // // Date : 17:50 2022/5/15 -func WithNotLike(field string, value string) SetOption { - return func(o *Option) { +func WithNotLike(field string, value string) define.SetOption { + return func(o *define.Option) { if nil == o.NotLike { o.NotLike = make(map[string]string) } @@ -306,8 +276,8 @@ func WithNotLike(field string, value string) SetOption { // Author : go_developer@163.com<白茶清欢> // // Date : 17:52 2022/5/15 -func WithBatchNotLike(data map[string]string) SetOption { - return func(o *Option) { +func WithBatchNotLike(data map[string]string) define.SetOption { + return func(o *define.Option) { if nil == o.NotLike { o.NotLike = make(map[string]string) } @@ -325,8 +295,8 @@ func WithBatchNotLike(data map[string]string) SetOption { // Author : go_developer@163.com<白茶清欢> // // Date : 17:31 2022/5/15 -func WithNotEqual[T op_type.BaseType](field string, value T) SetOption { - return func(o *Option) { +func WithNotEqual[T op_type.BaseType](field string, value T) define.SetOption { + return func(o *define.Option) { if nil == o.NotEqual { o.NotEqual = make(map[string]any) } @@ -339,8 +309,8 @@ func WithNotEqual[T op_type.BaseType](field string, value T) SetOption { // Author : go_developer@163.com<白茶清欢> // // Date : 17:33 2022/5/15 -func WithBatchNotEqual[T op_type.BaseType](data map[string]T) SetOption { - return func(o *Option) { +func WithBatchNotEqual[T op_type.BaseType](data map[string]T) define.SetOption { + return func(o *define.Option) { if nil == o.NotEqual { o.NotEqual = make(map[string]any) } @@ -355,10 +325,10 @@ func WithBatchNotEqual[T op_type.BaseType](data map[string]T) SetOption { // Author : go_developer@163.com<白茶清欢> // // Date : 20:03 2022/7/23 -func WithOR(orConditionList ...SetOption) SetOption { - return func(o *Option) { +func WithOR(orConditionList ...define.SetOption) define.SetOption { + return func(o *define.Option) { if nil == o.OR { - o.OR = make([][]SetOption, 0) + o.OR = make([][]define.SetOption, 0) } o.OR = append(o.OR, orConditionList) } @@ -369,8 +339,8 @@ func WithOR(orConditionList ...SetOption) SetOption { // Author : go_developer@163.com<白茶清欢> // // Date : 20:15 2022/10/20 -func WithOrder(orderRuleList ...string) SetOption { - return func(o *Option) { +func WithOrder(orderRuleList ...string) define.SetOption { + return func(o *define.Option) { o.Order = orderRuleList } } @@ -380,8 +350,8 @@ func WithOrder(orderRuleList ...string) SetOption { // Author : go_developer@163.com<白茶清欢> // // Date : 15:09 2023/4/3 -func WithOrderDesc(field string) SetOption { - return func(o *Option) { +func WithOrderDesc(field string) define.SetOption { + return func(o *define.Option) { if nil == o.Order { o.Order = make([]string, 0) } @@ -394,8 +364,8 @@ func WithOrderDesc(field string) SetOption { // Author : go_developer@163.com<白茶清欢> // // Date : 15:09 2023/4/3 -func WithOrderAsc(field string) SetOption { - return func(o *Option) { +func WithOrderAsc(field string) define.SetOption { + return func(o *define.Option) { if nil == o.Order { o.Order = make([]string, 0) } @@ -408,8 +378,8 @@ func WithOrderAsc(field string) SetOption { // Author : go_developer@163.com<白茶清欢> // // Date : 17:46 2024/8/9 -func newOption(setOptionList ...SetOption) *Option { - o := &Option{} +func newOption(setOptionList ...define.SetOption) *define.Option { + o := &define.Option{} for _, item := range setOptionList { item(o) } @@ -421,7 +391,7 @@ func newOption(setOptionList ...SetOption) *Option { // Author : go_developer@163.com<白茶清欢> // // Date : 17:46 2024/8/9 -func optionToSql(o *Option) (sqlBuildResult string, bindValue []any) { +func optionToSql(o *define.Option) (sqlBuildResult string, bindValue []any) { bindValue = make([]any, 0) sqlBuildResultBlockList := make([]string, 0) // 设置where条件 @@ -531,8 +501,8 @@ func parseInSql(fieldValue any) (string, []any) { // Author : go_developer@163.com<白茶清欢> // // Date : 15:52 2024/8/23 -func WithBetween(field string, left any, right any) SetOption { - return func(o *Option) { +func WithBetween(field string, left any, right any) define.SetOption { + return func(o *define.Option) { if nil == o.Between { o.Between = map[string][2]any{} } @@ -545,8 +515,8 @@ func WithBetween(field string, left any, right any) SetOption { // Author : go_developer@163.com<白茶清欢> // // Date : 15:52 2024/8/23 -func WithNotBetween(field string, left any, right any) SetOption { - return func(o *Option) { +func WithNotBetween(field string, left any, right any) define.SetOption { + return func(o *define.Option) { if nil == o.NotBetween { o.NotBetween = map[string][2]any{} } @@ -559,7 +529,7 @@ func WithNotBetween(field string, left any, right any) SetOption { // Author : go_developer@163.com<白茶清欢> // // Date : 14:48 2024/8/23 -func WithAnyCondition(column string, operate string, value any) (SetOption, error) { +func WithAnyCondition(column string, operate string, value any) (define.SetOption, error) { if nil == value { return nil, errors.New("value is nil") } diff --git a/option_test.go b/option_test.go index db8b325..db067a7 100644 --- a/option_test.go +++ b/option_test.go @@ -9,14 +9,12 @@ package database import ( "fmt" + "git.zhangdeman.cn/zhangdeman/database/define" "testing" ) func Test_optionToSql(t *testing.T) { - type args struct { - o *Option - } - o := &Option{ + o := &define.Option{ In: nil, NotIn: nil, Where: map[string]any{ diff --git a/wrapper_client.go b/wrapper_client.go index 24000f6..a52ef3f 100644 --- a/wrapper_client.go +++ b/wrapper_client.go @@ -80,7 +80,7 @@ func (c *wrapperClient) AddWithConfig(flag string, logInstance *zap.Logger, data Cfg: define.Driver{}, } - if err := dbClient.Init(databaseConfig); nil != err { + if err := dbClient.Init(databaseConfig, nil); nil != err { return err } c.lock.Lock()