正在显示
5 个修改的文件
包含
158 行增加
和
1 行删除
| 1 | +package subscriber | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "fmt" | ||
| 5 | + "github.com/linmadan/egglib-go/core/domain" | ||
| 6 | + "gitlab.fjmaimaimai.com/linmadan/mmm-worth/pkg/application/factory" | ||
| 7 | + "gitlab.fjmaimaimai.com/linmadan/mmm-worth/pkg/domain/event" | ||
| 8 | +) | ||
| 9 | + | ||
| 10 | +type AbilityServiceSubscriber struct { | ||
| 11 | +} | ||
| 12 | + | ||
| 13 | +func (subscriber *AbilityServiceSubscriber) HandleEvent(domainEvent domain.DomainEvent) error { | ||
| 14 | + abilityServiceGateway, err := factory.CreateAbilityServiceGateway(nil) | ||
| 15 | + if err != nil { | ||
| 16 | + return err | ||
| 17 | + } | ||
| 18 | + switch domainEvent.EventType() { | ||
| 19 | + case event.TASK_RELEASED_EVENT: | ||
| 20 | + taskReleasedEvent := domainEvent.(*event.TaskReleased) | ||
| 21 | + var serials []int64 | ||
| 22 | + for _, referenceResourceItem := range taskReleasedEvent.ReferenceResource.ReferenceResourceItems { | ||
| 23 | + serials = append(serials, referenceResourceItem.SerialNumber) | ||
| 24 | + } | ||
| 25 | + data, err := abilityServiceGateway.CommitQuestionQuotes(taskReleasedEvent.Sponsor.Uid, taskReleasedEvent.TaskId, serials) | ||
| 26 | + if err != nil { | ||
| 27 | + fmt.Println(err.Error()) | ||
| 28 | + return err | ||
| 29 | + } | ||
| 30 | + fmt.Println(data) | ||
| 31 | + break | ||
| 32 | + case event.TASK_ACCEPTANCED_EVENT: | ||
| 33 | + taskAcceptancedEvent := domainEvent.(*event.TaskAcceptanced) | ||
| 34 | + if taskAcceptancedEvent.ReferenceResource != nil { | ||
| 35 | + var solveUid int64 | ||
| 36 | + var scoreSolve float64 | ||
| 37 | + var partners []map[string]interface{} | ||
| 38 | + for _, referenceResourceItem := range taskAcceptancedEvent.ReferenceResource.ReferenceResourceItems { | ||
| 39 | + for _, solveScore := range referenceResourceItem.SolveScore { | ||
| 40 | + if solveScore.IsReceiver { | ||
| 41 | + solveUid = solveScore.Contributor.Uid | ||
| 42 | + scoreSolve = solveScore.Score | ||
| 43 | + } else { | ||
| 44 | + partners = append(partners, map[string]interface{}{ | ||
| 45 | + "uid": solveScore.Contributor.Uid, | ||
| 46 | + "scoreSolution": solveScore.Score, | ||
| 47 | + }) | ||
| 48 | + } | ||
| 49 | + } | ||
| 50 | + data, err := abilityServiceGateway.CommitQuestionSolution(referenceResourceItem.ReferenceResourceId, taskAcceptancedEvent.Sponsor.Uid, solveUid, taskAcceptancedEvent.SolveReport, scoreSolve, taskAcceptancedEvent.SolvePictureUrls, partners) | ||
| 51 | + if err != nil { | ||
| 52 | + fmt.Println(err.Error()) | ||
| 53 | + return err | ||
| 54 | + } | ||
| 55 | + fmt.Println(data) | ||
| 56 | + } | ||
| 57 | + } | ||
| 58 | + break | ||
| 59 | + } | ||
| 60 | + return nil | ||
| 61 | +} | ||
| 62 | + | ||
| 63 | +func (subscriber *AbilityServiceSubscriber) SubscribedToEventTypes() []string { | ||
| 64 | + return [] string{ | ||
| 65 | + event.TASK_RELEASED_EVENT, | ||
| 66 | + event.TASK_ACCEPTANCED_EVENT, | ||
| 67 | + } | ||
| 68 | +} |
pkg/application/factory/service_gateway.go
0 → 100644
| 1 | +package factory | ||
| 2 | + | ||
| 3 | +import serviceGateway "gitlab.fjmaimaimai.com/linmadan/mmm-worth/pkg/infrastructure/service_gateway" | ||
| 4 | + | ||
| 5 | +func CreateAbilityServiceGateway(options map[string]interface{}) (serviceGateway.AbilityServiceGateway, error) { | ||
| 6 | + return serviceGateway.NewHttplibAbilityServiceGateway(), nil | ||
| 7 | +} |
pkg/domain/event/taskAcceptanced.go
0 → 100644
| 1 | +package event | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + coreDomain "github.com/linmadan/egglib-go/core/domain" | ||
| 5 | + "gitlab.fjmaimaimai.com/linmadan/mmm-worth/pkg/domain" | ||
| 6 | +) | ||
| 7 | + | ||
| 8 | +const TASK_ACCEPTANCED_EVENT = "task-acceptanced-event" | ||
| 9 | + | ||
| 10 | +type TaskAcceptanced struct { | ||
| 11 | + coreDomain.BaseEvent | ||
| 12 | + // 任务ID | ||
| 13 | + TaskId int64 `json:"taskId"` | ||
| 14 | + // 公司ID | ||
| 15 | + CompanyId int64 `json:"companyId"` | ||
| 16 | + // 任务名称 | ||
| 17 | + TaskName string `json:"taskName"` | ||
| 18 | + // 任务类型Type | ||
| 19 | + TaskType int `json:"taskType"` | ||
| 20 | + // 任务发起者 | ||
| 21 | + Sponsor *domain.EmployeeInfo `json:"sponsor"` | ||
| 22 | + // 任务状态 | ||
| 23 | + TaskStatus int `json:"taskStatus"` | ||
| 24 | + // 引用资源 | ||
| 25 | + ReferenceResource *domain.ReferenceResource `json:"referenceResource"` | ||
| 26 | + // 验收标准 | ||
| 27 | + AcceptanceStandard string `json:"acceptanceStandard"` | ||
| 28 | + // 任务参与者列表 | ||
| 29 | + Participators []*domain.EmployeeInfo `json:"participators"` | ||
| 30 | + // 任务贡献占比 | ||
| 31 | + TaskPercentage []*domain.TaskPercentageItem `json:"taskPercentage"` | ||
| 32 | + // 解决报告 | ||
| 33 | + SolveReport string `json:"solveReport"` | ||
| 34 | + // 解决图片URL列表 | ||
| 35 | + SolvePictureUrls []string `json:"solvePictureUrls"` | ||
| 36 | +} | ||
| 37 | + | ||
| 38 | +func (event *TaskAcceptanced) EventType() string { | ||
| 39 | + return TASK_ACCEPTANCED_EVENT | ||
| 40 | +} |
pkg/domain/event/taskReleased.go
0 → 100644
| 1 | +package event | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + coreDomain "github.com/linmadan/egglib-go/core/domain" | ||
| 5 | + "gitlab.fjmaimaimai.com/linmadan/mmm-worth/pkg/domain" | ||
| 6 | +) | ||
| 7 | + | ||
| 8 | +const TASK_RELEASED_EVENT = "task-released-event" | ||
| 9 | + | ||
| 10 | +type TaskReleased struct { | ||
| 11 | + coreDomain.BaseEvent | ||
| 12 | + // 任务ID | ||
| 13 | + TaskId int64 `json:"taskId"` | ||
| 14 | + // 公司ID | ||
| 15 | + CompanyId int64 `json:"companyId"` | ||
| 16 | + // 任务名称 | ||
| 17 | + TaskName string `json:"taskName"` | ||
| 18 | + // 任务类型Type | ||
| 19 | + TaskType int `json:"taskType"` | ||
| 20 | + // 任务发起者 | ||
| 21 | + Sponsor *domain.EmployeeInfo `json:"sponsor"` | ||
| 22 | + // 任务状态 | ||
| 23 | + TaskStatus int `json:"taskStatus"` | ||
| 24 | + // 引用资源 | ||
| 25 | + ReferenceResource *domain.ReferenceResource `json:"referenceResource"` | ||
| 26 | + // 客户价值列表 | ||
| 27 | + CustomerValue []string `json:"customerValue"` | ||
| 28 | + // 任务性质 | ||
| 29 | + TaskNature string `json:"taskNature"` | ||
| 30 | + // 奖励素币 | ||
| 31 | + SuMoney float64 `json:"suMoney"` | ||
| 32 | + // 验收标准 | ||
| 33 | + AcceptanceStandard string `json:"acceptanceStandard"` | ||
| 34 | + // 任务描述 | ||
| 35 | + TaskDescription string `json:"taskDescription"` | ||
| 36 | + // 竞标任务信息 | ||
| 37 | + BidInfo *domain.BidInfo `json:"bidInfo"` | ||
| 38 | +} | ||
| 39 | + | ||
| 40 | +func (event *TaskReleased) EventType() string { | ||
| 41 | + return TASK_RELEASED_EVENT | ||
| 42 | +} |
| @@ -86,7 +86,7 @@ func (service *AcceptanceTaskService) Acceptance(taskId int64, operatorUid int64 | @@ -86,7 +86,7 @@ func (service *AcceptanceTaskService) Acceptance(taskId int64, operatorUid int64 | ||
| 86 | if _, err := suMoneyTransactionRecordRepository.Save(suMoneyTransactionRecord); err != nil { | 86 | if _, err := suMoneyTransactionRecordRepository.Save(suMoneyTransactionRecord); err != nil { |
| 87 | return nil, err | 87 | return nil, err |
| 88 | } | 88 | } |
| 89 | - if err := employeeDao.TransferSuMoney(taskPercentageItem.Contributor.Uid, task.SuMoney); err != nil { | 89 | + if err := employeeDao.TransferSuMoney(taskPercentageItem.Contributor.Uid, taskPercentageItem.SuMoney); err != nil { |
| 90 | return nil, err | 90 | return nil, err |
| 91 | } | 91 | } |
| 92 | } | 92 | } |
-
请 注册 或 登录 后发表评论