dyps cancelwaybill
This commit is contained in:
@@ -241,27 +241,20 @@ func (c *BaseScheduler) CreateWaybill(platformVendorID int, order *model.GoodsOr
|
|||||||
|
|
||||||
func (c *BaseScheduler) CancelWaybill(bill *model.Waybill, cancelReasonID int, cancelReason string) (err error) {
|
func (c *BaseScheduler) CancelWaybill(bill *model.Waybill, cancelReasonID int, cancelReason string) (err error) {
|
||||||
// 部分快递平台在取消成功后有时会不发运单取消消息过来(比如达达,904200512000442),为避免二次取消报错,添加状态判断
|
// 部分快递平台在取消成功后有时会不发运单取消消息过来(比如达达,904200512000442),为避免二次取消报错,添加状态判断
|
||||||
globals.SugarLogger.Debugf("BaseScheduler CancelWaybill bill======%s", utils.Format4Output(bill, false))
|
|
||||||
if c.IsReallyCallPlatformAPI && bill.OrderVendorID != bill.WaybillVendorID && bill.Status != model.WaybillStatusCanceled {
|
if c.IsReallyCallPlatformAPI && bill.OrderVendorID != bill.WaybillVendorID && bill.Status != model.WaybillStatusCanceled {
|
||||||
globals.SugarLogger.Debugf("bill.OrderVendorID====%d, bill.WaybillVendorID====%d , bill.Status====%d", bill.OrderVendorID, bill.WaybillVendorID, bill.Status)
|
|
||||||
globals.SugarLogger.Debugf("handlerInfo====%s", utils.Format4Output(partner.GetDeliveryPlatformFromVendorID(bill.WaybillVendorID), false))
|
|
||||||
if handlerInfo := partner.GetDeliveryPlatformFromVendorID(bill.WaybillVendorID); handlerInfo != nil {
|
if handlerInfo := partner.GetDeliveryPlatformFromVendorID(bill.WaybillVendorID); handlerInfo != nil {
|
||||||
if err = utils.CallFuncLogErrorWithInfo(func() error {
|
if err = utils.CallFuncLogErrorWithInfo(func() error {
|
||||||
if err := handlerInfo.Handler.CancelWaybill(bill, cancelReasonID, cancelReason); err != nil {
|
if err := handlerInfo.Handler.CancelWaybill(bill, cancelReasonID, cancelReason); err != nil {
|
||||||
globals.SugarLogger.Debugf("BaseScheduler CancelWaybill err========%v", err)
|
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
order, _ := partner.CurOrderManager.LoadOrder(bill.VendorOrderID, bill.OrderVendorID)
|
order, _ := partner.CurOrderManager.LoadOrder(bill.VendorOrderID, bill.OrderVendorID)
|
||||||
globals.SugarLogger.Debugf("BaseScheduler CancelWaybill order=========%s", utils.Format4Output(order, false))
|
|
||||||
return orderman.ResetCreateWaybillFee(nil, order)
|
return orderman.ResetCreateWaybillFee(nil, order)
|
||||||
}, "CancelWaybill bill:%v", bill); err == nil {
|
}, "CancelWaybill bill:%v", bill); err == nil {
|
||||||
bill.Status = model.WaybillStatusCanceled
|
bill.Status = model.WaybillStatusCanceled
|
||||||
bill.DeliveryFlag |= model.WaybillDeliveryFlagMaskActiveCancel
|
bill.DeliveryFlag |= model.WaybillDeliveryFlagMaskActiveCancel
|
||||||
globals.SugarLogger.Debugf("bill.Status===========%d,bill.DeliveryFlag===========%d", bill.Status, bill.DeliveryFlag)
|
|
||||||
_, err = dao.UpdateEntity(nil, bill, "Status", "DeliveryFlag")
|
_, err = dao.UpdateEntity(nil, bill, "Status", "DeliveryFlag")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
globals.SugarLogger.Debugf("BaseScheduler CancelWaybill return bill.VendorWaybillID=%s,err==========%v", bill.VendorWaybillID, err)
|
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1005,6 +1005,15 @@ func (s *DefScheduler) solutionJdsOrder(bill *model.Waybill) (err error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (s *DefScheduler) cancelOtherWaybills(savedOrderInfo *WatchOrderInfo, bill2Keep *model.Waybill, cancelReasonID int, cancelReason string) (err error) {
|
func (s *DefScheduler) cancelOtherWaybills(savedOrderInfo *WatchOrderInfo, bill2Keep *model.Waybill, cancelReasonID int, cancelReason string) (err error) {
|
||||||
|
//特殊处理抖音运力取消
|
||||||
|
if savedOrderInfo.order.VendorID == model.VendorIDDD {
|
||||||
|
savedOrderInfo.waybills[0] = &model.Waybill{
|
||||||
|
VendorOrderID: savedOrderInfo.order.VendorOrderID,
|
||||||
|
VendorWaybillID: savedOrderInfo.order.VendorWaybillID,
|
||||||
|
WaybillVendorID: model.VendorIDDYPS,
|
||||||
|
OrderVendorID: model.VendorIDDD,
|
||||||
|
}
|
||||||
|
}
|
||||||
for _, v := range savedOrderInfo.waybills {
|
for _, v := range savedOrderInfo.waybills {
|
||||||
if v.Status < model.WaybillStatusEndBegin &&
|
if v.Status < model.WaybillStatusEndBegin &&
|
||||||
!model.IsWaybillPlatformOwn(v) &&
|
!model.IsWaybillPlatformOwn(v) &&
|
||||||
|
|||||||
@@ -418,10 +418,6 @@ func (s *DefScheduler) CancelAll3rdWaybills(ctx *jxcontext.Context, vendorOrderI
|
|||||||
err = func() (err error) {
|
err = func() (err error) {
|
||||||
// 取消三方运单,取消各平台单号信息,间隔一段时间后定时任务重新调度
|
// 取消三方运单,取消各平台单号信息,间隔一段时间后定时任务重新调度
|
||||||
savedOrderInfo := s.loadSavedOrderByID(vendorOrderID, vendorID, true)
|
savedOrderInfo := s.loadSavedOrderByID(vendorOrderID, vendorID, true)
|
||||||
if vendorID == model.VendorIDDD {
|
|
||||||
globals.SugarLogger.Debugf("CancelAll3rdWaybills vendorOrderID=%s vendorID=%d", vendorOrderID, vendorID)
|
|
||||||
globals.SugarLogger.Debugf("CancelAll3rdWaybills savedOrderInfo=%s", utils.Format4Output(savedOrderInfo, false))
|
|
||||||
}
|
|
||||||
if savedOrderInfo != nil {
|
if savedOrderInfo != nil {
|
||||||
err = s.cancelOtherWaybills(savedOrderInfo, nil, partner.CancelWaybillReasonOther, partner.CancelWaybillReasonStrActive)
|
err = s.cancelOtherWaybills(savedOrderInfo, nil, partner.CancelWaybillReasonOther, partner.CancelWaybillReasonStrActive)
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -106,13 +106,12 @@ func (c *DeliveryHandler) CreateWaybill(order *model.GoodsOrder, maxDeliveryFee
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (c *DeliveryHandler) CancelWaybill(bill *model.Waybill, cancelReasonID int, cancelReason string) (err error) {
|
func (c *DeliveryHandler) CancelWaybill(bill *model.Waybill, cancelReasonID int, cancelReason string) (err error) {
|
||||||
globals.SugarLogger.Debugf("进入DYPS CancelWaybill")
|
params := make(map[string]interface{}, 0)
|
||||||
if localOrder, _, err := dao.GetOrders(dao.GetDB(), []int64{utils.Str2Int64(bill.VendorOrderID)}, false, false, "", "", false, []int{0}, false, "", nil, 0, 0); err != nil {
|
params["vendorOrderID"] = bill.VendorOrderID
|
||||||
|
if localOrder, _, err := dao.GetOrders(dao.GetDB(), nil, false, false, "", "", false, []int{0}, false, "", params, 0, 0); err != nil {
|
||||||
return errors.New("取消运单时,获取平台门店ID失败,请重试")
|
return errors.New("取消运单时,获取平台门店ID失败,请重试")
|
||||||
} else {
|
} else {
|
||||||
globals.SugarLogger.Debugf("localOrder=%s", utils.Format4Output(localOrder, false))
|
|
||||||
if err = getAPI(bill.VendorOrgCode).ShopOrderDispatcher(utils.Str2Int64(localOrder[0].VendorStoreID), bill.VendorOrderID, tiktok_api.DispatcherFeeTypeCancel); err != nil {
|
if err = getAPI(bill.VendorOrgCode).ShopOrderDispatcher(utils.Str2Int64(localOrder[0].VendorStoreID), bill.VendorOrderID, tiktok_api.DispatcherFeeTypeCancel); err != nil {
|
||||||
globals.SugarLogger.Debugf("抖音配送取消运力失败:%v", err)
|
|
||||||
return fmt.Errorf("抖音配送取消运力失败:%v", err)
|
return fmt.Errorf("抖音配送取消运力失败:%v", err)
|
||||||
}
|
}
|
||||||
bill.Status = model.WaybillStatusCanceled
|
bill.Status = model.WaybillStatusCanceled
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ import (
|
|||||||
func Init() {
|
func Init() {
|
||||||
// set default database
|
// set default database
|
||||||
// orm.RegisterDataBase(aliasName, driverName, dataSource, params)
|
// orm.RegisterDataBase(aliasName, driverName, dataSource, params)
|
||||||
|
|
||||||
orm.RegisterDataBase("default", "mysql", web.AppConfig.DefaultString("dbConnectStr", ""))
|
orm.RegisterDataBase("default", "mysql", web.AppConfig.DefaultString("dbConnectStr", ""))
|
||||||
orm.RegisterDataBase("c4beta", "mysql", "ubuntu:WebServer@1@tcp(111.231.218.230:3306)/jxd_dev_0?charset=utf8mb4&loc=Local&parseTime=true")
|
orm.RegisterDataBase("c4beta", "mysql", "ubuntu:WebServer@1@tcp(111.231.218.230:3306)/jxd_dev_0?charset=utf8mb4&loc=Local&parseTime=true")
|
||||||
orm.RegisterDataBase("api", "mysql", "root:WebServer@1@tcp(127.0.0.1:3306)/api?charset=utf8mb4&loc=Local&parseTime=true")
|
orm.RegisterDataBase("api", "mysql", "root:WebServer@1@tcp(127.0.0.1:3306)/api?charset=utf8mb4&loc=Local&parseTime=true")
|
||||||
@@ -24,6 +25,7 @@ func Init() {
|
|||||||
//orm.RegisterDataBase("default", "mysql", "root:123456@tcp(127.0.0.1:3306)/jxd_dev_0?charset=utf8mb4&loc=Local&parseTime=true")
|
//orm.RegisterDataBase("default", "mysql", "root:123456@tcp(127.0.0.1:3306)/jxd_dev_0?charset=utf8mb4&loc=Local&parseTime=true")
|
||||||
//orm.RegisterDataBase("c4beta", "mysql", "root:123456@tcp(127.0.0.1:3306)/jxd_dev_0?charset=utf8mb4&loc=Local&parseTime=true")
|
//orm.RegisterDataBase("c4beta", "mysql", "root:123456@tcp(127.0.0.1:3306)/jxd_dev_0?charset=utf8mb4&loc=Local&parseTime=true")
|
||||||
//orm.RegisterDataBase("api", "mysql", "root:123456@tcp(127.0.0.1:3306)/api?charset=utf8mb4&loc=Local&parseTime=true")
|
//orm.RegisterDataBase("api", "mysql", "root:123456@tcp(127.0.0.1:3306)/api?charset=utf8mb4&loc=Local&parseTime=true")
|
||||||
|
|
||||||
// 开启sql打印
|
// 开启sql打印
|
||||||
//orm.Debug = true
|
//orm.Debug = true
|
||||||
|
|
||||||
|
|||||||
@@ -102,6 +102,7 @@ func Init() {
|
|||||||
|
|
||||||
SugarLogger.Infof("globals RunMode=%s", web.BConfig.RunMode)
|
SugarLogger.Infof("globals RunMode=%s", web.BConfig.RunMode)
|
||||||
ReallyCallPlatformAPI = (web.BConfig.RunMode != "dev" && web.BConfig.RunMode != "test")
|
ReallyCallPlatformAPI = (web.BConfig.RunMode != "dev" && web.BConfig.RunMode != "test")
|
||||||
|
//ReallyCallPlatformAPI = true//本地测试用
|
||||||
ReallySendWeixinMsg = ReallyCallPlatformAPI && IsProductEnv()
|
ReallySendWeixinMsg = ReallyCallPlatformAPI && IsProductEnv()
|
||||||
|
|
||||||
AliKey = web.AppConfig.DefaultString("aliKey", "")
|
AliKey = web.AppConfig.DefaultString("aliKey", "")
|
||||||
|
|||||||
Reference in New Issue
Block a user