- 定单--->订单

This commit is contained in:
gazebo
2018-07-16 17:17:37 +08:00
parent b75739d6c2
commit 5e59317ec7
7 changed files with 16 additions and 16 deletions

View File

@@ -15,7 +15,7 @@ import (
"git.rosy.net.cn/baseapi/utils" "git.rosy.net.cn/baseapi/utils"
"git.rosy.net.cn/baseapi/utils/routinepool" "git.rosy.net.cn/baseapi/utils/routinepool"
_ "git.rosy.net.cn/jx-callback/business/scheduler/defsch" // 导入缺省单调度器 _ "git.rosy.net.cn/jx-callback/business/scheduler/defsch" // 导入缺省单调度器
"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"
) )

View File

@@ -213,7 +213,7 @@ func (c *OrderController) AcceptOrRefuseOrder(order *model.GoodsOrder, isAcceptI
} }
// 饿了么没有拣货这个状态,直接返回成功 // 饿了么没有拣货这个状态,直接返回成功
// 真实流程中也不会调用这个方法,因为接收单后状态会直接转移到已拣货 // 真实流程中也不会调用这个方法,因为接收单后状态会直接转移到已拣货
func (c *OrderController) PickedUpGoods(order *model.GoodsOrder) (err error) { func (c *OrderController) PickedUpGoods(order *model.GoodsOrder) (err error) {
return nil return nil
} }

View File

@@ -51,17 +51,17 @@ const (
OrderStatusUnknown = 0 OrderStatusUnknown = 0
OrderStatusNew = 5 // 新 OrderStatusNew = 5 // 新
OrderStatusAdjust = 8 // 单调整 OrderStatusAdjust = 8 // 单调整
OrderStatusAccepted = 10 // 已经接单,也即待出库,待拣货 OrderStatusAccepted = 10 // 已经接单,也即待出库,待拣货
OrderStatusFinishedPickup = 15 // 拣货完成 OrderStatusFinishedPickup = 15 // 拣货完成
OrderStatusDelivering = 20 // 开始配送,配送员已取货,从这里开始就是运单消息了 OrderStatusDelivering = 20 // 开始配送,配送员已取货,从这里开始就是运单消息了
OrderStatusEndBegin = 100 // 以上的状态就是结束状态 OrderStatusEndBegin = 100 // 以上的状态就是结束状态
OrderStatusDelivered = 105 // 妥投 OrderStatusDelivered = 105 // 妥投
OrderStatusFinished = 110 // 单已完成 OrderStatusFinished = 110 // 单已完成
OrderStatusCanceled = 115 // 单已取消 OrderStatusCanceled = 115 // 单已取消
OrderStatusFailed = 120 // 单已失败 OrderStatusFailed = 120 // 单已失败
) )
const ( const (

View File

@@ -38,7 +38,7 @@ type GoodsOrder struct {
WaybillVendorID int `orm:"column(waybill_vendor_id)"` WaybillVendorID int `orm:"column(waybill_vendor_id)"`
WaybillStatus int WaybillStatus int
WaybillVendorStatus string `orm:"size(16)"` WaybillVendorStatus string `orm:"size(16)"`
DuplicatedCount int // 重复新单消息数,这个一般不是由于消息重发成的消息重发由OrderStatus过滤一般是业务逻辑成的 DuplicatedCount int // 重复新单消息数,这个一般不是由于消息重发成的消息重发由OrderStatus过滤一般是业务逻辑成的
OrderCreatedAt time.Time `orm:"type(datetime);index"` OrderCreatedAt time.Time `orm:"type(datetime);index"`
OrderFinishedAt time.Time `orm:"type(datetime)"` OrderFinishedAt time.Time `orm:"type(datetime)"`
ModelTimeInfo ModelTimeInfo
@@ -69,7 +69,7 @@ type OrderSku struct {
OrderCreatedAt time.Time `orm:"type(datetime);index"` // 分区考虑 OrderCreatedAt time.Time `orm:"type(datetime);index"` // 分区考虑
} }
// 同样商品在一个单中可能重复出现(比如搞活动时,相同商品价格不一样,第一个有优惠) // 同样商品在一个单中可能重复出现(比如搞活动时,相同商品价格不一样,第一个有优惠)
// 所以这里不能用唯一索引 // 所以这里不能用唯一索引
func (o *OrderSku) TableIndex() [][]string { func (o *OrderSku) TableIndex() [][]string {
return [][]string{ return [][]string{
@@ -90,7 +90,7 @@ type Waybill struct {
VendorStatus string `orm:"size(16)"` VendorStatus string `orm:"size(16)"`
ActualFee int64 // 实际要支付给快递公司的实际费用 ActualFee int64 // 实际要支付给快递公司的实际费用
DesiredFee int64 // 根据合同计算出来的预期费用 DesiredFee int64 // 根据合同计算出来的预期费用
DuplicatedCount int // 重复新单消息数,这个一般不是由于消息重发成的消息重发由OrderStatus过滤一般是业务逻辑成的 DuplicatedCount int // 重复新单消息数,这个一般不是由于消息重发成的消息重发由OrderStatus过滤一般是业务逻辑成的
WaybillCreatedAt time.Time `orm:"type(datetime);index"` WaybillCreatedAt time.Time `orm:"type(datetime);index"`
WaybillFinishedAt time.Time `orm:"type(datetime)"` WaybillFinishedAt time.Time `orm:"type(datetime)"`
ModelTimeInfo ModelTimeInfo
@@ -109,16 +109,16 @@ func (w *Waybill) TableIndex() [][]string {
} }
} }
// 包含单与运单的状态及事件vendor status // 包含单与运单的状态及事件vendor status
type OrderStatus struct { type OrderStatus struct {
ID int64 `orm:"column(id)"` ID int64 `orm:"column(id)"`
VendorOrderID string `orm:"column(vendor_order_id);size(48)"` VendorOrderID string `orm:"column(vendor_order_id);size(48)"`
VendorID int `orm:"column(vendor_id)"` VendorID int `orm:"column(vendor_id)"`
OrderType int // 0:1运单 OrderType int // 0:1运单
Status int // 如果Status为OrderStatusEvent表示VendorStatus只是一个通知事件不是状态变化 Status int // 如果Status为OrderStatusEvent表示VendorStatus只是一个通知事件不是状态变化
VendorStatus string `orm:"size(16)"` VendorStatus string `orm:"size(16)"`
StatusTime time.Time `orm:"type(datetime);index"` StatusTime time.Time `orm:"type(datetime);index"`
DuplicatedCount int // 收到的重复状态转换(或消息)数,一般是由于重发成的 DuplicatedCount int // 收到的重复状态转换(或消息)数,一般是由于重发成的
ModelTimeInfo ModelTimeInfo
} }

View File

@@ -15,7 +15,7 @@ func init() {
scheduler.CurrentScheduler = sch scheduler.CurrentScheduler = sch
} }
// 以下是 // 以下是
func (s *DefScheduler) OnOrderNew(order *model.GoodsOrder) (err error) { func (s *DefScheduler) OnOrderNew(order *model.GoodsOrder) (err error) {
return nil return nil
} }

View File

@@ -49,7 +49,7 @@ type Scheduler interface {
RegisterPurchasePlatform(vendorID int, handler PurchasePlatformHandler) RegisterPurchasePlatform(vendorID int, handler PurchasePlatformHandler)
RegisterDeliveryPlatform(vendorID int, handler DeliveryPlatformHandler) RegisterDeliveryPlatform(vendorID int, handler DeliveryPlatformHandler)
// 以下是 // 以下是
OnOrderNew(order *model.GoodsOrder) (err error) OnOrderNew(order *model.GoodsOrder) (err error)
OnOrderAccepted(order *model.GoodsOrder) (err error) OnOrderAccepted(order *model.GoodsOrder) (err error)
OnOrderStatusChanged(status *model.OrderStatus) (err error) OnOrderStatusChanged(status *model.OrderStatus) (err error)

View File

@@ -29,7 +29,7 @@ func InitOrder() {
go orderMsgHandlerRoutine() go orderMsgHandlerRoutine()
// todo 这样操作在有多个进程时,会有问题 // todo 这样操作在有多个进程时,会有问题
// 另外当前这个模式可能会出现同一个单的消息虽然远程推送过来顺序是对的但经过处理后推送到freshfood时乱序因为每个消息的处理时间是不确定的 // 另外当前这个模式可能会出现同一个单的消息虽然远程推送过来顺序是对的但经过处理后推送到freshfood时乱序因为每个消息的处理时间是不确定的
handlePendingOrderMsg() handlePendingOrderMsg()
} }