- 将配送相关的接口移至partner_delivery.go中
This commit is contained in:
@@ -70,23 +70,6 @@ type StatusActionParams struct {
|
|||||||
TimeoutGap int // 以秒为单位的随机时间,0在GetStatusActionConfig返回时表示不修改缺省
|
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) {
|
func (s *StatusActionParams) GetRefTimeout(statusTime time.Time, orderCreatedAt time.Time) (timeout time.Duration) {
|
||||||
switch s.TimerType {
|
switch s.TimerType {
|
||||||
case TimerTypeBaseNow:
|
case TimerTypeBaseNow:
|
||||||
@@ -121,8 +104,6 @@ var (
|
|||||||
CurStoreManager IStoreManager
|
CurStoreManager IStoreManager
|
||||||
|
|
||||||
PurchasePlatformHandlers map[int]IPurchasePlatformHandler
|
PurchasePlatformHandlers map[int]IPurchasePlatformHandler
|
||||||
DeliveryPlatformHandlers map[int]*DeliveryPlatformHandlerInfo
|
|
||||||
UseableDeliveryVendorIDs []int
|
|
||||||
)
|
)
|
||||||
|
|
||||||
type IOrderManager interface {
|
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)
|
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 {
|
type BasePurchasePlatform struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -269,25 +235,6 @@ func RegisterPurchasePlatform(handler IPurchasePlatformHandler) {
|
|||||||
PurchasePlatformHandlers[vendorID] = handler
|
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 {
|
func GetPurchasePlatformFromVendorID(vendorID int) IPurchasePlatformHandler {
|
||||||
return PurchasePlatformHandlers[vendorID]
|
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