- AdjustOrder与PartRefundOrder中,为了区别活动与非活动SKU,需转入SubStoreID(即单品的活动ID)区分

This commit is contained in:
gazebo
2019-08-12 17:17:12 +08:00
parent 20362a4efe
commit c5a5f4777b
2 changed files with 20 additions and 10 deletions

View File

@@ -333,7 +333,7 @@ func (c *OrderManager) updateOrderSkuOtherInfo(order *model.GoodsOrder, db *dao.
// } else // } else
if actStoreSkuMap != nil { if actStoreSkuMap != nil {
if skuID := jxutils.GetSkuIDFromOrderSku(v); skuID > 0 /*&& v.StoreSubName != ""*/ { 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.EarningPrice = actStoreSku.EarningPrice
v.StoreSubID = actStoreSku.ActID v.StoreSubID = actStoreSku.ActID
} }

View File

@@ -504,22 +504,30 @@ func (c *OrderController) GetPrinterStatus() {
}) })
} }
func skuList2Map(skuList []*model.OrderSku) (skuCount int, skuMap map[int]*model.OrderSku) { func skuList2Map(skuList []*model.OrderSku) (skuCount int, skuMap map[int64]*model.OrderSku) {
skuMap = make(map[int]*model.OrderSku) skuMap = make(map[int64]*model.OrderSku)
for _, sku := range skuList { for _, sku := range skuList {
skuCount += sku.Count skuCount += sku.Count
skuID := jxutils.GetSkuIDFromOrderSku(sku) skuID := jxutils.GetSkuIDFromOrderSku(sku)
if sku.SkuID > 0 { if sku.SkuID > 0 {
if skuMap[skuID] == nil { index := jxutils.Combine2Int(skuID, sku.StoreSubID)
skuMap[skuID] = sku if skuMap[index] == nil {
skuMap[index] = sku
} else { } else {
skuMap[skuID].Count += sku.Count skuMap[index].Count += sku.Count
} }
} }
} }
return skuCount, skuMap 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 调整订单 // @Title 调整订单
// @Description 调整订单 // @Description 调整订单
// @Param token header string true "认证token" // @Param token header string true "认证token"
@@ -760,16 +768,18 @@ func fillSkuList(skuList, orderSkuList []*model.OrderSku) (isSame bool, err erro
for _, sku := range skuList { for _, sku := range skuList {
skuCount2 += sku.Count skuCount2 += sku.Count
skuID := jxutils.GetSkuIDFromOrderSku(sku) 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) err = fmt.Errorf("找不到SKU:%d", skuID)
} else if sku.Count > orderSkuMap[skuID].Count { } else if sku.Count > sku2.Count {
err = fmt.Errorf("SKU:%d调整数量:%d大于实际数量:%d", skuID, sku.Count, orderSkuMap[skuID].Count) err = fmt.Errorf("SKU:%d调整数量:%d大于实际数量:%d", skuID, sku.Count, sku2.Count)
} }
if err != nil { if err != nil {
break break
} else { } else {
count := sku.Count count := sku.Count
*sku = *orderSkuMap[skuID] *sku = *sku2
sku.Count = count sku.Count = count
} }
} }