- write legacy jxoder almost ok.

This commit is contained in:
gazebo
2018-07-17 18:01:49 +08:00
parent 77d1ea1d77
commit f9096a7b17
14 changed files with 342 additions and 272 deletions

View File

@@ -41,7 +41,8 @@ type DeliveryPlatformHandler interface {
}
type OrderManager interface {
MasterWaybillStatusChanged(*model.Waybill) (err error)
OnOrderStatusChanged(status *model.OrderStatus) (err error) // 此消息是否使用还不确定
UpdateWaybillVendorID(bill *model.Waybill) (err error)
}
type Scheduler interface {
@@ -51,7 +52,6 @@ type Scheduler interface {
// 以下是订单
OnOrderNew(order *model.GoodsOrder) (err error)
OnOrderAccepted(order *model.GoodsOrder) (err error)
OnOrderStatusChanged(status *model.OrderStatus) (err error)
// 以下是运单
@@ -59,36 +59,36 @@ type Scheduler interface {
}
type BaseScheduler struct {
orderManager OrderManager
purchasePlatformHandlers map[int]PurchasePlatformHandler
deliveryPlatformHandlers map[int]DeliveryPlatformHandler
CurOrderManager OrderManager
PurchasePlatformHandlers map[int]PurchasePlatformHandler
DeliveryPlatformHandlers map[int]DeliveryPlatformHandler
}
func (c *BaseScheduler) Init() {
c.purchasePlatformHandlers = make(map[int]PurchasePlatformHandler)
c.deliveryPlatformHandlers = make(map[int]DeliveryPlatformHandler)
c.PurchasePlatformHandlers = make(map[int]PurchasePlatformHandler)
c.DeliveryPlatformHandlers = make(map[int]DeliveryPlatformHandler)
}
func (c *BaseScheduler) RegisterOrderManager(handler OrderManager) {
c.orderManager = handler
c.CurOrderManager = handler
}
func (c *BaseScheduler) RegisterPurchasePlatform(vendorID int, handler PurchasePlatformHandler) {
if !(vendorID >= model.VendorIDPurchaseBegin && vendorID <= model.VendorIDPurchaseEnd) {
panic(fmt.Sprintf("purchase vendor:%d is illegal", vendorID))
}
if _, ok := c.purchasePlatformHandlers[vendorID]; ok {
if _, ok := c.PurchasePlatformHandlers[vendorID]; ok {
panic(fmt.Sprintf("purchase vendor:%d, already exists", vendorID))
}
c.purchasePlatformHandlers[vendorID] = handler
c.PurchasePlatformHandlers[vendorID] = handler
}
func (c *BaseScheduler) RegisterDeliveryPlatform(vendorID int, handler DeliveryPlatformHandler) {
if !(vendorID >= model.VendorIDDeliveryBegin && vendorID <= model.VendorIDDeliveryEnd) {
panic(fmt.Sprintf("delivery vendor:%d is illegal", vendorID))
}
if _, ok := c.deliveryPlatformHandlers[vendorID]; ok {
if _, ok := c.DeliveryPlatformHandlers[vendorID]; ok {
panic(fmt.Sprintf("delivery vendor:%d, already exists", vendorID))
}
c.deliveryPlatformHandlers[vendorID] = handler
c.DeliveryPlatformHandlers[vendorID] = handler
}