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 {