- refactor.

This commit is contained in:
gazebo
2018-06-28 10:13:17 +08:00
parent acfb2512f5
commit b496b751bc
2 changed files with 34 additions and 39 deletions

View File

@@ -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
}

View File

@@ -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
}