- 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
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
}

View File

@@ -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
}
}