liuxiaolong
2020-06-09 84c06596cae48dfca5b8c9eea206e0f540df1a8b
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
package models
 
import "time"
 
type BaseEntity struct {
    Id         string `gorm:"primary_key" json:"id" example:"XeW0HmoBevddG23Ild5o"`
    CreateTime string `json:"createTime,omitempty" example:""`
    UpdateTime string `json:"updateTime,omitempty" example:""`
    CreateBy   string `json:"createBy,omitempty" example:""`
    IsDelete   int    `json:"isDelete" example:"0 未删除 1已删除"`
    Enable     int    `json:"enable" example:" 1生效 0未生效"`
}
 
func (dp *BaseEntity) PriInsert() {
    dp.CreateTime = time.Now().Format("2006-01-02 15:04:05")
    dp.CreateBy = "admin"
    dp.IsDelete = 0
}
 
func (dp *BaseEntity) PriUpdate() {
    dp.UpdateTime = time.Now().Format("2006-01-02 15:04:05")
}
 
type Area struct {
    Id         uint `gorm:"primary_key"` /*auto_increment:false*/
    Parentid   int
    Parentids  string
    Name       string
    Createby   int       `gorm:"default:10000"`
    Createtime time.Time `gorm:"default:'2010-08-28T13:40:02.200'"`
    Reserved   string    `gorm:"default:'galeone'"`
}
 
type Camera struct {
    Id        string       `gorm:"primary_key;type:varchar(100);unique" json:"id" binding:"required" example:"cid0"`
    Name      string       `json:"name"  bind:"required" example:"Testname"`
    Type      int          `json:"type" `
    Areaid    uint         `json:"areaid" example:"1"`
    Addr      string       `json:"addr"`
    Longitude float64      `json:"longitude"`
    Latitude  float64      `json:"latitude"`
    Rtsp      string       `json:"rtsp"`
    Ip        string       `json:"ip"`
    Port      int          `json:"port"`
    Username  string       `json:"username"`
    Password  string       `json:"password"`
    Brand     string       `json:"brand"`
    Reserved  string       `json:"reserved"`
    CamTask   []CameraTask `gorm:"foreignkey:cameraid"`
}
 
type CameraTreeNode struct {
    Id     string `json:"id"`
    Areaid uint   `json:"areaid"`
    Name   string `json:"name"`
}
 
type CameraArea struct {
    Cameraid string `json:"cameraId"`
    Areaid   int    `json:"areaId"`
}
 
type Sdk struct {
    BaseEntity
    SdkName string `json:"sdkName" example:"faceDetect"`                                               //算法名称
    Args    string `json:"args,omitempty" example:"[{name:timeStart,type:date,length:50,must:false}]"` //算法参数
    Icon    string `json:"icon,omitempty" example:"camera"`                                            //算法图标
    Url     string `json:"url,omitempty" example:"http://ip:port/govideo/sdk/1"`                       //算法下载地址
}
 
//算法参数定义
type SdkArg struct {
    Alias string `json:"alias"` //参数的别名
    Name  string `json:"name"`  //参数名称
    Type  string `json:"type"`  //参数类型(整数,字符串或数组)
    Must  bool   `json:"must"`  //是否必填
    Range string `json:"range"` //值的范围,eg:0,100表示从0到100
    Sort  int    `json:"sort"`  //参数顺序
}
 
type Task struct {
    Taskid   string `gorm:"primary_key" json:"taskid"`
    Taskname string `gorm:"type:varchar(100);" json:"taskname" example:"任务一"`
    CreateAt time.Time
    Createby string
    UpdateAt time.Time
    Enable   bool `gorm:"default:0"`
    IsAlarm  bool `gorm:"default:0"`
    DelFlag  bool `gorm:"default:0"`
    Isfull   bool `gorm:"default:0"`
}
 
type CameraTask struct {
    Cameraid   string `gorm:"type:varchar(100) REFERENCES cameras(id) ON DELETE CASCADE" json:"cameraid" binding:"required" example:"cid1"`                                 //摄像机id 来自于摄像机表
    Taskid     string `gorm:"type:varchar(100) REFERENCES tasks(taskid) ON DELETE CASCADE" json:"taskid" binding:"required" example:"5b0902ae-b1bd-43c0-816d-0a87f1f859d2"` //任务id  来自于任务表
    Sdkid      string `gorm:"type:varchar(100) REFERENCES sdks(uuid) ON DELETE CASCADE" json:"sdkId"`                                                                       //算法id 来自与算法表
    DelFlag    bool   `gorm:"default:0"`
    UpdateFlag bool   `gorm:"default:0"` // 算法名称
    SdkArgs    string `json:"sdkArgs"`   // 算法参数
    Enable     int    `gorm:"default:1"` //默认启用
}
 
type TaskSdk struct {
    Taskid string `gorm:"primary_key"`                                                           //uuid 生成
    Sdkid  string `gorm:"primary_key;type:varchar(100) REFERENCES sdks(uuid) ON DELETE CASCADE"` //来自于算法表
    Sort   int    `json:"sort"`                                                                  //排序
}
 
//时间参数,从周一到周日某天的开始时间和结束时间,controller用
type TimeCtl struct {
    MondayStart    string `json:"mondayStart"`
    MondayEnd      string `json:"mondayEnd"`
    TuesdayStart   string `json:"tuesdayStart"`
    TuesdayEnd     string `json:"tuesdayEnd"`
    WednesdayStart string `json:"wednesdayStart"`
    WednesdayEnd   string `json:"wednesdayEnd"`
    ThursdayStart  string `json:"thursdayStart"`
    ThursdayEnd    string `json:"thursdayEnd"`
    FridayStart    string `json:"fridayStart"`
    FridayEnd      string `json:"fridayEnd"`
    SaturdayStart  string `json:"saturdayStart"`
    SaturdayEnd    string `json:"saturdayEnd"`
    SundayStart    string `json:"sundayStart"`
    SundayEnd      string `json:"sundayEnd"`
}
 
//画框的结构体
type Frame struct {
    Area  [][]Point `json:"area"`
    Arrow []Point   `json:"arrow"`
}
 
//多边形结构体
type Point struct {
    X string `json:"x"`
    Y string `json:"y"`
}