generateOrder允许空商品列表
This commit is contained in:
@@ -314,7 +314,7 @@ func generateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64
|
|||||||
}
|
}
|
||||||
deliveryAddress = addressList[0]
|
deliveryAddress = addressList[0]
|
||||||
if distance := jxutils.Point2StoreDistance(deliveryAddress.Lng, deliveryAddress.Lat, storeDetail.Lng, storeDetail.Lat, storeDetail.DeliveryRangeType, storeDetail.DeliveryRange); distance == 0 {
|
if distance := jxutils.Point2StoreDistance(deliveryAddress.Lng, deliveryAddress.Lat, storeDetail.Lng, storeDetail.Lat, storeDetail.DeliveryRangeType, storeDetail.DeliveryRange); distance == 0 {
|
||||||
return nil, nil, fmt.Errorf("送货地址:%s不在门店%s的配送范围", deliveryAddress.DetailAddress, storeDetail.Name)
|
return nil, nil, fmt.Errorf("当前送货地址不在门店%s的配送范围", storeDetail.Name)
|
||||||
}
|
}
|
||||||
|
|
||||||
// 营业状态及时间检查
|
// 营业状态及时间检查
|
||||||
@@ -339,23 +339,20 @@ func generateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64
|
|||||||
return nil, nil, fmt.Errorf("门店:%s不在营业时间范围", storeDetail.Name)
|
return nil, nil, fmt.Errorf("门店:%s不在营业时间范围", storeDetail.Name)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
outJxOrder2 := *jxOrder
|
||||||
|
outJxOrder2.Skus = nil
|
||||||
|
outJxOrder2.OrderPrice = 0
|
||||||
|
outJxOrder2.Weight = 0
|
||||||
|
outJxOrder = &outJxOrder2
|
||||||
|
outJxOrder.StoreName = storeDetail.Name
|
||||||
|
|
||||||
skus := formalizeSkus(jxOrder.Skus)
|
skus := formalizeSkus(jxOrder.Skus)
|
||||||
if len(skus) == 0 {
|
// 允许空商品列表(一般用于测试配送地址,门店信息是否合适)
|
||||||
return nil, nil, fmt.Errorf("商品列表为空")
|
if len(skus) > 0 {
|
||||||
}
|
|
||||||
var skuIDs []int
|
var skuIDs []int
|
||||||
for _, v := range skus {
|
for _, v := range skus {
|
||||||
skuIDs = append(skuIDs, v.SkuID)
|
skuIDs = append(skuIDs, v.SkuID)
|
||||||
}
|
}
|
||||||
|
|
||||||
// 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{}{
|
storeSkuInfo, err := cms.GetStoreSkus(ctx, jxOrder.StoreID, skuIDs, true, "", true, false, map[string]interface{}{
|
||||||
"actVendorID": model.VendorIDJX,
|
"actVendorID": model.VendorIDJX,
|
||||||
}, 0, model.UnlimitedPageSize)
|
}, 0, model.UnlimitedPageSize)
|
||||||
@@ -378,12 +375,6 @@ func generateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64
|
|||||||
skuMap[v.ID] = v
|
skuMap[v.ID] = v
|
||||||
}
|
}
|
||||||
|
|
||||||
outJxOrder2 := *jxOrder
|
|
||||||
outJxOrder2.Skus = nil
|
|
||||||
outJxOrder2.OrderPrice = 0
|
|
||||||
outJxOrder2.Weight = 0
|
|
||||||
outJxOrder = &outJxOrder2
|
|
||||||
outJxOrder.StoreName = storeDetail.Name
|
|
||||||
for _, v := range skus {
|
for _, v := range skus {
|
||||||
if storeSkuBind := storeSkuMap[v.SkuID]; storeSkuBind != nil {
|
if storeSkuBind := storeSkuMap[v.SkuID]; storeSkuBind != nil {
|
||||||
if sku := skuMap[v.SkuID]; sku != nil {
|
if sku := skuMap[v.SkuID]; sku != nil {
|
||||||
@@ -421,12 +412,18 @@ func generateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
sort.Sort(JxSkuInfoList(outJxOrder.Skus))
|
sort.Sort(JxSkuInfoList(outJxOrder.Skus))
|
||||||
if outJxOrder.FreightPrice, _, err = delivery.CalculateDeliveryFee(dao.GetDB(), jxOrder.StoreID, "",
|
outJxOrder.FreightPrice, _, err = delivery.CalculateDeliveryFee(dao.GetDB(), jxOrder.StoreID, "",
|
||||||
jxutils.StandardCoordinate2Int(deliveryAddress.Lng), jxutils.StandardCoordinate2Int(deliveryAddress.Lat),
|
jxutils.StandardCoordinate2Int(deliveryAddress.Lng), jxutils.StandardCoordinate2Int(deliveryAddress.Lat),
|
||||||
model.CoordinateTypeMars, outJxOrder.Weight, checkTime); err == nil {
|
model.CoordinateTypeMars, outJxOrder.Weight, checkTime)
|
||||||
|
} else {
|
||||||
outJxOrder.FreightPrice = 0
|
outJxOrder.FreightPrice = 0
|
||||||
|
}
|
||||||
|
if err == nil {
|
||||||
outJxOrder.TotalPrice = outJxOrder.OrderPrice + outJxOrder.FreightPrice
|
outJxOrder.TotalPrice = outJxOrder.OrderPrice + outJxOrder.FreightPrice
|
||||||
outJxOrder.ActualPayPrice = outJxOrder.TotalPrice
|
outJxOrder.ActualPayPrice = outJxOrder.TotalPrice
|
||||||
|
} else {
|
||||||
|
outJxOrder = nil
|
||||||
|
deliveryAddress = nil
|
||||||
}
|
}
|
||||||
return outJxOrder, deliveryAddress, err
|
return outJxOrder, deliveryAddress, err
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user