- refactor.
This commit is contained in:
@@ -69,21 +69,22 @@ func (o *OrderController) OrderStatusChanged(msg *elmapi.CallbackMsg, orderId st
|
||||
err := db.Read(rec, "OrderId")
|
||||
if err != nil {
|
||||
globals.SugarLogger.Warnf("error when calling ReadOrCreate, error:%v", err)
|
||||
return errResponseDBError
|
||||
}
|
||||
if rec.Type != msg.Type {
|
||||
err = globals2.FreshFoodAPI.ELMOrderStatus(orderId, msg.Type, utils.GetCurTimeStr())
|
||||
if err != nil {
|
||||
return errResponseInternal
|
||||
} else {
|
||||
rec.Type = msg.Type
|
||||
utils.CallFuncLogError(func() error {
|
||||
_, err := db.Update(rec, "Type")
|
||||
return err
|
||||
}, globals2.ErrStrAccessDB)
|
||||
}
|
||||
} else {
|
||||
globals.SugarLogger.Infof("duplicate elm msg received:%v", msg)
|
||||
if rec.Type != msg.Type {
|
||||
err = globals2.FreshFoodAPI.ELMOrderStatus(orderId, msg.Type, utils.GetCurTimeStr())
|
||||
if err == nil {
|
||||
rec.Type = msg.Type
|
||||
err = utils.CallFuncLogError(func() error {
|
||||
_, err := db.Update(rec, "Type")
|
||||
return err
|
||||
}, globals2.ErrStrAccessDB)
|
||||
}
|
||||
} else {
|
||||
globals.SugarLogger.Infof("duplicate elm msg received:%v", msg)
|
||||
}
|
||||
}
|
||||
if err != nil {
|
||||
return errResponseInternal
|
||||
}
|
||||
return elmapi.SuccessResponse
|
||||
}
|
||||
|
||||
@@ -85,7 +85,7 @@ func (c *OrderController) OrderStatus(order *jdapi.CallbackOrderMsg) *jdapi.Call
|
||||
if order.StatusID != jdapi.OrderStatusNew && order.StatusID != jdapi.OrderStatusAdjust {
|
||||
err := normalOrderStatus(order)
|
||||
if err != nil {
|
||||
return &jdapi.CallbackResponse{jdapi.ResponseCodeAccessFailed, err.Error(), ""}
|
||||
return jdapi.Err2CallbackResponse(err, "")
|
||||
}
|
||||
} else {
|
||||
db := orm.NewOrm()
|
||||
@@ -129,7 +129,7 @@ func (c *OrderController) OrderStatus(order *jdapi.CallbackOrderMsg) *jdapi.Call
|
||||
}
|
||||
} else {
|
||||
globals.SugarLogger.Errorf("error when calling ReadOrCreate:%v", err)
|
||||
return &jdapi.CallbackResponse{jdapi.ResponseCodeAccessFailed, err.Error(), ""}
|
||||
return jdapi.Err2CallbackResponse(err, "")
|
||||
}
|
||||
}
|
||||
return jdapi.SuccessResponse
|
||||
@@ -137,9 +137,8 @@ func (c *OrderController) OrderStatus(order *jdapi.CallbackOrderMsg) *jdapi.Call
|
||||
|
||||
func (c *OrderController) OrderDeliveryStatus(jdOrderDeliveryStatusMsg *jdapi.CallbackDeliveryStatusMsg) *jdapi.CallbackResponse {
|
||||
if err := globals2.FreshFoodAPI.JDOrderDeliveryStatus(jdOrderDeliveryStatusMsg); err != nil {
|
||||
return &jdapi.CallbackResponse{jdapi.ResponseCodeAccessFailed, err.Error(), ""}
|
||||
return jdapi.Err2CallbackResponse(err, "")
|
||||
}
|
||||
|
||||
return jdapi.SuccessResponse
|
||||
}
|
||||
|
||||
@@ -181,8 +180,7 @@ func newOrder(order *jdapi.CallbackOrderMsg) error {
|
||||
return err
|
||||
}, globals2.ErrStrAccessDB)
|
||||
err = utils.CallFuncLogError(func() error {
|
||||
err := globals2.FreshFoodAPI.NewJDOrder(rec, order.StatusID == jdapi.OrderStatusNew)
|
||||
return err
|
||||
return globals2.FreshFoodAPI.NewJDOrder(rec, order.StatusID == jdapi.OrderStatusNew)
|
||||
}, globals2.ErrStrAccessDB)
|
||||
} else {
|
||||
globals.SugarLogger.Errorf("can not get jdorder info:%v", order.BillID)
|
||||
@@ -204,25 +202,21 @@ func normalOrderStatus(order *jdapi.CallbackOrderMsg) error {
|
||||
err := db.Read(rec, "JdOrderId")
|
||||
if err != nil {
|
||||
globals.SugarLogger.Warnf("error when accessing db:%v", err)
|
||||
return err
|
||||
} else {
|
||||
if rec.OrderStatus == utils.Str2Int(order.StatusID) {
|
||||
globals.SugarLogger.Infof("Duplicate message order:%v", order)
|
||||
} else {
|
||||
rec.OrderStatus = utils.Str2Int(order.StatusID)
|
||||
rec.OrderStatusTime = order.Timestamp
|
||||
|
||||
if err = globals2.FreshFoodAPI.JDOrderStatus(rec); err == nil {
|
||||
rec.Code = "0"
|
||||
err = utils.CallFuncLogError(func() error {
|
||||
_, err := db.Update(rec, "OrderStatus", "OrderStatusTime", "Code")
|
||||
return err
|
||||
}, globals2.ErrStrAccessDB)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if rec.OrderStatus == utils.Str2Int(order.StatusID) {
|
||||
globals.SugarLogger.Infof("Duplicate message order:%v", order)
|
||||
return nil
|
||||
}
|
||||
|
||||
rec.OrderStatus = utils.Str2Int(order.StatusID)
|
||||
rec.OrderStatusTime = order.Timestamp
|
||||
|
||||
if err = globals2.FreshFoodAPI.JDOrderStatus(rec); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
rec.Code = "0"
|
||||
utils.CallFuncLogError(func() error {
|
||||
_, err := db.Update(rec, "OrderStatus", "OrderStatusTime", "Code")
|
||||
return err
|
||||
}, globals2.ErrStrAccessDB)
|
||||
return err
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user