物料订单增加补足五香粉
This commit is contained in:
@@ -1104,7 +1104,8 @@ func result2Orders(ctx *jxcontext.Context, result *jdshopapi.AllOrdersResult) (o
|
||||
func TransferJdsOrder(ctx *jxcontext.Context, vendorOrderID string, storeID int) (err error) {
|
||||
globals.SugarLogger.Debugf("jds TransferJdsOrder vendorOrderID: %v, storeID : %v", vendorOrderID, storeID)
|
||||
var (
|
||||
db = dao.GetDB()
|
||||
db = dao.GetDB()
|
||||
waybill *model.Waybill
|
||||
)
|
||||
order, err := dao.GetSimpleOrder(db, vendorOrderID)
|
||||
if err != nil || order == nil {
|
||||
@@ -1113,22 +1114,51 @@ func TransferJdsOrder(ctx *jxcontext.Context, vendorOrderID string, storeID int)
|
||||
if order.Status == model.OrderStatusFinished {
|
||||
return fmt.Errorf("暂不支持已完成的订单进行转移!")
|
||||
}
|
||||
if len(order.VendorOrderID) > 12 {
|
||||
suffix := utils.Str2Int(order.VendorOrderID[12:len(order.VendorOrderID)])
|
||||
suffix++
|
||||
order.VendorOrderID = order.VendorOrderID2 + utils.Int2Str(suffix)
|
||||
if order.VendorID != model.VendorIDJDShop {
|
||||
return fmt.Errorf("暂不支持非京狗的订单进行转移!")
|
||||
}
|
||||
skus, err := dao.GetSimpleOrderSkus(db, vendorOrderID)
|
||||
if err != nil || order == nil {
|
||||
return fmt.Errorf("未查询到该订单商品!订单号:[%v]", vendorOrderID)
|
||||
}
|
||||
//将订单和运单取消
|
||||
if order.Status == model.OrderStatusDelivering {
|
||||
waybills, err := dao.GetWaybills(db, vendorOrderID)
|
||||
if err != nil || len(waybills) == 0 {
|
||||
return fmt.Errorf("未查询到该订单对应的运单信息!订单号:[%v]", vendorOrderID)
|
||||
}
|
||||
for _, v := range waybills {
|
||||
if v.Status != model.WaybillStatusCanceled {
|
||||
waybill = v
|
||||
}
|
||||
}
|
||||
handler := partner.DeliveryPlatformHandlers[waybill.WaybillVendorID]
|
||||
err = handler.Handler.CancelWaybill(waybill, 0, "订单转移被取消")
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
err = jdshop.ChangeOrderStatus(vendorOrderID, model.OrderStatusCanceled, "订单转移被取消")
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
//重新构建order的数据
|
||||
storeMaps, err := dao.GetStoresMapList(db, []int{order.VendorID}, []int{order.StoreID}, nil, model.StoreStatusAll, model.StoreIsSyncAll, "", "")
|
||||
if len(storeMaps) > 0 {
|
||||
order.StoreID = storeID
|
||||
order.StoreName = storeMaps[0].StoreName
|
||||
} else {
|
||||
return fmt.Errorf("未查询到该门店对应的平台信息!门店:[%v]", order.StoreID)
|
||||
}
|
||||
if len(order.VendorOrderID) > 12 {
|
||||
suffix := utils.Str2Int(order.VendorOrderID[12:len(order.VendorOrderID)])
|
||||
suffix++
|
||||
order.VendorOrderID = order.VendorOrderID2 + utils.Int2Str(suffix)
|
||||
}
|
||||
for _, sku := range skus {
|
||||
sku.VendorOrderID = order.VendorOrderID
|
||||
order.Skus = append(order.Skus, sku)
|
||||
}
|
||||
err = jdshop.ChangeOrderStatus(vendorOrderID, model.OrderStatusCanceled, "订单转移被取消")
|
||||
if order.Status == model.OrderStatusDelivering {
|
||||
|
||||
}
|
||||
err = partner.CurOrderManager.OnOrderNew(order, model.Order2Status(order))
|
||||
return err
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user