- change savedwaybill2map.

This commit is contained in:
gazebo
2018-07-30 23:10:33 +08:00
parent 2933392731
commit 16db9af499

View File

@@ -36,8 +36,8 @@ type WatchOrderInfo struct {
storeDeliveryType int storeDeliveryType int
isNeed3rdDelivery bool isNeed3rdDelivery bool
order *model.GoodsOrder // order里的信息是保持更新的 order *model.GoodsOrder // order里的信息是保持更新的
waybills []*model.Waybill // 这个waybills里的状态信息是不真实的只使用id相关的信息 waybills map[int]*model.Waybill // 这个waybills里的状态信息是不真实的只使用id相关的信息
timerStatusType int // 0表示订单1表示运单 timerStatusType int // 0表示订单1表示运单
timerStatus int timerStatus int
@@ -325,25 +325,17 @@ func (s *DefScheduler) OnWaybillStatusChanged(bill *model.Waybill, isPending boo
} }
func (s *DefScheduler) addWaybill2Map(savedOrderInfo *WatchOrderInfo, bill *model.Waybill) { func (s *DefScheduler) addWaybill2Map(savedOrderInfo *WatchOrderInfo, bill *model.Waybill) {
for _, v := range savedOrderInfo.waybills { if _, ok := savedOrderInfo.waybills[bill.WaybillVendorID]; !ok {
if v.VendorWaybillID == bill.VendorWaybillID && v.WaybillVendorID == bill.WaybillVendorID { if bill.WaybillVendorID != bill.OrderVendorID { // 购买平台重复发相同号的新运单是正常的,京东就是
*v = *bill // 同步数据 globals.SugarLogger.Warnf("addWaybill2Map bill:%v already exists", bill)
// 如果已经存在,不做处理
if bill.WaybillVendorID != bill.OrderVendorID { // 购买平台重复发相同号的新运单是正常的,京东就是
globals.SugarLogger.Warnf("addWaybill2Map bill:%v already exists", bill)
}
return
} }
} }
savedOrderInfo.waybills = append(savedOrderInfo.waybills, bill) savedOrderInfo.waybills[bill.WaybillVendorID] = bill
} }
func (s *DefScheduler) removeWaybillFromMap(savedOrderInfo *WatchOrderInfo, bill *model.Waybill) { func (s *DefScheduler) removeWaybillFromMap(savedOrderInfo *WatchOrderInfo, bill *model.Waybill) {
for k, v := range savedOrderInfo.waybills { if _, ok := savedOrderInfo.waybills[bill.WaybillVendorID]; ok {
if v.VendorWaybillID == bill.VendorWaybillID && v.WaybillVendorID == bill.WaybillVendorID { delete(savedOrderInfo.waybills, bill.WaybillVendorID)
savedOrderInfo.waybills = append(savedOrderInfo.waybills[0:k], savedOrderInfo.waybills[k+1:]...)
break
}
} }
} }
@@ -356,7 +348,7 @@ func (s *DefScheduler) createWaybillOn3rdProviders(savedOrderInfo *WatchOrderInf
if savedOrderInfo.retryCount <= maxWaybillRetryCount { if savedOrderInfo.retryCount <= maxWaybillRetryCount {
successCount := 0 successCount := 0
for vendorID := range s.DeliveryPlatformHandlers { for vendorID := range s.DeliveryPlatformHandlers {
if (excludeBill == nil || vendorID != excludeBill.WaybillVendorID) && s.DeliveryPlatformHandlers[vendorID].Use4CreateWaybill { if savedOrderInfo.waybills[vendorID] == nil && (excludeBill == nil || vendorID != excludeBill.WaybillVendorID) && s.DeliveryPlatformHandlers[vendorID].Use4CreateWaybill {
if err = s.CreateWaybill(vendorID, order); err == nil { if err = s.CreateWaybill(vendorID, order); err == nil {
successCount++ successCount++
} }