- refactor.
This commit is contained in:
@@ -69,21 +69,22 @@ func (o *OrderController) OrderStatusChanged(msg *elmapi.CallbackMsg, orderId st
|
|||||||
err := db.Read(rec, "OrderId")
|
err := db.Read(rec, "OrderId")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
globals.SugarLogger.Warnf("error when calling ReadOrCreate, error:%v", err)
|
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 {
|
} 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
|
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 {
|
if order.StatusID != jdapi.OrderStatusNew && order.StatusID != jdapi.OrderStatusAdjust {
|
||||||
err := normalOrderStatus(order)
|
err := normalOrderStatus(order)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return &jdapi.CallbackResponse{jdapi.ResponseCodeAccessFailed, err.Error(), ""}
|
return jdapi.Err2CallbackResponse(err, "")
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
db := orm.NewOrm()
|
db := orm.NewOrm()
|
||||||
@@ -129,7 +129,7 @@ func (c *OrderController) OrderStatus(order *jdapi.CallbackOrderMsg) *jdapi.Call
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
globals.SugarLogger.Errorf("error when calling ReadOrCreate:%v", err)
|
globals.SugarLogger.Errorf("error when calling ReadOrCreate:%v", err)
|
||||||
return &jdapi.CallbackResponse{jdapi.ResponseCodeAccessFailed, err.Error(), ""}
|
return jdapi.Err2CallbackResponse(err, "")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return jdapi.SuccessResponse
|
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 {
|
func (c *OrderController) OrderDeliveryStatus(jdOrderDeliveryStatusMsg *jdapi.CallbackDeliveryStatusMsg) *jdapi.CallbackResponse {
|
||||||
if err := globals2.FreshFoodAPI.JDOrderDeliveryStatus(jdOrderDeliveryStatusMsg); err != nil {
|
if err := globals2.FreshFoodAPI.JDOrderDeliveryStatus(jdOrderDeliveryStatusMsg); err != nil {
|
||||||
return &jdapi.CallbackResponse{jdapi.ResponseCodeAccessFailed, err.Error(), ""}
|
return jdapi.Err2CallbackResponse(err, "")
|
||||||
}
|
}
|
||||||
|
|
||||||
return jdapi.SuccessResponse
|
return jdapi.SuccessResponse
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -181,8 +180,7 @@ func newOrder(order *jdapi.CallbackOrderMsg) error {
|
|||||||
return err
|
return err
|
||||||
}, globals2.ErrStrAccessDB)
|
}, globals2.ErrStrAccessDB)
|
||||||
err = utils.CallFuncLogError(func() error {
|
err = utils.CallFuncLogError(func() error {
|
||||||
err := globals2.FreshFoodAPI.NewJDOrder(rec, order.StatusID == jdapi.OrderStatusNew)
|
return globals2.FreshFoodAPI.NewJDOrder(rec, order.StatusID == jdapi.OrderStatusNew)
|
||||||
return err
|
|
||||||
}, globals2.ErrStrAccessDB)
|
}, globals2.ErrStrAccessDB)
|
||||||
} else {
|
} else {
|
||||||
globals.SugarLogger.Errorf("can not get jdorder info:%v", order.BillID)
|
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")
|
err := db.Read(rec, "JdOrderId")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
globals.SugarLogger.Warnf("error when accessing db:%v", err)
|
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
|
return err
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user