作者 陈志颖

feat:添加共创申请消息推送

@@ -7,6 +7,7 @@ import ( @@ -7,6 +7,7 @@ import (
7 "gitlab.fjmaimaimai.com/allied-creation/allied-creation-cooperation/pkg/application/cooperationApplication/command" 7 "gitlab.fjmaimaimai.com/allied-creation/allied-creation-cooperation/pkg/application/cooperationApplication/command"
8 "gitlab.fjmaimaimai.com/allied-creation/allied-creation-cooperation/pkg/application/cooperationApplication/dto" 8 "gitlab.fjmaimaimai.com/allied-creation/allied-creation-cooperation/pkg/application/cooperationApplication/dto"
9 "gitlab.fjmaimaimai.com/allied-creation/allied-creation-cooperation/pkg/application/cooperationApplication/query" 9 "gitlab.fjmaimaimai.com/allied-creation/allied-creation-cooperation/pkg/application/cooperationApplication/query"
  10 + "gitlab.fjmaimaimai.com/allied-creation/allied-creation-cooperation/pkg/application/event/subscriber"
10 "gitlab.fjmaimaimai.com/allied-creation/allied-creation-cooperation/pkg/application/factory" 11 "gitlab.fjmaimaimai.com/allied-creation/allied-creation-cooperation/pkg/application/factory"
11 "gitlab.fjmaimaimai.com/allied-creation/allied-creation-cooperation/pkg/domain" 12 "gitlab.fjmaimaimai.com/allied-creation/allied-creation-cooperation/pkg/domain"
12 "gitlab.fjmaimaimai.com/allied-creation/allied-creation-cooperation/pkg/domain/service" 13 "gitlab.fjmaimaimai.com/allied-creation/allied-creation-cooperation/pkg/domain/service"
@@ -346,6 +347,32 @@ func (cooperationApplicationService *CooperationApplicationService) BatchApprova @@ -346,6 +347,32 @@ func (cooperationApplicationService *CooperationApplicationService) BatchApprova
346 cooperationApplicationRepository = value 347 cooperationApplicationRepository = value
347 } 348 }
348 349
  350 + // 同意共创申请消息推送领域服务初始化
  351 + var agreeContractApplicationService service.AgreeContractApplicationService
  352 + if value, err := factory.CreateAgreeContractApplicationService(map[string]interface{}{
  353 + //"transactionContext": transactionContext,
  354 + }); err != nil {
  355 + return []interface{}{}, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
  356 + } else {
  357 + agreeContractApplicationService = value
  358 + _ = agreeContractApplicationService.Subscribe(&subscriber.MessageServiceSubscriber{
  359 + //TransactionContext: transactionContext.(*pgTransaction.TransactionContext),
  360 + })
  361 + }
  362 +
  363 + // 拒绝共创申请消息推送领域服务初始化
  364 + var rejectContractApplicationService service.RejectContractApplicationService
  365 + if value, err := factory.CreateRejectContractApplicationService(map[string]interface{}{
  366 + //"transactionContext": transactionContext,
  367 + }); err != nil {
  368 + return []interface{}{}, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
  369 + } else {
  370 + rejectContractApplicationService = value
  371 + _ = rejectContractApplicationService.Subscribe(&subscriber.MessageServiceSubscriber{
  372 + //TransactionContext: transactionContext.(*pgTransaction.TransactionContext),
  373 + })
  374 + }
  375 +
349 // 共创申请ID类型转换 376 // 共创申请ID类型转换
350 cooperationApplicationIds, err := utils.SliceAtoi(batchApprovalCooperationApplicationCommand.CooperationApplicationIds) 377 cooperationApplicationIds, err := utils.SliceAtoi(batchApprovalCooperationApplicationCommand.CooperationApplicationIds)
351 if err != nil { 378 if err != nil {
@@ -379,7 +406,7 @@ func (cooperationApplicationService *CooperationApplicationService) BatchApprova @@ -379,7 +406,7 @@ func (cooperationApplicationService *CooperationApplicationService) BatchApprova
379 for i, cooperationApplication := range cooperationApplications { 406 for i, cooperationApplication := range cooperationApplications {
380 // 校验共创申请是否已经审核过 407 // 校验共创申请是否已经审核过
381 if cooperationApplication.CooperationApplicationStatus != 1 { 408 if cooperationApplication.CooperationApplicationStatus != 1 {
382 - return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "申请已经审核过") 409 + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "申请已经审核过")
383 } 410 }
384 // 更新共创申请数据 411 // 更新共创申请数据
385 cooperationApplications[i].CooperationApplicationVerifyDescription = batchApprovalCooperationApplicationCommand.CooperationApplicationVerifyDescription 412 cooperationApplications[i].CooperationApplicationVerifyDescription = batchApprovalCooperationApplicationCommand.CooperationApplicationVerifyDescription
@@ -392,13 +419,45 @@ func (cooperationApplicationService *CooperationApplicationService) BatchApprova @@ -392,13 +419,45 @@ func (cooperationApplicationService *CooperationApplicationService) BatchApprova
392 cooperationApplications[i].CooperationApplicationVerifyTime = time.Now() 419 cooperationApplications[i].CooperationApplicationVerifyTime = time.Now()
393 cooperationApplications[i].IsCanceled = 1 420 cooperationApplications[i].IsCanceled = 1
394 } 421 }
  422 +
395 cooperationApplicationsApproved, err := cooperationApplicationRepository.UpdateMany(cooperationApplications) 423 cooperationApplicationsApproved, err := cooperationApplicationRepository.UpdateMany(cooperationApplications)
396 if err != nil { 424 if err != nil {
397 return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) 425 return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())
398 } 426 }
  427 +
399 if err := transactionContext.CommitTransaction(); err != nil { 428 if err := transactionContext.CommitTransaction(); err != nil {
400 return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) 429 return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())
401 } 430 }
  431 +
  432 + // 推送消息
  433 + for _, cooperationApplicationApproved := range cooperationApplicationsApproved {
  434 + if cooperationApplicationApproved.CooperationApplicationStatus == 2 {
  435 + if err1 := agreeContractApplicationService.Agree(
  436 + cooperationApplicationApproved.CooperationProject.CooperationProjectId,
  437 + cooperationApplicationApproved.CooperationProject.CooperationProjectName,
  438 + cooperationApplicationApproved.CooperationProject.CooperationProjectNumber,
  439 + cooperationApplicationApproved.CooperationApplicationApplicant.UserId,
  440 + cooperationApplicationApproved.CooperationApplicationApplicant.UserBaseId,
  441 + cooperationApplicationApproved.CooperationProject.Org.OrgId,
  442 + cooperationApplicationApproved.CooperationProject.Company.CompanyId,
  443 + ); err1 != nil {
  444 + return nil, application.ThrowError(application.TRANSACTION_ERROR, err1.Error())
  445 + }
  446 + } else if cooperationApplicationApproved.CooperationApplicationStatus == 3 {
  447 + if err2 := rejectContractApplicationService.Reject(
  448 + cooperationApplicationApproved.CooperationProject.CooperationProjectId,
  449 + cooperationApplicationApproved.CooperationProject.CooperationProjectName,
  450 + cooperationApplicationApproved.CooperationProject.CooperationProjectNumber,
  451 + cooperationApplicationApproved.CooperationApplicationApplicant.UserId,
  452 + cooperationApplicationApproved.CooperationApplicationApplicant.UserBaseId,
  453 + cooperationApplicationApproved.CooperationProject.Org.OrgId,
  454 + cooperationApplicationApproved.CooperationProject.Company.CompanyId,
  455 + ); err2 != nil {
  456 + return nil, application.ThrowError(application.TRANSACTION_ERROR, err2.Error())
  457 + }
  458 + }
  459 + }
  460 +
402 return map[string]interface{}{ 461 return map[string]interface{}{
403 "cooperationApplications": cooperationApplicationsApproved, 462 "cooperationApplications": cooperationApplicationsApproved,
404 }, nil 463 }, nil
@@ -2,14 +2,13 @@ package subscriber @@ -2,14 +2,13 @@ package subscriber
2 2
3 import ( 3 import (
4 coreDomain "github.com/linmadan/egglib-go/core/domain" 4 coreDomain "github.com/linmadan/egglib-go/core/domain"
5 - pgTransaction "github.com/linmadan/egglib-go/transaction/pg"  
6 "gitlab.fjmaimaimai.com/allied-creation/allied-creation-cooperation/pkg/application/factory" 5 "gitlab.fjmaimaimai.com/allied-creation/allied-creation-cooperation/pkg/application/factory"
7 "gitlab.fjmaimaimai.com/allied-creation/allied-creation-cooperation/pkg/domain/event" 6 "gitlab.fjmaimaimai.com/allied-creation/allied-creation-cooperation/pkg/domain/event"
8 "gitlab.fjmaimaimai.com/allied-creation/allied-creation-cooperation/pkg/log" 7 "gitlab.fjmaimaimai.com/allied-creation/allied-creation-cooperation/pkg/log"
9 ) 8 )
10 9
11 type MessageServiceSubscriber struct { 10 type MessageServiceSubscriber struct {
12 - TransactionContext *pgTransaction.TransactionContext 11 + //TransactionContext *pgTransaction.TransactionContext
13 } 12 }
14 13
15 func (subscriber *MessageServiceSubscriber) HandleEvent(domainEvent coreDomain.DomainEvent) error { 14 func (subscriber *MessageServiceSubscriber) HandleEvent(domainEvent coreDomain.DomainEvent) error {
@@ -53,3 +53,21 @@ func CreateCancelDividendsEstimateService(options map[string]interface{}) (*doma @@ -53,3 +53,21 @@ func CreateCancelDividendsEstimateService(options map[string]interface{}) (*doma
53 } 53 }
54 return domain_service.NewCancelDividendsEstimateService(transactionContext) 54 return domain_service.NewCancelDividendsEstimateService(transactionContext)
55 } 55 }
  56 +
  57 +func CreateAgreeContractApplicationService(options map[string]interface{}) (*domain_service.AgreeContractApplicationService, error) {
  58 + //var transactionContext *pgTransaction.TransactionContext
  59 + //if value, ok := options["transactionContext"]; ok {
  60 + // transactionContext = value.(*pgTransaction.TransactionContext)
  61 + //}
  62 + //return domain_service.NewAgreeContractApplicationService(transactionContext)
  63 + return domain_service.NewAgreeContractApplicationService(nil)
  64 +}
  65 +
  66 +func CreateRejectContractApplicationService(options map[string]interface{}) (*domain_service.RejectContractApplicationService, error) {
  67 + //var transactionContext *pgTransaction.TransactionContext
  68 + //if value, ok := options["transactionContext"]; ok {
  69 + // transactionContext = value.(*pgTransaction.TransactionContext)
  70 + //}
  71 + //return domain_service.NewRejectContractApplicationService(transactionContext)
  72 + return domain_service.NewRejectContractApplicationService(nil)
  73 +}
@@ -4,5 +4,5 @@ import coreDomain "github.com/linmadan/egglib-go/core/domain" @@ -4,5 +4,5 @@ import coreDomain "github.com/linmadan/egglib-go/core/domain"
4 4
5 type AgreeContractApplicationService interface { 5 type AgreeContractApplicationService interface {
6 coreDomain.DomainEventPublisher 6 coreDomain.DomainEventPublisher
7 - Agree() error 7 + Agree(creationProjectId int64, creationProjectName string, creationProjectNumber string, userId int64, userBaseId int64, orgId int64, companyId int64) error
8 } 8 }
@@ -4,5 +4,5 @@ import coreDomain "github.com/linmadan/egglib-go/core/domain" @@ -4,5 +4,5 @@ import coreDomain "github.com/linmadan/egglib-go/core/domain"
4 4
5 type RejectContractApplicationService interface { 5 type RejectContractApplicationService interface {
6 coreDomain.DomainEventPublisher 6 coreDomain.DomainEventPublisher
7 - Reject() error 7 + Reject(creationProjectId int64, creationProjectName string, creationProjectNumber string, userId int64, userBaseId int64, orgId int64, companyId int64) error
8 } 8 }
  1 +package domain_service
  2 +
  3 +import (
  4 + coreDomain "github.com/linmadan/egglib-go/core/domain"
  5 + pgTransaction "github.com/linmadan/egglib-go/transaction/pg"
  6 + "gitlab.fjmaimaimai.com/allied-creation/allied-creation-cooperation/pkg/domain/event"
  7 +)
  8 +
  9 +type AgreeContractApplicationService struct {
  10 + coreDomain.BaseEventPublisher
  11 + //transactionContext *pgTransaction.TransactionContext
  12 +}
  13 +
  14 +func (service *AgreeContractApplicationService) Agree(creationProjectId int64, creationProjectName string, creationProjectNumber string, userId int64, userBaseId int64, orgId int64, companyId int64) error {
  15 + cooperationApplicationAgreedEvent := new(event.CooperationApplicationAgreed)
  16 + cooperationApplicationAgreedEvent.CreationProjectId = creationProjectId
  17 + cooperationApplicationAgreedEvent.CreationProjectName = creationProjectName
  18 + cooperationApplicationAgreedEvent.CreationProjectNumber = creationProjectNumber
  19 + cooperationApplicationAgreedEvent.UserId = userId
  20 + cooperationApplicationAgreedEvent.UserBaseId = userBaseId
  21 + cooperationApplicationAgreedEvent.OrgId = orgId
  22 + cooperationApplicationAgreedEvent.CompanyId = companyId
  23 + if err := service.Publish(cooperationApplicationAgreedEvent); err != nil {
  24 + return err
  25 + }
  26 + return nil
  27 +}
  28 +
  29 +func NewAgreeContractApplicationService(transactionContext *pgTransaction.TransactionContext) (*AgreeContractApplicationService, error) {
  30 + //if transactionContext == nil {
  31 + // return nil, fmt.Errorf("transactionContext参数不能为nil")
  32 + //} else {
  33 + // return &AgreeContractApplicationService{
  34 + // transactionContext: transactionContext,
  35 + // }, nil
  36 + //}
  37 + return &AgreeContractApplicationService{}, nil
  38 +}
  1 +package domain_service
  2 +
  3 +import (
  4 + coreDomain "github.com/linmadan/egglib-go/core/domain"
  5 + pgTransaction "github.com/linmadan/egglib-go/transaction/pg"
  6 + "gitlab.fjmaimaimai.com/allied-creation/allied-creation-cooperation/pkg/domain/event"
  7 +)
  8 +
  9 +type RejectContractApplicationService struct {
  10 + coreDomain.BaseEventPublisher
  11 + //transactionContext *pgTransaction.TransactionContext
  12 +}
  13 +
  14 +func (service *RejectContractApplicationService) Reject(creationProjectId int64, creationProjectName string, creationProjectNumber string, userId int64, userBaseId int64, orgId int64, companyId int64) error {
  15 + cooperationApplicationRejectedEvent := new(event.CooperationApplicationRejected)
  16 + cooperationApplicationRejectedEvent.CreationProjectId = creationProjectId
  17 + cooperationApplicationRejectedEvent.CreationProjectName = creationProjectName
  18 + cooperationApplicationRejectedEvent.CreationProjectNumber = creationProjectNumber
  19 + cooperationApplicationRejectedEvent.UserId = userId
  20 + cooperationApplicationRejectedEvent.UserBaseId = userBaseId
  21 + cooperationApplicationRejectedEvent.OrgId = orgId
  22 + cooperationApplicationRejectedEvent.CompanyId = companyId
  23 + if err := service.Publish(cooperationApplicationRejectedEvent); err != nil {
  24 + return err
  25 + }
  26 + return nil
  27 +}
  28 +
  29 +func NewRejectContractApplicationService(transactionContext *pgTransaction.TransactionContext) (*RejectContractApplicationService, error) {
  30 + //if transactionContext == nil {
  31 + // return nil, fmt.Errorf("transactionContext参数不能为nil")
  32 + //} else {
  33 + // return &RejectContractApplicationService{
  34 + // transactionContext: transactionContext,
  35 + // }, nil
  36 + //}
  37 + return &RejectContractApplicationService{}, nil
  38 +}