package db
|
|
import (
|
"fmt"
|
"gorm.io/gorm"
|
"time"
|
)
|
|
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
|
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
|
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 {
|
return "model_task_results"
|
}
|
|
type ModelTaskResultsSearch struct {
|
ModelTaskResults
|
Orm *gorm.DB
|
PageNum int
|
PageSize int
|
Order string
|
Keyword string
|
}
|
|
func NewModelTaskResultsSearch() *ModelTaskResultsSearch {
|
return &ModelTaskResultsSearch{
|
Orm: GetDB(),
|
PageNum: 1,
|
PageSize: 10,
|
}
|
}
|
|
func (slf *ModelTaskResultsSearch) SetOrm(tx *gorm.DB) *ModelTaskResultsSearch {
|
slf.Orm = tx
|
return slf
|
}
|
|
func (slf *ModelTaskResultsSearch) SetPage(page, size int) *ModelTaskResultsSearch {
|
slf.PageNum, slf.PageSize = page, size
|
return slf
|
}
|
|
func (slf *ModelTaskResultsSearch) SetOrder(order string) *ModelTaskResultsSearch {
|
slf.Order = order
|
return slf
|
}
|
|
func (slf *ModelTaskResultsSearch) SetID(id string) *ModelTaskResultsSearch {
|
slf.ID = id
|
return slf
|
}
|
|
func (slf *ModelTaskResultsSearch) SetKeyword(kw string) *ModelTaskResultsSearch {
|
slf.Keyword = kw
|
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) build() *gorm.DB {
|
var db = slf.Orm.Table(slf.TableName())
|
if slf.Order != "" {
|
db = db.Order(slf.Order)
|
}
|
|
if slf.ID != "" {
|
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.Keyword != "" {
|
kw := "%" + slf.Keyword + "%"
|
db = db.Where("name like ?", kw)
|
}
|
|
return db
|
}
|
|
func (slf *ModelTaskResultsSearch) First() (*ModelTaskResults, error) {
|
var (
|
record = new(ModelTaskResults)
|
db = slf.build()
|
)
|
|
if err := db.First(record).Error; err != nil {
|
return record, err
|
}
|
|
return record, nil
|
}
|
|
func (slf *ModelTaskResultsSearch) Find() ([]*ModelTaskResults, int64, error) {
|
var (
|
records = make([]*ModelTaskResults, 0)
|
total int64
|
db = slf.build()
|
)
|
|
if err := db.Count(&total).Error; err != nil {
|
return records, total, fmt.Errorf("find count err: %v", err)
|
}
|
if slf.PageNum*slf.PageSize > 0 {
|
db = db.Offset((slf.PageNum - 1) * slf.PageSize).Limit(slf.PageSize)
|
}
|
if err := db.Find(&records).Error; err != nil {
|
return records, total, fmt.Errorf("find records err: %v", err)
|
}
|
|
return records, total, nil
|
}
|
|
func (slf *ModelTaskResultsSearch) FindAll() ([]*ModelTaskResults, error) {
|
var (
|
records = make([]*ModelTaskResults, 0)
|
db = slf.build()
|
)
|
if err := db.Find(&records).Error; err != nil {
|
return records, fmt.Errorf("find records err: %v", err)
|
}
|
|
return records, nil
|
}
|
|
func (slf *ModelTaskResultsSearch) Count() int64 {
|
var (
|
count int64
|
db = slf.build()
|
)
|
|
if err := db.Count(&count).Error; err != nil {
|
return count
|
}
|
|
return count
|
}
|
|
func (slf *ModelTaskResultsSearch) Create(record *ModelTaskResults) error {
|
var db = slf.build()
|
|
if err := db.Create(record).Error; err != nil {
|
return fmt.Errorf("create err: %v, record: %+v", err, record)
|
}
|
|
return nil
|
}
|
|
func (slf *ModelTaskResultsSearch) BatchCreate(record []*ModelTaskResults) error {
|
var db = slf.build()
|
|
if err := db.Create(record).Error; err != nil {
|
return fmt.Errorf("create err: %v, record: %+v", err, record)
|
}
|
|
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)
|
}
|
|
return nil
|
}
|
|
func (slf *ModelTaskResultsSearch) Update(record *ModelTaskResults) error {
|
var db = slf.build()
|
|
if err := db.Updates(record).Error; err != nil {
|
return fmt.Errorf("update err: %v, record: %+v", err, record)
|
}
|
|
return nil
|
}
|
|
func (slf *ModelTaskResultsSearch) Delete() error {
|
var db = slf.build()
|
return db.Delete(&ModelTaskResults{}).Error
|
}
|