- PartRefundOrder与AdjustOrder针对removedList为所有商品的情况特殊处理
This commit is contained in:
@@ -503,9 +503,10 @@ func (c *OrderController) GetPrinterStatus() {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
func skuList2Map(skuList []*model.OrderSku) (skuMap map[int]*model.OrderSku) {
|
func skuList2Map(skuList []*model.OrderSku) (skuCount int, skuMap map[int]*model.OrderSku) {
|
||||||
skuMap = make(map[int]*model.OrderSku)
|
skuMap = make(map[int]*model.OrderSku)
|
||||||
for _, sku := range skuList {
|
for _, sku := range skuList {
|
||||||
|
skuCount += sku.Count
|
||||||
skuID := jxutils.GetSkuIDFromOrderSku(sku)
|
skuID := jxutils.GetSkuIDFromOrderSku(sku)
|
||||||
if sku.SkuID > 0 {
|
if sku.SkuID > 0 {
|
||||||
if skuMap[skuID] == nil {
|
if skuMap[skuID] == nil {
|
||||||
@@ -515,7 +516,7 @@ func skuList2Map(skuList []*model.OrderSku) (skuMap map[int]*model.OrderSku) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return skuMap
|
return skuCount, skuMap
|
||||||
}
|
}
|
||||||
|
|
||||||
// @Title 调整订单
|
// @Title 调整订单
|
||||||
@@ -536,8 +537,13 @@ func (c *OrderController) AdjustOrder() {
|
|||||||
var order *model.GoodsOrder
|
var order *model.GoodsOrder
|
||||||
order, err = partner.CurOrderManager.LoadOrder(params.VendorOrderID, params.VendorID)
|
order, err = partner.CurOrderManager.LoadOrder(params.VendorOrderID, params.VendorID)
|
||||||
if err == nil {
|
if err == nil {
|
||||||
if err = fillSkuList(skuList, order.Skus); err == nil {
|
removedAll, err2 := fillSkuList(skuList, order.Skus)
|
||||||
err = defsch.FixedScheduler.AdjustOrder(params.Ctx, order, skuList, params.Reason)
|
if err = err2; err == nil {
|
||||||
|
if removedAll {
|
||||||
|
err = fmt.Errorf("至少要保留一个商品")
|
||||||
|
} else {
|
||||||
|
err = defsch.FixedScheduler.AdjustOrder(params.Ctx, order, skuList, params.Reason)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -733,8 +739,13 @@ func (c *OrderController) PartRefundOrder() {
|
|||||||
var order *model.GoodsOrder
|
var order *model.GoodsOrder
|
||||||
order, err = partner.CurOrderManager.LoadOrder(params.VendorOrderID, params.VendorID)
|
order, err = partner.CurOrderManager.LoadOrder(params.VendorOrderID, params.VendorID)
|
||||||
if err == nil {
|
if err == nil {
|
||||||
if err = fillSkuList(skuList, order.Skus); err == nil {
|
removedAll, err2 := fillSkuList(skuList, order.Skus)
|
||||||
err = defsch.FixedScheduler.PartRefundOrder(params.Ctx, order, skuList, params.Reason)
|
if err = err2; err == nil {
|
||||||
|
if removedAll {
|
||||||
|
err = defsch.FixedScheduler.RefundOrder(params.Ctx, order, params.Reason)
|
||||||
|
} else {
|
||||||
|
err = defsch.FixedScheduler.PartRefundOrder(params.Ctx, order, skuList, params.Reason)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -742,10 +753,11 @@ func (c *OrderController) PartRefundOrder() {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
func fillSkuList(skuList, orderSkuList []*model.OrderSku) (err error) {
|
func fillSkuList(skuList, orderSkuList []*model.OrderSku) (isSame bool, err error) {
|
||||||
orderSkuMap := skuList2Map(orderSkuList)
|
skuCount, orderSkuMap := skuList2Map(orderSkuList)
|
||||||
removeSkuMap := skuList2Map(skuList)
|
skuCount2 := 0
|
||||||
for _, sku := range removeSkuMap {
|
for _, sku := range skuList {
|
||||||
|
skuCount2 += sku.Count
|
||||||
skuID := jxutils.GetSkuIDFromOrderSku(sku)
|
skuID := jxutils.GetSkuIDFromOrderSku(sku)
|
||||||
if orderSkuMap[skuID] == nil {
|
if orderSkuMap[skuID] == nil {
|
||||||
err = fmt.Errorf("找不到SKU:%d", skuID)
|
err = fmt.Errorf("找不到SKU:%d", skuID)
|
||||||
@@ -760,7 +772,7 @@ func fillSkuList(skuList, orderSkuList []*model.OrderSku) (err error) {
|
|||||||
sku.Count = count
|
sku.Count = count
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return err
|
return skuCount == skuCount2, err
|
||||||
}
|
}
|
||||||
|
|
||||||
// @Title 商家主动发起全额退款售后
|
// @Title 商家主动发起全额退款售后
|
||||||
|
|||||||
Reference in New Issue
Block a user