- don't unrolling order status.
This commit is contained in:
@@ -92,9 +92,9 @@ func (c *WaybillController) CreateWaybill(order *model.GoodsOrder) (err error) {
|
|||||||
if billParams.CityCode, err = c.getDataCityCodeFromOrder(order); err == nil {
|
if billParams.CityCode, err = c.getDataCityCodeFromOrder(order); err == nil {
|
||||||
billParams.ReceiverLng, billParams.ReceiverLat, _ = jxutils.IntCoordinate2MarsStandard(order.ConsigneeLng, order.ConsigneeLat, order.CoordinateType)
|
billParams.ReceiverLng, billParams.ReceiverLat, _ = jxutils.IntCoordinate2MarsStandard(order.ConsigneeLng, order.ConsigneeLat, order.CoordinateType)
|
||||||
addParams := map[string]interface{}{
|
addParams := map[string]interface{}{
|
||||||
"info": order.BuyerComment,
|
"info": order.BuyerComment,
|
||||||
"origin_mark": model.VendorNames[order.VendorID],
|
// "origin_mark": model.VendorNames[order.VendorID],
|
||||||
"origin_mark_no": utils.Int2Str(order.VendorID),
|
"origin_mark_no": fmt.Sprintf("#%d", order.OrderSeq),
|
||||||
}
|
}
|
||||||
_, err = api.DadaAPI.AddOrder(billParams, addParams)
|
_, err = api.DadaAPI.AddOrder(billParams, addParams)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -249,18 +249,32 @@ func (c *OrderController) addOrderStatus(orderStatus *model.OrderStatus, db orm.
|
|||||||
}
|
}
|
||||||
isDuplicated, err = addOrderOrWaybillStatus(orderStatus, db)
|
isDuplicated, err = addOrderOrWaybillStatus(orderStatus, db)
|
||||||
if err == nil && !isDuplicated && orderStatus.Status > model.OrderStatusUnknown {
|
if err == nil && !isDuplicated && orderStatus.Status > model.OrderStatusUnknown {
|
||||||
params := orm.Params{
|
order := &model.GoodsOrder{
|
||||||
"status": orderStatus.Status,
|
VendorOrderID: orderStatus.VendorOrderID,
|
||||||
"vendor_status": orderStatus.VendorStatus,
|
VendorID: orderStatus.VendorID,
|
||||||
"status_time": orderStatus.StatusTime,
|
|
||||||
}
|
}
|
||||||
if orderStatus.Status >= model.OrderStatusEndBegin {
|
if err = db.ReadForUpdate(order); err == nil {
|
||||||
params["order_finished_at"] = orderStatus.StatusTime
|
if orderStatus.Status >= order.Status { // todo 要求status不能回绕
|
||||||
|
order.Status = orderStatus.Status
|
||||||
|
order.VendorStatus = orderStatus.VendorStatus
|
||||||
|
order.StatusTime = orderStatus.StatusTime
|
||||||
|
order.OrderFinishedAt = orderStatus.StatusTime
|
||||||
|
updateFields := []string{
|
||||||
|
"status", "vendor_status", "status_time",
|
||||||
|
}
|
||||||
|
if orderStatus.Status >= model.OrderStatusEndBegin {
|
||||||
|
updateFields = append(updateFields, "order_finished_at")
|
||||||
|
}
|
||||||
|
utils.CallFuncLogError(func() error {
|
||||||
|
_, err = db.Update(order, updateFields...)
|
||||||
|
return err
|
||||||
|
}, "addOrderStatus update order, status:%v", orderStatus)
|
||||||
|
} else {
|
||||||
|
isDuplicated = true
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
globals.SugarLogger.Warnf("addOrderStatus orderID:%s read failed with error:%v", err)
|
||||||
}
|
}
|
||||||
utils.CallFuncLogError(func() error {
|
|
||||||
_, err = db.QueryTable("goods_order").Filter("vendor_order_id", orderStatus.VendorOrderID).Filter("vendor_id", orderStatus.VendorID).Update(params)
|
|
||||||
return err
|
|
||||||
}, "addOrderStatus update order, status:%v", orderStatus)
|
|
||||||
}
|
}
|
||||||
return isDuplicated, err
|
return isDuplicated, err
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -105,7 +105,7 @@ func (w *WaybillController) OnWaybillStatusChanged(bill *model.Waybill) (err err
|
|||||||
func (w *WaybillController) addWaybillStatus(bill *model.Waybill, db orm.Ormer, addParams orm.Params) (isDuplicated bool, err error) {
|
func (w *WaybillController) addWaybillStatus(bill *model.Waybill, db orm.Ormer, addParams orm.Params) (isDuplicated bool, err error) {
|
||||||
waybillStatus := model.Waybill2Status(bill)
|
waybillStatus := model.Waybill2Status(bill)
|
||||||
isDuplicated, err = addOrderOrWaybillStatus(waybillStatus, db)
|
isDuplicated, err = addOrderOrWaybillStatus(waybillStatus, db)
|
||||||
if err == nil && !isDuplicated && waybillStatus.Status > model.WaybillStatusUnknown {
|
if err == nil && !isDuplicated && waybillStatus.Status > model.WaybillStatusUnknown { // todo 这里应该和addOrderStatus一样的改法,状态不能回绕
|
||||||
params := utils.MergeMaps(orm.Params{
|
params := utils.MergeMaps(orm.Params{
|
||||||
"status": bill.Status,
|
"status": bill.Status,
|
||||||
"vendor_status": bill.VendorStatus,
|
"vendor_status": bill.VendorStatus,
|
||||||
|
|||||||
Reference in New Issue
Block a user