补偿逻辑修改
This commit is contained in:
@@ -10,14 +10,21 @@ import (
|
||||
"gitea.com/red-future/common/db/gfdb"
|
||||
"github.com/gogf/gf/v2/database/gdb"
|
||||
"github.com/gogf/gf/v2/util/gconv"
|
||||
"github.com/sirupsen/logrus"
|
||||
)
|
||||
|
||||
var SyncTaskLog = new(SyncTaskLogDao)
|
||||
|
||||
type SyncTaskLogDao struct{}
|
||||
|
||||
// Create 创建任务日志
|
||||
// Create 创建任务日志(如果task_id已存在则返回现有ID)
|
||||
func (d *SyncTaskLogDao) Create(ctx context.Context, req *dto.CreateSyncTaskLogReq) (int64, error) {
|
||||
existingTask, err := d.GetByTaskID(ctx, req.TaskID, req.TaskType)
|
||||
if err == nil && existingTask != nil {
|
||||
logrus.Debugf("任务日志已存在,task_id=%s, task_type=%s, id=%d", req.TaskID, req.TaskType, existingTask.Id)
|
||||
return existingTask.Id, nil
|
||||
}
|
||||
|
||||
var entityData entity.SyncTaskLog
|
||||
if err := gconv.Struct(req, &entityData); err != nil {
|
||||
return 0, err
|
||||
@@ -124,3 +131,29 @@ func (d *SyncTaskLogDao) GetByTaskID(ctx context.Context, taskID, taskType strin
|
||||
}
|
||||
return result, nil
|
||||
}
|
||||
|
||||
// QueryAllPageTasksByParentID 根据主任务ID查询所有分页任务
|
||||
func (d *SyncTaskLogDao) QueryAllPageTasksByParentID(ctx context.Context, parentTaskID string, limit int) ([]*dto.SyncTaskLogItem, error) {
|
||||
if limit <= 0 {
|
||||
limit = 1000
|
||||
}
|
||||
|
||||
model := gfdb.DB(ctx).Model(ctx, consts.SyncTaskLogTable).Model
|
||||
model = model.Where("task_type", "account_report_page")
|
||||
model = model.WhereLike("task_id", parentTaskID+"_page_%")
|
||||
model = model.Limit(limit)
|
||||
|
||||
var results []*entity.SyncTaskLog
|
||||
if err := model.Scan(&results); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
items := make([]*dto.SyncTaskLogItem, len(results))
|
||||
for i, r := range results {
|
||||
item := &dto.SyncTaskLogItem{}
|
||||
gconv.Struct(r, item)
|
||||
items[i] = item
|
||||
}
|
||||
|
||||
return items, nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user