From bc37c44c45d08c2cb42822e08adf429f4bcffb51 Mon Sep 17 00:00:00 2001
From: zhaoqingang <zhaoqg0118@163.com>
Date: 星期一, 10 二月 2025 11:36:20 +0800
Subject: [PATCH] 测试 场景分析 bug

---
 db/task_results.go |   81 ++++++++++++++++++++++++++++++++++------
 1 files changed, 69 insertions(+), 12 deletions(-)

diff --git a/db/task_results.go b/db/task_results.go
index e94c98a..b3d912f 100644
--- a/db/task_results.go
+++ b/db/task_results.go
@@ -2,23 +2,27 @@
 
 import (
 	"fmt"
-	"gorm.io/gorm"
 	"time"
+
+	"gorm.io/gorm"
 )
 
 type ModelTaskResults struct {
 	BaseModel
-	Title       string `json:"name" gorm:"type:varchar(255)"`                                            //棰勮鍚嶇О,鏆傛椂鐢ㄤ换鍔″悕绉�
-	Event       string `json:"event" gorm:"type:varchar(255)"`                                           //棰勮浜嬩欢
-	ModelID     string `json:"modelID" gorm:"type:varchar(255)"`                                         //妯″瀷ID
-	ModelTaskID string `json:"modelTaskID" gorm:"type:varchar(255)"`                                     //妯″瀷浠诲姟ID
-	OrgID       string `json:"orgID" gorm:"index;column:org_id;type:varchar(299);not null;"`             //娲惧嚭鎵� domain unit ID
-	CommunityId string `json:"communityID" gorm:"index;column:community_id;type:varchar(299);not null;"` //灏忓尯ID
-	ObjectIds   string `json:"objectIds" gorm:"type:text"`                                               //浜嬩欢瀵硅薄锛屽彲浠ユ槸浜猴紝澶氫釜鐢ㄩ�楀彿鍒嗛殧
-	Location    string `json:"location" gorm:"type:varchar(255)"`                                        //鍙戠敓鍦扮偣
-	Building    string `json:"building" gorm:"type:varchar(255);"`                                       //妤兼爧
-	Floor       string `json:"floor"       gorm:"type:varchar(255);"`                                    //妤煎眰
-	PicDate     string `json:"picDate"       gorm:"type:varchar(255);"`                                  //鎶撴媿鏃堕棿
+	Title       string `json:"name" gorm:"type:varchar(255)"`                                            // 棰勮鍚嶇О,鏆傛椂鐢ㄤ换鍔″悕绉�
+	Event       string `json:"event" gorm:"type:varchar(255)"`                                           // 棰勮浜嬩欢
+	ModelID     string `json:"modelID" gorm:"type:varchar(255)"`                                         // 妯″瀷ID
+	ModelTaskID string `json:"modelTaskID" gorm:"type:varchar(255)"`                                     // 妯″瀷浠诲姟ID
+	OrgID       string `json:"orgID" gorm:"index;column:org_id;type:varchar(299);not null;"`             // 娲惧嚭鎵� domain unit ID
+	CommunityId string `json:"communityID" gorm:"index;column:community_id;type:varchar(299);not null;"` // 灏忓尯ID
+	//PicDate       string `json:"picDate" gorm:"uniqueIndex:pic_date_first_person_id;type:varchar(255);"` // 鎶撴媿鏃堕棿
+	//FirstPersonID string `json:"-" gorm:"uniqueIndex:pic_date_first_person_id;type:varchar(255);"`             // 绗竴涓汉鐨処D
+	PicDate       string `json:"picDate" gorm:"type:varchar(255);"`  // 鎶撴媿鏃堕棿
+	FirstPersonID string `json:"-" gorm:"type:varchar(255);"`        // 绗竴涓汉鐨処D
+	ObjectIds     string `json:"objectIds" gorm:"type:text"`         // 浜嬩欢瀵硅薄锛屽彲浠ユ槸浜猴紝澶氫釜鐢ㄩ�楀彿鍒嗛殧
+	Location      string `json:"location" gorm:"type:varchar(255)"`  // 鍙戠敓鍦扮偣
+	Building      string `json:"building" gorm:"type:varchar(255);"` // 妤兼爧
+	Floor         string `json:"floor" gorm:"type:varchar(255);"`    // 妤煎眰
 }
 
 func (m *ModelTaskResults) TableName() string {
@@ -32,6 +36,7 @@
 	PageSize int
 	Order    string
 	Keyword  string
+	location string
 }
 
 func NewModelTaskResultsSearch() *ModelTaskResultsSearch {
@@ -67,6 +72,26 @@
 	return slf
 }
 
+func (slf *ModelTaskResultsSearch) SetTaskId(id string) *ModelTaskResultsSearch {
+	slf.ModelTaskID = id
+	return slf
+}
+
+func (slf *ModelTaskResultsSearch) SetFirstPersonId(firstId string) *ModelTaskResultsSearch {
+	slf.FirstPersonID = firstId
+	return slf
+}
+
+func (slf *ModelTaskResultsSearch) SetPicDate(picDate string) *ModelTaskResultsSearch {
+	slf.PicDate = picDate
+	return slf
+}
+
+func (slf *ModelTaskResultsSearch) SetFirstLocation(location string) *ModelTaskResultsSearch {
+	slf.location = location
+	return slf
+}
+
 func (slf *ModelTaskResultsSearch) build() *gorm.DB {
 	var db = slf.Orm.Table(slf.TableName())
 	if slf.Order != "" {
@@ -77,9 +102,28 @@
 		db = db.Where("id = ?", slf.ID)
 	}
 
+	if slf.PicDate != "" {
+		db = db.Where("pic_date = ?", slf.PicDate)
+	}
+
+	if slf.FirstPersonID != "" {
+		db = db.Where("first_person_id = ?", slf.FirstPersonID)
+	}
+
+	if slf.ModelTaskID != "" {
+		db = db.Where("model_task_id = ?", slf.ModelTaskID)
+	}
+
 	if slf.Keyword != "" {
 		kw := "%" + slf.Keyword + "%"
 		db = db.Where("name like ?", kw)
+	}
+	if slf.Keyword != "" {
+		kw := "%" + slf.Keyword + "%"
+		db = db.Where("name like ?", kw)
+	}
+	if slf.location != "" {
+		db = db.Where("location = ?", slf.location)
 	}
 
 	return db
@@ -163,6 +207,19 @@
 	return nil
 }
 
+func (slf *ModelTaskResultsSearch) FirstOrCreate(record *ModelTaskResults) error {
+	var db = slf.build()
+	var exists ModelTaskResults
+	if err := db.First(&exists).Error; err == nil {
+		return nil
+	}
+	if err2 := slf.Orm.Table(slf.TableName()).Create(record).Error; err2 != nil {
+		return fmt.Errorf("FirstOrCreate err: %v, record: %+v", err2, record)
+	}
+
+	return nil
+}
+
 func (slf *ModelTaskResultsSearch) Save(record *ModelTaskResults) error {
 	var db = slf.build()
 	record.UpdatedAt = time.Now()

--
Gitblit v1.8.0