From 339da74d443074d688c935f77f13718340802205 Mon Sep 17 00:00:00 2001 From: gazebo Date: Tue, 3 Jul 2018 10:41:10 +0800 Subject: [PATCH] - fix bug write elm data to db. --- business/elm/controller/order.go | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/business/elm/controller/order.go b/business/elm/controller/order.go index 68d096c9c..69a6b764c 100644 --- a/business/elm/controller/order.go +++ b/business/elm/controller/order.go @@ -71,20 +71,28 @@ func (o *OrderController) NewOrder(msg *elmapi.CallbackMsg, orderId string, user retVal = errResponseDBError } else { if created || rec.Type != msg.Type { + // todo 回调消息里已经有详情,这里是否有必要再取一次? result, err := globals2.ElmAPI.GetOrder(orderId) if err != nil { retVal = errResponseCallELMAPIError } else { - err = globals2.FreshFoodAPI.NewELMOrder(result) - if err != nil { - retVal = errResponseInternal + rec.Data = string(utils.MustMarshal(result)) + num, err := db.Update(rec, "Data") + if err != nil || num != 1 { + globals.SugarLogger.Warnf("error in updating order data:%v, error:%v, num:%d", msg, err, num) + retVal = errResponseDataError + } else { + err = globals2.FreshFoodAPI.NewELMOrder(result) + if err != nil { + retVal = errResponseInternal + } } } + OnNewOrder(orderId, userMobile) } else { globals.SugarLogger.Infof("duplicate elm msg received:%v", msg) } } - OnNewOrder(orderId, userMobile) return retVal }