- 调整美团外卖售后单事件调用结构(与JD和EBAI一致)
This commit is contained in:
@@ -27,7 +27,7 @@ func TestOnFinancialMsg(t *testing.T) {
|
|||||||
// msg.Body["type"] = json.Number("40")
|
// msg.Body["type"] = json.Number("40")
|
||||||
// msg.Body["cancel_type"] = json.Number("2")
|
// msg.Body["cancel_type"] = json.Number("2")
|
||||||
|
|
||||||
res := CurPurchaseHandler.OnFinancialMsg(msg)
|
res := CurPurchaseHandler.onAfsOrderMsg(msg)
|
||||||
fmt.Println(res)
|
fmt.Println(res)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,6 @@ package mtwm
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"git.rosy.net.cn/baseapi/platformapi/mtwmapi"
|
"git.rosy.net.cn/baseapi/platformapi/mtwmapi"
|
||||||
"git.rosy.net.cn/baseapi/utils"
|
|
||||||
"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"
|
||||||
)
|
)
|
||||||
@@ -19,11 +18,11 @@ func OnOrderCallbackMsg(msg *mtwmapi.CallbackMsg) (response *mtwmapi.CallbackRes
|
|||||||
}
|
}
|
||||||
}, jxutils.ComposeUniversalOrderID(orderID, model.VendorIDMTWM))
|
}, jxutils.ComposeUniversalOrderID(orderID, model.VendorIDMTWM))
|
||||||
}
|
}
|
||||||
if msg.Cmd == mtwmapi.MsgTypeOrderRefund || msg.Cmd == mtwmapi.MsgTypeOrderPartialRefund {
|
/*if msg.Cmd == mtwmapi.MsgTypeOrderRefund || msg.Cmd == mtwmapi.MsgTypeOrderPartialRefund {
|
||||||
utils.CallFuncAsync(func() {
|
utils.CallFuncAsync(func() {
|
||||||
OnFinancialMsg(msg)
|
OnFinancialMsg(msg)
|
||||||
})
|
})
|
||||||
} else if msg.Cmd == mtwmapi.MsgTypeStoreStatusChanged {
|
} else */if msg.Cmd == mtwmapi.MsgTypeStoreStatusChanged {
|
||||||
response = curPurchaseHandler.onStoreStatusChanged(msg)
|
response = curPurchaseHandler.onStoreStatusChanged(msg)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ func TestOnFinancialMsg(t *testing.T) {
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
msg.Data.Set("food", string(utils.MustMarshal(food)))
|
msg.Data.Set("food", string(utils.MustMarshal(food)))
|
||||||
res := OnFinancialMsg(msg)
|
res := curPurchaseHandler.onAfsOrderMsg(msg)
|
||||||
fmt.Println(res)
|
fmt.Println(res)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -153,6 +153,9 @@ func (p *PurchaseHandler) Map2Order(orderData map[string]interface{}) (order *mo
|
|||||||
|
|
||||||
func (c *PurchaseHandler) onOrderMsg(msg *mtwmapi.CallbackMsg) (response *mtwmapi.CallbackResponse) {
|
func (c *PurchaseHandler) onOrderMsg(msg *mtwmapi.CallbackMsg) (response *mtwmapi.CallbackResponse) {
|
||||||
var err error
|
var err error
|
||||||
|
if c.isAfsMsg(msg) {
|
||||||
|
response = c.OnAfsOrderMsg(msg)
|
||||||
|
} else {
|
||||||
if msg.Cmd == mtwmapi.MsgTypeNewOrder {
|
if msg.Cmd == mtwmapi.MsgTypeNewOrder {
|
||||||
order, orderMap, err2 := c.getOrder(GetOrderIDFromMsg(msg))
|
order, orderMap, err2 := c.getOrder(GetOrderIDFromMsg(msg))
|
||||||
if err = err2; err == nil {
|
if err = err2; err == nil {
|
||||||
@@ -196,6 +199,7 @@ func (c *PurchaseHandler) onOrderMsg(msg *mtwmapi.CallbackMsg) (response *mtwmap
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
return mtwmapi.Err2CallbackResponse(err, "")
|
return mtwmapi.Err2CallbackResponse(err, "")
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -216,7 +220,7 @@ func (c *PurchaseHandler) callbackMsg2Status(msg *mtwmapi.CallbackMsg) (orderSta
|
|||||||
case mtwmapi.MsgTypeOrderRefund, mtwmapi.MsgTypeOrderPartialRefund:
|
case mtwmapi.MsgTypeOrderRefund, mtwmapi.MsgTypeOrderPartialRefund:
|
||||||
notifyType := msg.Data.Get("notify_type")
|
notifyType := msg.Data.Get("notify_type")
|
||||||
vendorStatus = msg.Cmd + "-" + notifyType
|
vendorStatus = msg.Cmd + "-" + notifyType
|
||||||
if !isOrderFinished(utils.Str2Int64(orderID)) {
|
if true /*!c.isOrderFinished(utils.Str2Int64(orderID))*/ { // 已经提前判断了,到这里的都是售中
|
||||||
remark = msg.Data.Get("reason")
|
remark = msg.Data.Get("reason")
|
||||||
if msg.Cmd == mtwmapi.MsgTypeOrderPartialRefund {
|
if msg.Cmd == mtwmapi.MsgTypeOrderPartialRefund {
|
||||||
if notifyType == mtwmapi.NotifyTypePartyApply {
|
if notifyType == mtwmapi.NotifyTypePartyApply {
|
||||||
@@ -404,7 +408,7 @@ func (c *PurchaseHandler) AdjustOrder(ctx *jxcontext.Context, order *model.Goods
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
func isOrderFinished(vendorOrderID int64) bool {
|
func (c *PurchaseHandler) isOrderFinished(vendorOrderID int64) bool {
|
||||||
if status, err := api.MtwmAPI.OrderViewStatus(vendorOrderID); err == nil {
|
if status, err := api.MtwmAPI.OrderViewStatus(vendorOrderID); err == nil {
|
||||||
strStatus := utils.Int2Str(status)
|
strStatus := utils.Int2Str(status)
|
||||||
return strStatus == mtwmapi.OrderStatusFinished ||
|
return strStatus == mtwmapi.OrderStatusFinished ||
|
||||||
|
|||||||
@@ -1,16 +1,54 @@
|
|||||||
package mtwm
|
package mtwm
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"fmt"
|
||||||
|
|
||||||
|
"git.rosy.net.cn/baseapi/platformapi/mtwmapi"
|
||||||
|
"git.rosy.net.cn/baseapi/utils"
|
||||||
|
"git.rosy.net.cn/jx-callback/business/jxutils"
|
||||||
"git.rosy.net.cn/jx-callback/business/jxutils/jxcontext"
|
"git.rosy.net.cn/jx-callback/business/jxutils/jxcontext"
|
||||||
"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/api"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
func (c *PurchaseHandler) isAfsMsg(msg *mtwmapi.CallbackMsg) bool {
|
||||||
|
if msg.Cmd == mtwmapi.MsgTypeOrderRefund || msg.Cmd == mtwmapi.MsgTypeOrderPartialRefund {
|
||||||
|
return c.isOrderFinished(utils.Str2Int64(GetOrderIDFromMsg(msg)))
|
||||||
|
}
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
func (c *PurchaseHandler) OnAfsOrderMsg(msg *mtwmapi.CallbackMsg) (retVal *mtwmapi.CallbackResponse) {
|
||||||
|
utils.CallFuncAsync(func() {
|
||||||
|
jxutils.CallMsgHandler(func() {
|
||||||
|
retVal = c.onAfsOrderMsg(msg)
|
||||||
|
}, jxutils.ComposeUniversalOrderID(GetOrderIDFromMsg(msg), model.VendorIDEBAI))
|
||||||
|
})
|
||||||
|
return retVal
|
||||||
|
}
|
||||||
|
|
||||||
|
func (c *PurchaseHandler) onAfsOrderMsg(msg *mtwmapi.CallbackMsg) (retVal *mtwmapi.CallbackResponse) {
|
||||||
|
var err error
|
||||||
|
err = OnFinancialMsg(msg)
|
||||||
|
return mtwmapi.Err2CallbackResponse(err, "")
|
||||||
|
}
|
||||||
|
|
||||||
// 审核售后单申请
|
// 审核售后单申请
|
||||||
func (c *PurchaseHandler) AgreeOrRefuseRefund(ctx *jxcontext.Context, order *model.AfsOrder, approveType int, reason string) (err error) {
|
func (c *PurchaseHandler) AgreeOrRefuseRefund(ctx *jxcontext.Context, order *model.AfsOrder, approveType int, reason string) (err error) {
|
||||||
|
if globals.EnableMtwmStoreWrite {
|
||||||
|
if approveType == partner.AfsApproveTypeRefused {
|
||||||
|
err = api.MtwmAPI.OrderRefundReject(utils.Str2Int64(order.VendorOrderID), reason)
|
||||||
|
} else {
|
||||||
|
err = api.MtwmAPI.OrderRefundAgree(utils.Str2Int64(order.VendorOrderID), reason)
|
||||||
|
}
|
||||||
|
}
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
// 确认收到退货
|
// 确认收到退货
|
||||||
func (c *PurchaseHandler) ConfirmReceivedReturnGoods(ctx *jxcontext.Context, order *model.AfsOrder) (err error) {
|
func (c *PurchaseHandler) ConfirmReceivedReturnGoods(ctx *jxcontext.Context, order *model.AfsOrder) (err error) {
|
||||||
|
err = fmt.Errorf("内部错误,美团外卖平台不支持确认收到退货操作")
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user