package models //大区对应的摄像机和多边形关系 //一个大区内可以有多个摄像机,每个摄像机可以画多个多边形 type AreaCameraPolygon struct { Id string `gorm:"primary_key;column:id" json:"id"` Name string `gorm:"column:name" json:"name"` Desc string `gorm:"column:desc" json:"desc"` CameraPgn string `gorm:"column:camPolygons" json:"camPolygons"` } func (AreaCameraPolygon) TableName() string { return "area_camera_polygon" } func (acp *AreaCameraPolygon) FindAll() (list []AreaCameraPolygon, err error) { if err := db.Table(acp.TableName()).Order("name asc").Find(&list).Error; err != nil { return nil, err } return list, nil } func (acp *AreaCameraPolygon) SelectById(id string) (rows int64,err error) { dbselect := db.Table(acp.TableName()).Where("id = ?", id).First(acp) if dbselect.Error != nil || dbselect.RowsAffected == 0 { return 0, err } return dbselect.RowsAffected, nil } func (acp *AreaCameraPolygon) Insert() bool{ result := db.Table(acp.TableName()).Create(acp) if result.Error !=nil { return false } if result.RowsAffected>0 { return true } return false } func (acp *AreaCameraPolygon) Update() bool{ result := db.Table(acp.TableName()).Where("id = ?", acp.Id).Update(acp) if result.Error !=nil { return false } if result.RowsAffected>0 { return true } return false } func (acp *AreaCameraPolygon) Delete(ids []string) bool { str := "" for _,id := range ids { str += `'`+id+`',` } str = str[:len(str)-1] sql := "delete from area_camera_polygon where id in ("+str+")" result := db.Exec(sql) if result.Error !=nil { return false } return result.RowsAffected >0 }