作者 陈志颖

fix:修复编辑分红退货单

@@ -629,10 +629,13 @@ func (dividendsOrderService *DividendsOrderService) UpdateDividendsOrder(updateD @@ -629,10 +629,13 @@ func (dividendsOrderService *DividendsOrderService) UpdateDividendsOrder(updateD
629 // 获取分红订单 629 // 获取分红订单
630 dividendsOrder, err := dividendsOrderRepository.FindOne(map[string]interface{}{"dividendsOrderId": updateDividendsOrderCommand.DividendsOrderId}) 630 dividendsOrder, err := dividendsOrderRepository.FindOne(map[string]interface{}{"dividendsOrderId": updateDividendsOrderCommand.DividendsOrderId})
631 if err != nil { 631 if err != nil {
632 - return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) 632 + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "分红订单不存在")
  633 + }
  634 + if dividendsOrder == nil {
  635 + return nil, application.ThrowError(application.RES_NO_FIND_ERROR, fmt.Sprintf("%s", string(updateDividendsOrderCommand.DividendsOrderId)))
633 } 636 }
634 637
635 - // 新增订单产品 638 + // 获取订单产品
636 var orderGoods []*domain.OrderGood 639 var orderGoods []*domain.OrderGood
637 var dividendsOrderAmount float64 640 var dividendsOrderAmount float64
638 for _, orderGood := range updateDividendsOrderCommand.OrderGoods { 641 for _, orderGood := range updateDividendsOrderCommand.OrderGoods {
@@ -660,9 +663,6 @@ func (dividendsOrderService *DividendsOrderService) UpdateDividendsOrder(updateD @@ -660,9 +663,6 @@ func (dividendsOrderService *DividendsOrderService) UpdateDividendsOrder(updateD
660 dividendsOrderAmount = dividendsOrderAmount + orderGood.OrderGoodAmount 663 dividendsOrderAmount = dividendsOrderAmount + orderGood.OrderGoodAmount
661 } 664 }
662 665
663 - if dividendsOrder == nil {  
664 - return nil, application.ThrowError(application.RES_NO_FIND_ERROR, fmt.Sprintf("%s", string(updateDividendsOrderCommand.DividendsOrderId)))  
665 - }  
666 if err := dividendsOrder.Update(tool_funs.SimpleStructToMap(updateDividendsOrderCommand)); err != nil { 666 if err := dividendsOrder.Update(tool_funs.SimpleStructToMap(updateDividendsOrderCommand)); err != nil {
667 return nil, application.ThrowError(application.BUSINESS_ERROR, err.Error()) 667 return nil, application.ThrowError(application.BUSINESS_ERROR, err.Error())
668 } 668 }
@@ -9,6 +9,8 @@ import ( @@ -9,6 +9,8 @@ import (
9 ) 9 )
10 10
11 type OrderGoods struct { 11 type OrderGoods struct {
  12 + // 退货单产品ID
  13 + OrderGoodId string `json:"orderGoodId"`
12 // 订单产品金额 14 // 订单产品金额
13 OrderGoodAmount float64 `cname:"订单产品金额" json:"orderGoodAmount"` 15 OrderGoodAmount float64 `cname:"订单产品金额" json:"orderGoodAmount"`
14 // 订单产品名称 16 // 订单产品名称
@@ -2,11 +2,9 @@ package command @@ -2,11 +2,9 @@ package command
2 2
3 import ( 3 import (
4 "fmt" 4 "fmt"
  5 + "github.com/beego/beego/v2/core/validation"
5 "reflect" 6 "reflect"
6 "strings" 7 "strings"
7 - "time"  
8 -  
9 - "github.com/beego/beego/v2/core/validation"  
10 ) 8 )
11 9
12 type UpdateDividendsReturnedOrderCommand struct { 10 type UpdateDividendsReturnedOrderCommand struct {
@@ -21,7 +19,7 @@ type UpdateDividendsReturnedOrderCommand struct { @@ -21,7 +19,7 @@ type UpdateDividendsReturnedOrderCommand struct {
21 // 备注 19 // 备注
22 Remarks string `cname:"备注" json:"remarks" valid:"Required"` 20 Remarks string `cname:"备注" json:"remarks" valid:"Required"`
23 // 退货日期 21 // 退货日期
24 - DividendsReturnedDate time.Time `cname:"退货日期" json:"dividendsReturnedDate" valid:"Required"` 22 + DividendsReturnedDate string `cname:"退货日期" json:"dividendsReturnedDate" valid:"Required"`
25 // 退货区域 23 // 退货区域
26 RegionName string `cname:"退货区域" json:"regionName,omitempty"` 24 RegionName string `cname:"退货区域" json:"regionName,omitempty"`
27 // 订单产品列表 25 // 订单产品列表
@@ -11,6 +11,7 @@ import ( @@ -11,6 +11,7 @@ import (
11 "gitlab.fjmaimaimai.com/allied-creation/allied-creation-cooperation/pkg/domain/service" 11 "gitlab.fjmaimaimai.com/allied-creation/allied-creation-cooperation/pkg/domain/service"
12 "gitlab.fjmaimaimai.com/allied-creation/allied-creation-cooperation/pkg/infrastructure/dao" 12 "gitlab.fjmaimaimai.com/allied-creation/allied-creation-cooperation/pkg/infrastructure/dao"
13 "gitlab.fjmaimaimai.com/allied-creation/allied-creation-cooperation/pkg/infrastructure/utils" 13 "gitlab.fjmaimaimai.com/allied-creation/allied-creation-cooperation/pkg/infrastructure/utils"
  14 + "strconv"
14 "time" 15 "time"
15 ) 16 )
16 17
@@ -543,6 +544,8 @@ func (dividendsReturnedOrderService *DividendsReturnedOrderService) UpdateDivide @@ -543,6 +544,8 @@ func (dividendsReturnedOrderService *DividendsReturnedOrderService) UpdateDivide
543 defer func() { 544 defer func() {
544 _ = transactionContext.RollbackTransaction() 545 _ = transactionContext.RollbackTransaction()
545 }() 546 }()
  547 +
  548 + // 分红退货单仓储初始化
546 var dividendsReturnedOrderRepository domain.DividendsReturnedOrderRepository 549 var dividendsReturnedOrderRepository domain.DividendsReturnedOrderRepository
547 if value, err := factory.CreateDividendsReturnedOrderRepository(map[string]interface{}{ 550 if value, err := factory.CreateDividendsReturnedOrderRepository(map[string]interface{}{
548 "transactionContext": transactionContext, 551 "transactionContext": transactionContext,
@@ -551,6 +554,15 @@ func (dividendsReturnedOrderService *DividendsReturnedOrderService) UpdateDivide @@ -551,6 +554,15 @@ func (dividendsReturnedOrderService *DividendsReturnedOrderService) UpdateDivide
551 } else { 554 } else {
552 dividendsReturnedOrderRepository = value 555 dividendsReturnedOrderRepository = value
553 } 556 }
  557 +
  558 + // 退货单时间转换
  559 + dividendsReturnedDateInt, err := strconv.ParseInt(updateDividendsReturnedOrderCommand.DividendsReturnedDate, 10, 64)
  560 + if err != nil {
  561 + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "订单时间错误")
  562 + }
  563 + dividendsReturnedDate := utils.TransformTimestampToTime(dividendsReturnedDateInt)
  564 +
  565 + // 获取分红退货单
554 dividendsReturnedOrder, err := dividendsReturnedOrderRepository.FindOne(map[string]interface{}{"dividendsReturnedOrderId": updateDividendsReturnedOrderCommand.DividendsReturnedOrderId}) 566 dividendsReturnedOrder, err := dividendsReturnedOrderRepository.FindOne(map[string]interface{}{"dividendsReturnedOrderId": updateDividendsReturnedOrderCommand.DividendsReturnedOrderId})
555 if err != nil { 567 if err != nil {
556 return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) 568 return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
@@ -558,16 +570,51 @@ func (dividendsReturnedOrderService *DividendsReturnedOrderService) UpdateDivide @@ -558,16 +570,51 @@ func (dividendsReturnedOrderService *DividendsReturnedOrderService) UpdateDivide
558 if dividendsReturnedOrder == nil { 570 if dividendsReturnedOrder == nil {
559 return nil, application.ThrowError(application.RES_NO_FIND_ERROR, fmt.Sprintf("%s", string(updateDividendsReturnedOrderCommand.DividendsReturnedOrderId))) 571 return nil, application.ThrowError(application.RES_NO_FIND_ERROR, fmt.Sprintf("%s", string(updateDividendsReturnedOrderCommand.DividendsReturnedOrderId)))
560 } 572 }
  573 +
  574 + // 获取订单产品
  575 + var orderGoods []*domain.OrderGood
  576 + var dividendsReturnedOrderAmount float64
  577 + for _, orderGood := range updateDividendsReturnedOrderCommand.OrderGoods {
  578 + // 产品ID类型转换
  579 + orderGoodId, err3 := strconv.ParseInt(orderGood.OrderGoodId, 10, 64)
  580 + if err3 != nil {
  581 + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err3.Error())
  582 + }
  583 + orderGoods = append(orderGoods, &domain.OrderGood{
  584 + OrderGoodId: orderGoodId,
  585 + OrderGoodAmount: orderGood.OrderGoodAmount,
  586 + OrderGoodName: orderGood.OrderGoodName,
  587 + OrderGoodPrice: orderGood.OrderGoodPrice,
  588 + OrderGoodQuantity: orderGood.OrderGoodQuantity,
  589 + DividendsOrderNumber: "",
  590 + DividendsReturnedOrderNumber: dividendsReturnedOrder.DividendsReturnedOrderNumber,
  591 + CooperationContractNumber: orderGood.CooperationContractNumber,
  592 + OrderGoodExpense: orderGood.OrderGoodExpense,
  593 + OrgId: updateDividendsReturnedOrderCommand.OrgId,
  594 + CompanyId: updateDividendsReturnedOrderCommand.CompanyId,
  595 + CreatedAt: time.Time{},
  596 + UpdatedAt: time.Now(),
  597 + })
  598 + // 计算分红退货单金额
  599 + dividendsReturnedOrderAmount = dividendsReturnedOrderAmount + orderGood.OrderGoodAmount
  600 + }
  601 +
561 if err := dividendsReturnedOrder.Update(tool_funs.SimpleStructToMap(updateDividendsReturnedOrderCommand)); err != nil { 602 if err := dividendsReturnedOrder.Update(tool_funs.SimpleStructToMap(updateDividendsReturnedOrderCommand)); err != nil {
562 return nil, application.ThrowError(application.BUSINESS_ERROR, err.Error()) 603 return nil, application.ThrowError(application.BUSINESS_ERROR, err.Error())
563 } 604 }
564 - if dividendsReturnedOrder, err := dividendsReturnedOrderRepository.Save(dividendsReturnedOrder); err != nil { 605 +
  606 + dividendsReturnedOrder.DividendsReturnedDate = dividendsReturnedDate
  607 + dividendsReturnedOrder.DividendsReturnedOrderRefund = dividendsReturnedOrderAmount
  608 + dividendsReturnedOrder.Goods = orderGoods
  609 +
  610 + // 保存分红退货单更新
  611 + if dividendsReturnedOrderSaved, err := dividendsReturnedOrderRepository.Save(dividendsReturnedOrder); err != nil {
565 return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) 612 return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
566 } else { 613 } else {
567 if err := transactionContext.CommitTransaction(); err != nil { 614 if err := transactionContext.CommitTransaction(); err != nil {
568 return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) 615 return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())
569 } 616 }
570 - return dividendsReturnedOrder, nil 617 + return dividendsReturnedOrderSaved, nil
571 } 618 }
572 } 619 }
573 620
@@ -72,9 +72,6 @@ func (dividendsReturnedOrder *DividendsReturnedOrder) Update(data map[string]int @@ -72,9 +72,6 @@ func (dividendsReturnedOrder *DividendsReturnedOrder) Update(data map[string]int
72 if dividendsReturnedCustomerName, ok := data["dividendsReturnedCustomerName"]; ok { 72 if dividendsReturnedCustomerName, ok := data["dividendsReturnedCustomerName"]; ok {
73 dividendsReturnedOrder.DividendsReturnedCustomerName = dividendsReturnedCustomerName.(string) 73 dividendsReturnedOrder.DividendsReturnedCustomerName = dividendsReturnedCustomerName.(string)
74 } 74 }
75 - if dividendsReturnedDate, ok := data["dividendsReturnedDate"]; ok {  
76 - dividendsReturnedOrder.DividendsReturnedDate = dividendsReturnedDate.(time.Time)  
77 - }  
78 if regionNumber, ok := data["regionNumber"]; ok { 75 if regionNumber, ok := data["regionNumber"]; ok {
79 dividendsReturnedOrder.Region.RegionNumber = regionNumber.(string) 76 dividendsReturnedOrder.Region.RegionNumber = regionNumber.(string)
80 } 77 }
@@ -181,7 +181,7 @@ func (repository *DividendsReturnedOrderRepository) Save(dividendsReturnedOrder @@ -181,7 +181,7 @@ func (repository *DividendsReturnedOrderRepository) Save(dividendsReturnedOrder
181 // 获取分红退货订单产品 181 // 获取分红退货订单产品
182 var orderGoodsFetched []*models.OrderGood 182 var orderGoodsFetched []*models.OrderGood
183 orderGoodsQuery := tx.Model(&orderGoodsFetched) 183 orderGoodsQuery := tx.Model(&orderGoodsFetched)
184 - if err := orderGoodsQuery.Where("dividends_return_order_number = ?", dividendsReturnedOrder.DividendsReturnedOrderNumber).Select(); err != nil { 184 + if err := orderGoodsQuery.Where("dividends_returned_order_number = ?", dividendsReturnedOrder.DividendsReturnedOrderNumber).Select(); err != nil {
185 return nil, err 185 return nil, err
186 } 186 }
187 187