device.go
2.7 KB
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
package domain
import (
"fmt"
"time"
)
// 风险等级
const (
RiskLevelHigh = 1 // 1:高
RiskLevelMiddle = 2 // 2:中
RiskLevelLow = 3 // 3:低
)
const (
DeviceStatusNormal = 1 // 1:正常
DeviceStatusArchive = 2 // 2:封存
DeviceStatusScrapped = 3 // 3:报废
)
// 设备
type Device struct {
// 设备Id
DeviceId int `json:"deviceId,omitempty"`
// 企业id
CompanyId int `json:"companyId,omitempty"`
// 组织ID
OrgId int `json:"orgId,omitempty"`
// 设备编号
DeviceCode string `json:"deviceCode,omitempty"`
// 设备名称
DeviceName string `json:"deviceName,omitempty"`
// 设备型号
DeviceModel string `json:"deviceModel,omitempty"`
// 设备类型
DeviceType string `json:"deviceType,omitempty"`
// 品牌
Brand string `json:"brand,omitempty"`
// 设备状态 1:正常 2:封存 3:报废
DeviceStatus int `json:"deviceStatus,omitempty"`
// 风险等级 1:高 2:中 3:低
RiskLevel int `json:"riskLevel,omitempty"`
// 创建时间
CreatedAt time.Time `json:"createdAt,omitempty"`
// 更新时间
UpdatedAt time.Time `json:"updatedAt,omitempty"`
// 删除时间
DeletedAt time.Time `json:"deletedAt,omitempty"`
// 所属位置
WorkStation *WorkStation `json:"workStation,omitempty"`
}
type DeviceRepository interface {
Save(device *Device) (*Device, error)
Remove(device *Device) (*Device, error)
FindOne(queryOptions map[string]interface{}) (*Device, error)
Find(queryOptions map[string]interface{}) (int64, []*Device, error)
}
func (device *Device) Identify() interface{} {
if device.DeviceId == 0 {
return nil
}
return device.DeviceId
}
func (device *Device) Update(data map[string]interface{}) error {
if deviceCode, ok := data["deviceCode"]; ok {
device.DeviceCode = deviceCode.(string)
}
if deviceName, ok := data["deviceName"]; ok {
device.DeviceName = deviceName.(string)
}
if deviceModel, ok := data["deviceModel"]; ok {
device.DeviceModel = deviceModel.(string)
}
if deviceType, ok := data["deviceType"]; ok {
device.DeviceType = deviceType.(string)
}
if brand, ok := data["brand"]; ok {
device.Brand = brand.(string)
}
if deviceStatus, ok := data["deviceStatus"]; ok {
device.DeviceStatus = deviceStatus.(int)
}
if riskLevel, ok := data["riskLevel"]; ok {
device.RiskLevel = riskLevel.(int)
}
device.UpdatedAt = time.Now()
return nil
}
func (device *Device) Valid() error {
if !(device.RiskLevel == RiskLevelHigh || device.RiskLevel == RiskLevelMiddle || device.RiskLevel == RiskLevelLow) {
return fmt.Errorf("风险等级参数有误")
}
if !(device.DeviceStatus == DeviceStatusNormal || device.DeviceStatus == DeviceStatusArchive || device.DeviceStatus == DeviceStatusScrapped) {
return fmt.Errorf("设备状态参数有误")
}
return nil
}