京西商城订单状态改改用异步
This commit is contained in:
@@ -153,7 +153,7 @@ func CreateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64,
|
||||
order, err2 := jxOrder2GoodsOrder(ctx, outJxOrder, deliveryAddress)
|
||||
if err = err2; err == nil {
|
||||
order.Status = model.OrderStatusCreated
|
||||
partner.CurOrderManager.OnOrderNew(order, model.Order2Status(order))
|
||||
callNewOrder(order)
|
||||
}
|
||||
}
|
||||
return outJxOrder, err
|
||||
@@ -232,8 +232,9 @@ func OnPayFinished(orderPay *model.OrderPay) (err error) {
|
||||
db := dao.GetDB()
|
||||
dao.UpdateEntity(db, orderPay)
|
||||
order.Status = model.OrderStatusNew
|
||||
order.VendorStatus = utils.Int2Str(model.OrderStatusNew)
|
||||
order.StatusTime = *orderPay.PayFinishedAt
|
||||
err = partner.CurOrderManager.OnOrderNew(order, model.Order2Status(order))
|
||||
err = callNewOrder(order)
|
||||
}
|
||||
return err
|
||||
}
|
||||
@@ -534,6 +535,14 @@ func CancelOrder(ctx *jxcontext.Context, order *model.GoodsOrder, reason string)
|
||||
return err
|
||||
}
|
||||
|
||||
// todo 消息用异步可能导致丢失,单同步又有重入相关的问题
|
||||
func callNewOrder(order *model.GoodsOrder) (err error) {
|
||||
jxutils.CallMsgHandlerAsync(func() {
|
||||
err = partner.CurOrderManager.OnOrderNew(order, model.Order2Status(order))
|
||||
}, jxutils.ComposeUniversalOrderID(order.VendorOrderID, model.VendorIDJX))
|
||||
return err
|
||||
}
|
||||
|
||||
func changeOrderStatus(vendorOrderID string, status int, remark string) (err error) {
|
||||
orderStatus := &model.OrderStatus{
|
||||
VendorOrderID: vendorOrderID,
|
||||
@@ -546,7 +555,10 @@ func changeOrderStatus(vendorOrderID string, status int, remark string) (err err
|
||||
StatusTime: time.Now(),
|
||||
Remark: remark,
|
||||
}
|
||||
return partner.CurOrderManager.OnOrderStatusChanged(orderStatus)
|
||||
jxutils.CallMsgHandlerAsync(func() {
|
||||
err = partner.CurOrderManager.OnOrderStatusChanged(orderStatus)
|
||||
}, jxutils.ComposeUniversalOrderID(vendorOrderID, model.VendorIDJX))
|
||||
return err
|
||||
}
|
||||
|
||||
func GetOrderPay(ctx *jxcontext.Context, vendorOrderID string) (payList []*model.OrderPay, err error) {
|
||||
|
||||
Reference in New Issue
Block a user