From f3a09ce0a6411d49303122d1d123863363e04acf Mon Sep 17 00:00:00 2001
From: zhangqian <zhangqian@123.com>
Date: 星期二, 17 十月 2023 22:20:47 +0800
Subject: [PATCH] 删除同步完的记录

---
 service/task.go           |    5 +++++
 crontask/cron_task.go     |    8 ++++++++
 model/task_status_sync.go |   10 ++++++++++
 3 files changed, 23 insertions(+), 0 deletions(-)

diff --git a/crontask/cron_task.go b/crontask/cron_task.go
index 3ff0d59..cd4e9e6 100644
--- a/crontask/cron_task.go
+++ b/crontask/cron_task.go
@@ -103,6 +103,7 @@
 	if err != nil {
 		logx.Errorf("SyncTaskStatus get records err:%v", err)
 	}
+	syncOkIds := make([]uint, 0, len(records))
 	for _, record := range records {
 		msg := &common.MsgTaskStatusUpdate{
 			WorkOrderId:  record.WorkOrderId,
@@ -116,6 +117,13 @@
 		if err != nil {
 			logx.Errorf("sync task status send msg error:%v", err.Error())
 		}
+		syncOkIds = append(syncOkIds, record.ID)
+	}
+	if len(syncOkIds) > 0 {
+		err = service.NewTaskService().RemoveTaskStatusSync(syncOkIds)
+		if err != nil {
+			logx.Errorf("sync task status delete sync ok records error:%v", err)
+		}
 	}
 }
 
diff --git a/model/task_status_sync.go b/model/task_status_sync.go
index b873578..503af79 100644
--- a/model/task_status_sync.go
+++ b/model/task_status_sync.go
@@ -23,6 +23,7 @@
 		PageNum  int
 		PageSize int
 		Orm      *gorm.DB
+		IDs      []uint
 	}
 )
 
@@ -57,6 +58,11 @@
 	return slf
 }
 
+func (slf *TaskStatusSyncSearch) SetIDs(ids []uint) *TaskStatusSyncSearch {
+	slf.IDs = ids
+	return slf
+}
+
 func (slf *TaskStatusSyncSearch) build() *gorm.DB {
 	var db = slf.Orm.Table(slf.TableName())
 
@@ -64,6 +70,10 @@
 		db = db.Where("id = ?", slf.ID)
 	}
 
+	if len(slf.IDs) != 0 {
+		db = db.Where("id in ?", slf.IDs)
+	}
+
 	if slf.Order != "" {
 		db = db.Order(slf.Order)
 	}
diff --git a/service/task.go b/service/task.go
index df68848..fbc355f 100644
--- a/service/task.go
+++ b/service/task.go
@@ -196,3 +196,8 @@
 func (slf TaskService) GetTaskStatusSync(limit int) ([]*model.TaskStatusSync, error) {
 	return model.NewTaskStatusSyncSearch(nil).SetOrder("id desc").SetPage(1, limit).FindNotTotal()
 }
+
+// RemoveTaskStatusSync 鍒犻櫎鍚屾瀹岀殑璁板綍
+func (slf TaskService) RemoveTaskStatusSync(ids []uint) (err error) {
+	return model.NewTaskStatusSyncSearch(nil).SetIDs(ids).Delete()
+}

--
Gitblit v1.8.0