京西商城订单状态改改用异步

This commit is contained in:
gazebo
2019-12-05 16:28:39 +08:00
parent d40a8cf035
commit f2b686a60c

View File

@@ -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) {