- AdjustOrder与PartRefundOrder中,为了区别活动与非活动SKU,需转入SubStoreID(即单品的活动ID)区分
This commit is contained in:
@@ -333,7 +333,7 @@ func (c *OrderManager) updateOrderSkuOtherInfo(order *model.GoodsOrder, db *dao.
|
||||
// } else
|
||||
if actStoreSkuMap != nil {
|
||||
if skuID := jxutils.GetSkuIDFromOrderSku(v); skuID > 0 /*&& v.StoreSubName != ""*/ {
|
||||
if actStoreSku := actStoreSkuMap.GetActStoreSku(jxStoreID, skuID, order.VendorID); actStoreSku != nil {
|
||||
if actStoreSku := actStoreSkuMap.GetActStoreSku(jxStoreID, skuID, order.VendorID); actStoreSku != nil && v.StoreSubName != "" {
|
||||
v.EarningPrice = actStoreSku.EarningPrice
|
||||
v.StoreSubID = actStoreSku.ActID
|
||||
}
|
||||
|
||||
@@ -504,22 +504,30 @@ func (c *OrderController) GetPrinterStatus() {
|
||||
})
|
||||
}
|
||||
|
||||
func skuList2Map(skuList []*model.OrderSku) (skuCount int, skuMap map[int]*model.OrderSku) {
|
||||
skuMap = make(map[int]*model.OrderSku)
|
||||
func skuList2Map(skuList []*model.OrderSku) (skuCount int, skuMap map[int64]*model.OrderSku) {
|
||||
skuMap = make(map[int64]*model.OrderSku)
|
||||
for _, sku := range skuList {
|
||||
skuCount += sku.Count
|
||||
skuID := jxutils.GetSkuIDFromOrderSku(sku)
|
||||
if sku.SkuID > 0 {
|
||||
if skuMap[skuID] == nil {
|
||||
skuMap[skuID] = sku
|
||||
index := jxutils.Combine2Int(skuID, sku.StoreSubID)
|
||||
if skuMap[index] == nil {
|
||||
skuMap[index] = sku
|
||||
} else {
|
||||
skuMap[skuID].Count += sku.Count
|
||||
skuMap[index].Count += sku.Count
|
||||
}
|
||||
}
|
||||
}
|
||||
return skuCount, skuMap
|
||||
}
|
||||
|
||||
func getSkuFromMap(skuMap map[int64]*model.OrderSku, skuID, actID int) (sku *model.OrderSku) {
|
||||
if sku = skuMap[jxutils.Combine2Int(skuID, actID)]; sku == nil && actID != 0 {
|
||||
sku = skuMap[jxutils.Combine2Int(skuID, 0)]
|
||||
}
|
||||
return sku
|
||||
}
|
||||
|
||||
// @Title 调整订单
|
||||
// @Description 调整订单
|
||||
// @Param token header string true "认证token"
|
||||
@@ -760,16 +768,18 @@ func fillSkuList(skuList, orderSkuList []*model.OrderSku) (isSame bool, err erro
|
||||
for _, sku := range skuList {
|
||||
skuCount2 += sku.Count
|
||||
skuID := jxutils.GetSkuIDFromOrderSku(sku)
|
||||
if orderSkuMap[skuID] == nil {
|
||||
actID := sku.StoreSubID
|
||||
sku2 := getSkuFromMap(orderSkuMap, skuID, actID)
|
||||
if sku2 == nil {
|
||||
err = fmt.Errorf("找不到SKU:%d", skuID)
|
||||
} else if sku.Count > orderSkuMap[skuID].Count {
|
||||
err = fmt.Errorf("SKU:%d调整数量:%d大于实际数量:%d", skuID, sku.Count, orderSkuMap[skuID].Count)
|
||||
} else if sku.Count > sku2.Count {
|
||||
err = fmt.Errorf("SKU:%d调整数量:%d大于实际数量:%d", skuID, sku.Count, sku2.Count)
|
||||
}
|
||||
if err != nil {
|
||||
break
|
||||
} else {
|
||||
count := sku.Count
|
||||
*sku = *orderSkuMap[skuID]
|
||||
*sku = *sku2
|
||||
sku.Count = count
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user