From 026fb017120339e3e1b9457ae4eb2f2f716205fb 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, 9 Mar 2020 18:30:11 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E7=89=A9=E6=96=99=E8=AE=A2?= =?UTF-8?q?=E5=8D=95=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/jx/localjx/order.go | 58 +++++++++++++------ 1 file changed, 41 insertions(+), 17 deletions(-) diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index e29042ccc..2fe773a4b 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -103,9 +103,10 @@ type DeliveryDayTimeInfo struct { } type MatterOrderStatus struct { - Time string `json:"time"` - Status string `json:"status"` - Name string `json:"name"` + Time time.Time `json:"time"` + Status string `json:"status"` + Name string `json:"name"` + Sign int `sign` } var ( @@ -951,22 +952,45 @@ func GetMatterOrderStatus(ctx *jxcontext.Context, vendorOrderID string) (result var ( db = dao.GetDB() ) - waybills, err := dao.GetWayBillByOrderID(db, -1, model.VendorIDJX, -1, vendorOrderID) order, err := partner.CurOrderManager.LoadOrder(vendorOrderID, model.VendorIDJX) - if len(waybills) > 0 { - // queryOrderStatus, err := api.JdEclpAPI.QueryOrderStatus(waybills[0].VendorWaybillID) + if err != nil { + return nil, err } - // getTrackMessagePlusByOrderResult, err := api.JdEclpAPI.GetTrackMessagePlusByOrder(vendorOrderID) - dao.Begin(db) - defer func() { - if r := recover(); r != nil { - dao.Rollback(db) - panic(r) + queryOrderStatus, err := api.JdEclpAPI.QueryOrderStatus(order.EclpOutID) + getTrackMessagePlusByOrderResult, err := api.JdEclpAPI.GetTrackMessagePlusByOrder(vendorOrderID) + for _, v := range queryOrderStatus.OrderStatusList { + time1 := utils.Str2Time(v.OperateTime) + status1 := v.SoStatusName + name1 := v.SoStatusName + for _, vv := range getTrackMessagePlusByOrderResult.ResultData { + time2 := utils.Str2Time(strings.ReplaceAll(vv.OpeName, "/", "-")) + status2 := vv.OpeTitle + name2 := vv.OpeRemark + matter := &MatterOrderStatus{} + if time2.Unix() <= time1.Unix() { + matter.Time = time2 + matter.Status = status2 + matter.Name = name2 + } else { + matter.Time = time1 + matter.Status = status1 + matter.Name = name1 + break + } + result = append(result, matter) } - }() - dao.UpdateEntity(db, order, "Status") - waybills[0].StatusTime = time.Now() - dao.UpdateEntity(db, waybills[0], "Status", "StatusTime") - dao.Commit(db) + } + if getTrackMessagePlusByOrderResult.ResultData[len(getTrackMessagePlusByOrderResult.ResultData)-1].WaybillCode == 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") + dao.Commit(db) + } return result, err }