task.go
2.6 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
package domain
import "time"
const (
TASK_TYPE_TO_BE_RELEASED = iota + 1 //待发布
)
// 任务
type Task struct {
// 任务ID
TakeId int64 `json:"takeId"`
// 任务名称
TaskName string `json:"taskName"`
// 任务类型Type
TaskType int `json:"taskType"`
// 任务发起者
Sponsor *EmployeeInfo `json:"sponsor"`
// 任务状态
TaskStatus int `json:"taskStatus"`
// 引用资源
ReferenceResource *ReferenceResource `json:"referenceResource"`
// 客户价值列表
CustomerValue []string `json:"customerValue"`
// 任务性质
TaskNature string `json:"taskNature"`
// 奖励素币
SuMoney float64 `json:"suMoney"`
// 验收标准
AcceptanceStandard string `json:"acceptanceStandard"`
// 任务描述
TaskDescription string `json:"taskDescription"`
// 任务图片URL列表
TaskPictureUrls []string `json:"taskPictureUrls"`
// 是否悬赏任务
IsRewardTake bool `json:"isRewardTake"`
// 创建时间
CreateTime time.Time `json:"createTime"`
// 抢单任务信息
RobInfo *RobInfo `json:"robInfo"`
// 竞标任务信息
BidInfo *BidInfo `json:"bidInfo"`
// 任务参与者列表
Participants []*EmployeeInfo `json:"participants"`
// 任务贡献占比
TaskPercentage []*TaskPercentageItem `json:"taskPercentage"`
// 解决报告
SolveReport string `json:"solveReport"`
// 解决图片URL列表
SolvePictureUrls []string `json:"solvePictureUrls"`
}
type TaskRepository interface {
Save(task *Task) (*Task, error)
Remove(task *Task) (*Task, error)
FindOne(queryOptions map[string]interface{}) (*Task, error)
Find(queryOptions map[string]interface{}) (int64, []*Task, error)
}
func (task *Task) Identify() interface{} {
if task.TakeId == 0 {
return nil
}
return task.TakeId
}
func (task *Task) Update(data map[string]interface{}) error {
if taskName, ok := data["taskName"]; ok {
task.TaskName = taskName.(string)
}
if taskType, ok := data["taskType"]; ok {
task.TaskType = taskType.(int)
}
if customerValue, ok := data["customerValue"]; ok {
task.CustomerValue = customerValue.([]string)
}
if taskNature, ok := data["taskNature"]; ok {
task.TaskNature = taskNature.(string)
}
if suMoney, ok := data["suMoney"]; ok {
task.SuMoney = suMoney.(float64)
}
if acceptanceStandard, ok := data["acceptanceStandard"]; ok {
task.AcceptanceStandard = acceptanceStandard.(string)
}
if taskDescription, ok := data["taskDescription"]; ok {
task.TaskDescription = taskDescription.(string)
}
if taskPictureUrls, ok := data["taskPictureUrls"]; ok {
task.TaskPictureUrls = taskPictureUrls.([]string)
}
if isRewardTake, ok := data["isRewardTake"]; ok {
task.IsRewardTake = isRewardTake.(bool)
}
return nil
}