From 160fcc42aff9f52619e08be7d936356b3130ea63 Mon Sep 17 00:00:00 2001 From: gazebo Date: Mon, 22 Jul 2019 16:46:17 +0800 Subject: [PATCH] =?UTF-8?q?-=20=E5=B0=86=E9=85=8D=E9=80=81=E7=9B=B8?= =?UTF-8?q?=E5=85=B3=E7=9A=84=E6=8E=A5=E5=8F=A3=E7=A7=BB=E8=87=B3partner?= =?UTF-8?q?=5Fdelivery.go=E4=B8=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/partner.go | 53 ---------------------- business/partner/partner_delivery.go | 68 ++++++++++++++++++++++++++++ 2 files changed, 68 insertions(+), 53 deletions(-) create mode 100644 business/partner/partner_delivery.go diff --git a/business/partner/partner.go b/business/partner/partner.go index 81b3319d2..c83f1dbcb 100644 --- a/business/partner/partner.go +++ b/business/partner/partner.go @@ -70,23 +70,6 @@ type StatusActionParams struct { TimeoutGap int // 以秒为单位的随机时间,0在GetStatusActionConfig返回时表示不修改缺省 } -const ( - WaybillFeeErrCodeCourierNotOpen = 1 //配送门店没有启用 - WaybillFeeErrCodeCourierNotSupported = 2 //配送门店不被系统支持 - WaybillFeeErrCodeCourierForbidden = 3 //配送门店内部禁用 - WaybillFeeErrCodeCourierOthers = 10 //其它错误 -) - -type WaybillFeeInfo struct { - ErrCode int `json:"errCode"` - ErrStr string `json:"errStr"` - RefDeliveryFee int64 `json:"refDeliveryFee"` - RefAddFee int64 `json:"refAddFee"` - DeliveryFee int64 `json:"deliveryFee"` - TimeoutSecond int `json:"timeoutSecond"` // 系统会自动发运单的倒计时 - Waybill *model.Waybill `json:"waybill"` -} - func (s *StatusActionParams) GetRefTimeout(statusTime time.Time, orderCreatedAt time.Time) (timeout time.Duration) { switch s.TimerType { case TimerTypeBaseNow: @@ -121,8 +104,6 @@ var ( CurStoreManager IStoreManager PurchasePlatformHandlers map[int]IPurchasePlatformHandler - DeliveryPlatformHandlers map[int]*DeliveryPlatformHandlerInfo - UseableDeliveryVendorIDs []int ) type IOrderManager interface { @@ -223,21 +204,6 @@ type ISingleStoreHandler interface { RefreshStoresAllSkusID(ctx *jxcontext.Context, parentTask tasksch.ITask, isAsync bool, storeIDs []int) (hint string, err error) } -type CreateWaybillPolicy func(refDeliveryFee, refAddFee, deliveryFee int64) (errStr string) - -type IDeliveryPlatformHandler interface { - CreateWaybill(order *model.GoodsOrder, policy CreateWaybillPolicy) (bill *model.Waybill, err error) - CancelWaybill(bill *model.Waybill, cancelReasonID int, cancelReason string) (err error) - - GetVendorID() int - GetWaybillFee(order *model.GoodsOrder) (deliveryFeeInfo *WaybillFeeInfo, err error) -} - -type DeliveryPlatformHandlerInfo struct { - Handler IDeliveryPlatformHandler - Use4CreateWaybill bool -} - type BasePurchasePlatform struct { } @@ -269,25 +235,6 @@ func RegisterPurchasePlatform(handler IPurchasePlatformHandler) { PurchasePlatformHandlers[vendorID] = handler } -func RegisterDeliveryPlatform(handler IDeliveryPlatformHandler, isUse4CreateWaybill bool) { - vendorID := handler.GetVendorID() - if !(model.IsDeliveryVendorExist(vendorID)) { - panic(fmt.Sprintf("delivery vendor:%d is illegal", vendorID)) - } - if _, ok := DeliveryPlatformHandlers[vendorID]; ok { - panic(fmt.Sprintf("delivery vendor:%d, already exists", vendorID)) - } - DeliveryPlatformHandlers[vendorID] = &DeliveryPlatformHandlerInfo{ - Handler: handler, - Use4CreateWaybill: isUse4CreateWaybill, - } - UseableDeliveryVendorIDs = append(UseableDeliveryVendorIDs, vendorID) -} - func GetPurchasePlatformFromVendorID(vendorID int) IPurchasePlatformHandler { return PurchasePlatformHandlers[vendorID] } - -func GetDeliveryPlatformFromVendorID(vendorID int) *DeliveryPlatformHandlerInfo { - return DeliveryPlatformHandlers[vendorID] -} diff --git a/business/partner/partner_delivery.go b/business/partner/partner_delivery.go new file mode 100644 index 000000000..43e468566 --- /dev/null +++ b/business/partner/partner_delivery.go @@ -0,0 +1,68 @@ +package partner + +import ( + "fmt" + + "git.rosy.net.cn/jx-callback/business/model" +) + +const ( + WaybillFeeErrCodeCourierNotOpen = 1 //配送门店没有启用 + WaybillFeeErrCodeCourierNotSupported = 2 //配送门店不被系统支持 + WaybillFeeErrCodeCourierForbidden = 3 //配送门店内部禁用 + WaybillFeeErrCodeCourierOthers = 10 //其它错误 +) + +type WaybillFeeInfo struct { + ErrCode int `json:"errCode"` + ErrStr string `json:"errStr"` + RefDeliveryFee int64 `json:"refDeliveryFee"` + RefAddFee int64 `json:"refAddFee"` + DeliveryFee int64 `json:"deliveryFee"` + TimeoutSecond int `json:"timeoutSecond"` // 系统会自动发运单的倒计时 + Waybill *model.Waybill `json:"waybill"` +} + +type CreateWaybillPolicy func(refDeliveryFee, refAddFee, deliveryFee int64) (errStr string) + +type IDeliveryPlatformHandler interface { + GetVendorID() int + + CreateWaybill(order *model.GoodsOrder, policy CreateWaybillPolicy) (bill *model.Waybill, err error) + CancelWaybill(bill *model.Waybill, cancelReasonID int, cancelReason string) (err error) + + GetWaybillFee(order *model.GoodsOrder) (deliveryFeeInfo *WaybillFeeInfo, err error) +} + +type DeliveryPlatformHandlerInfo struct { + Handler IDeliveryPlatformHandler + Use4CreateWaybill bool +} + +var ( + DeliveryPlatformHandlers map[int]*DeliveryPlatformHandlerInfo + UseableDeliveryVendorIDs []int +) + +func init() { + DeliveryPlatformHandlers = make(map[int]*DeliveryPlatformHandlerInfo) +} + +func RegisterDeliveryPlatform(handler IDeliveryPlatformHandler, isUse4CreateWaybill bool) { + vendorID := handler.GetVendorID() + if !(model.IsDeliveryVendorExist(vendorID)) { + panic(fmt.Sprintf("delivery vendor:%d is illegal", vendorID)) + } + if _, ok := DeliveryPlatformHandlers[vendorID]; ok { + panic(fmt.Sprintf("delivery vendor:%d, already exists", vendorID)) + } + DeliveryPlatformHandlers[vendorID] = &DeliveryPlatformHandlerInfo{ + Handler: handler, + Use4CreateWaybill: isUse4CreateWaybill, + } + UseableDeliveryVendorIDs = append(UseableDeliveryVendorIDs, vendorID) +} + +func GetDeliveryPlatformFromVendorID(vendorID int) *DeliveryPlatformHandlerInfo { + return DeliveryPlatformHandlers[vendorID] +}