- continue refactoring...
This commit is contained in:
@@ -34,36 +34,28 @@ var (
|
||||
}
|
||||
)
|
||||
|
||||
type OrderController struct {
|
||||
scheduler.BasePurchasePlatform
|
||||
}
|
||||
|
||||
func init() {
|
||||
scheduler.CurrentScheduler.RegisterPurchasePlatform(model.VendorIDELM, new(OrderController))
|
||||
}
|
||||
|
||||
func (c *OrderController) OnOrderStatusMsg(msg *elmapi.CallbackOrderStatusMsg) (retVal *elmapi.CallbackResponse) {
|
||||
func (c *PurchaseHandler) OnOrderStatusMsg(msg *elmapi.CallbackOrderStatusMsg) (retVal *elmapi.CallbackResponse) {
|
||||
jxutils.CallMsgHandler(func() {
|
||||
retVal = c.onOrderStatusMsg(msg)
|
||||
}, jxutils.ComposeUniversalOrderID(msg.OrderID, model.VendorIDELM))
|
||||
return retVal
|
||||
}
|
||||
|
||||
func (c *OrderController) OnOrderNewMsg(msg map[string]interface{}) (retVal *elmapi.CallbackResponse) {
|
||||
func (c *PurchaseHandler) OnOrderNewMsg(msg map[string]interface{}) (retVal *elmapi.CallbackResponse) {
|
||||
jxutils.CallMsgHandler(func() {
|
||||
retVal = c.onOrderNew(msg)
|
||||
}, jxutils.ComposeUniversalOrderID(msg["orderId"].(string), model.VendorIDELM))
|
||||
return retVal
|
||||
}
|
||||
|
||||
func (c *OrderController) OnOrderCancelRefundMsg(msg *elmapi.CallbackOrderCancelRefundMsg) (retVal *elmapi.CallbackResponse) {
|
||||
func (c *PurchaseHandler) OnOrderCancelRefundMsg(msg *elmapi.CallbackOrderCancelRefundMsg) (retVal *elmapi.CallbackResponse) {
|
||||
jxutils.CallMsgHandler(func() {
|
||||
retVal = c.onOrderCancelRefundMsg(msg)
|
||||
}, jxutils.ComposeUniversalOrderID(msg.OrderID, model.VendorIDELM))
|
||||
return retVal
|
||||
}
|
||||
|
||||
func (c *OrderController) orderStatusMsg2Status(msg *elmapi.CallbackOrderStatusMsg) *model.OrderStatus {
|
||||
func (c *PurchaseHandler) orderStatusMsg2Status(msg *elmapi.CallbackOrderStatusMsg) *model.OrderStatus {
|
||||
orderStatus := &model.OrderStatus{
|
||||
VendorOrderID: msg.OrderID,
|
||||
VendorID: model.VendorIDELM,
|
||||
@@ -76,7 +68,7 @@ func (c *OrderController) orderStatusMsg2Status(msg *elmapi.CallbackOrderStatusM
|
||||
return orderStatus
|
||||
}
|
||||
|
||||
func (c *OrderController) cancelRefundMsg2Status(msg *elmapi.CallbackOrderCancelRefundMsg) *model.OrderStatus {
|
||||
func (c *PurchaseHandler) cancelRefundMsg2Status(msg *elmapi.CallbackOrderCancelRefundMsg) *model.OrderStatus {
|
||||
orderStatus := &model.OrderStatus{
|
||||
VendorOrderID: msg.OrderID,
|
||||
VendorID: model.VendorIDELM,
|
||||
@@ -89,7 +81,7 @@ func (c *OrderController) cancelRefundMsg2Status(msg *elmapi.CallbackOrderCancel
|
||||
return orderStatus
|
||||
}
|
||||
|
||||
func (c *OrderController) onOrderStatusMsg(msg *elmapi.CallbackOrderStatusMsg) (retVal *elmapi.CallbackResponse) {
|
||||
func (c *PurchaseHandler) onOrderStatusMsg(msg *elmapi.CallbackOrderStatusMsg) (retVal *elmapi.CallbackResponse) {
|
||||
status := c.orderStatusMsg2Status(msg)
|
||||
switch msg.MsgType {
|
||||
case elmapi.MsgTypeOrderAccepted:
|
||||
@@ -116,7 +108,7 @@ func (c *OrderController) onOrderStatusMsg(msg *elmapi.CallbackOrderStatusMsg) (
|
||||
return elmapi.Err2CallbackResponse(err, status.VendorStatus)
|
||||
}
|
||||
|
||||
func (c *OrderController) onOrderCancelRefundMsg(msg *elmapi.CallbackOrderCancelRefundMsg) (retVal *elmapi.CallbackResponse) {
|
||||
func (c *PurchaseHandler) onOrderCancelRefundMsg(msg *elmapi.CallbackOrderCancelRefundMsg) (retVal *elmapi.CallbackResponse) {
|
||||
status := c.cancelRefundMsg2Status(msg)
|
||||
switch msg.MsgType {
|
||||
case elmapi.MsgTypeUserApplyCancel:
|
||||
@@ -129,7 +121,7 @@ func (c *OrderController) onOrderCancelRefundMsg(msg *elmapi.CallbackOrderCancel
|
||||
return elmapi.Err2CallbackResponse(partner.CurOrderManager.OnOrderStatusChanged(status), status.VendorStatus)
|
||||
}
|
||||
|
||||
func (c *OrderController) GetOrder(orderID string) (order *model.GoodsOrder, err error) {
|
||||
func (c *PurchaseHandler) GetOrder(orderID string) (order *model.GoodsOrder, err error) {
|
||||
result, err := api.ElmAPI.GetOrder(orderID)
|
||||
if err == nil {
|
||||
phoneList := result["phoneList"].([]interface{})
|
||||
@@ -217,7 +209,7 @@ func setOrederDetailFee(result map[string]interface{}, order *model.GoodsOrder)
|
||||
}
|
||||
|
||||
//
|
||||
func (c *OrderController) onOrderNew(msg map[string]interface{}) (response *elmapi.CallbackResponse) {
|
||||
func (c *PurchaseHandler) onOrderNew(msg map[string]interface{}) (response *elmapi.CallbackResponse) {
|
||||
// todo 这里应该可以直接用msg里的内容,而不用再次去查
|
||||
order, err := c.GetOrder(msg["orderId"].(string))
|
||||
if err == nil {
|
||||
@@ -230,7 +222,7 @@ func (c *OrderController) onOrderNew(msg map[string]interface{}) (response *elma
|
||||
return elmapi.Err2CallbackResponse(err, "elm onOrderNew")
|
||||
}
|
||||
|
||||
func (c *OrderController) onOrderUserUrgeOrder(msg *elmapi.CallbackOrderUrgeMsg) *elmapi.CallbackResponse {
|
||||
func (c *PurchaseHandler) onOrderUserUrgeOrder(msg *elmapi.CallbackOrderUrgeMsg) *elmapi.CallbackResponse {
|
||||
status := &model.OrderStatus{
|
||||
VendorOrderID: msg.OrderID,
|
||||
VendorID: model.VendorIDELM,
|
||||
@@ -247,11 +239,11 @@ func (c *OrderController) onOrderUserUrgeOrder(msg *elmapi.CallbackOrderUrgeMsg)
|
||||
return elmapi.Err2CallbackResponse(partner.CurOrderManager.OnOrderStatusChanged(status), status.VendorStatus)
|
||||
}
|
||||
|
||||
func (c *OrderController) stateAndType2Str(state string, msgType int) string {
|
||||
func (c *PurchaseHandler) stateAndType2Str(state string, msgType int) string {
|
||||
return fmt.Sprintf("%s-%d", state, msgType)
|
||||
}
|
||||
|
||||
func (c *OrderController) spliltCompositeState(compositeState string) (state string, msgType int) {
|
||||
func (c *PurchaseHandler) spliltCompositeState(compositeState string) (state string, msgType int) {
|
||||
index := strings.Index(compositeState, "-")
|
||||
if index >= 0 {
|
||||
msgType = int(utils.Str2Int64(compositeState[index+1:]))
|
||||
@@ -264,7 +256,7 @@ func (c *OrderController) spliltCompositeState(compositeState string) (state str
|
||||
}
|
||||
|
||||
// IPurchasePlatformHandler
|
||||
func (c *OrderController) GetStatusFromVendorStatus(vendorStatus string) int {
|
||||
func (c *PurchaseHandler) GetStatusFromVendorStatus(vendorStatus string) int {
|
||||
state, _ := c.spliltCompositeState(vendorStatus)
|
||||
if status, ok := VendorStatus2StatusMap[state]; ok {
|
||||
return status
|
||||
@@ -272,7 +264,7 @@ func (c *OrderController) GetStatusFromVendorStatus(vendorStatus string) int {
|
||||
return model.OrderStatusUnknown
|
||||
}
|
||||
|
||||
func (c *OrderController) AcceptOrRefuseOrder(order *model.GoodsOrder, isAcceptIt bool) (err error) {
|
||||
func (c *PurchaseHandler) AcceptOrRefuseOrder(order *model.GoodsOrder, isAcceptIt bool) (err error) {
|
||||
if isAcceptIt {
|
||||
err = api.ElmAPI.ConfirmOrder(order.VendorOrderID)
|
||||
} else {
|
||||
@@ -283,29 +275,29 @@ func (c *OrderController) AcceptOrRefuseOrder(order *model.GoodsOrder, isAcceptI
|
||||
|
||||
// 饿了么没有拣货这个状态,直接返回成功
|
||||
// 真实流程中也不会调用这个方法,因为接收订单后状态会直接转移到已拣货
|
||||
func (c *OrderController) PickupGoods(order *model.GoodsOrder) (err error) {
|
||||
func (c *PurchaseHandler) PickupGoods(order *model.GoodsOrder) (err error) {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (c *OrderController) Swtich2SelfDeliver(order *model.GoodsOrder) (err error) {
|
||||
func (c *PurchaseHandler) Swtich2SelfDeliver(order *model.GoodsOrder) (err error) {
|
||||
err = api.ElmAPI.DeliveryBySelfLite(order.VendorOrderID)
|
||||
return err
|
||||
}
|
||||
|
||||
// 饿了么转商家自送后,没有确认送达的概念,空操作
|
||||
func (c *OrderController) Swtich2SelfDelivered(order *model.GoodsOrder) (err error) {
|
||||
func (c *PurchaseHandler) Swtich2SelfDelivered(order *model.GoodsOrder) (err error) {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (c *OrderController) SelfDeliverDelievering(order *model.GoodsOrder) (err error) {
|
||||
func (c *PurchaseHandler) SelfDeliverDelievering(order *model.GoodsOrder) (err error) {
|
||||
return api.ElmAPI.StartDeliveryBySelf(order.VendorOrderID, order.ConsigneeMobile)
|
||||
}
|
||||
|
||||
func (c *OrderController) SelfDeliverDelievered(order *model.GoodsOrder) (err error) {
|
||||
func (c *PurchaseHandler) SelfDeliverDelievered(order *model.GoodsOrder) (err error) {
|
||||
return api.ElmAPI.CompleteDeliveryBySelf(order.VendorOrderID, order.ConsigneeMobile)
|
||||
}
|
||||
|
||||
func (c *OrderController) GetStatusActionTimeout(statusType, status int) time.Duration {
|
||||
func (c *PurchaseHandler) GetStatusActionTimeout(statusType, status int) time.Duration {
|
||||
if statusType == scheduler.TimerStatusTypeOrder && status == model.OrderStatusNew {
|
||||
return acceptOrderDelay // 饿了么开了专送店的订单没有拣货状态,接单后就为拣货完成,所以要延迟接单,否则门店来不及备货
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user