- 调整单修正实际支付价
This commit is contained in:
@@ -7,6 +7,7 @@ import (
|
|||||||
"math"
|
"math"
|
||||||
"math/rand"
|
"math/rand"
|
||||||
"regexp"
|
"regexp"
|
||||||
|
"sort"
|
||||||
"strings"
|
"strings"
|
||||||
"sync"
|
"sync"
|
||||||
"time"
|
"time"
|
||||||
@@ -31,6 +32,25 @@ type SyncMapWithTimeout struct {
|
|||||||
timers sync.Map
|
timers sync.Map
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type OrderSkuList []*model.OrderSku
|
||||||
|
|
||||||
|
func (l OrderSkuList) Len() int {
|
||||||
|
return len(l)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Less reports whether the element with
|
||||||
|
// index i should sort before the element with index j.
|
||||||
|
func (l OrderSkuList) Less(i, j int) bool {
|
||||||
|
return l[i].SalePrice < l[j].SalePrice
|
||||||
|
}
|
||||||
|
|
||||||
|
// Swap swaps the elements with indexes i and j.
|
||||||
|
func (l OrderSkuList) Swap(i, j int) {
|
||||||
|
tmp := l[i]
|
||||||
|
l[i] = l[j]
|
||||||
|
l[j] = tmp
|
||||||
|
}
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
rand.Seed(time.Now().Unix())
|
rand.Seed(time.Now().Unix())
|
||||||
routinePool = routinepool.New(1000, 1000)
|
routinePool = routinepool.New(1000, 1000)
|
||||||
@@ -489,6 +509,7 @@ func RemoveSkuFromOrder(order *model.GoodsOrder, removedSkuList []*model.OrderSk
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
var skuList []*model.OrderSku
|
var skuList []*model.OrderSku
|
||||||
|
sort.Sort(sort.Reverse(OrderSkuList(order.Skus)))
|
||||||
for _, sku := range order.Skus {
|
for _, sku := range order.Skus {
|
||||||
var removedSku *model.OrderSku
|
var removedSku *model.OrderSku
|
||||||
if skuID := GetSkuIDFromOrderSku(sku); skuID > 0 {
|
if skuID := GetSkuIDFromOrderSku(sku); skuID > 0 {
|
||||||
|
|||||||
@@ -99,6 +99,7 @@ func (p *PurchaseHandler) GetOrder4PartRefund(vendorOrderID string) (order *mode
|
|||||||
order = p.Map2Order(result1)
|
order = p.Map2Order(result1)
|
||||||
if err2 == nil {
|
if err2 == nil {
|
||||||
order.Skus = p.partRefund2OrderDetailSkuList(utils.Interface2String(result2["order_id"]), result2["order_detail"])
|
order.Skus = p.partRefund2OrderDetailSkuList(utils.Interface2String(result2["order_id"]), result2["order_detail"])
|
||||||
|
order.ActualPayPrice = utils.MustInterface2Int64(result2["user_fee"])
|
||||||
jxutils.RefreshOrderSkuRelated(order)
|
jxutils.RefreshOrderSkuRelated(order)
|
||||||
} else if err2Ext, ok := err2.(*utils.ErrorWithCode); !ok || err2Ext.IntCode() != ebaiapi.ErrOrderIsNotPartRefund {
|
} else if err2Ext, ok := err2.(*utils.ErrorWithCode); !ok || err2Ext.IntCode() != ebaiapi.ErrOrderIsNotPartRefund {
|
||||||
err = err2
|
err = err2
|
||||||
|
|||||||
@@ -261,12 +261,14 @@ func (c *PurchaseHandler) onOrderMsg(msg *mtwmapi.CallbackMsg) (response *mtwmap
|
|||||||
if err = err2; err == nil {
|
if err = err2; err == nil {
|
||||||
var removedSkuList []*model.OrderSku
|
var removedSkuList []*model.OrderSku
|
||||||
for _, mtwmSku := range skuList {
|
for _, mtwmSku := range skuList {
|
||||||
|
order.ActualPayPrice -= jxutils.StandardPrice2Int(mtwmSku.RefundPrice) * int64(mtwmSku.Count)
|
||||||
removedSkuList = append(removedSkuList, &model.OrderSku{
|
removedSkuList = append(removedSkuList, &model.OrderSku{
|
||||||
SkuID: int(utils.Str2Int64WithDefault(mtwmSku.SkuID, 0)),
|
SkuID: int(utils.Str2Int64WithDefault(mtwmSku.SkuID, 0)),
|
||||||
Count: mtwmSku.Count,
|
Count: mtwmSku.Count,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
order = jxutils.RemoveSkuFromOrder(order, removedSkuList)
|
order = jxutils.RemoveSkuFromOrder(order, removedSkuList)
|
||||||
|
jxutils.RefreshOrderSkuRelated(order)
|
||||||
err = partner.CurOrderManager.OnOrderAdjust(order, status)
|
err = partner.CurOrderManager.OnOrderAdjust(order, status)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user