- fixed get latest order status bug.
- add GoodsOrder.VendorWaybillID.
This commit is contained in:
@@ -194,6 +194,19 @@ func (c *OrderController) PickedUpGoods(order *model.GoodsOrder) (err error) {
|
||||
|
||||
func (c *OrderController) Swtich2SelfDeliver(order *model.GoodsOrder) (err error) {
|
||||
_, err = api.JdAPI.ModifySellerDelivery(order.VendorOrderID)
|
||||
if err != nil {
|
||||
if errWithCode, ok := err.(*utils.ErrorWithCode); ok && errWithCode.Level() == 1 {
|
||||
globals.SugarLogger.Infof("Swtich2SelfDeliver failed with error:%v try get current status", err)
|
||||
if order2, err2 := c.GetOrder(order.VendorOrderID); err2 == nil {
|
||||
var mapData map[string]interface{}
|
||||
if err2 = utils.UnmarshalUseNumber([]byte(order2.OriginalData), &mapData); err2 == nil {
|
||||
if utils.Interface2String(mapData["deliveryCarrierNo"]) == "2938" { // 当前已经是自送状态了
|
||||
err = nil
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return err
|
||||
}
|
||||
|
||||
|
||||
@@ -120,13 +120,14 @@ func (c *OrderController) saveOrder(order *model.GoodsOrder, isAdjust bool, db o
|
||||
order.OrderCreatedAt = order.StatusTime
|
||||
|
||||
// hardcode 兼容京东消息错序问题
|
||||
orderStatus := &model.OrderStatus{
|
||||
VendorOrderID: order.VendorOrderID,
|
||||
VendorID: order.VendorID,
|
||||
OrderType: model.OrderTypeOrder,
|
||||
}
|
||||
if db.Read(orderStatus, "VendorOrderID", "VendorID", "OrderType") == nil {
|
||||
globals.SugarLogger.Debugf("saveOrder orderID:%s get previous status:%d", order.VendorOrderID, orderStatus.Status)
|
||||
orderStatus := &model.OrderStatus{}
|
||||
if db.Raw(`
|
||||
SELECT *
|
||||
FROM order_status
|
||||
WHERE order_type = ? AND vendor_order_id = ? AND vendor_id = ?
|
||||
ORDER BY status_time DESC
|
||||
LIMIT 1
|
||||
`, model.OrderTypeOrder, order.VendorOrderID, order.VendorID).QueryRow(orderStatus) == nil {
|
||||
order.Status = orderStatus.Status
|
||||
order.VendorStatus = orderStatus.VendorStatus
|
||||
order.StatusTime = orderStatus.StatusTime
|
||||
@@ -284,6 +285,7 @@ func (c *OrderController) UpdateWaybillVendorID(bill *model.Waybill, revertStatu
|
||||
globals.SugarLogger.Debugf("UpdateWaybillVendorID bill:%v", bill)
|
||||
db := orm.NewOrm()
|
||||
params := orm.Params{
|
||||
"vendor_waybill_id": bill.VendorWaybillID,
|
||||
"waybill_vendor_id": bill.WaybillVendorID,
|
||||
}
|
||||
// 如果运单被取消,则要保持在已拣货状态
|
||||
|
||||
@@ -237,7 +237,7 @@ func (c *OrderController) legacyJxOrderStatusChanged(status *model.OrderStatus,
|
||||
updateFields = append(updateFields, "DeliveryFinishTime")
|
||||
}
|
||||
_, err = db.Update(jxorder, updateFields...)
|
||||
if orderStatus == JX_ORDER_STATUS_DELIVERY_DONE {
|
||||
if orderStatus == JX_ORDER_STATUS_DELIVERY_DONE || orderStatus == JX_ORDER_STATUS_DELIVERING {
|
||||
db.Raw(`
|
||||
UPDATE `+globals.JxorderTableName+` t1
|
||||
JOIN waybill t2 ON t2.vendor_order_id = t1.order_id AND t2.status = 105
|
||||
|
||||
Reference in New Issue
Block a user