task.go
2.0 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
package domain
import "time"
type TaskState int
const (
TaskWait TaskState = 1 //任务待启动
TaskRunning TaskState = 2 //任务启动中
TaskStop TaskState = 3 //任务停止
)
// 任务
type Task struct {
Id int `json:"id"`
CreatedAt time.Time `json:"createdAt"`
UpdatedAt time.Time `json:"updatedAt"`
DeletedAt *time.Time `json:"deletedAt"`
CompanyId int `json:"companyId,string"`
Name string `json:"name"` // 任务名称
Alias string `json:"alias"` // 任务别名
Leader TaskLeader `json:"leader"` // 任务负责人
Status TaskState `json:"status"` // 任务的状态
Level int `json:"level"` // 优先级,值越小优先级越高
LevelName string `json:"levelName"` // 优先级名称
RelatedUser []int `json:"relatedUser"` // 相关的员工id
RunAt int64 `json:"runAt"` // 启动的时间戳,秒
StopAt int64 `json:"stopAt"` // 停止的时间戳,秒
Anomaly int `json:"anomaly"` //异常反馈的次数
}
type TaskLeader struct {
Id int64 `json:"id,string"` // 用户Id
Account string `json:"account"` // 用户账号
Name string `json:"name"` // 用户姓名
}
// 设置任务的优先级
// 值越小优先级越高,不是预定义的任务优先级,排在最后
func (t *Task) ApplyLevelName(name string) {
t.LevelName = name
switch name {
case "战略任务":
t.Level = 100
case "重点任务":
t.Level = 200
case "常规任务":
t.Level = 300
default:
t.Level = 9999
}
}
// StatusDescript
func (t *Task) StatusDescription() string {
switch t.Status {
case TaskWait:
return "待启动"
case TaskRunning:
return "启动中"
case TaskStop:
return "停止"
}
return ""
}
type TaskRepository interface {
Save(param *Task) error
Remove(id int) error
FindOne(queryOptions map[string]interface{}) (*Task, error)
Find(queryOptions map[string]interface{}) (int, []*Task, error)
}