|
@@ -608,6 +608,8 @@ func (dividendsOrderService *DividendsOrderService) UpdateDividendsOrder(updateD |
|
@@ -608,6 +608,8 @@ func (dividendsOrderService *DividendsOrderService) UpdateDividendsOrder(updateD |
|
608
|
defer func() {
|
608
|
defer func() {
|
|
609
|
_ = transactionContext.RollbackTransaction()
|
609
|
_ = transactionContext.RollbackTransaction()
|
|
610
|
}()
|
610
|
}()
|
|
|
|
611
|
+
|
|
|
|
612
|
+ // 分红订单仓储初始化
|
|
611
|
var dividendsOrderRepository domain.DividendsOrderRepository
|
613
|
var dividendsOrderRepository domain.DividendsOrderRepository
|
|
612
|
if value, err := factory.CreateDividendsOrderRepository(map[string]interface{}{
|
614
|
if value, err := factory.CreateDividendsOrderRepository(map[string]interface{}{
|
|
613
|
"transactionContext": transactionContext,
|
615
|
"transactionContext": transactionContext,
|
|
@@ -616,23 +618,67 @@ func (dividendsOrderService *DividendsOrderService) UpdateDividendsOrder(updateD |
|
@@ -616,23 +618,67 @@ func (dividendsOrderService *DividendsOrderService) UpdateDividendsOrder(updateD |
|
616
|
} else {
|
618
|
} else {
|
|
617
|
dividendsOrderRepository = value
|
619
|
dividendsOrderRepository = value
|
|
618
|
}
|
620
|
}
|
|
|
|
621
|
+
|
|
|
|
622
|
+ // 订单时间转换
|
|
|
|
623
|
+ orderTimeInt, err := strconv.ParseInt(updateDividendsOrderCommand.OrderTime, 10, 64)
|
|
|
|
624
|
+ if err != nil {
|
|
|
|
625
|
+ return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "订单时间错误")
|
|
|
|
626
|
+ }
|
|
|
|
627
|
+ orderTime := utils.TransformTimestampToTime(orderTimeInt)
|
|
|
|
628
|
+
|
|
|
|
629
|
+ // 获取分红订单
|
|
619
|
dividendsOrder, err := dividendsOrderRepository.FindOne(map[string]interface{}{"dividendsOrderId": updateDividendsOrderCommand.DividendsOrderId})
|
630
|
dividendsOrder, err := dividendsOrderRepository.FindOne(map[string]interface{}{"dividendsOrderId": updateDividendsOrderCommand.DividendsOrderId})
|
|
620
|
if err != nil {
|
631
|
if err != nil {
|
|
621
|
return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
|
632
|
return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
|
|
622
|
}
|
633
|
}
|
|
|
|
634
|
+
|
|
|
|
635
|
+ // 新增订单产品
|
|
|
|
636
|
+ var orderGoods []*domain.OrderGood
|
|
|
|
637
|
+ var dividendsOrderAmount float64
|
|
|
|
638
|
+ for _, orderGood := range updateDividendsOrderCommand.OrderGoods {
|
|
|
|
639
|
+ // 产品ID类型转换
|
|
|
|
640
|
+ orderGoodId, err3 := strconv.ParseInt(orderGood.OrderGoodId, 10, 64)
|
|
|
|
641
|
+ if err3 != nil {
|
|
|
|
642
|
+ return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err3.Error())
|
|
|
|
643
|
+ }
|
|
|
|
644
|
+ orderGoods = append(orderGoods, &domain.OrderGood{
|
|
|
|
645
|
+ OrderGoodId: orderGoodId,
|
|
|
|
646
|
+ OrderGoodAmount: orderGood.OrderGoodAmount,
|
|
|
|
647
|
+ OrderGoodName: orderGood.OrderGoodName,
|
|
|
|
648
|
+ OrderGoodPrice: orderGood.OrderGoodPrice,
|
|
|
|
649
|
+ OrderGoodQuantity: orderGood.OrderGoodQuantity,
|
|
|
|
650
|
+ DividendsOrderNumber: dividendsOrder.DividendsOrderNumber,
|
|
|
|
651
|
+ DividendsReturnedOrderNumber: "",
|
|
|
|
652
|
+ CooperationContractNumber: orderGood.CooperationContractNumber,
|
|
|
|
653
|
+ OrderGoodExpense: orderGood.OrderGoodExpense,
|
|
|
|
654
|
+ OrgId: updateDividendsOrderCommand.OrgId,
|
|
|
|
655
|
+ CompanyId: updateDividendsOrderCommand.CompanyId,
|
|
|
|
656
|
+ CreatedAt: time.Time{},
|
|
|
|
657
|
+ UpdatedAt: time.Now(),
|
|
|
|
658
|
+ })
|
|
|
|
659
|
+ // 计算分红订单金额
|
|
|
|
660
|
+ dividendsOrderAmount = dividendsOrderAmount + orderGood.OrderGoodAmount
|
|
|
|
661
|
+ }
|
|
|
|
662
|
+
|
|
623
|
if dividendsOrder == nil {
|
663
|
if dividendsOrder == nil {
|
|
624
|
return nil, application.ThrowError(application.RES_NO_FIND_ERROR, fmt.Sprintf("%s", string(updateDividendsOrderCommand.DividendsOrderId)))
|
664
|
return nil, application.ThrowError(application.RES_NO_FIND_ERROR, fmt.Sprintf("%s", string(updateDividendsOrderCommand.DividendsOrderId)))
|
|
625
|
}
|
665
|
}
|
|
626
|
if err := dividendsOrder.Update(tool_funs.SimpleStructToMap(updateDividendsOrderCommand)); err != nil {
|
666
|
if err := dividendsOrder.Update(tool_funs.SimpleStructToMap(updateDividendsOrderCommand)); err != nil {
|
|
627
|
return nil, application.ThrowError(application.BUSINESS_ERROR, err.Error())
|
667
|
return nil, application.ThrowError(application.BUSINESS_ERROR, err.Error())
|
|
628
|
}
|
668
|
}
|
|
629
|
- if dividendsOrder, err := dividendsOrderRepository.Save(dividendsOrder); err != nil {
|
669
|
+
|
|
|
|
670
|
+ dividendsOrder.OrderTime = orderTime
|
|
|
|
671
|
+ dividendsOrder.DividendsOrderAmount = dividendsOrderAmount
|
|
|
|
672
|
+ dividendsOrder.Goods = orderGoods
|
|
|
|
673
|
+
|
|
|
|
674
|
+ // 保存订单更新
|
|
|
|
675
|
+ if dividendsOrderSaved, err := dividendsOrderRepository.Save(dividendsOrder); err != nil {
|
|
630
|
return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
|
676
|
return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
|
|
631
|
} else {
|
677
|
} else {
|
|
632
|
if err := transactionContext.CommitTransaction(); err != nil {
|
678
|
if err := transactionContext.CommitTransaction(); err != nil {
|
|
633
|
return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())
|
679
|
return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())
|
|
634
|
}
|
680
|
}
|
|
635
|
- return dividendsOrder, nil
|
681
|
+ return dividendsOrderSaved, nil
|
|
636
|
}
|
682
|
}
|
|
637
|
}
|
683
|
}
|
|
638
|
|
684
|
|