正在显示
9 个修改的文件
包含
344 行增加
和
149 行删除
pkg/application/task/command/search_task.go
0 → 100644
| 1 | +package command | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "fmt" | ||
| 5 | + | ||
| 6 | + "github.com/astaxie/beego/validation" | ||
| 7 | +) | ||
| 8 | + | ||
| 9 | +type SearchTaskCommand struct { | ||
| 10 | + // 公司ID | ||
| 11 | + CompanyId int64 `json:"companyId" valid:"Required"` | ||
| 12 | + // 任务发起者 | ||
| 13 | + Sponsor int64 `json:"sponsor,omitempty"` | ||
| 14 | + // 任务内容匹配 | ||
| 15 | + TaskContentMatch string `json:"taskContentMatch,omitempty"` | ||
| 16 | + // 任务类型 | ||
| 17 | + TaskType int `json:"taskType,omitempty"` | ||
| 18 | + // 任务状态 | ||
| 19 | + TaskStatus int `json:"taskStatus,omitempty"` | ||
| 20 | + // 客户价值 | ||
| 21 | + CustomerValue string `json:"customerValue,omitempty"` | ||
| 22 | + // 任务性质 | ||
| 23 | + TaskNature string `json:"taskNature,omitempty"` | ||
| 24 | + // 是否悬赏任务 | ||
| 25 | + IsRewardTake bool `json:"isRewardTake,omitempty"` | ||
| 26 | + // 竞标时间(1全部,2已截止,3未截止) | ||
| 27 | + BidTimeMatch int `json:"bidTimeMatch,omitempty"` | ||
| 28 | + // 任务领取人 | ||
| 29 | + Receiver int64 `json:"receiver,omitempty"` | ||
| 30 | + // 任务参与者 | ||
| 31 | + Participator int64 `json:"participator,omitempty"` | ||
| 32 | + // 查询偏离量 | ||
| 33 | + Offset int `json:"offset,omitempty"` | ||
| 34 | + // 查询限制 | ||
| 35 | + Limit int `json:"limit,omitempty"` | ||
| 36 | +} | ||
| 37 | + | ||
| 38 | +func (searchTaskCommand *SearchTaskCommand) ValidateCommand() error { | ||
| 39 | + valid := validation.Validation{} | ||
| 40 | + b, err := valid.Valid(searchTaskCommand) | ||
| 41 | + if err != nil { | ||
| 42 | + return err | ||
| 43 | + } | ||
| 44 | + if !b { | ||
| 45 | + for _, validErr := range valid.Errors { | ||
| 46 | + return fmt.Errorf("%s %s", validErr.Key, validErr.Message) | ||
| 47 | + } | ||
| 48 | + } | ||
| 49 | + return nil | ||
| 50 | +} |
| @@ -161,6 +161,27 @@ func (taskService *TaskService) AcceptanceTask(acceptanceTaskCommand *command.Ac | @@ -161,6 +161,27 @@ func (taskService *TaskService) AcceptanceTask(acceptanceTaskCommand *command.Ac | ||
| 161 | return nil, nil | 161 | return nil, nil |
| 162 | } | 162 | } |
| 163 | 163 | ||
| 164 | +// 搜索任务 | ||
| 165 | +func (taskService *TaskService) SearchTask(searchTaskCommand *command.SearchTaskCommand) (interface{}, error) { | ||
| 166 | + if err := searchTaskCommand.ValidateCommand(); err != nil { | ||
| 167 | + return nil, application.ThrowError(application.ARG_ERROR, err.Error()) | ||
| 168 | + } | ||
| 169 | + transactionContext, err := factory.CreateTransactionContext(nil) | ||
| 170 | + if err != nil { | ||
| 171 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
| 172 | + } | ||
| 173 | + if err := transactionContext.StartTransaction(); err != nil { | ||
| 174 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
| 175 | + } | ||
| 176 | + defer func() { | ||
| 177 | + transactionContext.RollbackTransaction() | ||
| 178 | + }() | ||
| 179 | + if err := transactionContext.CommitTransaction(); err != nil { | ||
| 180 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
| 181 | + } | ||
| 182 | + return nil, nil | ||
| 183 | +} | ||
| 184 | + | ||
| 164 | // 创建新任务 | 185 | // 创建新任务 |
| 165 | func (taskService *TaskService) CreateTask(createTaskCommand *command.CreateTaskCommand) (interface{}, error) { | 186 | func (taskService *TaskService) CreateTask(createTaskCommand *command.CreateTaskCommand) (interface{}, error) { |
| 166 | if err := createTaskCommand.ValidateCommand(); err != nil { | 187 | if err := createTaskCommand.ValidateCommand(); err != nil { |
| @@ -36,7 +36,7 @@ func (repository *TaskRepository) Save(task *domain.Task) (*domain.Task, error) | @@ -36,7 +36,7 @@ func (repository *TaskRepository) Save(task *domain.Task) (*domain.Task, error) | ||
| 36 | } | 36 | } |
| 37 | } else { | 37 | } else { |
| 38 | if _, err := tx.QueryOne( | 38 | if _, err := tx.QueryOne( |
| 39 | - pg.Scan(&task.TaskId, &task.CompanyId, &task.TaskName, &task.TaskType, &task.Sponsor, &task.TaskStatus, &task.ReferenceResource, pg.Array(&task.CustomerValue), &task.TaskNature, &task.SuMoney, &task.AcceptanceStandard, &task.TaskDescription, pg.Array(&task.TaskPictureUrls), &task.IsRewardTake, &task.CreateTime, &task.ReleaseTime,&task.Participators, &task.TaskPercentage, &task.SolveReport, pg.Array(&task.SolvePictureUrls)), | 39 | + pg.Scan(&task.TaskId, &task.CompanyId, &task.TaskName, &task.TaskType, &task.Sponsor, &task.TaskStatus, &task.ReferenceResource, pg.Array(&task.CustomerValue), &task.TaskNature, &task.SuMoney, &task.AcceptanceStandard, &task.TaskDescription, pg.Array(&task.TaskPictureUrls), &task.IsRewardTake, &task.CreateTime, &task.ReleaseTime, &task.Participators, &task.TaskPercentage, &task.SolveReport, pg.Array(&task.SolvePictureUrls)), |
| 40 | "UPDATE tasks SET 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=?, create_time=?, release_time=?, participators=?, task_percentage=?, solve_report=?, solve_picture_urls=? WHERE id=? RETURNING 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, create_time, release_time, participators, task_percentage, solve_report, solve_picture_urls", | 40 | "UPDATE tasks SET 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=?, create_time=?, release_time=?, participators=?, task_percentage=?, solve_report=?, solve_picture_urls=? WHERE id=? RETURNING 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, create_time, release_time, participators, task_percentage, solve_report, solve_picture_urls", |
| 41 | task.CompanyId, task.TaskName, task.TaskType, task.Sponsor, task.TaskStatus, task.ReferenceResource, pg.Array(task.CustomerValue), task.TaskNature, task.SuMoney, task.AcceptanceStandard, task.TaskDescription, pg.Array(task.TaskPictureUrls), task.IsRewardTake, task.CreateTime, task.ReleaseTime, task.Participators, task.TaskPercentage, task.SolveReport, pg.Array(task.SolvePictureUrls), task.Identify()); err != nil { | 41 | task.CompanyId, task.TaskName, task.TaskType, task.Sponsor, task.TaskStatus, task.ReferenceResource, pg.Array(task.CustomerValue), task.TaskNature, task.SuMoney, task.AcceptanceStandard, task.TaskDescription, pg.Array(task.TaskPictureUrls), task.IsRewardTake, task.CreateTime, task.ReleaseTime, task.Participators, task.TaskPercentage, task.SolveReport, pg.Array(task.SolvePictureUrls), task.Identify()); err != nil { |
| 42 | return task, err | 42 | return task, err |
| @@ -59,83 +59,33 @@ func (repository *TaskRepository) FindOne(queryOptions map[string]interface{}) ( | @@ -59,83 +59,33 @@ func (repository *TaskRepository) FindOne(queryOptions map[string]interface{}) ( | ||
| 59 | query := tx.Model(taskModel).Relation("RobInfo").Relation("BidInfo") | 59 | query := tx.Model(taskModel).Relation("RobInfo").Relation("BidInfo") |
| 60 | if taskId, ok := queryOptions["taskId"]; ok { | 60 | if taskId, ok := queryOptions["taskId"]; ok { |
| 61 | query = query.Where("task.id = ?", taskId) | 61 | query = query.Where("task.id = ?", taskId) |
| 62 | + | ||
| 62 | } | 63 | } |
| 63 | - if err := query.Limit(1).Select(); err != nil { | 64 | + if err := query.First(); err != nil { |
| 64 | return nil, err | 65 | return nil, err |
| 65 | } | 66 | } |
| 66 | if taskModel.Id == 0 { | 67 | if taskModel.Id == 0 { |
| 67 | return nil, nil | 68 | return nil, nil |
| 68 | } else { | 69 | } else { |
| 69 | - //robInfo := &domain.RobInfo{ | ||
| 70 | - // Receiver: taskModel.RobInfo.Receiver, | ||
| 71 | - // ReceiveTime: taskModel.RobInfo.ReceiveTime, | ||
| 72 | - //} | ||
| 73 | - //bidderInfos := make([]*domain.BidderInfo, len(taskModel.BidInfo.BidderInfos)) | ||
| 74 | - //for _, bidderInfo := range taskModel.BidInfo.BidderInfos { | ||
| 75 | - // bidderInfos = append(bidderInfos, &domain.BidderInfo{ | ||
| 76 | - // Bidder: bidderInfo.Bidder, | ||
| 77 | - // BidTime: bidderInfo.BidTime, | ||
| 78 | - // }) | ||
| 79 | - //} | ||
| 80 | - //bidInfo := &domain.BidInfo{ | ||
| 81 | - // BidderInfos: bidderInfos, | ||
| 82 | - // BidStartTime: taskModel.BidInfo.BidStartTime, | ||
| 83 | - // BidEndTime: taskModel.BidInfo.BidEndTime, | ||
| 84 | - // SuccessfulBidder: taskModel.BidInfo.SuccessfulBidder, | ||
| 85 | - // WinBidTime: taskModel.BidInfo.WinBidTime, | ||
| 86 | - //} | ||
| 87 | - var currentStatus domain.TaskStatus | ||
| 88 | - switch taskModel.TaskStatus { | ||
| 89 | - case domain.TASK_STATUS_UNRELEASED: | ||
| 90 | - currentStatus = &domain.UnReleasedStatus{} | ||
| 91 | - break | ||
| 92 | - case domain.TASK_STATUS_UNCLAIMED: | ||
| 93 | - currentStatus = &domain.UnClaimedStatus{} | ||
| 94 | - break | ||
| 95 | - case domain.TASK_STATUS_UNDERWAY: | ||
| 96 | - currentStatus = &domain.UnderwayStatus{} | ||
| 97 | - break | ||
| 98 | - case domain.TASK_STATUS_UNACCEPTANCE: | ||
| 99 | - currentStatus = &domain.UnAcceptanceStatus{} | ||
| 100 | - break | ||
| 101 | - case domain.TASK_STATUS_COMPLETED: | ||
| 102 | - currentStatus = &domain.CompletedStatus{} | ||
| 103 | - break | ||
| 104 | - case domain.TASK_STATUS_CLOSED: | ||
| 105 | - currentStatus = &domain.ClosedStatus{} | ||
| 106 | - break | 70 | + if taskModel.BidInfo != nil { |
| 71 | + var bidderInfoModels []*models.BidderInfo | ||
| 72 | + bidderInfoQuery := tx.Model(&bidderInfoModels) | ||
| 73 | + if err := bidderInfoQuery.Where("bid_info_id = ?", taskModel.BidInfo.Id).Select(); err != nil { | ||
| 74 | + return nil, err | ||
| 75 | + } | ||
| 76 | + taskModel.BidInfo.BidderInfos = bidderInfoModels | ||
| 107 | } | 77 | } |
| 108 | - return &domain.Task{ | ||
| 109 | - TaskId: taskModel.Id, | ||
| 110 | - CompanyId: taskModel.CompanyId, | ||
| 111 | - TaskName: taskModel.TaskName, | ||
| 112 | - TaskType: taskModel.TaskType, | ||
| 113 | - Sponsor: taskModel.Sponsor, | ||
| 114 | - TaskStatus: taskModel.TaskStatus, | ||
| 115 | - ReferenceResource: taskModel.ReferenceResource, | ||
| 116 | - CustomerValue: taskModel.CustomerValue, | ||
| 117 | - TaskNature: taskModel.TaskNature, | ||
| 118 | - SuMoney: taskModel.SuMoney, | ||
| 119 | - AcceptanceStandard: taskModel.AcceptanceStandard, | ||
| 120 | - TaskDescription: taskModel.TaskDescription, | ||
| 121 | - TaskPictureUrls: taskModel.TaskPictureUrls, | ||
| 122 | - IsRewardTake: taskModel.IsRewardTake, | ||
| 123 | - CreateTime: taskModel.CreateTime, | ||
| 124 | - //RobInfo: robInfo, | ||
| 125 | - //BidInfo: bidInfo, | ||
| 126 | - Participators: taskModel.Participators, | ||
| 127 | - TaskPercentage: taskModel.TaskPercentage, | ||
| 128 | - SolveReport: taskModel.SolveReport, | ||
| 129 | - SolvePictureUrls: taskModel.SolvePictureUrls, | ||
| 130 | - CurrentStatus: currentStatus, | ||
| 131 | - }, nil | 78 | + return repository.transformPgModelToDomainModel(taskModel) |
| 132 | } | 79 | } |
| 133 | } | 80 | } |
| 134 | func (repository *TaskRepository) Find(queryOptions map[string]interface{}) (int64, []*domain.Task, error) { | 81 | func (repository *TaskRepository) Find(queryOptions map[string]interface{}) (int64, []*domain.Task, error) { |
| 135 | tx := repository.transactionContext.PgTx | 82 | tx := repository.transactionContext.PgTx |
| 136 | var taskModels []*models.Task | 83 | var taskModels []*models.Task |
| 137 | - var tasks []*domain.Task | 84 | + tasks := make([]*domain.Task, 0) |
| 138 | query := tx.Model(&taskModels).Relation("RobInfo").Relation("BidInfo") | 85 | query := tx.Model(&taskModels).Relation("RobInfo").Relation("BidInfo") |
| 86 | + if companyId, ok := queryOptions["companyId"]; ok { | ||
| 87 | + query = query.Where("task.company_id = ?", companyId) | ||
| 88 | + } | ||
| 139 | if offset, ok := queryOptions["offset"]; ok { | 89 | if offset, ok := queryOptions["offset"]; ok { |
| 140 | offset := offset.(int) | 90 | offset := offset.(int) |
| 141 | if offset > -1 { | 91 | if offset > -1 { |
| @@ -153,76 +103,103 @@ func (repository *TaskRepository) Find(queryOptions map[string]interface{}) (int | @@ -153,76 +103,103 @@ func (repository *TaskRepository) Find(queryOptions map[string]interface{}) (int | ||
| 153 | query = query.Limit(20) | 103 | query = query.Limit(20) |
| 154 | } | 104 | } |
| 155 | if count, err := query.Order("id DESC").SelectAndCount(); err != nil { | 105 | if count, err := query.Order("id DESC").SelectAndCount(); err != nil { |
| 156 | - return 0, nil, err | 106 | + return 0, tasks, err |
| 157 | } else { | 107 | } else { |
| 158 | for _, taskModel := range taskModels { | 108 | for _, taskModel := range taskModels { |
| 159 | - robInfo := &domain.RobInfo{ | ||
| 160 | - Receiver: taskModel.RobInfo.Receiver, | ||
| 161 | - ReceiveTime: taskModel.RobInfo.ReceiveTime, | 109 | + if taskModel.BidInfo != nil { |
| 110 | + var bidderInfoModels []*models.BidderInfo | ||
| 111 | + bidderInfoQuery := tx.Model(&bidderInfoModels) | ||
| 112 | + if err := bidderInfoQuery.Where("bid_info_id = ?", taskModel.BidInfo.Id).Select(); err != nil { | ||
| 113 | + return int64(count), tasks, nil | ||
| 114 | + } | ||
| 115 | + taskModel.BidInfo.BidderInfos = bidderInfoModels | ||
| 162 | } | 116 | } |
| 163 | - bidderInfos := make([]*domain.BidderInfo, len(taskModel.BidInfo.BidderInfos)) | ||
| 164 | - for _, bidderInfo := range taskModel.BidInfo.BidderInfos { | ||
| 165 | - bidderInfos = append(bidderInfos, &domain.BidderInfo{ | ||
| 166 | - Bidder: bidderInfo.Bidder, | ||
| 167 | - BidTime: bidderInfo.BidTime, | ||
| 168 | - }) | 117 | + if take, err := repository.transformPgModelToDomainModel(taskModel); err == nil { |
| 118 | + tasks = append(tasks, take) | ||
| 119 | + } else { | ||
| 120 | + return 0, tasks, err | ||
| 169 | } | 121 | } |
| 170 | - bidInfo := &domain.BidInfo{ | ||
| 171 | - BidderInfos: bidderInfos, | ||
| 172 | - BidStartTime: taskModel.BidInfo.BidStartTime, | ||
| 173 | - BidEndTime: taskModel.BidInfo.BidEndTime, | ||
| 174 | - SuccessfulBidder: taskModel.BidInfo.SuccessfulBidder, | ||
| 175 | - WinBidTime: taskModel.BidInfo.WinBidTime, | ||
| 176 | - } | ||
| 177 | - var currentStatus domain.TaskStatus | ||
| 178 | - switch taskModel.TaskStatus { | ||
| 179 | - case domain.TASK_STATUS_UNRELEASED: | ||
| 180 | - currentStatus = &domain.UnReleasedStatus{} | ||
| 181 | - break | ||
| 182 | - case domain.TASK_STATUS_UNCLAIMED: | ||
| 183 | - currentStatus = &domain.UnClaimedStatus{} | ||
| 184 | - break | ||
| 185 | - case domain.TASK_STATUS_UNDERWAY: | ||
| 186 | - currentStatus = &domain.UnderwayStatus{} | ||
| 187 | - break | ||
| 188 | - case domain.TASK_STATUS_UNACCEPTANCE: | ||
| 189 | - currentStatus = &domain.UnAcceptanceStatus{} | ||
| 190 | - break | ||
| 191 | - case domain.TASK_STATUS_COMPLETED: | ||
| 192 | - currentStatus = &domain.CompletedStatus{} | ||
| 193 | - break | ||
| 194 | - case domain.TASK_STATUS_CLOSED: | ||
| 195 | - currentStatus = &domain.ClosedStatus{} | ||
| 196 | - break | ||
| 197 | - } | ||
| 198 | - tasks = append(tasks, &domain.Task{ | ||
| 199 | - TaskId: taskModel.Id, | ||
| 200 | - CompanyId: taskModel.CompanyId, | ||
| 201 | - TaskName: taskModel.TaskName, | ||
| 202 | - TaskType: taskModel.TaskType, | ||
| 203 | - Sponsor: taskModel.Sponsor, | ||
| 204 | - TaskStatus: taskModel.TaskStatus, | ||
| 205 | - ReferenceResource: taskModel.ReferenceResource, | ||
| 206 | - CustomerValue: taskModel.CustomerValue, | ||
| 207 | - TaskNature: taskModel.TaskNature, | ||
| 208 | - SuMoney: taskModel.SuMoney, | ||
| 209 | - AcceptanceStandard: taskModel.AcceptanceStandard, | ||
| 210 | - TaskDescription: taskModel.TaskDescription, | ||
| 211 | - TaskPictureUrls: taskModel.TaskPictureUrls, | ||
| 212 | - IsRewardTake: taskModel.IsRewardTake, | ||
| 213 | - CreateTime: taskModel.CreateTime, | ||
| 214 | - RobInfo: robInfo, | ||
| 215 | - BidInfo: bidInfo, | ||
| 216 | - Participators: taskModel.Participators, | ||
| 217 | - TaskPercentage: taskModel.TaskPercentage, | ||
| 218 | - SolveReport: taskModel.SolveReport, | ||
| 219 | - SolvePictureUrls: taskModel.SolvePictureUrls, | ||
| 220 | - CurrentStatus: currentStatus, | ||
| 221 | - }) | ||
| 222 | } | 122 | } |
| 223 | return int64(count), tasks, nil | 123 | return int64(count), tasks, nil |
| 224 | } | 124 | } |
| 225 | } | 125 | } |
| 126 | + | ||
| 127 | +func (repository *TaskRepository) transformPgModelToDomainModel(taskModel *models.Task) (*domain.Task, error) { | ||
| 128 | + var robInfo *domain.RobInfo | ||
| 129 | + if taskModel.RobInfo == nil { | ||
| 130 | + robInfo = nil | ||
| 131 | + } else { | ||
| 132 | + robInfo = &domain.RobInfo{ | ||
| 133 | + Receiver: taskModel.RobInfo.Receiver, | ||
| 134 | + ReceiveTime: taskModel.RobInfo.ReceiveTime, | ||
| 135 | + } | ||
| 136 | + } | ||
| 137 | + var bidInfo *domain.BidInfo | ||
| 138 | + if taskModel.BidInfo == nil { | ||
| 139 | + bidInfo = nil | ||
| 140 | + } else { | ||
| 141 | + bidderInfos := make([]*domain.BidderInfo, len(taskModel.BidInfo.BidderInfos)) | ||
| 142 | + for _, bidderInfo := range taskModel.BidInfo.BidderInfos { | ||
| 143 | + bidderInfos = append(bidderInfos, &domain.BidderInfo{ | ||
| 144 | + Bidder: bidderInfo.Bidder, | ||
| 145 | + BidTime: bidderInfo.BidTime, | ||
| 146 | + }) | ||
| 147 | + } | ||
| 148 | + bidInfo = &domain.BidInfo{ | ||
| 149 | + BidderInfos: bidderInfos, | ||
| 150 | + BidStartTime: taskModel.BidInfo.BidStartTime, | ||
| 151 | + BidEndTime: taskModel.BidInfo.BidEndTime, | ||
| 152 | + SuccessfulBidder: taskModel.BidInfo.SuccessfulBidder, | ||
| 153 | + WinBidTime: taskModel.BidInfo.WinBidTime, | ||
| 154 | + } | ||
| 155 | + } | ||
| 156 | + var currentStatus domain.TaskStatus | ||
| 157 | + switch taskModel.TaskStatus { | ||
| 158 | + case domain.TASK_STATUS_UNRELEASED: | ||
| 159 | + currentStatus = &domain.UnReleasedStatus{} | ||
| 160 | + break | ||
| 161 | + case domain.TASK_STATUS_UNCLAIMED: | ||
| 162 | + currentStatus = &domain.UnClaimedStatus{} | ||
| 163 | + break | ||
| 164 | + case domain.TASK_STATUS_UNDERWAY: | ||
| 165 | + currentStatus = &domain.UnderwayStatus{} | ||
| 166 | + break | ||
| 167 | + case domain.TASK_STATUS_UNACCEPTANCE: | ||
| 168 | + currentStatus = &domain.UnAcceptanceStatus{} | ||
| 169 | + break | ||
| 170 | + case domain.TASK_STATUS_COMPLETED: | ||
| 171 | + currentStatus = &domain.CompletedStatus{} | ||
| 172 | + break | ||
| 173 | + case domain.TASK_STATUS_CLOSED: | ||
| 174 | + currentStatus = &domain.ClosedStatus{} | ||
| 175 | + break | ||
| 176 | + } | ||
| 177 | + return &domain.Task{ | ||
| 178 | + TaskId: taskModel.Id, | ||
| 179 | + CompanyId: taskModel.CompanyId, | ||
| 180 | + TaskName: taskModel.TaskName, | ||
| 181 | + TaskType: taskModel.TaskType, | ||
| 182 | + Sponsor: taskModel.Sponsor, | ||
| 183 | + TaskStatus: taskModel.TaskStatus, | ||
| 184 | + ReferenceResource: taskModel.ReferenceResource, | ||
| 185 | + CustomerValue: taskModel.CustomerValue, | ||
| 186 | + TaskNature: taskModel.TaskNature, | ||
| 187 | + SuMoney: taskModel.SuMoney, | ||
| 188 | + AcceptanceStandard: taskModel.AcceptanceStandard, | ||
| 189 | + TaskDescription: taskModel.TaskDescription, | ||
| 190 | + TaskPictureUrls: taskModel.TaskPictureUrls, | ||
| 191 | + IsRewardTake: taskModel.IsRewardTake, | ||
| 192 | + CreateTime: taskModel.CreateTime, | ||
| 193 | + RobInfo: robInfo, | ||
| 194 | + BidInfo: bidInfo, | ||
| 195 | + Participators: taskModel.Participators, | ||
| 196 | + TaskPercentage: taskModel.TaskPercentage, | ||
| 197 | + SolveReport: taskModel.SolveReport, | ||
| 198 | + SolvePictureUrls: taskModel.SolvePictureUrls, | ||
| 199 | + CurrentStatus: currentStatus, | ||
| 200 | + }, nil | ||
| 201 | +} | ||
| 202 | + | ||
| 226 | func NewTaskRepository(transactionContext *pgTransaction.TransactionContext) (*TaskRepository, error) { | 203 | func NewTaskRepository(transactionContext *pgTransaction.TransactionContext) (*TaskRepository, error) { |
| 227 | if transactionContext == nil { | 204 | if transactionContext == nil { |
| 228 | return nil, fmt.Errorf("transactionContext参数不能为nil") | 205 | return nil, fmt.Errorf("transactionContext参数不能为nil") |
| @@ -133,6 +133,21 @@ func (controller *TaskController) AcceptanceTask() { | @@ -133,6 +133,21 @@ func (controller *TaskController) AcceptanceTask() { | ||
| 133 | controller.ServeJSON() | 133 | controller.ServeJSON() |
| 134 | } | 134 | } |
| 135 | 135 | ||
| 136 | +func (controller *TaskController) SearchTask() { | ||
| 137 | + taskService := service.NewTaskService(nil) | ||
| 138 | + searchTaskCommand := &command.SearchTaskCommand{} | ||
| 139 | + json.Unmarshal(controller.Ctx.Input.GetData("requestBody").([]byte), searchTaskCommand) | ||
| 140 | + data, err := taskService.SearchTask(searchTaskCommand) | ||
| 141 | + var response utils.JsonResponse | ||
| 142 | + if err != nil { | ||
| 143 | + response = utils.ResponseError(controller.Ctx, err) | ||
| 144 | + } else { | ||
| 145 | + response = utils.ResponseData(controller.Ctx, data) | ||
| 146 | + } | ||
| 147 | + controller.Data["json"] = response | ||
| 148 | + controller.ServeJSON() | ||
| 149 | +} | ||
| 150 | + | ||
| 136 | func (controller *TaskController) CreateTask() { | 151 | func (controller *TaskController) CreateTask() { |
| 137 | taskService := service.NewTaskService(nil) | 152 | taskService := service.NewTaskService(nil) |
| 138 | createTaskCommand := &command.CreateTaskCommand{} | 153 | createTaskCommand := &command.CreateTaskCommand{} |
| @@ -13,6 +13,7 @@ func init() { | @@ -13,6 +13,7 @@ func init() { | ||
| 13 | beego.Router("/tasks/:taskId/choose-successful-bidder", &controllers.TaskController{}, "Post:ChooseSuccessfulBidder") | 13 | beego.Router("/tasks/:taskId/choose-successful-bidder", &controllers.TaskController{}, "Post:ChooseSuccessfulBidder") |
| 14 | beego.Router("/tasks/:taskId/dff", &controllers.TaskController{}, "Post:OffTask") | 14 | beego.Router("/tasks/:taskId/dff", &controllers.TaskController{}, "Post:OffTask") |
| 15 | beego.Router("/tasks/:taskId/acceptance", &controllers.TaskController{}, "Post:AcceptanceTask") | 15 | beego.Router("/tasks/:taskId/acceptance", &controllers.TaskController{}, "Post:AcceptanceTask") |
| 16 | + beego.Router("/tasks/search", &controllers.TaskController{}, "Post:SearchTask") | ||
| 16 | beego.Router("/tasks/", &controllers.TaskController{}, "Post:CreateTask") | 17 | beego.Router("/tasks/", &controllers.TaskController{}, "Post:CreateTask") |
| 17 | beego.Router("/tasks/:taskId", &controllers.TaskController{}, "Put:UpdateTask") | 18 | beego.Router("/tasks/:taskId", &controllers.TaskController{}, "Put:UpdateTask") |
| 18 | beego.Router("/tasks/:taskId", &controllers.TaskController{}, "Get:GetTask") | 19 | beego.Router("/tasks/:taskId", &controllers.TaskController{}, "Get:GetTask") |
| @@ -93,7 +93,7 @@ var _ = Describe("创建新任务", func() { | @@ -93,7 +93,7 @@ var _ = Describe("创建新任务", func() { | ||
| 93 | }, | 93 | }, |
| 94 | "isRewardTake": true, | 94 | "isRewardTake": true, |
| 95 | "bidStartTime": time.Now(), | 95 | "bidStartTime": time.Now(), |
| 96 | - "bidEndTime": time.Now().Add( dayAfter), | 96 | + "bidEndTime": time.Now().Add(dayAfter), |
| 97 | } | 97 | } |
| 98 | httpExpect.POST("/tasks/"). | 98 | httpExpect.POST("/tasks/"). |
| 99 | WithJSON(body). | 99 | WithJSON(body). |
| 1 | package task | 1 | package task |
| 2 | 2 | ||
| 3 | import ( | 3 | import ( |
| 4 | + "gitlab.fjmaimaimai.com/linmadan/mmm-worth/pkg/domain" | ||
| 4 | "net/http" | 5 | "net/http" |
| 6 | + "time" | ||
| 5 | 7 | ||
| 6 | "github.com/gavv/httpexpect" | 8 | "github.com/gavv/httpexpect" |
| 7 | "github.com/go-pg/pg" | 9 | "github.com/go-pg/pg" |
| @@ -12,11 +14,24 @@ import ( | @@ -12,11 +14,24 @@ import ( | ||
| 12 | 14 | ||
| 13 | var _ = Describe("返回任务", func() { | 15 | var _ = Describe("返回任务", func() { |
| 14 | BeforeEach(func() { | 16 | BeforeEach(func() { |
| 17 | + dayAfter, _ := time.ParseDuration("72h") | ||
| 15 | _, err := pG.DB.QueryOne( | 18 | _, err := pG.DB.QueryOne( |
| 16 | pg.Scan(), | 19 | pg.Scan(), |
| 17 | - "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) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", | ||
| 18 | - 1, 101, "testTaskName", 1, "{}", 3, "null", pg.Array([]string{"口感"}), "testTaskNature", 100.00, "testAcceptanceStandard", "testTaskDescription", pg.Array([]string{"url"}), false) | 20 | + "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, create_time, release_time) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", |
| 21 | + 1, 101, "抢单任务1", 1, &domain.EmployeeInfo{ | ||
| 22 | + Uid: 2499036607974745088, | ||
| 23 | + }, 1, "null", pg.Array([]string{"口感", "便利", "品牌"}), "面", 1000.00, "验收标准1", "任务描述1", pg.Array([]string{}), true, "null", "null", "", pg.Array([]string{}), time.Now(), time.Now().Add(dayAfter)) | ||
| 19 | Expect(err).NotTo(HaveOccurred()) | 24 | Expect(err).NotTo(HaveOccurred()) |
| 25 | + _, err1 := pG.DB.QueryOne( | ||
| 26 | + pg.Scan(), | ||
| 27 | + "INSERT INTO bid_infos (id, task_id) VALUES (?, ?)", | ||
| 28 | + 1, 1) | ||
| 29 | + Expect(err1).NotTo(HaveOccurred()) | ||
| 30 | + _, err2 := pG.DB.QueryOne( | ||
| 31 | + pg.Scan(), | ||
| 32 | + "INSERT INTO bidder_infos (id, bid_info_id, task_id) VALUES (?, ?, ?)", | ||
| 33 | + 1, 1, 1) | ||
| 34 | + Expect(err2).NotTo(HaveOccurred()) | ||
| 20 | }) | 35 | }) |
| 21 | Describe("根据taskId参数返回任务", func() { | 36 | Describe("根据taskId参数返回任务", func() { |
| 22 | Context("传入有效的taskId", func() { | 37 | Context("传入有效的taskId", func() { |
| @@ -36,5 +51,9 @@ var _ = Describe("返回任务", func() { | @@ -36,5 +51,9 @@ var _ = Describe("返回任务", func() { | ||
| 36 | AfterEach(func() { | 51 | AfterEach(func() { |
| 37 | _, err := pG.DB.Exec("DELETE FROM tasks WHERE true") | 52 | _, err := pG.DB.Exec("DELETE FROM tasks WHERE true") |
| 38 | Expect(err).NotTo(HaveOccurred()) | 53 | Expect(err).NotTo(HaveOccurred()) |
| 54 | + _, err1 := pG.DB.Exec("DELETE FROM bid_infos WHERE true") | ||
| 55 | + Expect(err1).NotTo(HaveOccurred()) | ||
| 56 | + _, err2 := pG.DB.Exec("DELETE FROM bidder_infos WHERE true") | ||
| 57 | + Expect(err2).NotTo(HaveOccurred()) | ||
| 39 | }) | 58 | }) |
| 40 | }) | 59 | }) |
| 1 | package task | 1 | package task |
| 2 | 2 | ||
| 3 | import ( | 3 | import ( |
| 4 | + "gitlab.fjmaimaimai.com/linmadan/mmm-worth/pkg/domain" | ||
| 4 | "net/http" | 5 | "net/http" |
| 6 | + "time" | ||
| 5 | 7 | ||
| 6 | "github.com/gavv/httpexpect" | 8 | "github.com/gavv/httpexpect" |
| 7 | "github.com/go-pg/pg" | 9 | "github.com/go-pg/pg" |
| @@ -11,32 +13,55 @@ import ( | @@ -11,32 +13,55 @@ import ( | ||
| 11 | ) | 13 | ) |
| 12 | 14 | ||
| 13 | var _ = Describe("返回任务列表", func() { | 15 | var _ = Describe("返回任务列表", func() { |
| 14 | - var taskId int64 | ||
| 15 | BeforeEach(func() { | 16 | BeforeEach(func() { |
| 17 | + dayAfter, _ := time.ParseDuration("72h") | ||
| 16 | _, err := pG.DB.QueryOne( | 18 | _, err := pG.DB.QueryOne( |
| 17 | - pg.Scan(&taskId), | ||
| 18 | - "INSERT INTO tasks (task_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, rob_info, bid_info, participators, task_percentage, solve_report, solve_picture_urls, create_time, release_time) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) RETURNING id", | ||
| 19 | - "testTaskId", "testCompanyId", "testTaskName", "testTaskType", "testSponsor", "testTaskStatus", "testReferenceResource", "testCustomerValue", "testTaskNature", "testSuMoney", "testAcceptanceStandard", "testTaskDescription", "testTaskPictureUrls", "testIsRewardTake", "testRobInfo", "testBidInfo", "testParticipators", "testTaskPercentage", "testSolveReport", "testSolvePictureUrls", "testCreateTime", "testReleaseTime") | 19 | + pg.Scan(), |
| 20 | + "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, create_time, release_time) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", | ||
| 21 | + 1, 101, "抢单任务1", 1, &domain.EmployeeInfo{ | ||
| 22 | + Uid: 2499036607974745088, | ||
| 23 | + }, 1, "null", pg.Array([]string{"口感", "便利", "品牌"}), "面", 1000.00, "验收标准1", "任务描述1", pg.Array([]string{}), true, "null", "null", "", pg.Array([]string{}), time.Now(), time.Now().Add(dayAfter)) | ||
| 20 | Expect(err).NotTo(HaveOccurred()) | 24 | Expect(err).NotTo(HaveOccurred()) |
| 25 | + _, err1 := pG.DB.QueryOne( | ||
| 26 | + pg.Scan(), | ||
| 27 | + "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, create_time, release_time) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", | ||
| 28 | + 2, 101, "抢单任务2", 1, &domain.EmployeeInfo{ | ||
| 29 | + Uid: 2499036607974745088, | ||
| 30 | + }, 1, "null", pg.Array([]string{"口感", "便利", "品牌"}), "面", 1000.00, "验收标准1", "任务描述1", pg.Array([]string{}), true, "null", "null", "", pg.Array([]string{}), time.Now(), time.Now().Add(dayAfter)) | ||
| 31 | + Expect(err1).NotTo(HaveOccurred()) | ||
| 32 | + _, err11 := pG.DB.QueryOne( | ||
| 33 | + pg.Scan(), | ||
| 34 | + "INSERT INTO bid_infos (id, task_id) VALUES (?, ?)", | ||
| 35 | + 1, 2) | ||
| 36 | + Expect(err11).NotTo(HaveOccurred()) | ||
| 37 | + _, err22 := pG.DB.QueryOne( | ||
| 38 | + pg.Scan(), | ||
| 39 | + "INSERT INTO bidder_infos (id, bid_info_id, task_id) VALUES (?, ?, ?)", | ||
| 40 | + 1, 1, 2) | ||
| 41 | + Expect(err22).NotTo(HaveOccurred()) | ||
| 42 | + _, err2 := pG.DB.QueryOne( | ||
| 43 | + pg.Scan(), | ||
| 44 | + "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, create_time, release_time) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", | ||
| 45 | + 3, 102, "抢单任务1", 1, &domain.EmployeeInfo{ | ||
| 46 | + Uid: 2499036607974745088, | ||
| 47 | + }, 1, "null", pg.Array([]string{"口感", "便利", "品牌"}), "面", 1000.00, "验收标准1", "任务描述1", pg.Array([]string{}), true, "null", "null", "", pg.Array([]string{}), time.Now(), time.Now().Add(dayAfter)) | ||
| 48 | + Expect(err2).NotTo(HaveOccurred()) | ||
| 49 | + _, err3 := pG.DB.QueryOne( | ||
| 50 | + pg.Scan(), | ||
| 51 | + "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, create_time, release_time) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", | ||
| 52 | + 4, 101, "抢单任务1", 1, &domain.EmployeeInfo{ | ||
| 53 | + Uid: 2499036607974745088, | ||
| 54 | + }, 1, "null", pg.Array([]string{"口感", "便利", "品牌"}), "面", 1000.00, "验收标准1", "任务描述1", pg.Array([]string{}), true, "null", "null", "", pg.Array([]string{}), time.Now(), time.Now().Add(dayAfter)) | ||
| 55 | + Expect(err3).NotTo(HaveOccurred()) | ||
| 21 | }) | 56 | }) |
| 22 | Describe("根据参数返回任务列表", func() { | 57 | Describe("根据参数返回任务列表", func() { |
| 23 | Context("传入有效的参数", func() { | 58 | Context("传入有效的参数", func() { |
| 24 | - It("返回任务数据列表", func() { | 59 | + It("返回指定companyId公司的任务数据列表", func() { |
| 25 | httpExpect := httpexpect.New(GinkgoT(), server.URL) | 60 | httpExpect := httpexpect.New(GinkgoT(), server.URL) |
| 26 | httpExpect.GET("/tasks/"). | 61 | httpExpect.GET("/tasks/"). |
| 27 | - WithQuery("companyId", "int64"). | ||
| 28 | - WithQuery("sponsor", "int64"). | ||
| 29 | - WithQuery("taskContentMatch", "string"). | ||
| 30 | - WithQuery("taskType", "int"). | ||
| 31 | - WithQuery("taskStatus", "int"). | ||
| 32 | - WithQuery("customerValue", "string"). | ||
| 33 | - WithQuery("taskNature", "string"). | ||
| 34 | - WithQuery("isRewardTake", "boolean"). | ||
| 35 | - WithQuery("bidTimeMatch", "int"). | ||
| 36 | - WithQuery("receiver", "int64"). | ||
| 37 | - WithQuery("participator", "int64"). | ||
| 38 | - WithQuery("offset", "int"). | ||
| 39 | - WithQuery("limit", "int"). | 62 | + WithQuery("companyId", 101). |
| 63 | + WithQuery("offset", 0). | ||
| 64 | + WithQuery("limit", 20). | ||
| 40 | Expect(). | 65 | Expect(). |
| 41 | Status(http.StatusOK). | 66 | Status(http.StatusOK). |
| 42 | JSON(). | 67 | JSON(). |
| @@ -44,7 +69,33 @@ var _ = Describe("返回任务列表", func() { | @@ -44,7 +69,33 @@ var _ = Describe("返回任务列表", func() { | ||
| 44 | ContainsKey("code").ValueEqual("code", 0). | 69 | ContainsKey("code").ValueEqual("code", 0). |
| 45 | ContainsKey("msg").ValueEqual("msg", "ok"). | 70 | ContainsKey("msg").ValueEqual("msg", "ok"). |
| 46 | ContainsKey("data").Value("data").Object(). | 71 | ContainsKey("data").Value("data").Object(). |
| 47 | - ContainsKey("count").ValueEqual("count", 1). | 72 | + ContainsKey("count").ValueEqual("count", 3). |
| 73 | + ContainsKey("tasks").Value("tasks").Array() | ||
| 74 | + }) | ||
| 75 | + It("返回指定companyId公司的任务数据列表", func() { | ||
| 76 | + httpExpect := httpexpect.New(GinkgoT(), server.URL) | ||
| 77 | + httpExpect.GET("/tasks/"). | ||
| 78 | + WithQuery("companyId", 101). | ||
| 79 | + //WithQuery("sponsor", "int64"). | ||
| 80 | + //WithQuery("taskContentMatch", "string"). | ||
| 81 | + //WithQuery("taskType", "int"). | ||
| 82 | + //WithQuery("taskStatus", "int"). | ||
| 83 | + //WithQuery("customerValue", "string"). | ||
| 84 | + //WithQuery("taskNature", "string"). | ||
| 85 | + //WithQuery("isRewardTake", "boolean"). | ||
| 86 | + //WithQuery("bidTimeMatch", "int"). | ||
| 87 | + //WithQuery("receiver", "int64"). | ||
| 88 | + //WithQuery("participator", "int64"). | ||
| 89 | + WithQuery("offset", 0). | ||
| 90 | + WithQuery("limit", 20). | ||
| 91 | + Expect(). | ||
| 92 | + Status(http.StatusOK). | ||
| 93 | + JSON(). | ||
| 94 | + Object(). | ||
| 95 | + ContainsKey("code").ValueEqual("code", 0). | ||
| 96 | + ContainsKey("msg").ValueEqual("msg", "ok"). | ||
| 97 | + ContainsKey("data").Value("data").Object(). | ||
| 98 | + ContainsKey("count").ValueEqual("count", 3). | ||
| 48 | ContainsKey("tasks").Value("tasks").Array() | 99 | ContainsKey("tasks").Value("tasks").Array() |
| 49 | }) | 100 | }) |
| 50 | }) | 101 | }) |
| @@ -52,5 +103,9 @@ var _ = Describe("返回任务列表", func() { | @@ -52,5 +103,9 @@ var _ = Describe("返回任务列表", func() { | ||
| 52 | AfterEach(func() { | 103 | AfterEach(func() { |
| 53 | _, err := pG.DB.Exec("DELETE FROM tasks WHERE true") | 104 | _, err := pG.DB.Exec("DELETE FROM tasks WHERE true") |
| 54 | Expect(err).NotTo(HaveOccurred()) | 105 | Expect(err).NotTo(HaveOccurred()) |
| 106 | + _, err1 := pG.DB.Exec("DELETE FROM bid_infos WHERE true") | ||
| 107 | + Expect(err1).NotTo(HaveOccurred()) | ||
| 108 | + _, err2 := pG.DB.Exec("DELETE FROM bidder_infos WHERE true") | ||
| 109 | + Expect(err2).NotTo(HaveOccurred()) | ||
| 55 | }) | 110 | }) |
| 56 | }) | 111 | }) |
| 1 | +package task | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "net/http" | ||
| 5 | + | ||
| 6 | + "github.com/gavv/httpexpect" | ||
| 7 | + "github.com/go-pg/pg" | ||
| 8 | + . "github.com/onsi/ginkgo" | ||
| 9 | + . "github.com/onsi/gomega" | ||
| 10 | + pG "gitlab.fjmaimaimai.com/linmadan/mmm-worth/pkg/infrastructure/pg" | ||
| 11 | +) | ||
| 12 | + | ||
| 13 | +var _ = Describe("搜索任务", func() { | ||
| 14 | + var taskId int64 | ||
| 15 | + BeforeEach(func() { | ||
| 16 | + _, err := pG.DB.QueryOne( | ||
| 17 | + pg.Scan(&taskId), | ||
| 18 | + "INSERT INTO tasks (task_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, rob_info, bid_info, participators, task_percentage, solve_report, solve_picture_urls, create_time, release_time) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) RETURNING id", | ||
| 19 | + "testTaskId", "testCompanyId", "testTaskName", "testTaskType", "testSponsor", "testTaskStatus", "testReferenceResource", "testCustomerValue", "testTaskNature", "testSuMoney", "testAcceptanceStandard", "testTaskDescription", "testTaskPictureUrls", "testIsRewardTake", "testRobInfo", "testBidInfo", "testParticipators", "testTaskPercentage", "testSolveReport", "testSolvePictureUrls", "testCreateTime", "testReleaseTime") | ||
| 20 | + Expect(err).NotTo(HaveOccurred()) | ||
| 21 | + }) | ||
| 22 | + Describe("搜索任务", func() { | ||
| 23 | + Context("", func() { | ||
| 24 | + It("", func() { | ||
| 25 | + httpExpect := httpexpect.New(GinkgoT(), server.URL) | ||
| 26 | + body := map[string]interface{}{ | ||
| 27 | + "companyId": "int64", | ||
| 28 | + "sponsor": "int64", | ||
| 29 | + "taskContentMatch": "string", | ||
| 30 | + "taskType": "int", | ||
| 31 | + "taskStatus": "int", | ||
| 32 | + "customerValue": "string", | ||
| 33 | + "taskNature": "string", | ||
| 34 | + "isRewardTake": "boolean", | ||
| 35 | + "bidTimeMatch": "int", | ||
| 36 | + "receiver": "int64", | ||
| 37 | + "participator": "int64", | ||
| 38 | + "offset": "int", | ||
| 39 | + "limit": "int", | ||
| 40 | + } | ||
| 41 | + httpExpect.POST("/tasks/search"). | ||
| 42 | + WithJSON(body). | ||
| 43 | + Expect(). | ||
| 44 | + Status(http.StatusOK). | ||
| 45 | + JSON(). | ||
| 46 | + Object(). | ||
| 47 | + ContainsKey("code").ValueEqual("code", 0). | ||
| 48 | + ContainsKey("msg").ValueEqual("msg", "ok"). | ||
| 49 | + ContainsKey("data").Value("data").Object() | ||
| 50 | + }) | ||
| 51 | + }) | ||
| 52 | + }) | ||
| 53 | + AfterEach(func() { | ||
| 54 | + _, err := pG.DB.Exec("DELETE FROM tasks WHERE true") | ||
| 55 | + Expect(err).NotTo(HaveOccurred()) | ||
| 56 | + }) | ||
| 57 | +}) |
-
请 注册 或 登录 后发表评论