From af4438c9e672334930800352f7d635dbba74d04e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Sun, 28 Jun 2020 10:22:58 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=A2=E5=8D=95=E8=BD=AC=E7=A7=BB=E5=92=8C?= =?UTF-8?q?=E9=97=A8=E5=BA=97=E8=90=A5=E4=B8=9A=E6=97=B6=E9=97=B4=E8=8C=83?= =?UTF-8?q?=E5=9B=B4=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxcallback/orderman/order.go | 41 +++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/business/jxcallback/orderman/order.go b/business/jxcallback/orderman/order.go index 5f981e63b..c1ed054de 100644 --- a/business/jxcallback/orderman/order.go +++ b/business/jxcallback/orderman/order.go @@ -1126,6 +1126,7 @@ func result2Orders(ctx *jxcontext.Context, result *jdshopapi.AllOrdersResult) (o if jdsOrder.OrderStatus == jdshopapi.JdsOrderStatusPause { order.BusinessType = model.BusinessTypeDingshida order.ExpectedDeliveredTime = utils.Str2Time(orderDetail.ExpectedDeliveredTime) + order.PickDeadline = order.ExpectedDeliveredTime.Add(-time.Hour) } else if jdsOrder.OrderStatus == jdshopapi.JdsOrderStatusWaittingExport { order.ExpectedDeliveredTime = order.OrderCreatedAt.Add(time.Hour) order.BusinessType = model.BusinessTypeImmediate @@ -1230,6 +1231,46 @@ func TransferJdsOrder(ctx *jxcontext.Context, vendorOrderID string, storeID int) order.StoreID = storeID order.StoreName = stores[0].Name order.VendorStoreID = storeMaps[0].VendorStoreID + //如果是立即达的订单,要判断一下送达时间是否在门店营业时间范围内 + //若没有,则要把这个订单变成定时达,预计送达时间改为门店的营业时间 + //如果门店没有营业时间,则直接报错 + if order.BusinessType == model.BusinessTypeImmediate { + store := stores[0] + var ( + opentime1 = jxutils.JxOperationTime2TimeByDate(store.OpenTime1, order.ExpectedDeliveredTime) + opentime2 = jxutils.JxOperationTime2TimeByDate(store.OpenTime2, order.ExpectedDeliveredTime) + closetime1 = jxutils.JxOperationTime2TimeByDate(store.CloseTime1, order.ExpectedDeliveredTime) + closetime2 = jxutils.JxOperationTime2TimeByDate(store.CloseTime2, order.ExpectedDeliveredTime) + expectedTime = order.ExpectedDeliveredTime + ) + if store.OpenTime1 == 0 || store.CloseTime1 == 0 { + return "", fmt.Errorf("该门店没有营业时间,不能接单!门店:[%v]", storeID) + } + if !(expectedTime.Sub(opentime1) >= 0 && expectedTime.Sub(closetime1) <= 0) { + if store.OpenTime2 != 0 && store.CloseTime2 != 0 { + if !(expectedTime.Sub(opentime2) >= 0 && expectedTime.Sub(closetime2) <= 0) { + if expectedTime.Sub(opentime1) < 0 { + order.ExpectedDeliveredTime = opentime1 + order.BusinessType = model.BusinessTypeDingshida + } else { + if expectedTime.Sub(opentime2) < 0 { + order.ExpectedDeliveredTime = opentime2 + } else { + order.ExpectedDeliveredTime = opentime1.AddDate(0, 0, 1) + } + order.BusinessType = model.BusinessTypeDingshida + } + } + } else { + if expectedTime.Sub(opentime1) < 0 { + order.ExpectedDeliveredTime = opentime1 + } else { + order.ExpectedDeliveredTime = opentime1.AddDate(0, 0, 1) + } + order.BusinessType = model.BusinessTypeDingshida + } + } + } } else { return "", fmt.Errorf("未查询到该门店对应的平台信息!门店:[%v]", order.StoreID) }