diff --git a/business/jxcallback/scheduler/defsch/defsch.go b/business/jxcallback/scheduler/defsch/defsch.go index 9ad119341..c8c374ccd 100644 --- a/business/jxcallback/scheduler/defsch/defsch.go +++ b/business/jxcallback/scheduler/defsch/defsch.go @@ -106,7 +106,8 @@ type WatchOrderInfo struct { timerList []*tTimerInfo - retryCount int // 失败后尝试的次数,调试阶段可能出现死循化,阻止这种情况发生 + retryCount int // 失败后尝试的次数,调试阶段可能出现死循化,阻止这种情况发生 + storeDetail *dao.StoreDetail } type StatusActionConfig struct { @@ -234,6 +235,10 @@ func init() { }, TimeoutAction: func(savedOrderInfo *WatchOrderInfo, bill *model.Waybill) (err error) { order := savedOrderInfo.order + storeDetail, err := dao.GetStoreDetail(dao.GetDB(), jxutils.GetSaleStoreIDFromOrder(order), order.VendorID) + if err == nil { + savedOrderInfo.storeDetail = storeDetail + } mobile := order.ConsigneeMobile if order.ConsigneeMobile2 != "" { mobile = order.ConsigneeMobile2 @@ -721,6 +726,26 @@ func (s *DefScheduler) createWaybillOn3rdProviders(savedOrderInfo *WatchOrderInf if !savedOrderInfo.isDeliveryCompetition { globals.SugarLogger.Debugf("createWaybillOn3rdProviders orderID:%s门店没有设置配送竞争", order.VendorOrderID) } + //TODO 2020-07-21 发单时间要在门店的营业时间内 + if savedOrderInfo.storeDetail.OpenTime1 != 0 && savedOrderInfo.storeDetail.CloseTime1 != 0 { + time1 := jxutils.JxOperationTime2TimeByDate(savedOrderInfo.storeDetail.OpenTime1, time.Now()) + time2 := jxutils.JxOperationTime2TimeByDate(savedOrderInfo.storeDetail.CloseTime1, time.Now()) + if time.Now().Sub(time1) < 0 || time.Now().Sub(time2) > 0 { + if savedOrderInfo.storeDetail.OpenTime2 != 0 && savedOrderInfo.storeDetail.CloseTime2 != 0 { + time3 := jxutils.JxOperationTime2TimeByDate(savedOrderInfo.storeDetail.OpenTime2, time.Now()) + time4 := jxutils.JxOperationTime2TimeByDate(savedOrderInfo.storeDetail.CloseTime2, time.Now()) + if time.Now().Sub(time3) < 0 || time.Now().Sub(time4) > 0 { + partner.CurOrderManager.OnOrderMsg(order, "自动创建三方运单失败", "不在门店营业时间范围内!") + globals.SugarLogger.Warnf("createWaybillOn3rdProviders return orderID: %s,不在门店营业时间范围内1!", order.VendorOrderID) + return err + } + } else { + partner.CurOrderManager.OnOrderMsg(order, "自动创建三方运单失败", "不在门店营业时间范围内!") + globals.SugarLogger.Warnf("createWaybillOn3rdProviders return orderID: %s,不在门店营业时间范围内2!", order.VendorOrderID) + return err + } + } + } globals.SugarLogger.Debugf("createWaybillOn3rdProviders, orderID:%s, status:%d, maxDeliveryFee:%d, excludeBill:%v", order.VendorOrderID, order.Status, maxDeliveryFee, excludeBill) if err = s.canOrderCreateWaybillNormally(order); err == nil { if (order.DeliveryFlag & model.OrderDeliveryFlagMaskScheduleDisabled) == 0 { diff --git a/business/jxstore/cms/sku.go b/business/jxstore/cms/sku.go index 8827652f6..03278f717 100644 --- a/business/jxstore/cms/sku.go +++ b/business/jxstore/cms/sku.go @@ -1239,6 +1239,9 @@ func UpdateSku(ctx *jxcontext.Context, skuID int, payload map[string]interface{} if maskValue&model.SyncFlagSpecMask != 0 { err = refreshStoreSkuPrice(ctx, db, skuID) } + if valid["status"] != nil { + SetStoreSkuSyncStatus2(db, nil, partner.GetSingleStoreVendorIDs(), []int{skuID}, model.SyncFlagSaleMask) + } } errList := errlist.New() errList.AddErr(err)