订单转移和门店营业时间范围问题
This commit is contained in:
@@ -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)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user