作者 陈志颖

feat:增加已过期待领取竞标任务筛选

@@ -15,6 +15,8 @@ type AcceptanceTaskCommand struct { @@ -15,6 +15,8 @@ type AcceptanceTaskCommand struct {
15 Operator int64 `json:"operator" valid:"Required"` 15 Operator int64 `json:"operator" valid:"Required"`
16 // 任务参与者UID列表 16 // 任务参与者UID列表
17 Participators []int64 `json:"participators,omitempty"` 17 Participators []int64 `json:"participators,omitempty"`
  18 + // 实际奖励素币值
  19 + SuMoney float64 `jsons:"suMoney"`
18 // 任务贡献占比 20 // 任务贡献占比
19 TaskPercentage []*domain.TaskPercentageItem `json:"taskPercentage"` 21 TaskPercentage []*domain.TaskPercentageItem `json:"taskPercentage"`
20 // 引用资源解决分 22 // 引用资源解决分
@@ -11,12 +11,10 @@ type SearchTaskCommand struct { @@ -11,12 +11,10 @@ type SearchTaskCommand struct {
11 CompanyId int64 `json:"companyId" valid:"Required"` 11 CompanyId int64 `json:"companyId" valid:"Required"`
12 // 任务发起者UID 12 // 任务发起者UID
13 Sponsor int64 `json:"sponsor,omitempty"` 13 Sponsor int64 `json:"sponsor,omitempty"`
14 - // 任务内容匹配(我发布的),返回所有任务类型的任务 14 + // 任务内容匹配
15 TaskContentMatch string `json:"taskContentMatch,omitempty"` 15 TaskContentMatch string `json:"taskContentMatch,omitempty"`
16 - // 任务名称匹配(赚素币),返回任务类型为竞标任务和抢单任务 16 + // 任务名称匹配
17 TaskNameMatch string `json:"taskNameMatch,omitempty"` 17 TaskNameMatch string `json:"taskNameMatch,omitempty"`
18 - //// 任务名称匹配(进行中和已完成),返回任务状态为进行中和已完成的任务  
19 - //TaskStatusMatch string `json:"taskStatusMatch,omitempty"`  
20 // 任务类型 18 // 任务类型
21 TaskType int `json:"taskType,omitempty"` 19 TaskType int `json:"taskType,omitempty"`
22 // 任务类型ID列表 20 // 任务类型ID列表
@@ -24,7 +24,6 @@ const ( @@ -24,7 +24,6 @@ const (
24 TASK_STATUS_COMPLETED //已完成 24 TASK_STATUS_COMPLETED //已完成
25 TASK_STATUS_CLOSED //关闭 25 TASK_STATUS_CLOSED //关闭
26 TASK_STATUS_UNCONFIRMED //待确认 26 TASK_STATUS_UNCONFIRMED //待确认
27 - TASK_STATUS_EXPIRED //已过期  
28 ) 27 )
29 28
30 // 任务 29 // 任务
@@ -103,7 +102,7 @@ type TaskStatus interface { @@ -103,7 +102,7 @@ type TaskStatus interface {
103 ChooseSuccessfulBidder(task *Task, successfulBidder *EmployeeInfo, plannedCompletionTime time.Time) error 102 ChooseSuccessfulBidder(task *Task, successfulBidder *EmployeeInfo, plannedCompletionTime time.Time) error
104 ApplyComplete(task *Task) error 103 ApplyComplete(task *Task) error
105 Off(task *Task) error 104 Off(task *Task) error
106 - Acceptance(task *Task, participators []*EmployeeInfo, taskPercentage []*TaskPercentageItem, referenceResourceScore []*ReferenceResourceItem, solveReport string, solvePictureUrls []string, actualCompletionTime time.Time) error 105 + Acceptance(task *Task, participators []*EmployeeInfo, suMoney float64, taskPercentage []*TaskPercentageItem, referenceResourceScore []*ReferenceResourceItem, solveReport string, solvePictureUrls []string, actualCompletionTime time.Time) error
107 ConfirmTask(task *Task, plannedCompletionTime time.Time) error 106 ConfirmTask(task *Task, plannedCompletionTime time.Time) error
108 RejectReceiver(task *Task) error 107 RejectReceiver(task *Task) error
109 } 108 }
@@ -209,7 +208,7 @@ func (status *UnReleasedStatus) Off(task *Task) error { @@ -209,7 +208,7 @@ func (status *UnReleasedStatus) Off(task *Task) error {
209 return fmt.Errorf("待发布的任务不允许关闭") 208 return fmt.Errorf("待发布的任务不允许关闭")
210 } 209 }
211 210
212 -func (status *UnReleasedStatus) Acceptance(task *Task, participators []*EmployeeInfo, taskPercentage []*TaskPercentageItem, referenceResourceScore []*ReferenceResourceItem, solveReport string, solvePictureUrls []string, actualCompletionTime time.Time) error { 211 +func (status *UnReleasedStatus) Acceptance(task *Task, participators []*EmployeeInfo, suMoney float64, taskPercentage []*TaskPercentageItem, referenceResourceScore []*ReferenceResourceItem, solveReport string, solvePictureUrls []string, actualCompletionTime time.Time) error {
213 return fmt.Errorf("待发布的任务不允许验收") 212 return fmt.Errorf("待发布的任务不允许验收")
214 } 213 }
215 214
@@ -360,7 +359,7 @@ func (status *UnClaimedStatus) Off(task *Task) error { @@ -360,7 +359,7 @@ func (status *UnClaimedStatus) Off(task *Task) error {
360 return nil 359 return nil
361 } 360 }
362 361
363 -func (status *UnClaimedStatus) Acceptance(task *Task, participators []*EmployeeInfo, taskPercentage []*TaskPercentageItem, referenceResourceScore []*ReferenceResourceItem, solveReport string, solvePictureUrls []string, actualCompletionTime time.Time) error { 362 +func (status *UnClaimedStatus) Acceptance(task *Task, participators []*EmployeeInfo, suMoney float64, taskPercentage []*TaskPercentageItem, referenceResourceScore []*ReferenceResourceItem, solveReport string, solvePictureUrls []string, actualCompletionTime time.Time) error {
364 return fmt.Errorf("待领取的任务不允许验收") 363 return fmt.Errorf("待领取的任务不允许验收")
365 } 364 }
366 365
@@ -407,7 +406,7 @@ func (status *UnderwayStatus) Off(task *Task) error { @@ -407,7 +406,7 @@ func (status *UnderwayStatus) Off(task *Task) error {
407 return nil 406 return nil
408 } 407 }
409 408
410 -func (status *UnderwayStatus) Acceptance(task *Task, participators []*EmployeeInfo, taskPercentage []*TaskPercentageItem, referenceResourceScore []*ReferenceResourceItem, solveReport string, solvePictureUrls []string, actualCompletionTime time.Time) error { 409 +func (status *UnderwayStatus) Acceptance(task *Task, participators []*EmployeeInfo, suMoney float64, taskPercentage []*TaskPercentageItem, referenceResourceScore []*ReferenceResourceItem, solveReport string, solvePictureUrls []string, actualCompletionTime time.Time) error {
411 return fmt.Errorf("进行中的任务不允许验收") 410 return fmt.Errorf("进行中的任务不允许验收")
412 } 411 }
413 412
@@ -465,8 +464,9 @@ func (status *UnAcceptanceStatus) Off(task *Task) error { @@ -465,8 +464,9 @@ func (status *UnAcceptanceStatus) Off(task *Task) error {
465 return nil 464 return nil
466 } 465 }
467 466
468 -func (status *UnAcceptanceStatus) Acceptance(task *Task, participators []*EmployeeInfo, taskPercentage []*TaskPercentageItem, referenceResourceScore []*ReferenceResourceItem, solveReport string, solvePictureUrls []string, actualCompletionTime time.Time) error { 467 +func (status *UnAcceptanceStatus) Acceptance(task *Task, participators []*EmployeeInfo, suMoney float64, taskPercentage []*TaskPercentageItem, referenceResourceScore []*ReferenceResourceItem, solveReport string, solvePictureUrls []string, actualCompletionTime time.Time) error {
469 task.Participators = participators 468 task.Participators = participators
  469 + task.SuMoney = suMoney
470 task.TaskPercentage = taskPercentage 470 task.TaskPercentage = taskPercentage
471 task.SolveReport = solveReport 471 task.SolveReport = solveReport
472 task.SolvePictureUrls = solvePictureUrls 472 task.SolvePictureUrls = solvePictureUrls
@@ -525,7 +525,7 @@ func (status *CompletedStatus) Off(task *Task) error { @@ -525,7 +525,7 @@ func (status *CompletedStatus) Off(task *Task) error {
525 return fmt.Errorf("已完成的任务不允许申请完成任务") 525 return fmt.Errorf("已完成的任务不允许申请完成任务")
526 } 526 }
527 527
528 -func (status *CompletedStatus) Acceptance(task *Task, participators []*EmployeeInfo, taskPercentage []*TaskPercentageItem, referenceResourceScore []*ReferenceResourceItem, solveReport string, solvePictureUrls []string, actualCompletionTime time.Time) error { 528 +func (status *CompletedStatus) Acceptance(task *Task, participators []*EmployeeInfo, suMoney float64, taskPercentage []*TaskPercentageItem, referenceResourceScore []*ReferenceResourceItem, solveReport string, solvePictureUrls []string, actualCompletionTime time.Time) error {
529 return fmt.Errorf("已完成的任务不允许验收") 529 return fmt.Errorf("已完成的任务不允许验收")
530 } 530 }
531 531
@@ -567,7 +567,7 @@ func (status *ClosedStatus) Off(task *Task) error { @@ -567,7 +567,7 @@ func (status *ClosedStatus) Off(task *Task) error {
567 return fmt.Errorf("已关闭的任务不允许关闭") 567 return fmt.Errorf("已关闭的任务不允许关闭")
568 } 568 }
569 569
570 -func (status *ClosedStatus) Acceptance(task *Task, participators []*EmployeeInfo, taskPercentage []*TaskPercentageItem, referenceResourceScore []*ReferenceResourceItem, solveReport string, solvePictureUrls []string, actualCompletionTime time.Time) error { 570 +func (status *ClosedStatus) Acceptance(task *Task, participators []*EmployeeInfo, suMoney float64, taskPercentage []*TaskPercentageItem, referenceResourceScore []*ReferenceResourceItem, solveReport string, solvePictureUrls []string, actualCompletionTime time.Time) error {
571 return fmt.Errorf("已关闭的任务不允许验收") 571 return fmt.Errorf("已关闭的任务不允许验收")
572 } 572 }
573 573
@@ -611,7 +611,7 @@ func (status *UnConfirmedStatus) Off(task *Task) error { @@ -611,7 +611,7 @@ func (status *UnConfirmedStatus) Off(task *Task) error {
611 return nil 611 return nil
612 } 612 }
613 613
614 -func (status *UnConfirmedStatus) Acceptance(task *Task, participators []*EmployeeInfo, taskPercentage []*TaskPercentageItem, referenceResourceScore []*ReferenceResourceItem, solveReport string, solvePictureUrls []string, actualCompletionTime time.Time) error { 614 +func (status *UnConfirmedStatus) Acceptance(task *Task, participators []*EmployeeInfo, suMoney float64, taskPercentage []*TaskPercentageItem, referenceResourceScore []*ReferenceResourceItem, solveReport string, solvePictureUrls []string, actualCompletionTime time.Time) error {
615 return fmt.Errorf("待确认的任务不允许验收") 615 return fmt.Errorf("待确认的任务不允许验收")
616 } 616 }
617 617
@@ -676,8 +676,8 @@ func (task *Task) Off() error { @@ -676,8 +676,8 @@ func (task *Task) Off() error {
676 return task.CurrentStatus.Off(task) 676 return task.CurrentStatus.Off(task)
677 } 677 }
678 678
679 -func (task *Task) Acceptance(participators []*EmployeeInfo, taskPercentage []*TaskPercentageItem, referenceResourceScore []*ReferenceResourceItem, solveReport string, solvePictureUrls []string, actualCompletionTime time.Time) error {  
680 - return task.CurrentStatus.Acceptance(task, participators, taskPercentage, referenceResourceScore, solveReport, solvePictureUrls, actualCompletionTime) 679 +func (task *Task) Acceptance(participators []*EmployeeInfo, suMoney float64, taskPercentage []*TaskPercentageItem, referenceResourceScore []*ReferenceResourceItem, solveReport string, solvePictureUrls []string, actualCompletionTime time.Time) error {
  680 + return task.CurrentStatus.Acceptance(task, participators, suMoney, taskPercentage, referenceResourceScore, solveReport, solvePictureUrls, actualCompletionTime)
681 } 681 }
682 682
683 func (task *Task) ConfirmTask(plannedCompletionTime time.Time) error { 683 func (task *Task) ConfirmTask(plannedCompletionTime time.Time) error {
@@ -288,12 +288,15 @@ func (dao *TaskDao) CalculatePersonTask(uid int64) (map[string]interface{}, erro @@ -288,12 +288,15 @@ func (dao *TaskDao) CalculatePersonTask(uid int64) (map[string]interface{}, erro
288 } else { 288 } else {
289 completedAsParticipator = int64(count) 289 completedAsParticipator = int64(count)
290 } 290 }
291 - if count, err := tx.Model(taskModel). 291 + // 已过期任务统计(竞标时间过期的竞标任务,状态为待领取)
  292 + currentTime := time.Now()
  293 + currentDay := time.Date(currentTime.Year(), currentTime.Month(), currentTime.Day(), 0, 0, 0, 0, time.Now().Location())
  294 + if count, err := tx.Model(taskModel).Relation("RobInfo").Relation("BidInfo").
292 Where(`task.sponsor @> '{"uid":?}'`, uid). 295 Where(`task.sponsor @> '{"uid":?}'`, uid).
293 - //Where(`task.task_type = ? `, domain.TASK_STATUS_EXPIRED).  
294 - Where(`task.task_type = ?`, 2).  
295 Where("task.task_status = ? ", domain.TASK_STATUS_UNCLAIMED). 296 Where("task.task_status = ? ", domain.TASK_STATUS_UNCLAIMED).
296 - Where(`task.planned_completion_time < ?`, time.Now()). 297 + Where(`task.task_type = ?`, domain.TASK_TYPE_BID).
  298 + Where("bid_info.bid_end_time >= ?", currentDay).
  299 + Where("bid_info.bid_end_time < ?", currentDay).
297 Count(); err != nil { 300 Count(); err != nil {
298 return nil, err 301 return nil, err
299 } else { 302 } else {
@@ -27,7 +27,7 @@ type Task struct { @@ -27,7 +27,7 @@ type Task struct {
27 CustomerValues []int `pg:",array"` 27 CustomerValues []int `pg:",array"`
28 // 任务性质 28 // 任务性质
29 TaskNature int 29 TaskNature int
30 - // 奖励素币 30 + // 实际奖励素币
31 SuMoney float64 31 SuMoney float64
32 // 最小奖励素币 32 // 最小奖励素币
33 MinSuMoney float64 33 MinSuMoney float64
@@ -96,7 +96,6 @@ func (repository *TaskRepository) FindOne(queryOptions map[string]interface{}) ( @@ -96,7 +96,6 @@ func (repository *TaskRepository) FindOne(queryOptions map[string]interface{}) (
96 } 96 }
97 } 97 }
98 98
99 -// TODO 添加任务名称搜索  
100 func (repository *TaskRepository) Find(queryOptions map[string]interface{}) (int64, []*domain.Task, error) { 99 func (repository *TaskRepository) Find(queryOptions map[string]interface{}) (int64, []*domain.Task, error) {
101 tx := repository.transactionContext.PgTx 100 tx := repository.transactionContext.PgTx
102 var taskModels []*models.Task 101 var taskModels []*models.Task
@@ -163,16 +162,9 @@ func (repository *TaskRepository) Find(queryOptions map[string]interface{}) (int @@ -163,16 +162,9 @@ func (repository *TaskRepository) Find(queryOptions map[string]interface{}) (int
163 if taskContentMatch, ok := queryOptions["taskContentMatch"]; ok && (taskContentMatch != "") { 162 if taskContentMatch, ok := queryOptions["taskContentMatch"]; ok && (taskContentMatch != "") {
164 query = query.Where("task.task_name LIKE ?", fmt.Sprintf("%%%s%%", taskContentMatch.(string))) 163 query = query.Where("task.task_name LIKE ?", fmt.Sprintf("%%%s%%", taskContentMatch.(string)))
165 } 164 }
166 - // 任务名称匹配(赚素币)  
167 if taskNameMatch, ok := queryOptions["taskNameMatch"]; ok && (taskNameMatch != "") { // 165 if taskNameMatch, ok := queryOptions["taskNameMatch"]; ok && (taskNameMatch != "") { //
168 query = query.Where("task.task_name LIKE ?", fmt.Sprintf("%%%s%%", taskNameMatch.(string))) 166 query = query.Where("task.task_name LIKE ?", fmt.Sprintf("%%%s%%", taskNameMatch.(string)))
169 - //query = query.Where("task.task_type IN (?)", pg.In([]int{1, 2}))  
170 } 167 }
171 - //// 任务名称匹配(进行中和已完成),返回任务状态为进行中和已完成的任务  
172 - //if taskStatusMatch, ok := queryOptions["taskStatusMatch"]; ok && (taskStatusMatch != "") {  
173 - // query = query.Where("task.task_name LIKE ?", fmt.Sprintf("%%%s%%", taskStatusMatch.(string)))  
174 - // query = query.Where("task.task_status IN (?)", pg.In([]int{3, 5}))  
175 - //}  
176 if isRewardTake, ok := queryOptions["isRewardTake"]; ok && (isRewardTake != false) { 168 if isRewardTake, ok := queryOptions["isRewardTake"]; ok && (isRewardTake != false) {
177 query = query.Where(`task.is_reward_take = ?`, isRewardTake) 169 query = query.Where(`task.is_reward_take = ?`, isRewardTake)
178 } 170 }