generateOrder中处理活动的情况
This commit is contained in:
@@ -9,6 +9,7 @@ import (
|
||||
|
||||
"git.rosy.net.cn/baseapi/utils"
|
||||
"git.rosy.net.cn/baseapi/utils/errlist"
|
||||
"git.rosy.net.cn/jx-callback/business/jxstore/cms"
|
||||
"git.rosy.net.cn/jx-callback/business/jxutils"
|
||||
"git.rosy.net.cn/jx-callback/business/jxutils/jxcontext"
|
||||
"git.rosy.net.cn/jx-callback/business/model"
|
||||
@@ -346,13 +347,26 @@ func generateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64
|
||||
for _, v := range skus {
|
||||
skuIDs = append(skuIDs, v.SkuID)
|
||||
}
|
||||
storeSkuList, err := dao.GetStoresSkusInfo(db, []int{jxOrder.StoreID}, skuIDs)
|
||||
|
||||
// storeSkuList, err := dao.GetStoresSkusInfo(db, []int{jxOrder.StoreID}, skuIDs)
|
||||
// if err != nil {
|
||||
// return nil, nil, err
|
||||
// }
|
||||
// storeSkuMap := make(map[int]*model.StoreSkuBind)
|
||||
// for _, v := range storeSkuList {
|
||||
// storeSkuMap[v.SkuID] = v
|
||||
// }
|
||||
storeSkuInfo, err := cms.GetStoreSkus(ctx, jxOrder.StoreID, skuIDs, true, "", true, false, map[string]interface{}{
|
||||
"actVendorID": model.VendorIDJX,
|
||||
}, 0, model.UnlimitedPageSize)
|
||||
if err != nil {
|
||||
return nil, nil, err
|
||||
}
|
||||
storeSkuMap := make(map[int]*model.StoreSkuBind)
|
||||
for _, v := range storeSkuList {
|
||||
storeSkuMap[v.SkuID] = v
|
||||
storeSkuMap := make(map[int]*cms.StoreSkuExt)
|
||||
for _, v1 := range storeSkuInfo.SkuNames {
|
||||
for _, v2 := range v1.Skus {
|
||||
storeSkuMap[v2.SkuID] = v2
|
||||
}
|
||||
}
|
||||
|
||||
skuList, err := dao.GetSkus(db, skuIDs, nil, nil, nil)
|
||||
@@ -380,9 +394,28 @@ func generateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64
|
||||
Weight: sku.Weight,
|
||||
Name: jxutils.ComposeSkuName(sku.Prefix, sku.Name, sku.Comment, sku.Unit, sku.SpecQuality, sku.SpecUnit, 0),
|
||||
}
|
||||
outJxOrder.Skus = append(outJxOrder.Skus, jxSku)
|
||||
outJxOrder.OrderPrice += int64(v.Count) * jxSku.SalePrice
|
||||
outJxOrder.Weight = v.Count * jxSku.Weight
|
||||
if storeSkuBind.ActPrice != 0 && storeSkuBind.ActPrice < storeSkuBind.JxPrice {
|
||||
jxSku.SalePrice = int64(storeSkuBind.ActPrice)
|
||||
jxSku.Count = 1
|
||||
|
||||
outJxOrder.Skus = append(outJxOrder.Skus, jxSku)
|
||||
outJxOrder.OrderPrice += int64(jxSku.Count) * jxSku.SalePrice
|
||||
outJxOrder.Weight = jxSku.Count * jxSku.Weight
|
||||
if v.Count-1 > 0 {
|
||||
jxSku2 := *jxSku
|
||||
jxSku.SalePrice = jxSku.Price
|
||||
jxSku.Count = v.Count - 1
|
||||
|
||||
jxSku = &jxSku2
|
||||
} else {
|
||||
jxSku = nil
|
||||
}
|
||||
}
|
||||
if jxSku != nil {
|
||||
outJxOrder.Skus = append(outJxOrder.Skus, jxSku)
|
||||
outJxOrder.OrderPrice += int64(jxSku.Count) * jxSku.SalePrice
|
||||
outJxOrder.Weight = jxSku.Count * jxSku.Weight
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user