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