修改bug

This commit is contained in:
邹宗楠
2022-03-15 11:46:51 +08:00
parent 39a3a636db
commit eaca4b3275
10 changed files with 107 additions and 60 deletions

View File

@@ -749,25 +749,34 @@ func (s *DefScheduler) OnWaybillStatusChanged(bill *model.Waybill, isPending boo
}
func (s *DefScheduler) cancelWaybillNotInStoreOpentime(savedOrderInfo *WatchOrderInfo, bill *model.Waybill) (err error) {
if savedOrderInfo != nil {
//TODO 2020-09-07 不在门店的营业时间内取消运单
//TODO 2021-07-26 实时取门店营业时间,运营可能在订单来之后修改门店营业时间
storeDetail, _ := partner.CurOrderManager.LoadStoreDetail(jxutils.GetSaleStoreIDFromOrder(savedOrderInfo.order), savedOrderInfo.order.VendorID)
if storeDetail != nil {
if storeDetail.OpenTime1 != 0 && storeDetail.CloseTime1 != 0 {
time1 := jxutils.JxOperationTime2TimeByDate(storeDetail.OpenTime1, time.Now())
time2 := jxutils.JxOperationTime2TimeByDate(storeDetail.CloseTime1, time.Now())
if time.Now().Sub(time1) < 0 || time.Now().Sub(time2.Add(time.Minute*30)) > 0 {
if storeDetail.OpenTime2 != 0 && storeDetail.CloseTime2 != 0 {
time3 := jxutils.JxOperationTime2TimeByDate(storeDetail.OpenTime2, time.Now())
time4 := jxutils.JxOperationTime2TimeByDate(storeDetail.CloseTime2, time.Now())
if time.Now().Sub(time3) < 0 || time.Now().Sub(time4.Add(time.Minute*30)) > 0 {
s.CancelWaybill(bill, partner.CancelWaybillReasonNotAcceptIntime, partner.CancelWaybillReasonNotInStoreOpenTime)
}
} else {
s.CancelWaybill(bill, partner.CancelWaybillReasonNotAcceptIntime, partner.CancelWaybillReasonNotInStoreOpenTime)
}
if savedOrderInfo == nil {
return nil
}
//TODO 2020-09-07 不在门店的营业时间内取消运单
//TODO 2021-07-26 实时取门店营业时间,运营可能在订单来之后修改门店营业时间
storeDetail, _ := partner.CurOrderManager.LoadStoreDetail(jxutils.GetSaleStoreIDFromOrder(savedOrderInfo.order), savedOrderInfo.order.VendorID)
if storeDetail == nil {
return nil
}
// 系统手动发单,不做营业时间校验
if storeDetail.SendOrderType == 1 {
return nil
}
if storeDetail.OpenTime1 != 0 && storeDetail.CloseTime1 != 0 {
time1 := jxutils.JxOperationTime2TimeByDate(storeDetail.OpenTime1, time.Now())
time2 := jxutils.JxOperationTime2TimeByDate(storeDetail.CloseTime1, time.Now())
if time.Now().Sub(time1) < 0 || time.Now().Sub(time2.Add(time.Minute*30)) > 0 { // 营业时间
if storeDetail.OpenTime2 != 0 && storeDetail.CloseTime2 != 0 { // 休息时间
time3 := jxutils.JxOperationTime2TimeByDate(storeDetail.OpenTime2, time.Now())
time4 := jxutils.JxOperationTime2TimeByDate(storeDetail.CloseTime2, time.Now())
if time.Now().Sub(time3) < 0 || time.Now().Sub(time4.Add(time.Minute*30)) > 0 {
s.CancelWaybill(bill, partner.CancelWaybillReasonNotAcceptIntime, partner.CancelWaybillReasonNotInStoreOpenTime)
}
} else {
s.CancelWaybill(bill, partner.CancelWaybillReasonNotAcceptIntime, partner.CancelWaybillReasonNotInStoreOpenTime)
}
}
}

View File

@@ -194,13 +194,15 @@ func (s *DefScheduler) CreateWaybillOnProviders4SavedOrder(ctx *jxcontext.Contex
func (s *DefScheduler) CreateWaybillOnProvidersEx(ctx *jxcontext.Context, vendorOrderID string, vendorID int, courierVendorIDs []int, forceCreate bool, maxDeliveryFee int64) (bills []*model.Waybill, errCode string, err error) {
savedOrderInfo := s.loadSavedOrderByID(vendorOrderID, vendorID, true)
if savedOrderInfo != nil {
savedOrderInfo.storeDetail.SendOrderType = 1 // 设置为手动创建订单
order := savedOrderInfo.order
//1表示为门店发单需要验证门店账户余额情况
if errCode, err = s.CheckStoreBalance(ctx, order, courierVendorIDs); err != nil {
return nil, errCode, err
}
}
jxutils.CallMsgHandler(func() {
billFunc := func() {
bills, err = func() (bills []*model.Waybill, err error) {
userName := ctx.GetUserName()
globals.SugarLogger.Debugf("CreateWaybillOnProvidersEx orderID:%s userName:%s", vendorOrderID, userName)
@@ -235,7 +237,9 @@ func (s *DefScheduler) CreateWaybillOnProvidersEx(ctx *jxcontext.Context, vendor
globals.SugarLogger.Infof("CreateWaybillOnProvidersEx orderID:%s userName:%s error:%v", vendorOrderID, userName, err)
return bills, err
}()
}, jxutils.ComposeUniversalOrderID(vendorOrderID, vendorID))
}
jxutils.CallMsgHandler(billFunc, jxutils.ComposeUniversalOrderID(vendorOrderID, vendorID))
return bills, errCode, err
}