@@ -43,8 +43,8 @@ type Page[T any] struct {
43
43
44
44
type Dao [T any ] struct {}
45
45
46
- func (dao Dao [T ]) NewQuery () (* Query [T ], * T ) {
47
- q := & Query [T ]{}
46
+ func (dao Dao [T ]) NewQuery () (* QueryCond [T ], * T ) {
47
+ q := & QueryCond [T ]{}
48
48
return q , q .buildColumnNameMap ()
49
49
}
50
50
@@ -99,15 +99,15 @@ func DeleteByIds[T any](ids any, opts ...OptionFunc) *gorm.DB {
99
99
}
100
100
101
101
// Delete 根据条件删除记录
102
- func Delete [T any ](q * Query [T ], opts ... OptionFunc ) * gorm.DB {
102
+ func Delete [T any ](q * QueryCond [T ], opts ... OptionFunc ) * gorm.DB {
103
103
db := getDb (opts ... )
104
104
var entity T
105
105
resultDb := db .Where (q .QueryBuilder .String (), q .QueryArgs ... ).Delete (& entity )
106
106
return resultDb
107
107
}
108
108
109
109
// DeleteByMap 根据Map删除记录
110
- func DeleteByMap [T any ](q * Query [T ], opts ... OptionFunc ) * gorm.DB {
110
+ func DeleteByMap [T any ](q * QueryCond [T ], opts ... OptionFunc ) * gorm.DB {
111
111
db := getDb (opts ... )
112
112
for k , v := range q .ConditionMap {
113
113
columnName := getColumnName (k )
@@ -126,7 +126,7 @@ func UpdateById[T any](entity *T, opts ...OptionFunc) *gorm.DB {
126
126
}
127
127
128
128
// Update 根据 Map 更新
129
- func Update [T any ](q * Query [T ], opts ... OptionFunc ) * gorm.DB {
129
+ func Update [T any ](q * QueryCond [T ], opts ... OptionFunc ) * gorm.DB {
130
130
db := getDb (opts ... )
131
131
resultDb := db .Model (new (T )).Where (q .QueryBuilder .String (), q .QueryArgs ... ).Updates (& q .UpdateMap )
132
132
return resultDb
@@ -149,20 +149,20 @@ func SelectByIds[T any](ids any, opts ...OptionFunc) ([]*T, *gorm.DB) {
149
149
}
150
150
151
151
// SelectOne 根据条件查询单条记录
152
- func SelectOne [T any ](q * Query [T ], opts ... OptionFunc ) (* T , * gorm.DB ) {
152
+ func SelectOne [T any ](q * QueryCond [T ], opts ... OptionFunc ) (* T , * gorm.DB ) {
153
153
var entity T
154
154
resultDb := buildCondition (q , opts ... )
155
155
return & entity , resultDb .First (& entity )
156
156
}
157
157
158
158
// Exists 根据条件判断记录是否存在
159
- func Exists [T any ](q * Query [T ], opts ... OptionFunc ) (bool , error ) {
159
+ func Exists [T any ](q * QueryCond [T ], opts ... OptionFunc ) (bool , error ) {
160
160
_ , dbRes := SelectOne [T ](q , opts ... )
161
161
return dbRes .RowsAffected > 0 , dbRes .Error
162
162
}
163
163
164
164
// SelectList 根据条件查询多条记录
165
- func SelectList [T any ](q * Query [T ], opts ... OptionFunc ) ([]* T , * gorm.DB ) {
165
+ func SelectList [T any ](q * QueryCond [T ], opts ... OptionFunc ) ([]* T , * gorm.DB ) {
166
166
resultDb := buildCondition (q , opts ... )
167
167
var results []* T
168
168
resultDb .Find (& results )
@@ -172,31 +172,31 @@ func SelectList[T any](q *Query[T], opts ...OptionFunc) ([]*T, *gorm.DB) {
172
172
// SelectListModel 根据条件查询多条记录
173
173
// 第一个泛型代表数据库表实体
174
174
// 第二个泛型代表返回记录实体
175
- func SelectListModel [T any , R any ](q * Query [T ], opts ... OptionFunc ) ([]* R , * gorm.DB ) {
175
+ func SelectListModel [T any , R any ](q * QueryCond [T ], opts ... OptionFunc ) ([]* R , * gorm.DB ) {
176
176
resultDb := buildCondition (q , opts ... )
177
177
var results []* R
178
178
resultDb .Scan (& results )
179
179
return results , resultDb
180
180
}
181
181
182
182
// SelectListByMap 根据 Map 查询多条记录
183
- func SelectListByMap [T any ](q * Query [T ], opts ... OptionFunc ) ([]* T , * gorm.DB ) {
183
+ func SelectListByMap [T any ](q * QueryCond [T ], opts ... OptionFunc ) ([]* T , * gorm.DB ) {
184
184
resultDb := buildCondition (q , opts ... )
185
185
var results []* T
186
186
resultDb .Find (& results )
187
187
return results , resultDb
188
188
}
189
189
190
190
// SelectListMaps 根据条件查询,返回Map记录
191
- func SelectListMaps [T any ](q * Query [T ], opts ... OptionFunc ) ([]map [string ]any , * gorm.DB ) {
191
+ func SelectListMaps [T any ](q * QueryCond [T ], opts ... OptionFunc ) ([]map [string ]any , * gorm.DB ) {
192
192
resultDb := buildCondition (q , opts ... )
193
193
var results []map [string ]any
194
194
resultDb .Find (& results )
195
195
return results , resultDb
196
196
}
197
197
198
198
// SelectPage 根据条件分页查询记录
199
- func SelectPage [T any ](page * Page [T ], q * Query [T ], opts ... OptionFunc ) (* Page [T ], * gorm.DB ) {
199
+ func SelectPage [T any ](page * Page [T ], q * QueryCond [T ], opts ... OptionFunc ) (* Page [T ], * gorm.DB ) {
200
200
option := getOption (opts )
201
201
202
202
// 如果需要分页忽略总数,不查询总数
@@ -218,7 +218,7 @@ func SelectPage[T any](page *Page[T], q *Query[T], opts ...OptionFunc) (*Page[T]
218
218
// SelectPageModel 根据条件分页查询记录
219
219
// 第一个泛型代表数据库表实体
220
220
// 第二个泛型代表返回记录实体
221
- func SelectPageModel [T any , R any ](page * Page [R ], q * Query [T ], opts ... OptionFunc ) (* Page [R ], * gorm.DB ) {
221
+ func SelectPageModel [T any , R any ](page * Page [R ], q * QueryCond [T ], opts ... OptionFunc ) (* Page [R ], * gorm.DB ) {
222
222
option := getOption (opts )
223
223
// 如果需要分页忽略总数,不查询总数
224
224
if ! option .IgnoreTotal {
@@ -236,7 +236,7 @@ func SelectPageModel[T any, R any](page *Page[R], q *Query[T], opts ...OptionFun
236
236
}
237
237
238
238
// SelectPageMaps 根据条件分页查询,返回分页Map记录
239
- func SelectPageMaps [T any ](page * Page [map [string ]any ], q * Query [T ], opts ... OptionFunc ) (* Page [map [string ]any ], * gorm.DB ) {
239
+ func SelectPageMaps [T any ](page * Page [map [string ]any ], q * QueryCond [T ], opts ... OptionFunc ) (* Page [map [string ]any ], * gorm.DB ) {
240
240
option := getOption (opts )
241
241
// 如果需要分页忽略总数,不查询总数
242
242
if ! option .IgnoreTotal {
@@ -256,7 +256,7 @@ func SelectPageMaps[T any](page *Page[map[string]any], q *Query[T], opts ...Opti
256
256
}
257
257
258
258
// SelectCount 根据条件查询记录数量
259
- func SelectCount [T any ](q * Query [T ], opts ... OptionFunc ) (int64 , * gorm.DB ) {
259
+ func SelectCount [T any ](q * QueryCond [T ], opts ... OptionFunc ) (int64 , * gorm.DB ) {
260
260
var count int64
261
261
resultDb := buildCondition (q , opts ... )
262
262
resultDb .Count (& count )
@@ -283,7 +283,7 @@ func paginate[T any](p *Page[T]) func(db *gorm.DB) *gorm.DB {
283
283
}
284
284
}
285
285
286
- func buildCondition [T any ](q * Query [T ], opts ... OptionFunc ) * gorm.DB {
286
+ func buildCondition [T any ](q * QueryCond [T ], opts ... OptionFunc ) * gorm.DB {
287
287
db := getDb (opts ... )
288
288
resultDb := db .Model (new (T ))
289
289
if q != nil {
0 commit comments