作者 陈志颖

fix:修复分红预算批量取消

... ... @@ -188,6 +188,22 @@ func (dividendsEstimateService *DividendsEstimateService) CancelDividendsEstimat
cancelDividendsEstimateService = value
}
// 用户REST服务初始化
var userService service.UserService
if value, err := factory.CreateUserService(map[string]interface{}{}); err != nil {
return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
} else {
userService = value
}
// 获取操作人
var operator *domain.User
if data, err := userService.OperatorFrom(cancelDividendsEstimateCommand.CompanyId, cancelDividendsEstimateCommand.OrgId, cancelDividendsEstimateCommand.UserId); err != nil {
return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "获取操作人失败")
} else {
operator = data
}
// 分红预算仓储初始化
var dividendsEstimateRepository domain.DividendsEstimateRepository
if value, err := factory.CreateDividendsEstimateRepository(map[string]interface{}{
... ... @@ -235,7 +251,7 @@ func (dividendsEstimateService *DividendsEstimateService) CancelDividendsEstimat
}
// 取消分红预算
if dividendsEstimatesCanceled, err := cancelDividendsEstimateService.CancelEstimate([]int64{cancelDividendsEstimateCommand.DividendsEstimateId}, cancelDividendsEstimateCommand.UserId); err != nil {
if dividendsEstimatesCanceled, err := cancelDividendsEstimateService.CancelEstimate([]int64{cancelDividendsEstimateCommand.DividendsEstimateId}, operator); err != nil {
return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
} else {
if err := transactionContext.CommitTransaction(); err != nil {
... ... @@ -271,6 +287,22 @@ func (dividendsEstimateService *DividendsEstimateService) BatchCancelDividendsEs
cancelDividendsEstimateService = value
}
// 用户REST服务初始化
var userService service.UserService
if value, err := factory.CreateUserService(map[string]interface{}{}); err != nil {
return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
} else {
userService = value
}
// 获取操作人
var operator *domain.User
if data, err := userService.OperatorFrom(batchCancelEstimateCommand.CompanyId, batchCancelEstimateCommand.OrgId, batchCancelEstimateCommand.UserId); err != nil {
return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "获取操作人失败")
} else {
operator = data
}
// 分红预算仓储初始化
var dividendsEstimateRepository domain.DividendsEstimateRepository
if value, err := factory.CreateDividendsEstimateRepository(map[string]interface{}{
... ... @@ -324,7 +356,7 @@ func (dividendsEstimateService *DividendsEstimateService) BatchCancelDividendsEs
}
}
// 批量取消分红预算单
if dividendsEstimatesCanceled, err := cancelDividendsEstimateService.CancelEstimate(dividendsEstimateIds, batchCancelEstimateCommand.UserId); err != nil {
if dividendsEstimatesCanceled, err := cancelDividendsEstimateService.CancelEstimate(dividendsEstimateIds, operator); err != nil {
return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
} else {
if err := transactionContext.CommitTransaction(); err != nil {
... ...
... ... @@ -7,5 +7,5 @@ import (
type CancelDividendsEstimate interface {
coreDomain.DomainEventPublisher
CancelEstimate(dividendsEstimateIds []int64, operatorId int64) ([]*domain.DividendsEstimate, error)
CancelEstimate(dividendsEstimateIds []int64, operator *domain.User) ([]*domain.DividendsEstimate, error)
}
... ...
... ... @@ -2,11 +2,9 @@ package domain_service
import (
"fmt"
"github.com/linmadan/egglib-go/core/application"
coreDomain "github.com/linmadan/egglib-go/core/domain"
pgTransaction "github.com/linmadan/egglib-go/transaction/pg"
"gitlab.fjmaimaimai.com/allied-creation/allied-creation-cooperation/pkg/domain"
"gitlab.fjmaimaimai.com/allied-creation/allied-creation-cooperation/pkg/domain/service"
"gitlab.fjmaimaimai.com/allied-creation/allied-creation-cooperation/pkg/infrastructure/repository"
"gitlab.fjmaimaimai.com/allied-creation/allied-creation-cooperation/pkg/infrastructure/utils"
)
... ... @@ -16,11 +14,10 @@ type CancelDividendsEstimateService struct {
transactionContext *pgTransaction.TransactionContext
}
func (domainService *CancelDividendsEstimateService) CancelEstimate(dividendsEstimateIds []int64, operatorId int64) ([]*domain.DividendsEstimate, error) {
func (domainService *CancelDividendsEstimateService) CancelEstimate(dividendsEstimateIds []int64, operator *domain.User) ([]*domain.DividendsEstimate, error) {
var dividendsEstimateRepository domain.DividendsEstimateRepository // 分红预算单仓储
var dividendsOrderRepository domain.DividendsOrderRepository // 分红订单仓储
var dividendsReturnedOrderRepository domain.DividendsReturnedOrderRepository // 分红退货单仓储
var userService service.UserService // 用户服务
// 分红预算单仓储初始化
if repo, err := repository.NewDividendsEstimateRepository(domainService.transactionContext); err != nil {
... ... @@ -40,18 +37,6 @@ func (domainService *CancelDividendsEstimateService) CancelEstimate(dividendsEst
} else {
dividendsReturnedOrderRepository = repo
}
// 用户服务初始化
if value, err := NewUserService(); err != nil {
userService = value
}
// 获取操作人
var operator *domain.User
if data, err := userService.OperatorFrom(0, 0, operatorId); err != nil {
return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
} else {
operator = data
}
// 获取分红预算单
if count, dividendsEstimates, err := dividendsEstimateRepository.Find(map[string]interface{}{
... ...
... ... @@ -232,7 +232,7 @@ func (repository *DividendsEstimateRepository) UpdateMany(dividendsEstimates []*
if _, err := tx.Model(&dividendsEstimateModels).WherePK().Update(); err != nil {
return nil, err
}
dividendsEstimatesUpdated := []*domain.DividendsEstimate{}
var dividendsEstimatesUpdated []*domain.DividendsEstimate
for _, dividendsEstimateModel := range dividendsEstimateModels {
if dividendsEstimate, err := transform.TransformToDividendsEstimateDomainModelFromPgModels(dividendsEstimateModel); err != nil {
return dividendsEstimates, err
... ...
... ... @@ -272,7 +272,33 @@ func (repository *DividendsOrderRepository) Save(dividendsOrder *domain.Dividend
}
func (repository *DividendsOrderRepository) UpdateMany(dividendsOrders []*domain.DividendsOrder) ([]*domain.DividendsOrder, error) {
panic("implement me")
tx := repository.transactionContext.PgTx
var dividendsOrderModels []*models.DividendsOrder
for _, dividendsOrder := range dividendsOrders {
dividendsOrderModels = append(dividendsOrderModels, &models.DividendsOrder{
DividendsOrderId: dividendsOrder.DividendsOrderId,
DividendsOrderNumber: dividendsOrder.DividendsOrderNumber,
DividendsOriginalOrderNum: dividendsOrder.DividendsOriginalOrderNum,
DividendsOrderAmount: dividendsOrder.DividendsOrderAmount,
OrderTime: dividendsOrder.OrderTime,
DividendTime: dividendsOrder.DividendTime,
DividendStatus: dividendsOrder.DividendStatus,
Region: dividendsOrder.Region,
CustomerName: dividendsOrder.CustomerName,
Org: dividendsOrder.Org,
Company: dividendsOrder.Company,
CreatedAt: dividendsOrder.CreatedAt,
DeletedAt: dividendsOrder.DeletedAt,
UpdatedAt: time.Now(),
OperateTime: dividendsOrder.OperateTime,
Operator: dividendsOrder.Operator,
Remarks: dividendsOrder.Remarks,
})
}
if _, err := tx.Model(&dividendsOrderModels).WherePK().Update(); err != nil {
return nil, err
}
return dividendsOrders, nil
}
func (repository *DividendsOrderRepository) Remove(dividendsOrder *domain.DividendsOrder) (*domain.DividendsOrder, error) {
... ...
... ... @@ -271,8 +271,36 @@ func (repository *DividendsReturnedOrderRepository) Save(dividendsReturnedOrder
return dividendsReturnedOrder, nil
}
func (repository *DividendsReturnedOrderRepository) UpdateMany(dividendsReturnedOrder []*domain.DividendsReturnedOrder) ([]*domain.DividendsReturnedOrder, error) {
panic("implement me")
func (repository *DividendsReturnedOrderRepository) UpdateMany(dividendsReturnedOrders []*domain.DividendsReturnedOrder) ([]*domain.DividendsReturnedOrder, error) {
tx := repository.transactionContext.PgTx
var dividendsReturnedOrderModels []*models.DividendsReturnedOrder
for _, dividendsReturnedOrder := range dividendsReturnedOrders {
dividendsReturnedOrderModels = append(dividendsReturnedOrderModels, &models.DividendsReturnedOrder{
DividendsReturnedOrderId: dividendsReturnedOrder.DividendsReturnedOrderId,
DividendsReturnedOrderNumber: dividendsReturnedOrder.DividendsOrderNumber,
DividendsReturnedOrderRefund: dividendsReturnedOrder.DividendsReturnedOrderRefund,
OriginalOrderNum: dividendsReturnedOrder.OriginalOrderNum,
DividendsOrderNumber: dividendsReturnedOrder.DividendsReturnedOrderNumber,
DividendsReturnedCustomerName: dividendsReturnedOrder.DividendsReturnedCustomerName,
OrderTime: dividendsReturnedOrder.OrderTime,
DividendsReturnedDate: dividendsReturnedOrder.DividendsReturnedDate,
Region: dividendsReturnedOrder.Region,
Remarks: dividendsReturnedOrder.Remarks,
DividendStatus: dividendsReturnedOrder.DividendStatus,
DividendTime: dividendsReturnedOrder.DividendTime,
Org: dividendsReturnedOrder.Org,
Company: dividendsReturnedOrder.Company,
CreatedAt: dividendsReturnedOrder.CreatedAt,
DeletedAt: dividendsReturnedOrder.DeletedAt,
UpdatedAt: time.Now(),
Operator: dividendsReturnedOrder.Operator,
OperateTime: dividendsReturnedOrder.OperateTime,
})
}
if _, err := tx.Model(&dividendsReturnedOrderModels).WherePK().Update(); err != nil {
return nil, err
}
return dividendsReturnedOrders, nil
}
func (repository *DividendsReturnedOrderRepository) Remove(dividendsReturnedOrder *domain.DividendsReturnedOrder) (*domain.DividendsReturnedOrder, error) {
... ...