From 6ebc151a315b19a607a4462508a38f9185efb337 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Mon, 16 Mar 2020 16:40:14 +0800 Subject: [PATCH] =?UTF-8?q?=E7=89=A9=E6=96=99=E8=AE=A2=E5=8D=95=E8=A1=A5?= =?UTF-8?q?=E5=85=81=E8=AE=B8=E5=8F=96=E6=B6=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/jx/localjx/order.go | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index 1dc99d816..60801797c 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -910,7 +910,7 @@ func CancelOrder(ctx *jxcontext.Context, order *model.GoodsOrder, reason string) } } MarkArrears(db, order, orderPay) - CancelMatterOrder(db, order) + CancelMatterOrder(db, order, reason) } else { orderPay.Status = model.PayStatusCanceled _, err2 := dao.UpdateEntity(db, orderPay) @@ -927,7 +927,7 @@ func CancelOrder(ctx *jxcontext.Context, order *model.GoodsOrder, reason string) } err = errList.GetErrListAsOne() if len(payList) == 0 { - CancelMatterOrder(db, order) + CancelMatterOrder(db, order, "") } } else { err = fmt.Errorf("当前订单状态:%s不允许取消", model.OrderStatusName[order.Status]) @@ -935,9 +935,13 @@ func CancelOrder(ctx *jxcontext.Context, order *model.GoodsOrder, reason string) return err } -func CancelMatterOrder(db *dao.DaoDB, order *model.GoodsOrder) (err error) { +func CancelMatterOrder(db *dao.DaoDB, order *model.GoodsOrder, reason string) (err error) { if order.FromStoreID != 0 { if order.EclpOutID != "" { + //表示是京西的物料订单的子订单(拆分后的订单) + if len(order.VendorOrderID) == 16 && order.VendorID == model.VendorIDJX { + return fmt.Errorf("不允许取消该子订单,请取消主订单进行退货退款!主订单ID :[%v]", order.VendorOrderID[:len(order.VendorOrderID)-2]) + } _, err = api.JdEclpAPI.CancelOrder(order.EclpOutID) } else { var goodsList []*model.GoodsOrder @@ -947,6 +951,7 @@ func CancelMatterOrder(db *dao.DaoDB, order *model.GoodsOrder) (err error) { if err == nil && len(goodsList) > 0 { for _, v := range goodsList { _, err = api.JdEclpAPI.CancelOrder(v.EclpOutID) + changeOrderStatus(v.VendorOrderID, model.OrderStatusCanceled, reason) } } }