From 6b59a711b9af0825858c408cdba95102b8b51cb3 Mon Sep 17 00:00:00 2001
From: zhangqian <zhangqian@123.com>
Date: 星期五, 13 十二月 2024 15:46:44 +0800
Subject: [PATCH] 结果表增加联合唯一索引,防止重复报警

---
 db/task.go |   38 ++++++++++++++++++++++++++++++++------
 1 files changed, 32 insertions(+), 6 deletions(-)

diff --git a/db/task.go b/db/task.go
index 573558c..e7c6dc3 100644
--- a/db/task.go
+++ b/db/task.go
@@ -24,14 +24,17 @@
 		AppearInterval int       `gorm:"type:int;" json:"appearInterval"`      //鍑虹幇闂撮殧锛屽崟浣嶄负绉�
 		DaysWindow     int       `gorm:"type:int;" json:"daysWindow" `         //杩戝嚑澶╁唴
 		Threshold      int       `gorm:"type:int;" json:"threshold" `          //杈惧嚑娆�
+		Enabled        bool      `json:"enabled"`                              //鏄惁寮�鍚�
 	}
 
 	ModelTaskSearch struct {
 		ModelTask
-		Orm      *gorm.DB
-		PageNum  int
-		PageSize int
-		Keyword  string
+		Orm       *gorm.DB
+		PageNum   int
+		PageSize  int
+		Keyword   string
+		ModelIDs  []string
+		Unexpired bool
 	}
 )
 
@@ -102,13 +105,23 @@
 	return slf
 }
 
+func (slf *ModelTaskSearch) SetModelIDs(ids []string) *ModelTaskSearch {
+	slf.ModelIDs = ids
+	return slf
+}
+
 func (slf *ModelTaskSearch) SetKeyword(kw string) *ModelTaskSearch {
 	slf.Keyword = kw
 	return slf
 }
 
-func (slf *ModelTaskSearch) SetEnabled(kw string) *ModelTaskSearch {
-	slf.Keyword = kw
+func (slf *ModelTaskSearch) SetEnabled(enabled bool) *ModelTaskSearch {
+	slf.Enabled = enabled
+	return slf
+}
+
+func (slf *ModelTaskSearch) SetUnexpired() *ModelTaskSearch {
+	slf.Unexpired = true
 	return slf
 }
 
@@ -123,11 +136,24 @@
 		db = db.Where("model_id = ?", slf.ModelID)
 	}
 
+	if len(slf.ModelIDs) != 0 {
+		db = db.Where("model_id in ?", slf.ModelIDs)
+	}
+
 	if slf.Keyword != "" {
 		kw := "%" + slf.Keyword + "%"
 		db = db.Where("name like ?", kw)
 	}
 
+	if slf.Enabled {
+		db = db.Where("enabled = ?", slf.Enabled)
+	}
+
+	if slf.Unexpired {
+		now := time.Now()
+		db = db.Where("begin_time <= ?", now).Where("end_time >= ?", now)
+	}
+
 	return db
 }
 

--
Gitblit v1.8.0