From 9fa65e15a16e5521f5463fdf94380ba67d52a54f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Mon, 31 Aug 2020 11:44:43 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E6=8E=A5=E5=8F=A3=E5=90=88=E5=B9=B6?= =?UTF-8?q?=E8=AE=A2=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxcallback/orderman/order.go | 72 +++++++++++++-------------- 1 file changed, 34 insertions(+), 38 deletions(-) diff --git a/business/jxcallback/orderman/order.go b/business/jxcallback/orderman/order.go index bf62b7346..5e1d6bd6c 100644 --- a/business/jxcallback/orderman/order.go +++ b/business/jxcallback/orderman/order.go @@ -1388,51 +1388,47 @@ func MergeJdsOrders(ctx *jxcontext.Context, vendorOrderIDs []string) (vendorOrde } stores, _ := dao.GetStoreList(db, []int{storeID}, nil, nil, nil, "") store := stores[0] - order := &model.GoodsOrder{ - StoreID: storeID, - StoreName: store.Name, - VendorStoreID: storeMaps[0].VendorStoreID, - VendorOrderID: utils.Int64ToStr(utils.Str2Int64(orders[0].VendorOrderID2)*10000) + utils.Int2Str(99), - VendorOrderID2: strings.Join(orderIDs, ","), - Status: model.OrderStatusNew, - } + order := orders[0] + order.ID = 0 + order.VendorOrderID = utils.Int64ToStr(utils.Str2Int64(orders[0].VendorOrderID2)*10000) + utils.Int2Str(99) + order.VendorOrderID2 = strings.Join(orderIDs, ",") + order.Status = model.OrderStatusNew setJdsOrderSeq(order) - var ( - opentime1 = jxutils.JxOperationTime2TimeByDate(store.OpenTime1, time.Now()) - opentime2 = jxutils.JxOperationTime2TimeByDate(store.OpenTime2, time.Now()) - closetime1 = jxutils.JxOperationTime2TimeByDate(store.CloseTime1, time.Now()) - closetime2 = jxutils.JxOperationTime2TimeByDate(store.CloseTime2, time.Now()) - orderCreatedAt = time.Now() - ) - if store.OpenTime1 == 0 || store.CloseTime1 == 0 { - return "", fmt.Errorf("该门店没有营业时间,不能接单!门店:[%v]", storeID) - } - if !(orderCreatedAt.Sub(opentime1) >= 0 && orderCreatedAt.Sub(closetime1) <= 0) { - if store.OpenTime2 != 0 && store.CloseTime2 != 0 { - if !(orderCreatedAt.Sub(opentime2) >= 0 && orderCreatedAt.Sub(closetime2) <= 0) { + if order.BusinessType == model.BusinessTypeImmediate { + var ( + opentime1 = jxutils.JxOperationTime2TimeByDate(store.OpenTime1, order.CreatedAt) + opentime2 = jxutils.JxOperationTime2TimeByDate(store.OpenTime2, order.CreatedAt) + closetime1 = jxutils.JxOperationTime2TimeByDate(store.CloseTime1, order.CreatedAt) + closetime2 = jxutils.JxOperationTime2TimeByDate(store.CloseTime2, order.CreatedAt) + orderCreatedAt = order.CreatedAt + ) + if store.OpenTime1 == 0 || store.CloseTime1 == 0 { + return "", fmt.Errorf("该门店没有营业时间,不能接单!门店:[%v]", storeID) + } + if !(orderCreatedAt.Sub(opentime1) >= 0 && orderCreatedAt.Sub(closetime1) <= 0) { + if store.OpenTime2 != 0 && store.CloseTime2 != 0 { + if !(orderCreatedAt.Sub(opentime2) >= 0 && orderCreatedAt.Sub(closetime2) <= 0) { + if orderCreatedAt.Sub(opentime1) < 0 { + order.ExpectedDeliveredTime = opentime1 + order.BusinessType = model.BusinessTypeDingshida + } else { + if orderCreatedAt.Sub(opentime2) < 0 { + order.ExpectedDeliveredTime = opentime2 + } else { + order.ExpectedDeliveredTime = opentime1.AddDate(0, 0, 1) + } + order.BusinessType = model.BusinessTypeDingshida + } + } + } else { if orderCreatedAt.Sub(opentime1) < 0 { order.ExpectedDeliveredTime = opentime1 - order.BusinessType = model.BusinessTypeDingshida } else { - if orderCreatedAt.Sub(opentime2) < 0 { - order.ExpectedDeliveredTime = opentime2 - } else { - order.ExpectedDeliveredTime = opentime1.AddDate(0, 0, 1) - } - order.BusinessType = model.BusinessTypeDingshida + order.ExpectedDeliveredTime = opentime1.AddDate(0, 0, 1) } + order.BusinessType = model.BusinessTypeDingshida } - } else { - if orderCreatedAt.Sub(opentime1) < 0 { - order.ExpectedDeliveredTime = opentime1 - } else { - order.ExpectedDeliveredTime = opentime1.AddDate(0, 0, 1) - } - order.BusinessType = model.BusinessTypeDingshida } - } else { - order.BusinessType = model.BusinessTypeImmediate - order.ExpectedDeliveredTime = time.Now().Add(time.Hour) } //结算类型 if store.PayPercentage < 50 {