package partner import ( "time" "git.rosy.net.cn/jx-callback/business/model" ) const ( CancelWaybillReasonNotAcceptIntime = 1 CancelWaybillReasonSwitch2SelfFailed = 2 CancelWaybillReasonOther = 10 ) var ( CancelWaybillReasonStrNotAcceptIntime = "没有及时抢单" CancelWaybillReasonStrSwitch2SelfFailed = "转自送失败" CancelWaybillReasonStrOrderAlreadyFinished = "订单已经结束" CancelWaybillReasonStrActive = "操作由人员主动发起" ) var ( CurOrderManager IOrderManager ) type IOrderManager interface { OnOrderNew(order *model.GoodsOrder, msgVendorStatus string) (err error) OnOrderAdjust(order *model.GoodsOrder, msgVendorStatus string) (err error) OnOrderStatusChanged(orderStatus *model.OrderStatus) (err error) OnWaybillStatusChanged(bill *model.Waybill) (err error) LoadOrder(vendorOrderID string, vendorID int) (order *model.GoodsOrder, err error) UpdateWaybillVendorID(bill *model.Waybill, revertStatus bool) (err error) UpdateOrderStatusAndFlag(order *model.GoodsOrder) (err error) } type IPurchasePlatformHandler interface { GetStatusFromVendorStatus(vendorStatus string) int GetOrder(vendorOrderID string) (order *model.GoodsOrder, err error) GetStatusActionTimeout(statusType, status int) time.Duration AcceptOrRefuseOrder(order *model.GoodsOrder, isAcceptIt bool, userName string) (err error) PickupGoods(order *model.GoodsOrder, userName string) (err error) // 将订单从购物平台配送转为自送 Swtich2SelfDeliver(order *model.GoodsOrder, userName string) (err error) // 将订单从购物平台配送转为自送后又送达 Swtich2SelfDelivered(order *model.GoodsOrder, userName string) (err error) // 完全自送的门店表示开始配送 SelfDeliverDelievering(order *model.GoodsOrder, userName string) (err error) // 完全自送的门店表示配送完成 SelfDeliverDelievered(order *model.GoodsOrder, userName string) (err error) //////// // Store ReadStore(vendorStoreID string) (store *model.Store, err error) UpdateStore(vendorStoreID string, store *model.Store, userName string) error // EnableAutoAcceptOrder(vendorStoreID string, isEnabled bool) error // OpenStore(vendorStoreID string, userName string) error // CloseStore(vendorStoreID, closeNotice, userName string) error // Sku CreateCategory(cat *model.SkuCategory, userName string) (err error) ReadCategory(vendorCatID string) (cat *model.SkuCategory, err error) ReadCategories() (cats []*model.SkuCategory, err error) UpdateCategory(cat *model.SkuCategory, userName string) error DeleteCategory(cat *model.SkuCategory, userName string) error ReorderCategories(parentCat *model.SkuCategory, userName string) (err error) CreateSku(sku *model.Sku) (err error) ReadSku(vendorSkuID string) (skuName *model.SkuName, sellPlaces []*model.Place, sku *model.Sku, err error) UpdateSku(sku *model.Sku) (err error) DeleteSku(sku *model.Sku) (err error) } type IDeliveryPlatformHandler interface { CreateWaybill(order *model.GoodsOrder, policy func(deliveryFee, addFee int64) error) (bill *model.Waybill, err error) CancelWaybill(bill *model.Waybill, cancelReasonID int, cancelReason string) (err error) } func Init(curOrderManager IOrderManager) { CurOrderManager = curOrderManager }