task_dto.go
4.1 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
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
package dto
import (
"fmt"
"gitlab.fjmaimaimai.com/linmadan/mmm-worth/pkg/domain"
"time"
)
type TaskDto struct {
// 任务ID
TaskId int64 `json:"taskId"`
// 公司ID
CompanyId int64 `json:"companyId"`
// 任务名称
TaskName string `json:"taskName"`
// 任务类型Type
TaskType int `json:"taskType"`
// 任务发起者
Sponsor *domain.EmployeeInfo `json:"sponsor"`
// 任务状态
TaskStatus int `json:"taskStatus"`
// 引用资源
ReferenceResource *domain.ReferenceResource `json:"referenceResource"`
// 项目归属
ProjectBelong *domain.ProjectBelong `json:"projectBelong"`
// 客户价值列表
CustomerValues []*domain.CustomerValue `json:"customerValues"`
// 任务性质
TaskNature *domain.TaskNature `json:"taskNature"`
// 奖励素币
SuMoney float64 `json:"suMoney"`
// 最小奖励素币
MinSuMoney float64 `json:"minSuMoney"`
// 最大奖励素币
MaxSuMoney float64 `json:"maxSuMoney"`
// 验收标准
AcceptanceStandard string `json:"acceptanceStandard"`
// 任务描述
TaskDescription string `json:"taskDescription"`
// 任务图片URL列表
TaskPictureUrls []string `json:"taskPictureUrls"`
// 是否悬赏任务
IsRewardTake bool `json:"isRewardTake"`
// 抢单任务信息
RobInfo *domain.RobInfo `json:"robInfo"`
// 竞标任务信息
BidInfo *domain.BidInfo `json:"bidInfo"`
// 任务参与者列表
Participators []*domain.EmployeeInfo `json:"participators"`
// 任务贡献占比
TaskPercentage []*domain.TaskPercentageItem `json:"taskPercentage"`
// 解决报告
SolveReport string `json:"solveReport"`
// 解决图片URL列表
SolvePictureUrls []string `json:"solvePictureUrls"`
// 指派人员
AssignedPerson *domain.EmployeeInfo `json:"assignedPerson"`
// 计划完成时间
PlannedCompletionTime time.Time `json:"plannedCompletionTime"`
// 实际完成时间
ActualCompletionTime time.Time `json:"actualCompletionTime"`
// 创建时间
CreateTime time.Time `json:"createTime"`
// 发布任务时间
ReleaseTime time.Time `json:"releaseTime"`
// 领取任务时间
ReceiveTime time.Time `json:"receiveTime"`
// 完成任务操作时间
CompleteTime time.Time `json:"completeTime"`
// 验收方验收时间
AcceptanceTime time.Time `json:"acceptanceTime"`
}
func (dto *TaskDto) LoadDto(task *domain.Task, projectBelongMap map[int]*domain.ProjectBelong, customerValueMap map[int]*domain.CustomerValue, taskNatureMap map[int]*domain.TaskNature) error {
dto.TaskId = task.TaskId
dto.CompanyId = task.CompanyId
dto.TaskName = task.TaskName
dto.TaskType = task.TaskType
dto.Sponsor = task.Sponsor
dto.TaskStatus = task.TaskStatus
dto.ReferenceResource = task.ReferenceResource
if task.ProjectBelong != 0 {
if projectBelong, ok := projectBelongMap[task.ProjectBelong]; ok {
dto.ProjectBelong = projectBelong
} else {
return fmt.Errorf("无效的项目归属")
}
}
if len(task.CustomerValues) > 0 {
for _, customerValueId := range task.CustomerValues {
if customerValue, ok := customerValueMap[customerValueId]; ok {
dto.CustomerValues = append(dto.CustomerValues, customerValue)
} else {
return fmt.Errorf("无效的客户价值")
}
}
}
if task.TaskNature != 0 {
if taskNature, ok := taskNatureMap[task.TaskNature]; ok {
dto.TaskNature = taskNature
} else {
return fmt.Errorf("无效的任务性质")
}
}
dto.SuMoney = task.SuMoney
dto.MinSuMoney = task.MinSuMoney
dto.MaxSuMoney = task.MaxSuMoney
dto.AcceptanceStandard = task.AcceptanceStandard
dto.TaskDescription = task.TaskDescription
dto.TaskPictureUrls = task.TaskPictureUrls
dto.IsRewardTake = task.IsRewardTake
dto.RobInfo = task.RobInfo
dto.BidInfo = task.BidInfo
dto.Participators = task.Participators
dto.TaskPercentage = task.TaskPercentage
dto.SolveReport = task.SolveReport
dto.SolvePictureUrls = task.SolvePictureUrls
dto.AssignedPerson = task.AssignedPerson
dto.PlannedCompletionTime = task.PlannedCompletionTime
dto.ActualCompletionTime = task.ActualCompletionTime
dto.CreateTime = task.CreateTime
dto.ReleaseTime = task.ReleaseTime
dto.ReceiveTime = task.ReceiveTime
dto.CompleteTime = task.CompleteTime
dto.AcceptanceTime = task.AcceptanceTime
return nil
}