task.go
1.5 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
package domain
import "time"
type TaskState int
const (
TaskRunning TaskState = 1 //任务启动中
TaskStop TaskState = 2 //任务停止
)
// 任务
type Task struct {
Id int `json:"id"`
CreatedAt time.Time `json:"createdAt"`
UpdatedAt time.Time `json:"updatedAt"`
DeletedAt *time.Time `json:"deletedAt"`
Name string `json:"name"` // 任务名称
Alias string `json:"alias"` // 任务别名
Leader TaskLeader `json:"leader"` // 任务负责人
Status TaskState `json:"status"` // 任务的状态
Level int `json:"level"` // 优先级,值越小优先级越高
LevalName string `json:"levalName"` // 优先级名称
RelatedUser []int `json:"relatedUser"` // 相关的员工id
RunAt int64 `json:"runAt"` // 启动的时间戳,秒
StopAt int64 `json:"stopAt"` // 停止的时间戳,秒
}
type TaskLeader struct {
Id int64 `json:"id,string"` // 用户Id
Account string `json:"account"` // 用户账号
Name string `json:"name"` // 用户姓名
}
// 设置任务的优先级
func (t *Task) ApplyLevelName(name string) {
t.LevalName = name
switch name {
case "战略任务":
t.Level = 1
case "重点任务":
t.Level = 2
case "常规任务":
t.Level = 3
default:
t.Level = 999
}
}
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)
}