- refactor file structure.

This commit is contained in:
gazebo
2018-08-17 13:59:15 +08:00
parent d872d4d0ec
commit d40186e930
25 changed files with 153 additions and 150 deletions

View File

@@ -1,4 +1,4 @@
package controller package orderman
import ( import (
"fmt" "fmt"
@@ -6,22 +6,14 @@ import (
"git.rosy.net.cn/baseapi" "git.rosy.net.cn/baseapi"
"git.rosy.net.cn/baseapi/utils" "git.rosy.net.cn/baseapi/utils"
"git.rosy.net.cn/jx-callback/business/jxcallback/scheduler"
"git.rosy.net.cn/jx-callback/business/jxutils" "git.rosy.net.cn/jx-callback/business/jxutils"
"git.rosy.net.cn/jx-callback/business/model" "git.rosy.net.cn/jx-callback/business/model"
"git.rosy.net.cn/jx-callback/business/scheduler"
"git.rosy.net.cn/jx-callback/globals" "git.rosy.net.cn/jx-callback/globals"
"github.com/astaxie/beego/orm" "github.com/astaxie/beego/orm"
) )
// 所有公共接口调用前要求在order里或status中设置合适的Status func (c *OrderManager) LoadPendingOrders() []*model.GoodsOrder {
type OrderController struct {
}
func NewOrderManager() *OrderController {
return &OrderController{}
}
func (c *OrderController) LoadPendingOrders() []*model.GoodsOrder {
db := orm.NewOrm() db := orm.NewOrm()
var orders []*model.GoodsOrder var orders []*model.GoodsOrder
tillTime := time.Now().Add(-pendingOrderGapMax) tillTime := time.Now().Add(-pendingOrderGapMax)
@@ -46,7 +38,7 @@ func (c *OrderController) LoadPendingOrders() []*model.GoodsOrder {
// msgVendorStatus的意思是事件本身的类型类似有时收到NewOrder事件去取订单状态不一定就是New的 // msgVendorStatus的意思是事件本身的类型类似有时收到NewOrder事件去取订单状态不一定就是New的
// OnOrderAdjust也类似而OrderStatus要记录的是消息所以添加这个 // OnOrderAdjust也类似而OrderStatus要记录的是消息所以添加这个
func (c *OrderController) OnOrderNew(order *model.GoodsOrder, msgVendorStatus string) (err error) { func (c *OrderManager) OnOrderNew(order *model.GoodsOrder, msgVendorStatus string) (err error) {
// todo transaction // todo transaction
db := orm.NewOrm() db := orm.NewOrm()
if order.Status == model.OrderStatusUnknown { if order.Status == model.OrderStatusUnknown {
@@ -65,7 +57,7 @@ func (c *OrderController) OnOrderNew(order *model.GoodsOrder, msgVendorStatus st
} }
// todo 调整单的处理可能还需要再细化一点,当前只是简单的删除重建 // todo 调整单的处理可能还需要再细化一点,当前只是简单的删除重建
func (c *OrderController) OnOrderAdjust(order *model.GoodsOrder, msgVendorStatus string) (err error) { func (c *OrderManager) OnOrderAdjust(order *model.GoodsOrder, msgVendorStatus string) (err error) {
// todo transaction // todo transaction
db := orm.NewOrm() db := orm.NewOrm()
if order.Status == model.OrderStatusUnknown { if order.Status == model.OrderStatusUnknown {
@@ -99,7 +91,7 @@ func (c *OrderController) OnOrderAdjust(order *model.GoodsOrder, msgVendorStatus
return err return err
} }
func (c *OrderController) OnOrderStatusChanged(orderStatus *model.OrderStatus) (err error) { func (c *OrderManager) OnOrderStatusChanged(orderStatus *model.OrderStatus) (err error) {
isDuplicated, err := c.addOrderStatus(orderStatus, nil) isDuplicated, err := c.addOrderStatus(orderStatus, nil)
if err == nil && !isDuplicated { if err == nil && !isDuplicated {
err = scheduler.CurrentScheduler.OnOrderStatusChanged(orderStatus, false) err = scheduler.CurrentScheduler.OnOrderStatusChanged(orderStatus, false)
@@ -111,7 +103,7 @@ func (c *OrderController) OnOrderStatusChanged(orderStatus *model.OrderStatus) (
} }
// private // private
func (c *OrderController) saveOrder(order *model.GoodsOrder, isAdjust bool, db orm.Ormer) (isDuplicated bool, err error) { func (c *OrderManager) saveOrder(order *model.GoodsOrder, isAdjust bool, db orm.Ormer) (isDuplicated bool, err error) {
// 忽略查找JX信息错误 // 忽略查找JX信息错误
c.updateOrderOtherInfo(order, db) c.updateOrderOtherInfo(order, db)
order.ID = 0 order.ID = 0
@@ -170,7 +162,7 @@ func (c *OrderController) saveOrder(order *model.GoodsOrder, isAdjust bool, db o
return isDuplicated, err return isDuplicated, err
} }
func (c *OrderController) updateOrderSkuOtherInfo(order *model.GoodsOrder, db orm.Ormer) (err error) { func (c *OrderManager) updateOrderSkuOtherInfo(order *model.GoodsOrder, db orm.Ormer) (err error) {
jxStoreID := jxutils.GetJxStoreIDFromOrder(order) jxStoreID := jxutils.GetJxStoreIDFromOrder(order)
if jxStoreID == 0 { if jxStoreID == 0 {
globals.SugarLogger.Infof("updateOrderSkuOtherInfo [运营]订单在京西与平台都找不到京西门店信息orderID:%s, VendorStoreID:%s", order.VendorOrderID, order.VendorStoreID) globals.SugarLogger.Infof("updateOrderSkuOtherInfo [运营]订单在京西与平台都找不到京西门店信息orderID:%s, VendorStoreID:%s", order.VendorOrderID, order.VendorStoreID)
@@ -245,7 +237,7 @@ func (c *OrderController) updateOrderSkuOtherInfo(order *model.GoodsOrder, db or
return err return err
} }
func (c *OrderController) updateOrderOtherInfo(order *model.GoodsOrder, db orm.Ormer) (err error) { func (c *OrderManager) updateOrderOtherInfo(order *model.GoodsOrder, db orm.Ormer) (err error) {
var sql string var sql string
if order.VendorID == model.VendorIDJD { if order.VendorID == model.VendorIDJD {
sql = ` sql = `
@@ -274,7 +266,7 @@ func (c *OrderController) updateOrderOtherInfo(order *model.GoodsOrder, db orm.O
return err return err
} }
func (c *OrderController) addOrderStatus(orderStatus *model.OrderStatus, db orm.Ormer) (isDuplicated bool, err error) { func (c *OrderManager) addOrderStatus(orderStatus *model.OrderStatus, db orm.Ormer) (isDuplicated bool, err error) {
if db == nil { if db == nil {
db = orm.NewOrm() db = orm.NewOrm()
} }
@@ -329,7 +321,7 @@ func (c *OrderController) addOrderStatus(orderStatus *model.OrderStatus, db orm.
return isDuplicated, err return isDuplicated, err
} }
func (c *OrderController) LoadOrder(vendorOrderID string, vendorID int) (order *model.GoodsOrder, err error) { func (c *OrderManager) LoadOrder(vendorOrderID string, vendorID int) (order *model.GoodsOrder, err error) {
db := orm.NewOrm() db := orm.NewOrm()
order = &model.GoodsOrder{ order = &model.GoodsOrder{
VendorOrderID: vendorOrderID, VendorOrderID: vendorOrderID,
@@ -348,7 +340,7 @@ func (c *OrderController) LoadOrder(vendorOrderID string, vendorID int) (order *
} }
//Waybill //Waybill
func (c *OrderController) UpdateWaybillVendorID(bill *model.Waybill, revertStatus bool) (err error) { func (c *OrderManager) UpdateWaybillVendorID(bill *model.Waybill, revertStatus bool) (err error) {
globals.SugarLogger.Debugf("UpdateWaybillVendorID bill:%v", bill) globals.SugarLogger.Debugf("UpdateWaybillVendorID bill:%v", bill)
db := orm.NewOrm() db := orm.NewOrm()
params := orm.Params{ params := orm.Params{

View File

@@ -1,4 +1,4 @@
package controller package orderman
import ( import (
"strings" "strings"
@@ -124,7 +124,7 @@ func legacyMapWaybillStatus(status int) (retVal int8) {
return retVal return retVal
} }
func (c *OrderController) legacyWriteJxOrder(order *model.GoodsOrder, db orm.Ormer, isDelFirst bool) (err error) { func (c *OrderManager) legacyWriteJxOrder(order *model.GoodsOrder, db orm.Ormer, isDelFirst bool) (err error) {
var result map[string]interface{} var result map[string]interface{}
businessTags := "" businessTags := ""
if order.VendorID == model.VendorIDJD && utils.UnmarshalUseNumber([]byte(order.OriginalData), &result) == nil { if order.VendorID == model.VendorIDJD && utils.UnmarshalUseNumber([]byte(order.OriginalData), &result) == nil {
@@ -223,7 +223,7 @@ func (c *OrderController) legacyWriteJxOrder(order *model.GoodsOrder, db orm.Orm
return err return err
} }
func (c *OrderController) legacyJxOrderStatusChanged(status *model.OrderStatus, db orm.Ormer) (err error) { func (c *OrderManager) legacyJxOrderStatusChanged(status *model.OrderStatus, db orm.Ormer) (err error) {
orderStatus := legacyMapOrderStatus(status.Status) orderStatus := legacyMapOrderStatus(status.Status)
if orderStatus != JX_STATUS_UNKNOWN { if orderStatus != JX_STATUS_UNKNOWN {
if status.VendorID == model.VendorIDELM { if status.VendorID == model.VendorIDELM {
@@ -268,7 +268,7 @@ func (c *OrderController) legacyJxOrderStatusChanged(status *model.OrderStatus,
return err return err
} }
func (c *WaybillController) legacyWaybillStatusChanged(bill *model.Waybill, db orm.Ormer) (err error) { func (c *OrderManager) legacyWaybillStatusChanged(bill *model.Waybill, db orm.Ormer) (err error) {
deliveryStatus := legacyMapWaybillStatus(bill.Status) deliveryStatus := legacyMapWaybillStatus(bill.Status)
if deliveryStatus != JX_STATUS_UNKNOWN { if deliveryStatus != JX_STATUS_UNKNOWN {
if db == nil { if db == nil {

View File

@@ -1,14 +1,15 @@
package controller package orderman
import ( import (
"sort" "sort"
"time" "time"
"git.rosy.net.cn/baseapi/utils" "git.rosy.net.cn/baseapi/utils"
"git.rosy.net.cn/jx-callback/business/jxcallback/scheduler"
_ "git.rosy.net.cn/jx-callback/business/jxcallback/scheduler/defsch" // 导入缺省订单调度器
"git.rosy.net.cn/jx-callback/business/jxutils" "git.rosy.net.cn/jx-callback/business/jxutils"
"git.rosy.net.cn/jx-callback/business/model" "git.rosy.net.cn/jx-callback/business/model"
"git.rosy.net.cn/jx-callback/business/scheduler" "git.rosy.net.cn/jx-callback/business/partner"
_ "git.rosy.net.cn/jx-callback/business/scheduler/defsch" // 导入缺省订单调度器
"git.rosy.net.cn/jx-callback/globals" "git.rosy.net.cn/jx-callback/globals"
"github.com/astaxie/beego/orm" "github.com/astaxie/beego/orm"
) )
@@ -20,10 +21,17 @@ const (
) )
var ( var (
OrderManager *OrderController CurOrderManager *OrderManager
WaybillManager *WaybillController
) )
// 所有公共接口调用前要求在order里或status中设置合适的Status
type OrderManager struct {
}
func NewOrderManager() *OrderManager {
return &OrderManager{}
}
type StatusTimer interface { type StatusTimer interface {
GetStatusTime() time.Time GetStatusTime() time.Time
} }
@@ -45,9 +53,8 @@ func (s StatusTimerSlice) Swap(i, j int) {
} }
func init() { func init() {
OrderManager = NewOrderManager() CurOrderManager = NewOrderManager()
WaybillManager = NewWaybillManager() partner.Init(CurOrderManager)
scheduler.CurrentScheduler.RegisterOrderManager(OrderManager)
} }
func addOrderOrWaybillStatus(status *model.OrderStatus, db orm.Ormer) (isDuplicated bool, err error) { func addOrderOrWaybillStatus(status *model.OrderStatus, db orm.Ormer) (isDuplicated bool, err error) {
@@ -79,12 +86,12 @@ func addOrderOrWaybillStatus(status *model.OrderStatus, db orm.Ormer) (isDuplica
// todo 最好还是改成全事件回放算了 // todo 最好还是改成全事件回放算了
func LoadPendingOrders() { func LoadPendingOrders() {
orders := OrderManager.LoadPendingOrders() orders := CurOrderManager.LoadPendingOrders()
globals.SugarLogger.Infof("LoadPendingOrders orders count:%d", len(orders)) globals.SugarLogger.Infof("LoadPendingOrders orders count:%d", len(orders))
ordersCount := len(orders) ordersCount := len(orders)
if ordersCount > 0 { if ordersCount > 0 {
bills := WaybillManager.LoadPendingWaybills() bills := CurOrderManager.LoadPendingWaybills()
globals.SugarLogger.Infof("LoadPendingOrders waybills count:%d", len(bills)) globals.SugarLogger.Infof("LoadPendingOrders waybills count:%d", len(bills))
var sortOrders StatusTimerSlice var sortOrders StatusTimerSlice
for _, order := range orders { for _, order := range orders {

View File

@@ -1,24 +1,16 @@
package controller package orderman
import ( import (
"time" "time"
"git.rosy.net.cn/baseapi/utils" "git.rosy.net.cn/baseapi/utils"
"git.rosy.net.cn/jx-callback/business/jxcallback/scheduler"
"git.rosy.net.cn/jx-callback/business/model" "git.rosy.net.cn/jx-callback/business/model"
"git.rosy.net.cn/jx-callback/business/scheduler"
"git.rosy.net.cn/jx-callback/globals" "git.rosy.net.cn/jx-callback/globals"
"github.com/astaxie/beego/orm" "github.com/astaxie/beego/orm"
) )
// 所有公共接口调用前要求在order里或status中设置合适的Status func (w *OrderManager) LoadPendingWaybills() []*model.Waybill {
type WaybillController struct {
}
func NewWaybillManager() *WaybillController {
return &WaybillController{}
}
func (w *WaybillController) LoadPendingWaybills() []*model.Waybill {
db := orm.NewOrm() db := orm.NewOrm()
var bills []*model.Waybill var bills []*model.Waybill
tillTime := time.Now().Add(-pendingOrderGapMax) tillTime := time.Now().Add(-pendingOrderGapMax)
@@ -39,7 +31,7 @@ func (w *WaybillController) LoadPendingWaybills() []*model.Waybill {
return bills return bills
} }
func (w *WaybillController) onWaybillNew(bill2 *model.Waybill, db orm.Ormer) (isDuplicated bool, err error) { func (w *OrderManager) onWaybillNew(bill2 *model.Waybill, db orm.Ormer) (isDuplicated bool, err error) {
globals.SugarLogger.Debugf("onWaybillNew bill:%v", bill2) globals.SugarLogger.Debugf("onWaybillNew bill:%v", bill2)
isDuplicated, err = addOrderOrWaybillStatus(model.Waybill2Status(bill2), db) isDuplicated, err = addOrderOrWaybillStatus(model.Waybill2Status(bill2), db)
if err == nil && !isDuplicated { if err == nil && !isDuplicated {
@@ -71,7 +63,7 @@ func (w *WaybillController) onWaybillNew(bill2 *model.Waybill, db orm.Ormer) (is
return isDuplicated, err return isDuplicated, err
} }
func (w *WaybillController) OnWaybillStatusChanged(bill *model.Waybill) (err error) { func (w *OrderManager) OnWaybillStatusChanged(bill *model.Waybill) (err error) {
var isDuplicated bool var isDuplicated bool
db := orm.NewOrm() db := orm.NewOrm()
if bill.Status == model.WaybillStatusNew { if bill.Status == model.WaybillStatusNew {
@@ -96,7 +88,7 @@ func (w *WaybillController) OnWaybillStatusChanged(bill *model.Waybill) (err err
return err return err
} }
func (w *WaybillController) addWaybillStatus(bill *model.Waybill, db orm.Ormer, addParams orm.Params) (isDuplicated bool, err error) { func (w *OrderManager) addWaybillStatus(bill *model.Waybill, db orm.Ormer, addParams orm.Params) (isDuplicated bool, err error) {
waybillStatus := model.Waybill2Status(bill) waybillStatus := model.Waybill2Status(bill)
isDuplicated, err = addOrderOrWaybillStatus(waybillStatus, db) isDuplicated, err = addOrderOrWaybillStatus(waybillStatus, db)
if err == nil && !isDuplicated && waybillStatus.Status > model.WaybillStatusUnknown { // todo 这里应该和addOrderStatus一样的改法状态不能回绕 if err == nil && !isDuplicated && waybillStatus.Status > model.WaybillStatusUnknown { // todo 这里应该和addOrderStatus一样的改法状态不能回绕

View File

@@ -2,16 +2,16 @@ package defsch
import ( import (
"fmt" "fmt"
"math/rand"
"time" "time"
"math/rand"
"git.rosy.net.cn/baseapi/utils" "git.rosy.net.cn/baseapi/utils"
"git.rosy.net.cn/jx-callback/business/jxcallback/scheduler"
"git.rosy.net.cn/jx-callback/business/jxutils" "git.rosy.net.cn/jx-callback/business/jxutils"
"git.rosy.net.cn/jx-callback/business/jxutils/weixinmsg" "git.rosy.net.cn/jx-callback/business/jxutils/weixinmsg"
"git.rosy.net.cn/jx-callback/business/legacymodel" "git.rosy.net.cn/jx-callback/business/legacymodel"
"git.rosy.net.cn/jx-callback/business/model" "git.rosy.net.cn/jx-callback/business/model"
"git.rosy.net.cn/jx-callback/business/scheduler" "git.rosy.net.cn/jx-callback/business/partner"
"git.rosy.net.cn/jx-callback/globals" "git.rosy.net.cn/jx-callback/globals"
"github.com/astaxie/beego/orm" "github.com/astaxie/beego/orm"
) )
@@ -503,7 +503,7 @@ func (s *DefScheduler) loadSavedOrderFromMap(status *model.OrderStatus, isAutoLo
} else { } else {
globals.SugarLogger.Infof("loadSavedOrderFromMap order is incomplete, orderID:%s, load it", status.RefVendorOrderID) globals.SugarLogger.Infof("loadSavedOrderFromMap order is incomplete, orderID:%s, load it", status.RefVendorOrderID)
} }
if order, err := s.CurOrderManager.LoadOrder(status.RefVendorOrderID, status.RefVendorID); err == nil { if order, err := partner.CurOrderManager.LoadOrder(status.RefVendorOrderID, status.RefVendorID); err == nil {
realSavedInfo.SetOrder(order) realSavedInfo.SetOrder(order)
} else { } else {
realSavedInfo.SetOrder(&model.GoodsOrder{ realSavedInfo.SetOrder(&model.GoodsOrder{
@@ -661,7 +661,7 @@ func (s *DefScheduler) updateOrderByBill(order *model.GoodsOrder, bill *model.Wa
if bill.WaybillVendorID == model.VendorIDUnknown { if bill.WaybillVendorID == model.VendorIDUnknown {
bill.VendorWaybillID = "" bill.VendorWaybillID = ""
} }
s.CurOrderManager.UpdateWaybillVendorID(bill, revertStatus) partner.CurOrderManager.UpdateWaybillVendorID(bill, revertStatus)
order.WaybillVendorID = bill.WaybillVendorID order.WaybillVendorID = bill.WaybillVendorID
order.VendorWaybillID = bill.VendorWaybillID order.VendorWaybillID = bill.VendorWaybillID
if revertStatus { if revertStatus {

View File

@@ -7,6 +7,7 @@ import (
"git.rosy.net.cn/baseapi/utils" "git.rosy.net.cn/baseapi/utils"
"git.rosy.net.cn/jx-callback/business/model" "git.rosy.net.cn/jx-callback/business/model"
"git.rosy.net.cn/jx-callback/business/partner"
"git.rosy.net.cn/jx-callback/globals" "git.rosy.net.cn/jx-callback/globals"
) )
@@ -42,47 +43,14 @@ var (
ErrOrderIsNotSolid = errors.New("订单是临时订单,不完整,不能用于创建运单") ErrOrderIsNotSolid = errors.New("订单是临时订单,不完整,不能用于创建运单")
) )
type PurchasePlatformHandler 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) (err error)
PickupGoods(order *model.GoodsOrder) (err error)
// 将订单从购物平台配送转为自送
Swtich2SelfDeliver(order *model.GoodsOrder) (err error)
// 将订单从购物平台配送转为自送后又送达
Swtich2SelfDelivered(order *model.GoodsOrder) (err error)
// 完全自送的门店表示开始配送
SelfDeliverDelievering(order *model.GoodsOrder) (err error)
// 完全自送的门店表示配送完成
SelfDeliverDelievered(order *model.GoodsOrder) (err error)
}
type DeliveryPlatformHandler interface {
CreateWaybill(order *model.GoodsOrder) (err error)
CancelWaybill(bill *model.Waybill) (err error)
}
type DeliveryPlatformHandlerInfo struct { type DeliveryPlatformHandlerInfo struct {
Handler DeliveryPlatformHandler Handler partner.IDeliveryPlatformHandler
Use4CreateWaybill bool Use4CreateWaybill bool
} }
type OrderManager interface {
LoadOrder(vendorOrderID string, vendorID int) (order *model.GoodsOrder, err error)
// OnOrderStatusChanged(status *model.OrderStatus) (err error) // 此消息是否使用还不确定
UpdateWaybillVendorID(bill *model.Waybill, revertStatus bool) (err error)
}
type Scheduler interface { type Scheduler interface {
RegisterOrderManager(handler OrderManager) RegisterPurchasePlatform(vendorID int, handler partner.IPurchasePlatformHandler)
RegisterPurchasePlatform(vendorID int, handler PurchasePlatformHandler) RegisterDeliveryPlatform(vendorID int, handler partner.IDeliveryPlatformHandler, isUse4CreateWaybill bool)
RegisterDeliveryPlatform(vendorID int, handler DeliveryPlatformHandler, isUse4CreateWaybill bool)
// 以下是订单 // 以下是订单
OnOrderNew(order *model.GoodsOrder, isPending bool) (err error) OnOrderNew(order *model.GoodsOrder, isPending bool) (err error)
@@ -93,22 +61,17 @@ type Scheduler interface {
} }
type BaseScheduler struct { type BaseScheduler struct {
CurOrderManager OrderManager PurchasePlatformHandlers map[int]partner.IPurchasePlatformHandler
PurchasePlatformHandlers map[int]PurchasePlatformHandler
DeliveryPlatformHandlers map[int]*DeliveryPlatformHandlerInfo DeliveryPlatformHandlers map[int]*DeliveryPlatformHandlerInfo
IsReallyCallPlatformAPI bool IsReallyCallPlatformAPI bool
} }
func (c *BaseScheduler) Init() { func (c *BaseScheduler) Init() {
c.PurchasePlatformHandlers = make(map[int]PurchasePlatformHandler) c.PurchasePlatformHandlers = make(map[int]partner.IPurchasePlatformHandler)
c.DeliveryPlatformHandlers = make(map[int]*DeliveryPlatformHandlerInfo) c.DeliveryPlatformHandlers = make(map[int]*DeliveryPlatformHandlerInfo)
} }
func (c *BaseScheduler) RegisterOrderManager(handler OrderManager) { func (c *BaseScheduler) RegisterPurchasePlatform(vendorID int, handler partner.IPurchasePlatformHandler) {
c.CurOrderManager = handler
}
func (c *BaseScheduler) RegisterPurchasePlatform(vendorID int, handler PurchasePlatformHandler) {
if !(vendorID >= model.VendorIDPurchaseBegin && vendorID <= model.VendorIDPurchaseEnd) { if !(vendorID >= model.VendorIDPurchaseBegin && vendorID <= model.VendorIDPurchaseEnd) {
panic(fmt.Sprintf("purchase vendor:%d is illegal", vendorID)) panic(fmt.Sprintf("purchase vendor:%d is illegal", vendorID))
} }
@@ -118,7 +81,7 @@ func (c *BaseScheduler) RegisterPurchasePlatform(vendorID int, handler PurchaseP
c.PurchasePlatformHandlers[vendorID] = handler c.PurchasePlatformHandlers[vendorID] = handler
} }
func (c *BaseScheduler) RegisterDeliveryPlatform(vendorID int, handler DeliveryPlatformHandler, isUse4CreateWaybill bool) { func (c *BaseScheduler) RegisterDeliveryPlatform(vendorID int, handler partner.IDeliveryPlatformHandler, isUse4CreateWaybill bool) {
if !(vendorID >= model.VendorIDDeliveryBegin && vendorID <= model.VendorIDDeliveryEnd) { if !(vendorID >= model.VendorIDDeliveryBegin && vendorID <= model.VendorIDDeliveryEnd) {
panic(fmt.Sprintf("delivery vendor:%d is illegal", vendorID)) panic(fmt.Sprintf("delivery vendor:%d is illegal", vendorID))
} }
@@ -131,7 +94,7 @@ func (c *BaseScheduler) RegisterDeliveryPlatform(vendorID int, handler DeliveryP
} }
} }
func (c *BaseScheduler) GetPurchasePlatformFromVendorID(vendorID int) PurchasePlatformHandler { func (c *BaseScheduler) GetPurchasePlatformFromVendorID(vendorID int) partner.IPurchasePlatformHandler {
return c.PurchasePlatformHandlers[vendorID] return c.PurchasePlatformHandlers[vendorID]
} }

View File

@@ -6,10 +6,10 @@ import (
"git.rosy.net.cn/baseapi/platformapi/dadaapi" "git.rosy.net.cn/baseapi/platformapi/dadaapi"
"git.rosy.net.cn/baseapi/utils" "git.rosy.net.cn/baseapi/utils"
"git.rosy.net.cn/jx-callback/business/controller" "git.rosy.net.cn/jx-callback/business/jxcallback/scheduler"
"git.rosy.net.cn/jx-callback/business/jxutils" "git.rosy.net.cn/jx-callback/business/jxutils"
"git.rosy.net.cn/jx-callback/business/model" "git.rosy.net.cn/jx-callback/business/model"
"git.rosy.net.cn/jx-callback/business/scheduler" "git.rosy.net.cn/jx-callback/business/partner"
"git.rosy.net.cn/jx-callback/globals" "git.rosy.net.cn/jx-callback/globals"
"git.rosy.net.cn/jx-callback/globals/api" "git.rosy.net.cn/jx-callback/globals/api"
"github.com/astaxie/beego/orm" "github.com/astaxie/beego/orm"
@@ -58,7 +58,7 @@ func (c *WaybillController) onWaybillMsg(msg *dadaapi.CallbackMsg) (retVal *dada
default: default:
order.Status = model.WaybillStatusUnknown order.Status = model.WaybillStatusUnknown
} }
return dadaapi.Err2CallbackResponse(controller.WaybillManager.OnWaybillStatusChanged(order), utils.Int2Str(order.Status)) return dadaapi.Err2CallbackResponse(partner.CurOrderManager.OnWaybillStatusChanged(order), utils.Int2Str(order.Status))
} }
func (c *WaybillController) callbackMsg2Waybill(msg *dadaapi.CallbackMsg) (retVal *model.Waybill) { func (c *WaybillController) callbackMsg2Waybill(msg *dadaapi.CallbackMsg) (retVal *model.Waybill) {
@@ -81,7 +81,7 @@ func (c *WaybillController) callbackMsg2Waybill(msg *dadaapi.CallbackMsg) (retVa
return retVal return retVal
} }
// DeliveryPlatformHandler // IDeliveryPlatformHandler
func (c *WaybillController) CreateWaybill(order *model.GoodsOrder) (err error) { func (c *WaybillController) CreateWaybill(order *model.GoodsOrder) (err error) {
billParams := &dadaapi.OperateOrderRequiredParams{ billParams := &dadaapi.OperateOrderRequiredParams{
ShopNo: utils.Int2Str(order.StoreID), // 当前达达的门店号与京西是一样的 ShopNo: utils.Int2Str(order.StoreID), // 当前达达的门店号与京西是一样的

View File

@@ -4,7 +4,7 @@ import (
"testing" "testing"
"time" "time"
"git.rosy.net.cn/jx-callback/business/controller" "git.rosy.net.cn/jx-callback/business/jxcallback/orderman"
"git.rosy.net.cn/jx-callback/business/model" "git.rosy.net.cn/jx-callback/business/model"
"git.rosy.net.cn/jx-callback/globals" "git.rosy.net.cn/jx-callback/globals"
"git.rosy.net.cn/jx-callback/globals/api" "git.rosy.net.cn/jx-callback/globals/api"
@@ -23,7 +23,7 @@ func init() {
func TestCreateWaybill(t *testing.T) { func TestCreateWaybill(t *testing.T) {
orderID := "817540316000041" orderID := "817540316000041"
if order, err := controller.OrderManager.LoadOrder(orderID, model.VendorIDJD); err == nil { if order, err := orderman.CurOrderManager.LoadOrder(orderID, model.VendorIDJD); err == nil {
// globals.SugarLogger.Debug(order) // globals.SugarLogger.Debug(order)
c := new(WaybillController) c := new(WaybillController)
if err = c.CreateWaybill(order); err == nil { if err = c.CreateWaybill(order); err == nil {

View File

@@ -8,11 +8,11 @@ import (
"git.rosy.net.cn/baseapi/platformapi/mtpsapi" "git.rosy.net.cn/baseapi/platformapi/mtpsapi"
"git.rosy.net.cn/baseapi/utils" "git.rosy.net.cn/baseapi/utils"
"git.rosy.net.cn/jx-callback/business/controller" "git.rosy.net.cn/jx-callback/business/jxcallback/scheduler"
"git.rosy.net.cn/jx-callback/business/jxutils" "git.rosy.net.cn/jx-callback/business/jxutils"
"git.rosy.net.cn/jx-callback/business/legacymodel" "git.rosy.net.cn/jx-callback/business/legacymodel"
"git.rosy.net.cn/jx-callback/business/model" "git.rosy.net.cn/jx-callback/business/model"
"git.rosy.net.cn/jx-callback/business/scheduler" "git.rosy.net.cn/jx-callback/business/partner"
"git.rosy.net.cn/jx-callback/globals" "git.rosy.net.cn/jx-callback/globals"
"git.rosy.net.cn/jx-callback/globals/api" "git.rosy.net.cn/jx-callback/globals/api"
"github.com/astaxie/beego" "github.com/astaxie/beego"
@@ -57,7 +57,7 @@ func (c *WaybillController) OnWaybillExcept(msg *mtpsapi.CallbackOrderExceptionM
StatusTime: utils.Timestamp2Time(msg.Timestamp), StatusTime: utils.Timestamp2Time(msg.Timestamp),
} }
order.VendorOrderID, order.OrderVendorID = jxutils.SplitUniversalOrderID(msg.OrderID) order.VendorOrderID, order.OrderVendorID = jxutils.SplitUniversalOrderID(msg.OrderID)
retVal = mtpsapi.Err2CallbackResponse(controller.WaybillManager.OnWaybillStatusChanged(order), "mtps OnWaybillExcept") retVal = mtpsapi.Err2CallbackResponse(partner.CurOrderManager.OnWaybillStatusChanged(order), "mtps OnWaybillExcept")
}, msg.OrderID) }, msg.OrderID)
return retVal return retVal
} }
@@ -80,7 +80,7 @@ func (c *WaybillController) onWaybillMsg(msg *mtpsapi.CallbackOrderMsg) (retVal
globals.SugarLogger.Warnf("onWaybillMsg unknown msg:%v", msg) globals.SugarLogger.Warnf("onWaybillMsg unknown msg:%v", msg)
return mtpsapi.SuccessResponse return mtpsapi.SuccessResponse
} }
return mtpsapi.Err2CallbackResponse(controller.WaybillManager.OnWaybillStatusChanged(order), order.VendorStatus) return mtpsapi.Err2CallbackResponse(partner.CurOrderManager.OnWaybillStatusChanged(order), order.VendorStatus)
} }
func (c *WaybillController) callbackMsg2Waybill(msg *mtpsapi.CallbackOrderMsg) (retVal *model.Waybill) { func (c *WaybillController) callbackMsg2Waybill(msg *mtpsapi.CallbackOrderMsg) (retVal *model.Waybill) {
@@ -154,7 +154,7 @@ func (c *WaybillController) calculateOrderDeliveryFee(order *model.GoodsOrder, b
} }
func (c *WaybillController) calculateBillDeliveryFee(bill *model.Waybill) (deliveryFee, addFee int64) { func (c *WaybillController) calculateBillDeliveryFee(bill *model.Waybill) (deliveryFee, addFee int64) {
order, err := controller.OrderManager.LoadOrder(bill.VendorOrderID, bill.OrderVendorID) order, err := partner.CurOrderManager.LoadOrder(bill.VendorOrderID, bill.OrderVendorID)
if err != nil { if err != nil {
return 0, 0 return 0, 0
} }
@@ -162,7 +162,7 @@ func (c *WaybillController) calculateBillDeliveryFee(bill *model.Waybill) (deliv
return deliveryFee, addFee return deliveryFee, addFee
} }
// DeliveryPlatformHandler // IDeliveryPlatformHandler
func (c *WaybillController) CreateWaybill(order *model.GoodsOrder) (err error) { func (c *WaybillController) CreateWaybill(order *model.GoodsOrder) (err error) {
db := orm.NewOrm() db := orm.NewOrm()
_, addFee, err := c.calculateOrderDeliveryFee(order, time.Now(), db) _, addFee, err := c.calculateOrderDeliveryFee(order, time.Now(), db)

View File

@@ -3,7 +3,7 @@ package mtps
import ( import (
"testing" "testing"
"git.rosy.net.cn/jx-callback/business/controller" "git.rosy.net.cn/jx-callback/business/jxcallback/orderman"
"git.rosy.net.cn/jx-callback/business/model" "git.rosy.net.cn/jx-callback/business/model"
"git.rosy.net.cn/jx-callback/globals" "git.rosy.net.cn/jx-callback/globals"
"git.rosy.net.cn/jx-callback/globals/api" "git.rosy.net.cn/jx-callback/globals/api"
@@ -22,7 +22,7 @@ func init() {
func TestCreateWaybill(t *testing.T) { func TestCreateWaybill(t *testing.T) {
orerID := "817109342000022" orerID := "817109342000022"
order, _ := controller.OrderManager.LoadOrder(orerID, model.VendorIDJD) order, _ := orderman.CurOrderManager.LoadOrder(orerID, model.VendorIDJD)
// globals.SugarLogger.Debug(order) // globals.SugarLogger.Debug(order)
c := new(WaybillController) c := new(WaybillController)
if err := c.CreateWaybill(order); err != nil { if err := c.CreateWaybill(order); err != nil {

View File

@@ -0,0 +1,52 @@
package partner
import (
"time"
"git.rosy.net.cn/jx-callback/business/model"
)
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)
}
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) (err error)
PickupGoods(order *model.GoodsOrder) (err error)
// 将订单从购物平台配送转为自送
Swtich2SelfDeliver(order *model.GoodsOrder) (err error)
// 将订单从购物平台配送转为自送后又送达
Swtich2SelfDelivered(order *model.GoodsOrder) (err error)
// 完全自送的门店表示开始配送
SelfDeliverDelievering(order *model.GoodsOrder) (err error)
// 完全自送的门店表示配送完成
SelfDeliverDelievered(order *model.GoodsOrder) (err error)
}
type IDeliveryPlatformHandler interface {
CreateWaybill(order *model.GoodsOrder) (err error)
CancelWaybill(bill *model.Waybill) (err error)
}
func Init(curOrderManager IOrderManager) {
CurOrderManager = curOrderManager
}

View File

@@ -11,10 +11,10 @@ import (
"git.rosy.net.cn/baseapi/platformapi/elmapi" "git.rosy.net.cn/baseapi/platformapi/elmapi"
"git.rosy.net.cn/baseapi/utils" "git.rosy.net.cn/baseapi/utils"
"git.rosy.net.cn/jx-callback/business/controller" "git.rosy.net.cn/jx-callback/business/jxcallback/scheduler"
"git.rosy.net.cn/jx-callback/business/jxutils" "git.rosy.net.cn/jx-callback/business/jxutils"
"git.rosy.net.cn/jx-callback/business/model" "git.rosy.net.cn/jx-callback/business/model"
"git.rosy.net.cn/jx-callback/business/scheduler" "git.rosy.net.cn/jx-callback/business/partner"
"git.rosy.net.cn/jx-callback/legacy/freshfood" "git.rosy.net.cn/jx-callback/legacy/freshfood"
) )
@@ -102,13 +102,13 @@ func (c *OrderController) onOrderStatusMsg(msg *elmapi.CallbackOrderStatusMsg) (
globals.SugarLogger.Warnf("onOrderStatusMsg elm msg:%v not handled", msg) globals.SugarLogger.Warnf("onOrderStatusMsg elm msg:%v not handled", msg)
return elmapi.SuccessResponse return elmapi.SuccessResponse
} }
err := controller.OrderManager.OnOrderStatusChanged(status) err := partner.CurOrderManager.OnOrderStatusChanged(status)
// 直接跳到拣货完成 // 直接跳到拣货完成
if msg.MsgType == elmapi.MsgTypeOrderAccepted { if msg.MsgType == elmapi.MsgTypeOrderAccepted {
status.Status = model.OrderStatusFinishedPickup status.Status = model.OrderStatusFinishedPickup
status.VendorStatus = fakePickedUp status.VendorStatus = fakePickedUp
err = controller.OrderManager.OnOrderStatusChanged(status) err = partner.CurOrderManager.OnOrderStatusChanged(status)
} }
// if globals.HandleLegacyJxOrder && err == nil { // if globals.HandleLegacyJxOrder && err == nil {
// c.legacyElmOrderStatusChanged(status) // c.legacyElmOrderStatusChanged(status)
@@ -126,7 +126,7 @@ func (c *OrderController) onOrderCancelRefundMsg(msg *elmapi.CallbackOrderCancel
default: default:
status.Status = model.OrderStatusUnknown status.Status = model.OrderStatusUnknown
} }
return elmapi.Err2CallbackResponse(controller.OrderManager.OnOrderStatusChanged(status), status.VendorStatus) return elmapi.Err2CallbackResponse(partner.CurOrderManager.OnOrderStatusChanged(status), status.VendorStatus)
} }
func (c *OrderController) GetOrder(orderID string) (order *model.GoodsOrder, err error) { func (c *OrderController) GetOrder(orderID string) (order *model.GoodsOrder, err error) {
@@ -191,8 +191,8 @@ func (c *OrderController) GetOrder(orderID string) (order *model.GoodsOrder, err
order.Weight += sku.Weight * sku.Count order.Weight += sku.Weight * sku.Count
} }
} }
setOrederDetailFee(result, order)
} }
setOrederDetailFee(result, order)
return order, err return order, err
} }
@@ -222,7 +222,7 @@ func (c *OrderController) onOrderNew(msg map[string]interface{}) (response *elma
order, err := c.GetOrder(msg["orderId"].(string)) order, err := c.GetOrder(msg["orderId"].(string))
if err == nil { if err == nil {
order.VendorStatus = c.stateAndType2Str(order.VendorStatus, elmapi.MsgTypeOrderValid) order.VendorStatus = c.stateAndType2Str(order.VendorStatus, elmapi.MsgTypeOrderValid)
err = controller.OrderManager.OnOrderNew(order, c.stateAndType2Str(msg["status"].(string), elmapi.MsgTypeOrderValid)) err = partner.CurOrderManager.OnOrderNew(order, c.stateAndType2Str(msg["status"].(string), elmapi.MsgTypeOrderValid))
// if globals.HandleLegacyJxOrder && err == nil { // if globals.HandleLegacyJxOrder && err == nil {
// c.legacyWriteElmOrder(order) // c.legacyWriteElmOrder(order)
// } // }
@@ -244,7 +244,7 @@ func (c *OrderController) onOrderUserUrgeOrder(msg *elmapi.CallbackOrderUrgeMsg)
if globals.ReallyCallPlatformAPI { if globals.ReallyCallPlatformAPI {
freshfood.FreshFoodAPI.ELMClientUrgeOrder(msg.OrderID) freshfood.FreshFoodAPI.ELMClientUrgeOrder(msg.OrderID)
} }
return elmapi.Err2CallbackResponse(controller.OrderManager.OnOrderStatusChanged(status), status.VendorStatus) return elmapi.Err2CallbackResponse(partner.CurOrderManager.OnOrderStatusChanged(status), status.VendorStatus)
} }
func (c *OrderController) stateAndType2Str(state string, msgType int) string { func (c *OrderController) stateAndType2Str(state string, msgType int) string {
@@ -263,7 +263,7 @@ func (c *OrderController) spliltCompositeState(compositeState string) (state str
return compositeState, 0 return compositeState, 0
} }
// PurchasePlatformHandler // IPurchasePlatformHandler
func (c *OrderController) GetStatusFromVendorStatus(vendorStatus string) int { func (c *OrderController) GetStatusFromVendorStatus(vendorStatus string) int {
state, _ := c.spliltCompositeState(vendorStatus) state, _ := c.spliltCompositeState(vendorStatus)
if status, ok := VendorStatus2StatusMap[state]; ok { if status, ok := VendorStatus2StatusMap[state]; ok {

View File

@@ -1,14 +1,11 @@
package elm package elm
import ( import (
"github.com/astaxie/beego/orm"
"git.rosy.net.cn/jx-callback/business/legacymodel"
"git.rosy.net.cn/jx-callback/globals"
"git.rosy.net.cn/baseapi/utils" "git.rosy.net.cn/baseapi/utils"
"git.rosy.net.cn/jx-callback/business/legacymodel"
"git.rosy.net.cn/jx-callback/business/model" "git.rosy.net.cn/jx-callback/business/model"
"git.rosy.net.cn/jx-callback/globals"
"github.com/astaxie/beego/orm"
) )
// 为了兼容之前的表,造出原来需要的数据 // 为了兼容之前的表,造出原来需要的数据

View File

@@ -3,6 +3,7 @@ package elm
import ( import (
"testing" "testing"
_ "git.rosy.net.cn/jx-callback/business/jxcallback/orderman"
"git.rosy.net.cn/jx-callback/globals" "git.rosy.net.cn/jx-callback/globals"
"git.rosy.net.cn/jx-callback/globals/api" "git.rosy.net.cn/jx-callback/globals/api"
"git.rosy.net.cn/jx-callback/globals/db" "git.rosy.net.cn/jx-callback/globals/db"

View File

@@ -5,9 +5,9 @@ import (
"git.rosy.net.cn/baseapi/platformapi/elmapi" "git.rosy.net.cn/baseapi/platformapi/elmapi"
"git.rosy.net.cn/baseapi/utils" "git.rosy.net.cn/baseapi/utils"
"git.rosy.net.cn/jx-callback/business/controller"
"git.rosy.net.cn/jx-callback/business/jxutils" "git.rosy.net.cn/jx-callback/business/jxutils"
"git.rosy.net.cn/jx-callback/business/model" "git.rosy.net.cn/jx-callback/business/model"
"git.rosy.net.cn/jx-callback/business/partner"
"git.rosy.net.cn/jx-callback/globals/api" "git.rosy.net.cn/jx-callback/globals/api"
) )
@@ -48,7 +48,7 @@ func (c *WaybillController) onWaybillStatusMsg(msg *elmapi.CallbackWaybillStatus
// MsgTypeDeiverBySelf // MsgTypeDeiverBySelf
order.Status = model.WaybillStatusUnknown order.Status = model.WaybillStatusUnknown
} }
return elmapi.Err2CallbackResponse(controller.WaybillManager.OnWaybillStatusChanged(order), order.VendorStatus) return elmapi.Err2CallbackResponse(partner.CurOrderManager.OnWaybillStatusChanged(order), order.VendorStatus)
} }
func (c *WaybillController) callbackMsg2Waybill(msg *elmapi.CallbackWaybillStatusMsg) (retVal *model.Waybill) { func (c *WaybillController) callbackMsg2Waybill(msg *elmapi.CallbackWaybillStatusMsg) (retVal *model.Waybill) {

View File

@@ -6,10 +6,10 @@ import (
"git.rosy.net.cn/baseapi/platformapi/autonavi" "git.rosy.net.cn/baseapi/platformapi/autonavi"
"git.rosy.net.cn/baseapi/platformapi/jdapi" "git.rosy.net.cn/baseapi/platformapi/jdapi"
"git.rosy.net.cn/baseapi/utils" "git.rosy.net.cn/baseapi/utils"
"git.rosy.net.cn/jx-callback/business/controller" "git.rosy.net.cn/jx-callback/business/jxcallback/scheduler"
"git.rosy.net.cn/jx-callback/business/jxutils" "git.rosy.net.cn/jx-callback/business/jxutils"
"git.rosy.net.cn/jx-callback/business/model" "git.rosy.net.cn/jx-callback/business/model"
"git.rosy.net.cn/jx-callback/business/scheduler" "git.rosy.net.cn/jx-callback/business/partner"
"git.rosy.net.cn/jx-callback/globals" "git.rosy.net.cn/jx-callback/globals"
"git.rosy.net.cn/jx-callback/globals/api" "git.rosy.net.cn/jx-callback/globals/api"
"git.rosy.net.cn/jx-callback/legacy/freshfood" "git.rosy.net.cn/jx-callback/legacy/freshfood"
@@ -59,7 +59,7 @@ func (c *OrderController) onOrderMsg(msg *jdapi.CallbackOrderMsg) (retVal *jdapi
freshfood.FreshFoodAPI.JDOrderComment(msg) freshfood.FreshFoodAPI.JDOrderComment(msg)
} }
} }
err := controller.OrderManager.OnOrderStatusChanged(status) err := partner.CurOrderManager.OnOrderStatusChanged(status)
// if globals.HandleLegacyJxOrder && err == nil { // if globals.HandleLegacyJxOrder && err == nil {
// c.legacyJdOrderStatusChanged(status) // c.legacyJdOrderStatusChanged(status)
// } // }
@@ -136,8 +136,8 @@ func (c *OrderController) GetOrder(orderID string) (order *model.GoodsOrder, err
order.SalePrice += sku.SalePrice * int64(sku.Count) order.SalePrice += sku.SalePrice * int64(sku.Count)
order.Weight += sku.Weight * sku.Count order.Weight += sku.Weight * sku.Count
} }
setOrederDetailFee(result, order)
} }
setOrederDetailFee(result, order)
return order, err return order, err
} }
@@ -151,7 +151,7 @@ func setOrederDetailFee(result map[string]interface{}, order *model.GoodsOrder)
func (c *OrderController) onOrderNew(msg *jdapi.CallbackOrderMsg) (response *jdapi.CallbackResponse) { func (c *OrderController) onOrderNew(msg *jdapi.CallbackOrderMsg) (response *jdapi.CallbackResponse) {
order, err := c.GetOrder(msg.BillID) order, err := c.GetOrder(msg.BillID)
if err == nil { if err == nil {
err = controller.OrderManager.OnOrderNew(order, msg.StatusID) err = partner.CurOrderManager.OnOrderNew(order, msg.StatusID)
// if err == nil { // if err == nil {
// c.legacyWriteJdOrder(order, false) // c.legacyWriteJdOrder(order, false)
// } // }
@@ -162,7 +162,7 @@ func (c *OrderController) onOrderNew(msg *jdapi.CallbackOrderMsg) (response *jda
func (c *OrderController) onOrderAdjust(msg *jdapi.CallbackOrderMsg) *jdapi.CallbackResponse { func (c *OrderController) onOrderAdjust(msg *jdapi.CallbackOrderMsg) *jdapi.CallbackResponse {
order, err := c.GetOrder(msg.BillID) order, err := c.GetOrder(msg.BillID)
if err == nil { if err == nil {
err = controller.OrderManager.OnOrderAdjust(order, msg.StatusID) err = partner.CurOrderManager.OnOrderAdjust(order, msg.StatusID)
// if globals.HandleLegacyJxOrder && err == nil { // if globals.HandleLegacyJxOrder && err == nil {
// c.legacyWriteJdOrder(order, true) // c.legacyWriteJdOrder(order, true)
// } // }
@@ -185,7 +185,7 @@ func (c *OrderController) callbackMsg2Status(msg *jdapi.CallbackOrderMsg) *model
return orderStatus return orderStatus
} }
// PurchasePlatformHandler // IPurchasePlatformHandler
func (c *OrderController) GetStatusFromVendorStatus(vendorStatus string) int { func (c *OrderController) GetStatusFromVendorStatus(vendorStatus string) int {
if status, ok := VendorStatus2StatusMap[vendorStatus]; ok { if status, ok := VendorStatus2StatusMap[vendorStatus]; ok {
return status return status

View File

@@ -3,7 +3,7 @@ package jd
import ( import (
"testing" "testing"
"git.rosy.net.cn/jx-callback/business/controller" "git.rosy.net.cn/jx-callback/business/jxcallback/orderman"
"git.rosy.net.cn/jx-callback/business/model" "git.rosy.net.cn/jx-callback/business/model"
"git.rosy.net.cn/jx-callback/globals" "git.rosy.net.cn/jx-callback/globals"
"git.rosy.net.cn/jx-callback/globals/api" "git.rosy.net.cn/jx-callback/globals/api"
@@ -22,7 +22,7 @@ func init() {
func TestSwitch2SelfDeliver(t *testing.T) { func TestSwitch2SelfDeliver(t *testing.T) {
orderID := "817540316000041" orderID := "817540316000041"
if order, err := controller.OrderManager.LoadOrder(orderID, model.VendorIDJD); err == nil { if order, err := orderman.CurOrderManager.LoadOrder(orderID, model.VendorIDJD); err == nil {
// globals.SugarLogger.Debug(order) // globals.SugarLogger.Debug(order)
c := new(OrderController) c := new(OrderController)
if err = c.Swtich2SelfDeliver(order); err == nil { if err = c.Swtich2SelfDeliver(order); err == nil {
@@ -34,9 +34,9 @@ func TestSwitch2SelfDeliver(t *testing.T) {
} }
} }
func Test_GetOrder(t *testing.T) { func TestGetOrder(t *testing.T) {
_, err := new(OrderController).GetOrder("815536199000222") _, err := new(OrderController).GetOrder("815536199000222")
if err != nil { if err != nil {
panic(err.Error()) t.Fatal(err.Error())
} }
} }

View File

@@ -3,9 +3,9 @@ package jd
import ( import (
"git.rosy.net.cn/baseapi/platformapi/jdapi" "git.rosy.net.cn/baseapi/platformapi/jdapi"
"git.rosy.net.cn/baseapi/utils" "git.rosy.net.cn/baseapi/utils"
"git.rosy.net.cn/jx-callback/business/controller"
"git.rosy.net.cn/jx-callback/business/jxutils" "git.rosy.net.cn/jx-callback/business/jxutils"
"git.rosy.net.cn/jx-callback/business/model" "git.rosy.net.cn/jx-callback/business/model"
"git.rosy.net.cn/jx-callback/business/partner"
"git.rosy.net.cn/jx-callback/globals/api" "git.rosy.net.cn/jx-callback/globals/api"
) )
@@ -46,7 +46,7 @@ func (c *WaybillController) onWaybillMsg(msg *jdapi.CallbackDeliveryStatusMsg) (
default: default:
order.Status = model.WaybillStatusUnknown order.Status = model.WaybillStatusUnknown
} }
return jdapi.Err2CallbackResponse(controller.WaybillManager.OnWaybillStatusChanged(order), order.VendorStatus) return jdapi.Err2CallbackResponse(partner.CurOrderManager.OnWaybillStatusChanged(order), order.VendorStatus)
} }
func (c *WaybillController) callbackMsg2Waybill(msg *jdapi.CallbackDeliveryStatusMsg) (retVal *model.Waybill) { func (c *WaybillController) callbackMsg2Waybill(msg *jdapi.CallbackDeliveryStatusMsg) (retVal *model.Waybill) {

View File

@@ -2,7 +2,7 @@ package controllers
import ( import (
"git.rosy.net.cn/baseapi/utils" "git.rosy.net.cn/baseapi/utils"
"git.rosy.net.cn/jx-callback/business/controller/dada" "git.rosy.net.cn/jx-callback/business/partner/delivery/dada"
"git.rosy.net.cn/jx-callback/globals" "git.rosy.net.cn/jx-callback/globals"
"git.rosy.net.cn/jx-callback/globals/api" "git.rosy.net.cn/jx-callback/globals/api"
"git.rosy.net.cn/jx-callback/legacy/dada/controller" "git.rosy.net.cn/jx-callback/legacy/dada/controller"

View File

@@ -3,7 +3,7 @@ package controllers
import ( import (
"git.rosy.net.cn/baseapi/platformapi/elmapi" "git.rosy.net.cn/baseapi/platformapi/elmapi"
"git.rosy.net.cn/baseapi/utils" "git.rosy.net.cn/baseapi/utils"
"git.rosy.net.cn/jx-callback/business/controller/elm" "git.rosy.net.cn/jx-callback/business/partner/purchase/elm"
"git.rosy.net.cn/jx-callback/globals" "git.rosy.net.cn/jx-callback/globals"
"git.rosy.net.cn/jx-callback/globals/api" "git.rosy.net.cn/jx-callback/globals/api"
"git.rosy.net.cn/jx-callback/legacy/elm/controller" "git.rosy.net.cn/jx-callback/legacy/elm/controller"

View File

@@ -3,7 +3,7 @@ package controllers
import ( import (
"git.rosy.net.cn/baseapi/platformapi/jdapi" "git.rosy.net.cn/baseapi/platformapi/jdapi"
"git.rosy.net.cn/baseapi/utils" "git.rosy.net.cn/baseapi/utils"
"git.rosy.net.cn/jx-callback/business/controller/jd" "git.rosy.net.cn/jx-callback/business/partner/purchase/jd"
"git.rosy.net.cn/jx-callback/globals" "git.rosy.net.cn/jx-callback/globals"
"git.rosy.net.cn/jx-callback/globals/api" "git.rosy.net.cn/jx-callback/globals/api"
"git.rosy.net.cn/jx-callback/legacy/jd/controller" "git.rosy.net.cn/jx-callback/legacy/jd/controller"

View File

@@ -2,7 +2,7 @@ package controllers
import ( import (
"git.rosy.net.cn/baseapi/utils" "git.rosy.net.cn/baseapi/utils"
"git.rosy.net.cn/jx-callback/business/controller/mtps" "git.rosy.net.cn/jx-callback/business/partner/delivery/mtps"
"git.rosy.net.cn/jx-callback/globals" "git.rosy.net.cn/jx-callback/globals"
"git.rosy.net.cn/jx-callback/globals/api" "git.rosy.net.cn/jx-callback/globals/api"
"git.rosy.net.cn/jx-callback/legacy/mtps/controller" "git.rosy.net.cn/jx-callback/legacy/mtps/controller"

View File

@@ -5,7 +5,7 @@ import (
"fmt" "fmt"
"os" "os"
bzcon "git.rosy.net.cn/jx-callback/business/controller" "git.rosy.net.cn/jx-callback/business/jxcallback/orderman"
"git.rosy.net.cn/jx-callback/globals" "git.rosy.net.cn/jx-callback/globals"
"git.rosy.net.cn/jx-callback/globals/api" "git.rosy.net.cn/jx-callback/globals/api"
"git.rosy.net.cn/jx-callback/globals/db" "git.rosy.net.cn/jx-callback/globals/db"
@@ -86,9 +86,8 @@ func main() {
if globals.CallLegacyMsgHandler { if globals.CallLegacyMsgHandler {
controller.InitOrder() controller.InitOrder()
} }
orderman.LoadPendingOrders()
} }
bzcon.LoadPendingOrders()
if beego.BConfig.RunMode == "dev" { if beego.BConfig.RunMode == "dev" {
beego.BConfig.WebConfig.DirectoryIndex = true beego.BConfig.WebConfig.DirectoryIndex = true
beego.BConfig.WebConfig.StaticDir["/swagger"] = "swagger" beego.BConfig.WebConfig.StaticDir["/swagger"] = "swagger"