This commit is contained in:
邹宗楠
2026-07-07 17:17:03 +08:00
parent 7e0cd4a82c
commit 14c38b6bfa

View File

@@ -40,8 +40,21 @@ var (
mtwmapi.NotifyTypeCancelRefund: model.AfsOrderStatusFailed, mtwmapi.NotifyTypeCancelRefund: model.AfsOrderStatusFailed,
mtwmapi.NotifyTypeCancelRefundComplaint: model.AfsOrderStatusFailed, mtwmapi.NotifyTypeCancelRefundComplaint: model.AfsOrderStatusFailed,
} }
globalAfsChan = make(chan *mtwmapi.CallbackMsg, 1000)
) )
func init() {
// 单协程串行处理所有售后消息,天然有序,无并发冲突
go func() {
for msg := range globalAfsChan {
globals.SugarLogger.Debugf("--------33 := %s", utils.Format4Output(msg, false))
jxutils.CallMsgHandlerAsync(func() {
_ = CurPurchaseHandler.onAfsOrderMsg(msg)
}, jxutils.ComposeUniversalOrderID(GetOrderIDFromMsg(msg), model.VendorIDMTWM))
}
}()
}
func (c *PurchaseHandler) isAfsMsg(msg *mtwmapi.CallbackMsg) bool { func (c *PurchaseHandler) isAfsMsg(msg *mtwmapi.CallbackMsg) bool {
if msg.Cmd == mtwmapi.MsgTypeOrderRefund || msg.Cmd == mtwmapi.MsgTypeOrderPartialRefund { if msg.Cmd == mtwmapi.MsgTypeOrderRefund || msg.Cmd == mtwmapi.MsgTypeOrderPartialRefund {
// refundData := msg.Data.(*mtwmapi.CallbackRefundInfo) // refundData := msg.Data.(*mtwmapi.CallbackRefundInfo)
@@ -55,13 +68,19 @@ func (c *PurchaseHandler) isAfsMsg(msg *mtwmapi.CallbackMsg) bool {
return false return false
} }
// 回调函数简化
func (c *PurchaseHandler) OnAfsOrderMsg(msg *mtwmapi.CallbackMsg) (retVal *mtwmapi.CallbackResponse) { func (c *PurchaseHandler) OnAfsOrderMsg(msg *mtwmapi.CallbackMsg) (retVal *mtwmapi.CallbackResponse) {
jxutils.CallMsgHandlerAsync(func() { globalAfsChan <- msg
retVal = c.onAfsOrderMsg(msg) return mtwmapi.Err2CallbackResponse(nil, "")
}, jxutils.ComposeUniversalOrderID(GetOrderIDFromMsg(msg), model.VendorIDMTWM))
return retVal
} }
//func (c *PurchaseHandler) OnAfsOrderMsg(msg *mtwmapi.CallbackMsg) (retVal *mtwmapi.CallbackResponse) {
// jxutils.CallMsgHandlerAsync(func() {
// retVal = c.onAfsOrderMsg(msg)
// }, jxutils.ComposeUniversalOrderID(GetOrderIDFromMsg(msg), model.VendorIDMTWM))
// return retVal
//}
// todo 对于退款与部分退款order.go与这个文件中对于状态的处理不一致 // todo 对于退款与部分退款order.go与这个文件中对于状态的处理不一致
func (c *PurchaseHandler) onAfsOrderMsg(msg *mtwmapi.CallbackMsg) (retVal *mtwmapi.CallbackResponse) { func (c *PurchaseHandler) onAfsOrderMsg(msg *mtwmapi.CallbackMsg) (retVal *mtwmapi.CallbackResponse) {
var ( var (