mirror of
https://gitee.com/dromara/mayfly-go
synced 2025-11-04 00:10:25 +08:00
fix: 机器计划任务、数据库迁移任务初始化问题修复
This commit is contained in:
@@ -62,6 +62,9 @@ type App[T model.ModelI] interface {
|
||||
// @param cond 可为*model.QueryCond也可以为普通查询model
|
||||
CountByCond(cond any) int64
|
||||
|
||||
// CursorByCond 根据指定条件遍历model表数据
|
||||
CursorByCond(cond any, handler func(T) error) error
|
||||
|
||||
// Tx 执行事务操作
|
||||
Tx(ctx context.Context, funcs ...func(context.Context) error) (err error)
|
||||
}
|
||||
@@ -152,6 +155,29 @@ func (ai *AppImpl[T, R]) CountByCond(cond any) int64 {
|
||||
return ai.GetRepo().CountByCond(cond)
|
||||
}
|
||||
|
||||
func (ai *AppImpl[T, R]) CursorByCond(cond any, handler func(T) error) error {
|
||||
offset := 0
|
||||
batchSize := 200
|
||||
for {
|
||||
data, err := ai.GetRepo().SelectByCondWithOffset(cond, batchSize, offset)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if len(data) == 0 {
|
||||
break
|
||||
}
|
||||
|
||||
for _, item := range data {
|
||||
if err := handler(item); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
offset += len(data)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// Tx 执行事务操作
|
||||
func (ai *AppImpl[T, R]) Tx(ctx context.Context, funcs ...func(context.Context) error) (err error) {
|
||||
dbCtx := ctx
|
||||
|
||||
Reference in New Issue
Block a user