正在显示
10 个修改的文件
包含
111 行增加
和
16 行删除
@@ -16,6 +16,8 @@ type AcceptanceTaskCommand struct { | @@ -16,6 +16,8 @@ type AcceptanceTaskCommand struct { | ||
16 | Participators []int64 `json:"participators,omitempty"` | 16 | Participators []int64 `json:"participators,omitempty"` |
17 | // 任务贡献占比 | 17 | // 任务贡献占比 |
18 | TaskPercentage []*domain.TaskPercentageItem `json:"taskPercentage"` | 18 | TaskPercentage []*domain.TaskPercentageItem `json:"taskPercentage"` |
19 | + // 引用资源解决分 | ||
20 | + ReferenceResourceScore []*domain.ReferenceResourceItem `json:"referenceResourceScore,omitempty"` | ||
19 | // 解决报告 | 21 | // 解决报告 |
20 | SolveReport string `json:"solveReport,omitempty"` | 22 | SolveReport string `json:"solveReport,omitempty"` |
21 | // 解决图片URL列表 | 23 | // 解决图片URL列表 |
@@ -238,7 +238,7 @@ func (taskService *TaskService) AcceptanceTask(acceptanceTaskCommand *command.Ac | @@ -238,7 +238,7 @@ func (taskService *TaskService) AcceptanceTask(acceptanceTaskCommand *command.Ac | ||
238 | } else { | 238 | } else { |
239 | acceptanceTaskService = value | 239 | acceptanceTaskService = value |
240 | } | 240 | } |
241 | - if task, err := acceptanceTaskService.Acceptance(acceptanceTaskCommand.TaskId, acceptanceTaskCommand.Operator, acceptanceTaskCommand.Participators, acceptanceTaskCommand.TaskPercentage, acceptanceTaskCommand.SolveReport, acceptanceTaskCommand.SolvePictureUrls); err != nil { | 241 | + if task, err := acceptanceTaskService.Acceptance(acceptanceTaskCommand.TaskId, acceptanceTaskCommand.Operator, acceptanceTaskCommand.Participators, acceptanceTaskCommand.TaskPercentage, acceptanceTaskCommand.ReferenceResourceScore, acceptanceTaskCommand.SolveReport, acceptanceTaskCommand.SolvePictureUrls); err != nil { |
242 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | 242 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) |
243 | } else { | 243 | } else { |
244 | if err := transactionContext.CommitTransaction(); err != nil { | 244 | if err := transactionContext.CommitTransaction(); err != nil { |
@@ -2,8 +2,16 @@ package domain | @@ -2,8 +2,16 @@ package domain | ||
2 | 2 | ||
3 | // 引用资源项 | 3 | // 引用资源项 |
4 | type ReferenceResourceItem struct { | 4 | type ReferenceResourceItem struct { |
5 | + // 引用资源ID | ||
6 | + ReferenceResourceId int64 `json:"referenceResourceId"` | ||
5 | // 编号 | 7 | // 编号 |
6 | SerialNumber int64 `json:"serialNumber"` | 8 | SerialNumber int64 `json:"serialNumber"` |
7 | // 标题 | 9 | // 标题 |
8 | Title string `json:"title"` | 10 | Title string `json:"title"` |
11 | + // 内容 | ||
12 | + Content string `json:"content"` | ||
13 | + // 问题总分 | ||
14 | + IssueScore float64 `json:"issueScore"` | ||
15 | + // 解决评分 | ||
16 | + SolveScore []*SolveScoreItem `json:"solveScore"` | ||
9 | } | 17 | } |
@@ -3,5 +3,5 @@ package service | @@ -3,5 +3,5 @@ package service | ||
3 | import "gitlab.fjmaimaimai.com/linmadan/mmm-worth/pkg/domain" | 3 | import "gitlab.fjmaimaimai.com/linmadan/mmm-worth/pkg/domain" |
4 | 4 | ||
5 | type AcceptanceTaskService interface { | 5 | type AcceptanceTaskService interface { |
6 | - Acceptance(taskId int64, operatorUid int64, participators []int64, taskPercentage []*domain.TaskPercentageItem, solveReport string, solvePictureUrls []string) (*domain.Task, error) | 6 | + Acceptance(taskId int64, operatorUid int64, participators []int64, taskPercentage []*domain.TaskPercentageItem, referenceResourceScore []*domain.ReferenceResourceItem, solveReport string, solvePictureUrls []string) (*domain.Task, error) |
7 | } | 7 | } |
pkg/domain/solve_score_item.go
0 → 100644
@@ -82,7 +82,7 @@ type TaskStatus interface { | @@ -82,7 +82,7 @@ type TaskStatus interface { | ||
82 | ChooseSuccessfulBidder(task *Task, successfulBidder *EmployeeInfo) error | 82 | ChooseSuccessfulBidder(task *Task, successfulBidder *EmployeeInfo) error |
83 | ApplyComplete(task *Task) error | 83 | ApplyComplete(task *Task) error |
84 | Off(task *Task) error | 84 | Off(task *Task) error |
85 | - Acceptance(task *Task, participators []*EmployeeInfo, taskPercentage []*TaskPercentageItem, solveReport string, solvePictureUrls []string) error | 85 | + Acceptance(task *Task, participators []*EmployeeInfo, taskPercentage []*TaskPercentageItem, referenceResourceScore []*ReferenceResourceItem, solveReport string, solvePictureUrls []string) error |
86 | } | 86 | } |
87 | 87 | ||
88 | type UnReleasedStatus struct{} | 88 | type UnReleasedStatus struct{} |
@@ -156,7 +156,7 @@ func (status *UnReleasedStatus) Off(task *Task) error { | @@ -156,7 +156,7 @@ func (status *UnReleasedStatus) Off(task *Task) error { | ||
156 | return fmt.Errorf("待发布的任务不允许关闭") | 156 | return fmt.Errorf("待发布的任务不允许关闭") |
157 | } | 157 | } |
158 | 158 | ||
159 | -func (status *UnReleasedStatus) Acceptance(task *Task, participators []*EmployeeInfo, taskPercentage []*TaskPercentageItem, solveReport string, solvePictureUrls []string) error { | 159 | +func (status *UnReleasedStatus) Acceptance(task *Task, participators []*EmployeeInfo, taskPercentage []*TaskPercentageItem, referenceResourceScore []*ReferenceResourceItem, solveReport string, solvePictureUrls []string) error { |
160 | return fmt.Errorf("待发布的任务不允许验收") | 160 | return fmt.Errorf("待发布的任务不允许验收") |
161 | } | 161 | } |
162 | 162 | ||
@@ -234,7 +234,7 @@ func (status *UnClaimedStatus) Off(task *Task) error { | @@ -234,7 +234,7 @@ func (status *UnClaimedStatus) Off(task *Task) error { | ||
234 | return nil | 234 | return nil |
235 | } | 235 | } |
236 | 236 | ||
237 | -func (status *UnClaimedStatus) Acceptance(task *Task, participators []*EmployeeInfo, taskPercentage []*TaskPercentageItem, solveReport string, solvePictureUrls []string) error { | 237 | +func (status *UnClaimedStatus) Acceptance(task *Task, participators []*EmployeeInfo, taskPercentage []*TaskPercentageItem, referenceResourceScore []*ReferenceResourceItem, solveReport string, solvePictureUrls []string) error { |
238 | return fmt.Errorf("待领取的任务不允许验收") | 238 | return fmt.Errorf("待领取的任务不允许验收") |
239 | } | 239 | } |
240 | 240 | ||
@@ -272,7 +272,7 @@ func (status *UnderwayStatus) Off(task *Task) error { | @@ -272,7 +272,7 @@ func (status *UnderwayStatus) Off(task *Task) error { | ||
272 | return nil | 272 | return nil |
273 | } | 273 | } |
274 | 274 | ||
275 | -func (status *UnderwayStatus) Acceptance(task *Task, participators []*EmployeeInfo, taskPercentage []*TaskPercentageItem, solveReport string, solvePictureUrls []string) error { | 275 | +func (status *UnderwayStatus) Acceptance(task *Task, participators []*EmployeeInfo, taskPercentage []*TaskPercentageItem, referenceResourceScore []*ReferenceResourceItem, solveReport string, solvePictureUrls []string) error { |
276 | return fmt.Errorf("进行中的任务不允许验收") | 276 | return fmt.Errorf("进行中的任务不允许验收") |
277 | } | 277 | } |
278 | 278 | ||
@@ -308,11 +308,21 @@ func (status *UnAcceptanceStatus) Off(task *Task) error { | @@ -308,11 +308,21 @@ func (status *UnAcceptanceStatus) Off(task *Task) error { | ||
308 | return nil | 308 | return nil |
309 | } | 309 | } |
310 | 310 | ||
311 | -func (status *UnAcceptanceStatus) Acceptance(task *Task, participators []*EmployeeInfo, taskPercentage []*TaskPercentageItem, solveReport string, solvePictureUrls []string) error { | 311 | +func (status *UnAcceptanceStatus) Acceptance(task *Task, participators []*EmployeeInfo, taskPercentage []*TaskPercentageItem, referenceResourceScore []*ReferenceResourceItem, solveReport string, solvePictureUrls []string) error { |
312 | task.Participators = participators | 312 | task.Participators = participators |
313 | task.TaskPercentage = taskPercentage | 313 | task.TaskPercentage = taskPercentage |
314 | task.SolveReport = solveReport | 314 | task.SolveReport = solveReport |
315 | task.SolvePictureUrls = solvePictureUrls | 315 | task.SolvePictureUrls = solvePictureUrls |
316 | + if task.ReferenceResource != nil { | ||
317 | + for _, referenceResourceItem := range task.ReferenceResource.ReferenceResourceItems { | ||
318 | + for _, referenceResourceScoreItem := range referenceResourceScore { | ||
319 | + if referenceResourceItem.ReferenceResourceId == referenceResourceScoreItem.ReferenceResourceId { | ||
320 | + referenceResourceItem.IssueScore = referenceResourceScoreItem.IssueScore | ||
321 | + referenceResourceItem.SolveScore = referenceResourceScoreItem.SolveScore | ||
322 | + } | ||
323 | + } | ||
324 | + } | ||
325 | + } | ||
316 | task.TaskStatus = TASK_STATUS_COMPLETED | 326 | task.TaskStatus = TASK_STATUS_COMPLETED |
317 | task.CurrentStatus = &CompletedStatus{} | 327 | task.CurrentStatus = &CompletedStatus{} |
318 | return nil | 328 | return nil |
@@ -350,7 +360,7 @@ func (status *CompletedStatus) Off(task *Task) error { | @@ -350,7 +360,7 @@ func (status *CompletedStatus) Off(task *Task) error { | ||
350 | return nil | 360 | return nil |
351 | } | 361 | } |
352 | 362 | ||
353 | -func (status *CompletedStatus) Acceptance(task *Task, participators []*EmployeeInfo, taskPercentage []*TaskPercentageItem, solveReport string, solvePictureUrls []string) error { | 363 | +func (status *CompletedStatus) Acceptance(task *Task, participators []*EmployeeInfo, taskPercentage []*TaskPercentageItem, referenceResourceScore []*ReferenceResourceItem, solveReport string, solvePictureUrls []string) error { |
354 | return fmt.Errorf("已完成的任务不允许验收") | 364 | return fmt.Errorf("已完成的任务不允许验收") |
355 | } | 365 | } |
356 | 366 | ||
@@ -384,7 +394,7 @@ func (status *ClosedStatus) Off(task *Task) error { | @@ -384,7 +394,7 @@ func (status *ClosedStatus) Off(task *Task) error { | ||
384 | return fmt.Errorf("已关闭的任务不允许关闭") | 394 | return fmt.Errorf("已关闭的任务不允许关闭") |
385 | } | 395 | } |
386 | 396 | ||
387 | -func (status *ClosedStatus) Acceptance(task *Task, participators []*EmployeeInfo, taskPercentage []*TaskPercentageItem, solveReport string, solvePictureUrls []string) error { | 397 | +func (status *ClosedStatus) Acceptance(task *Task, participators []*EmployeeInfo, taskPercentage []*TaskPercentageItem, referenceResourceScore []*ReferenceResourceItem, solveReport string, solvePictureUrls []string) error { |
388 | return fmt.Errorf("已关闭的任务不允许验收") | 398 | return fmt.Errorf("已关闭的任务不允许验收") |
389 | } | 399 | } |
390 | 400 | ||
@@ -430,6 +440,6 @@ func (task *Task) Off() error { | @@ -430,6 +440,6 @@ func (task *Task) Off() error { | ||
430 | return task.CurrentStatus.Off(task) | 440 | return task.CurrentStatus.Off(task) |
431 | } | 441 | } |
432 | 442 | ||
433 | -func (task *Task) Acceptance(participators []*EmployeeInfo, taskPercentage []*TaskPercentageItem, solveReport string, solvePictureUrls []string) error { | ||
434 | - return task.CurrentStatus.Acceptance(task, participators, taskPercentage, solveReport, solvePictureUrls) | 443 | +func (task *Task) Acceptance(participators []*EmployeeInfo, taskPercentage []*TaskPercentageItem, referenceResourceScore []*ReferenceResourceItem, solveReport string, solvePictureUrls []string) error { |
444 | + return task.CurrentStatus.Acceptance(task, participators, taskPercentage, referenceResourceScore, solveReport, solvePictureUrls) | ||
435 | } | 445 | } |
@@ -4,10 +4,10 @@ package domain | @@ -4,10 +4,10 @@ package domain | ||
4 | type TaskPercentageItem struct { | 4 | type TaskPercentageItem struct { |
5 | // 贡献者 | 5 | // 贡献者 |
6 | Contributor *EmployeeInfo `json:"contributor"` | 6 | Contributor *EmployeeInfo `json:"contributor"` |
7 | + // 是否领取人 | ||
8 | + IsReceiver bool `json:"isReceiver"` | ||
7 | // 任务贡献占比 | 9 | // 任务贡献占比 |
8 | Percentage int `json:"percentage"` | 10 | Percentage int `json:"percentage"` |
9 | // 分配到的奖励素币 | 11 | // 分配到的奖励素币 |
10 | SuMoney float64 `json:"suMoney"` | 12 | SuMoney float64 `json:"suMoney"` |
11 | - // 分配到的奖励素币 | ||
12 | - IssueScore float64 `json:"issueScore"` | ||
13 | } | 13 | } |
@@ -15,7 +15,7 @@ type AcceptanceTaskService struct { | @@ -15,7 +15,7 @@ type AcceptanceTaskService struct { | ||
15 | transactionContext *pgTransaction.TransactionContext | 15 | transactionContext *pgTransaction.TransactionContext |
16 | } | 16 | } |
17 | 17 | ||
18 | -func (service *AcceptanceTaskService) Acceptance(taskId int64, operatorUid int64, participators []int64, taskPercentage []*domain.TaskPercentageItem, solveReport string, solvePictureUrls []string) (*domain.Task, error) { | 18 | +func (service *AcceptanceTaskService) Acceptance(taskId int64, operatorUid int64, participators []int64, taskPercentage []*domain.TaskPercentageItem, referenceResourceScore []*domain.ReferenceResourceItem, solveReport string, solvePictureUrls []string) (*domain.Task, error) { |
19 | var employeeRepository domain.EmployeeRepository | 19 | var employeeRepository domain.EmployeeRepository |
20 | var taskRepository domain.TaskRepository | 20 | var taskRepository domain.TaskRepository |
21 | var suMoneyTransactionRecordRepository domain.SuMoneyTransactionRecordRepository | 21 | var suMoneyTransactionRecordRepository domain.SuMoneyTransactionRecordRepository |
@@ -71,7 +71,7 @@ func (service *AcceptanceTaskService) Acceptance(taskId int64, operatorUid int64 | @@ -71,7 +71,7 @@ func (service *AcceptanceTaskService) Acceptance(taskId int64, operatorUid int64 | ||
71 | participatorInfos = append(participatorInfos, participator.EmployeeInfo) | 71 | participatorInfos = append(participatorInfos, participator.EmployeeInfo) |
72 | } | 72 | } |
73 | } | 73 | } |
74 | - if err := task.Acceptance(participatorInfos, taskPercentage, solveReport, solvePictureUrls); err != nil { | 74 | + if err := task.Acceptance(participatorInfos, taskPercentage, referenceResourceScore, solveReport, solvePictureUrls); err != nil { |
75 | return nil, err | 75 | return nil, err |
76 | } | 76 | } |
77 | for _, taskPercentageItem := range taskPercentage { | 77 | for _, taskPercentageItem := range taskPercentage { |
@@ -22,7 +22,17 @@ var _ = Describe("验收任务", func() { | @@ -22,7 +22,17 @@ var _ = Describe("验收任务", func() { | ||
22 | "INSERT INTO tasks (id, company_id, task_name, task_type, sponsor, task_status, reference_resource, customer_value, task_nature, su_money, acceptance_standard, task_description, task_picture_urls, is_reward_take, participators, task_percentage, solve_report, solve_picture_urls, receiver_uid, create_time, release_time) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", | 22 | "INSERT INTO tasks (id, company_id, task_name, task_type, sponsor, task_status, reference_resource, customer_value, task_nature, su_money, acceptance_standard, task_description, task_picture_urls, is_reward_take, participators, task_percentage, solve_report, solve_picture_urls, receiver_uid, create_time, release_time) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", |
23 | 1, 101, "抢单任务1", 1, &domain.EmployeeInfo{ | 23 | 1, 101, "抢单任务1", 1, &domain.EmployeeInfo{ |
24 | Uid: 2499036607974745088, | 24 | Uid: 2499036607974745088, |
25 | - }, 4, "null", pg.Array([]string{"口感", "便利", "品牌", "售后服务"}), "面", 1000.00, "验收标准1", "任务描述1", pg.Array([]string{}), true, "null", "null", "", pg.Array([]string{}), 2499036607974745099, time.Now(), time.Now().Add(dayAfter)) | 25 | + }, 4, &domain.ReferenceResource{ |
26 | + ReferenceResourceType: 1, | ||
27 | + ReferenceResourceItems: []*domain.ReferenceResourceItem{ | ||
28 | + { | ||
29 | + ReferenceResourceId: 1, | ||
30 | + SerialNumber: 1, | ||
31 | + Title: "问题1", | ||
32 | + Content: "问题内容1", | ||
33 | + }, | ||
34 | + }, | ||
35 | + }, pg.Array([]string{"口感", "便利", "品牌", "售后服务"}), "面", 1000.00, "验收标准1", "任务描述1", pg.Array([]string{}), true, "null", "null", "", pg.Array([]string{}), 2499036607974745099, time.Now(), time.Now().Add(dayAfter)) | ||
26 | Expect(err).NotTo(HaveOccurred()) | 36 | Expect(err).NotTo(HaveOccurred()) |
27 | _, err1 := pG.DB.QueryOne( | 37 | _, err1 := pG.DB.QueryOne( |
28 | pg.Scan(), | 38 | pg.Scan(), |
@@ -65,6 +75,7 @@ var _ = Describe("验收任务", func() { | @@ -65,6 +75,7 @@ var _ = Describe("验收任务", func() { | ||
65 | Contributor: &domain.EmployeeInfo{ | 75 | Contributor: &domain.EmployeeInfo{ |
66 | Uid: 2499036607974745099, | 76 | Uid: 2499036607974745099, |
67 | }, | 77 | }, |
78 | + IsReceiver: true, | ||
68 | Percentage: 50, | 79 | Percentage: 50, |
69 | SuMoney: 500.00, | 80 | SuMoney: 500.00, |
70 | }, | 81 | }, |
@@ -83,6 +94,36 @@ var _ = Describe("验收任务", func() { | @@ -83,6 +94,36 @@ var _ = Describe("验收任务", func() { | ||
83 | SuMoney: 250.00, | 94 | SuMoney: 250.00, |
84 | }, | 95 | }, |
85 | }, | 96 | }, |
97 | + "referenceResourceScore": []*domain.ReferenceResourceItem{ | ||
98 | + { | ||
99 | + ReferenceResourceId: 1, | ||
100 | + IssueScore: 10, | ||
101 | + SolveScore: []*domain.SolveScoreItem{ | ||
102 | + { | ||
103 | + Contributor: &domain.EmployeeInfo{ | ||
104 | + Uid: 2499036607974745099, | ||
105 | + }, | ||
106 | + IsReceiver: true, | ||
107 | + Percentage: 50, | ||
108 | + Score: 5, | ||
109 | + }, | ||
110 | + { | ||
111 | + Contributor: &domain.EmployeeInfo{ | ||
112 | + Uid: 2499036607974745077, | ||
113 | + }, | ||
114 | + Percentage: 25, | ||
115 | + Score: 2.5, | ||
116 | + }, | ||
117 | + { | ||
118 | + Contributor: &domain.EmployeeInfo{ | ||
119 | + Uid: 2499036607974745066, | ||
120 | + }, | ||
121 | + Percentage: 25, | ||
122 | + Score: 2.5, | ||
123 | + }, | ||
124 | + }, | ||
125 | + }, | ||
126 | + }, | ||
86 | "solveReport": "解决报告", | 127 | "solveReport": "解决报告", |
87 | "solvePictureUrls": []string{ | 128 | "solvePictureUrls": []string{ |
88 | "url-1", | 129 | "url-1", |
@@ -70,6 +70,27 @@ var _ = Describe("搜索任务", func() { | @@ -70,6 +70,27 @@ var _ = Describe("搜索任务", func() { | ||
70 | ContainsKey("data").Value("data").Object() | 70 | ContainsKey("data").Value("data").Object() |
71 | }) | 71 | }) |
72 | }) | 72 | }) |
73 | + Context("", func() { | ||
74 | + It("", func() { | ||
75 | + httpExpect := httpexpect.New(GinkgoT(), server.URL) | ||
76 | + body := map[string]interface{}{ | ||
77 | + "companyId": 101, | ||
78 | + "sponsor": 2499036607974745088, | ||
79 | + "isFilterUnReleasedStatus": true, | ||
80 | + "offset": 0, | ||
81 | + "limit": 20, | ||
82 | + } | ||
83 | + httpExpect.POST("/tasks/search"). | ||
84 | + WithJSON(body). | ||
85 | + Expect(). | ||
86 | + Status(http.StatusOK). | ||
87 | + JSON(). | ||
88 | + Object(). | ||
89 | + ContainsKey("code").ValueEqual("code", 0). | ||
90 | + ContainsKey("msg").ValueEqual("msg", "ok"). | ||
91 | + ContainsKey("data").Value("data").Object() | ||
92 | + }) | ||
93 | + }) | ||
73 | }) | 94 | }) |
74 | AfterEach(func() { | 95 | AfterEach(func() { |
75 | _, err := pG.DB.Exec("DELETE FROM tasks WHERE true") | 96 | _, err := pG.DB.Exec("DELETE FROM tasks WHERE true") |
-
请 注册 或 登录 后发表评论