- all call CallFuncLogError add order info

- callLegacyMsgHandler, callNewMsgHandler and generateLegacyJxOrder config
- call legacy lefted msg handler in new process(elm urge order and bad comment on jd)
This commit is contained in:
gazebo
2018-07-22 13:45:16 +08:00
parent dcdf432ac9
commit 0cb34fe089
14 changed files with 213 additions and 127 deletions

View File

@@ -5,7 +5,9 @@ import (
"fmt"
"time"
"git.rosy.net.cn/baseapi/utils"
"git.rosy.net.cn/jx-callback/business/model"
"git.rosy.net.cn/jx-callback/globals"
)
var (
@@ -25,15 +27,15 @@ type StatusActionConfig struct {
}
type PurchasePlatformHandler interface {
GetOrder(vendorOrderID string) (order *model.GoodsOrder, err error)
GetStatusActionConfig(status int) *StatusActionConfig
AcceptOrRefuseOrder(order *model.GoodsOrder, isAcceptIt bool) (err error)
PickedUpGoods(order *model.GoodsOrder) (err error)
Swtich2SelfDeliver(vendorOrderID string) (err error)
Swtich2SelfDeliver(order *model.GoodsOrder) (err error)
SelfDeliverDelievering(order *model.GoodsOrder) (err error)
SelfDeliverDelievered(order *model.GoodsOrder) (err error)
GetStatusActionConfig(status int) *StatusActionConfig
}
type DeliveryPlatformHandler interface {
@@ -43,7 +45,7 @@ type DeliveryPlatformHandler interface {
type OrderManager interface {
LoadOrder(vendorOrderID string, vendorID int) (order *model.GoodsOrder, err error)
OnOrderStatusChanged(status *model.OrderStatus) (err error) // 此消息是否使用还不确定
// OnOrderStatusChanged(status *model.OrderStatus) (err error) // 此消息是否使用还不确定
UpdateWaybillVendorID(bill *model.Waybill) (err error)
}
@@ -64,6 +66,7 @@ type BaseScheduler struct {
CurOrderManager OrderManager
PurchasePlatformHandlers map[int]PurchasePlatformHandler
DeliveryPlatformHandlers map[int]DeliveryPlatformHandler
IsReallyCallPlatformAPI bool
}
func (c *BaseScheduler) Init() {
@@ -103,6 +106,75 @@ func (c *BaseScheduler) GetDeliveryPlatformFromVendorID(vendorID int) DeliveryPl
return c.DeliveryPlatformHandlers[vendorID]
}
func (c *BaseScheduler) AcceptOrRefuseOrder(order *model.GoodsOrder, isAcceptIt bool) (err error) {
globals.SugarLogger.Infof("AcceptOrRefuseOrder orderID:%s, isAcceptIt:%t", order.VendorOrderID, isAcceptIt)
if c.IsReallyCallPlatformAPI {
err = utils.CallFuncLogError(func() error {
return c.GetPurchasePlatformFromVendorID(order.VendorID).AcceptOrRefuseOrder(order, isAcceptIt)
}, "AcceptOrRefuseOrder orderID:%s, isAcceptIt:%t", order.VendorOrderID, isAcceptIt)
}
return err
}
func (c *BaseScheduler) PickedUpGoods(order *model.GoodsOrder) (err error) {
globals.SugarLogger.Infof("PickedUpGoods orderID:%s", order.VendorOrderID)
if c.IsReallyCallPlatformAPI {
err = utils.CallFuncLogError(func() error {
return c.GetPurchasePlatformFromVendorID(order.VendorID).PickedUpGoods(order)
}, "PickedUpGoods orderID:%s", order.VendorOrderID)
}
return err
}
func (c *BaseScheduler) Swtich2SelfDeliver(order *model.GoodsOrder) (err error) {
globals.SugarLogger.Infof("Swtich2SelfDeliver orderID:%s", order.VendorOrderID)
if c.IsReallyCallPlatformAPI {
err = utils.CallFuncLogError(func() error {
return c.GetPurchasePlatformFromVendorID(order.VendorID).Swtich2SelfDeliver(order)
}, "Swtich2SelfDeliver orderID:%s", order.VendorOrderID)
}
return err
}
func (c *BaseScheduler) SelfDeliverDelievering(order *model.GoodsOrder) (err error) {
globals.SugarLogger.Infof("SelfDeliverDelievering orderID:%s", order.VendorOrderID)
if c.IsReallyCallPlatformAPI {
err = utils.CallFuncLogError(func() error {
return c.GetPurchasePlatformFromVendorID(order.VendorID).SelfDeliverDelievering(order)
}, "SelfDeliverDelievering orderID:%s", order.VendorOrderID)
}
return err
}
func (c *BaseScheduler) SelfDeliverDelievered(order *model.GoodsOrder) (err error) {
globals.SugarLogger.Infof("SelfDeliverDelievered orderID:%s", order.VendorOrderID)
if c.IsReallyCallPlatformAPI {
err = utils.CallFuncLogError(func() error {
return c.GetPurchasePlatformFromVendorID(order.VendorID).SelfDeliverDelievered(order)
}, "SelfDeliverDelievered orderID:%s", order.VendorOrderID)
}
return err
}
func (c *BaseScheduler) CreateWaybill(platformVendorID int, order *model.GoodsOrder) (err error) {
globals.SugarLogger.Infof("CreateWaybill orderID:%s, vendorID:%d", order.VendorOrderID, platformVendorID)
if c.IsReallyCallPlatformAPI {
err = utils.CallFuncLogError(func() error {
return c.GetDeliveryPlatformFromVendorID(platformVendorID).CreateWaybill(order)
}, "CreateWaybill orderID:%s, vendorID:%d", order.VendorOrderID, platformVendorID)
}
return err
}
func (c *BaseScheduler) CancelWaybill(bill *model.Waybill) (err error) {
globals.SugarLogger.Infof("CancelWaybill bill:%v", bill)
if c.IsReallyCallPlatformAPI {
err = utils.CallFuncLogError(func() error {
return c.GetDeliveryPlatformFromVendorID(bill.WaybillVendorID).CancelWaybill(bill)
}, "CancelWaybill bill:%v", bill)
}
return err
}
type BasePurchasePlatform struct {
}