- 将配送相关的接口移至partner_delivery.go中
This commit is contained in:
@@ -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]
|
||||
}
|
||||
|
||||
68
business/partner/partner_delivery.go
Normal file
68
business/partner/partner_delivery.go
Normal file
@@ -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]
|
||||
}
|
||||
Reference in New Issue
Block a user