From ef7ab4cca2e7d985fcd57b26c4db27855928f294 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Thu, 2 Apr 2020 09:55:45 +0800 Subject: [PATCH] =?UTF-8?q?=E6=AF=8F=E6=99=9A=E5=88=B7=E6=96=B0=E7=89=A9?= =?UTF-8?q?=E6=96=99=E8=AE=A2=E5=8D=95=E7=8A=B6=E6=80=81=E9=A1=BA=E4=BE=BF?= =?UTF-8?q?=E5=88=B7=E6=96=B0=E8=BF=90=E5=8D=95=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/jx/localjx/order.go | 118 +++++++++--------- 1 file changed, 56 insertions(+), 62 deletions(-) diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index 9c1eb3da3..b32992540 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -1261,6 +1261,8 @@ func RefreshAllMatterOrderStatus(ctx *jxcontext.Context) (err error) { } dao.Commit(db) changeOrderStatus(vv.VendorOrderID, model.OrderStatusFinished, "") + getTrackMessagePlusByOrderResult, _ := api.JdEclpAPI.GetTrackMessagePlusByOrder(vv.VendorOrderID) + updateJdWayBillInfo(db, vv, getTrackMessagePlusByOrderResult) } else { deliveringCount++ } @@ -1288,26 +1290,9 @@ func RefreshAllMatterOrderStatus(ctx *jxcontext.Context) (err error) { changeOrderStatus(v.VendorOrderID, v.Status, "") } else { queryOrderStatus, _ := api.JdEclpAPI.QueryOrderStatus(v.EclpOutID) - if len(queryOrderStatus.OrderStatusList) > 0 { - if queryOrderStatus.OrderStatusList[len(queryOrderStatus.OrderStatusList)-1].SoStatusCode == jdeclpapi.SoStatusCode10034 { - dao.Begin(db) - defer func() { - if r := recover(); r != nil { - dao.Rollback(db) - panic(r) - } - }() - v.Status = model.OrderStatusFinished - dao.UpdateEntity(db, v, "Status") - waybills, err := dao.GetWaybills(db, v.VendorOrderID) - if err == nil && len(waybills) > 0 { - waybills[0].Status = model.WaybillStatusDelivered - dao.UpdateEntity(db, waybills[0], "Status") - } - dao.Commit(db) - changeOrderStatus(v.VendorOrderID, model.OrderStatusFinished, "") - } - } + getTrackMessagePlusByOrderResult, _ := api.JdEclpAPI.GetTrackMessagePlusByOrder(v.VendorOrderID) + updateMatterOrderStatus(db, v, queryOrderStatus) + updateJdWayBillInfo(db, v, getTrackMessagePlusByOrderResult) } } return err @@ -1357,54 +1342,63 @@ func GetMatterOrderStatus(ctx *jxcontext.Context, vendorOrderID string) (result } } if len(queryOrderStatus.OrderStatusList) > 0 { - if queryOrderStatus.OrderStatusList[len(queryOrderStatus.OrderStatusList)-1].SoStatusCode == jdeclpapi.SoStatusCode10034 { - dao.Begin(db) - defer func() { - if r := recover(); r != nil { - dao.Rollback(db) - panic(r) - } - }() - order.Status = model.OrderStatusFinished - dao.UpdateEntity(db, order, "Status") - waybills, err := dao.GetWaybills(db, vendorOrderID) - if err == nil && len(waybills) > 0 { - waybills[0].Status = model.WaybillStatusDelivered - dao.UpdateEntity(db, waybills[0], "Status") - } - dao.Commit(db) - changeOrderStatus(vendorOrderID, model.OrderStatusFinished, "") - } + updateMatterOrderStatus(db, order, queryOrderStatus) } if len(getTrackMessagePlusByOrderResult.ResultData) > 0 { - var ( - waybillCode = getTrackMessagePlusByOrderResult.ResultData[0].WaybillCode - cName string - cMobile string - waybills []*model.Waybill - ) - for _, vv := range getTrackMessagePlusByOrderResult.ResultData { - if vv.OpeTitle == "配送员收货" { - result := regexpCnameAndCmobile.FindAllStringSubmatch(vv.OpeRemark, -1) - cName = result[0][1] - cMobile = result[0][2] - break - } - } - waybills, err = dao.GetWaybills(db, vendorOrderID) - if len(waybills) > 0 { - waybills[0].VendorWaybillID = waybillCode - waybills[0].CourierName = cName - waybills[0].CourierMobile = cMobile - order.VendorWaybillID = waybillCode - order.WaybillVendorID = model.VendorIDJDWL - dao.UpdateEntity(db, order, "VendorWaybillID", "WaybillVendorID") - dao.UpdateEntity(db, waybills[0], "VendorWaybillID", "CourierName", "CourierMobile") - } + updateJdWayBillInfo(db, order, getTrackMessagePlusByOrderResult) } return result, err } +func updateMatterOrderStatus(db *dao.DaoDB, order *model.GoodsOrder, queryOrderStatus *jdeclpapi.QueryOrderStatusResult) { + if queryOrderStatus.OrderStatusList[len(queryOrderStatus.OrderStatusList)-1].SoStatusCode == jdeclpapi.SoStatusCode10034 { + dao.Begin(db) + defer func() { + if r := recover(); r != nil { + dao.Rollback(db) + panic(r) + } + }() + order.Status = model.OrderStatusFinished + dao.UpdateEntity(db, order, "Status") + waybills, err := dao.GetWaybills(db, order.VendorOrderID) + if err == nil && len(waybills) > 0 { + waybills[0].Status = model.WaybillStatusDelivered + dao.UpdateEntity(db, waybills[0], "Status") + } + dao.Commit(db) + changeOrderStatus(order.VendorOrderID, model.OrderStatusFinished, "") + } +} + +func updateJdWayBillInfo(db *dao.DaoDB, order *model.GoodsOrder, getTrackMessagePlusByOrderResult *jdeclpapi.GetTrackMessagePlusByOrderResult) (err error) { + var ( + waybillCode = getTrackMessagePlusByOrderResult.ResultData[0].WaybillCode + cName string + cMobile string + waybills []*model.Waybill + ) + for _, vv := range getTrackMessagePlusByOrderResult.ResultData { + if vv.OpeTitle == "配送员收货" { + result := regexpCnameAndCmobile.FindAllStringSubmatch(vv.OpeRemark, -1) + cName = result[0][1] + cMobile = result[0][2] + break + } + } + waybills, err = dao.GetWaybills(db, order.VendorOrderID) + if len(waybills) > 0 { + waybills[0].VendorWaybillID = waybillCode + waybills[0].CourierName = cName + waybills[0].CourierMobile = cMobile + order.VendorWaybillID = waybillCode + order.WaybillVendorID = model.VendorIDJDWL + dao.UpdateEntity(db, order, "VendorWaybillID", "WaybillVendorID") + dao.UpdateEntity(db, waybills[0], "VendorWaybillID", "CourierName", "CourierMobile") + } + return err +} + func tryToSplitMatterOrder(jxOrder *JxOrderInfo) (outOrders []*JxOrderInfo, freightPrice int, err error) { var ( skus = jxOrder.Skus