zhaoqingang
2025-02-10 bc37c44c45d08c2cb42822e08adf429f4bcffb51
db/task_results.go
@@ -2,19 +2,27 @@
import (
   "fmt"
   "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
   CommunityId string `json:"communityID" gorm:"index;column:community_id;type:varchar(299);not null;"` //小区ID
   OrgID       string `json:"orgID" gorm:"index;column:org_id;type:varchar(299);not null;"`             //派出所 domain unit ID
   ObjectIds   string `json:"objectIds" gorm:"type:text"`                                               //事件对象,可以是人,多个用逗号分隔
   Location    string `json:"location" 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);"`             // 第一个人的ID
   PicDate       string `json:"picDate" gorm:"type:varchar(255);"`  // 抓拍时间
   FirstPersonID string `json:"-" gorm:"type:varchar(255);"`        // 第一个人的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);"`    // 楼层
}
func (m *ModelTaskResults) TableName() string {
@@ -28,6 +36,7 @@
   PageSize int
   Order    string
   Keyword  string
   location string
}
func NewModelTaskResultsSearch() *ModelTaskResultsSearch {
@@ -63,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 != "" {
@@ -73,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
@@ -159,9 +207,22 @@
   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()
   if err := db.Omit("CreatedAt").Save(record).Error; err != nil {
      return fmt.Errorf("save err: %v, record: %+v", err, record)
   }