From be8ebf71de422aa0e1aad8010e0c127e6aaeb154 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Mon, 11 Sep 2023 14:56:03 +0800 Subject: [PATCH 01/19] 1 --- business/jxcallback/orderman/waybill.go | 10 +++- business/jxstore/cms/cms.go | 78 ++++++++++++++++++------- 2 files changed, 63 insertions(+), 25 deletions(-) diff --git a/business/jxcallback/orderman/waybill.go b/business/jxcallback/orderman/waybill.go index 543ae4fe9..6988ab3aa 100644 --- a/business/jxcallback/orderman/waybill.go +++ b/business/jxcallback/orderman/waybill.go @@ -252,8 +252,8 @@ func GetComplaintReasons() (complaintReasonList []*dadaapi.ComplaintReason) { return complaintReasonList } -func ComplaintRider(ctx *jxcontext.Context, vendorOrderID string, vendorWaybillId string, complaintID int) (err error) { - wayBillList, err := dao.GetComplaintList(dao.GetDB(), vendorOrderID, vendorWaybillId) +func ComplaintRider(ctx *jxcontext.Context, vendorOrderID string, waybillVendorID string, complaintID int) (err error) { + wayBillList, err := dao.GetComplaintList(dao.GetDB(), vendorOrderID, "") if err != nil { return err } @@ -262,7 +262,11 @@ func ComplaintRider(ctx *jxcontext.Context, vendorOrderID string, vendorWaybillI } p := partner.GetDeliveryPlatformFromVendorID(wayBillList[0].WaybillVendorID).Handler if err == nil && len(wayBillList) > 0 { - err = p.ComplaintRider(wayBillList[0], complaintID, complaintReasonsMap[complaintID]) + for _, v := range wayBillList { + if utils.Int2Str(v.WaybillVendorID) == waybillVendorID { + err = p.ComplaintRider(wayBillList[0], complaintID, complaintReasonsMap[complaintID]) + } + } } return err diff --git a/business/jxstore/cms/cms.go b/business/jxstore/cms/cms.go index 666535d7f..c20d30c79 100644 --- a/business/jxstore/cms/cms.go +++ b/business/jxstore/cms/cms.go @@ -1,6 +1,7 @@ package cms import ( + "encoding/json" "fmt" "git.rosy.net.cn/baseapi/platformapi/autonavi" "git.rosy.net.cn/baseapi/platformapi/baidunavi" @@ -613,9 +614,9 @@ func GetSToURidingDistance(sLng, sLat, uLng, uLat float64, orderId string) (step // GetSToURidingDistance2 获取商家与用户间步行距离 func GetSToURidingDistance2(sLng, sLat, uLng, uLat float64, orderId string) (wayBill *model.Waybill, err error) { var ( - origin = fmt.Sprintf("%f,%f", sLng, sLat) - destination = fmt.Sprintf("%f,%f", uLng, uLat) - db = dao.GetDB() + //origin = fmt.Sprintf("%f,%f", sLng, sLat) + //destination = fmt.Sprintf("%f,%f", uLng, uLat) + db = dao.GetDB() ) for { @@ -631,7 +632,8 @@ func GetSToURidingDistance2(sLng, sLat, uLng, uLat float64, orderId string) (way //if v.Status >= model.WaybillStatusAccepted && v.Status <= model.WaybillStatusCanceled { // 获取骑行路线图 if v.OriginalData == "" { - originalData, distance, durationTime, err := GetCyclingLine(origin, destination) + //originalData, distance, durationTime, err := GetCyclingLine(origin, destination) + originalData, distance, durationTime, err := GetCyclingLine(sLng, sLat, uLng, uLat) if err != nil { return nil, err } @@ -708,24 +710,56 @@ func GetSToURidingDistance2(sLng, sLat, uLng, uLat float64, orderId string) (way } // GetCyclingLine 获取骑行路线 -func GetCyclingLine(origin, destination string) (polyLineList []string, distance, duration int64, errCode error) { - for { - polyLineList, distance, duration, errCode = api.AutonaviAPI.GetCyclingPlan(origin, destination) - if errCode != nil { - ddmsg.SendUserMessage(dingdingapi.MsgTyeText, "2452A93EEB9111EC9B06525400E86DC0", "高德地图骑行方案获取错误:", utils.Format4Output(errCode, false)) - } - if errCode != nil && errCode.Error() == autonavi.DAILYQUERYOVERLIMIT { - AutonaviKeyIndex += model.YES - if AutonaviKeyIndex >= len(AutonaviKeyList) { - AutonaviKeyIndex = model.NO - } - api.AutonaviAPI.SetKey(AutonaviKeyList[AutonaviKeyIndex]) - } else if errCode != nil { - return nil, 0, 0, errCode - } +func GetCyclingLine(sLng, sLat, uLng, uLat float64) (polyLineList []string, distance, duration int64, err error) { + // 百度 + var coords []*baidunavi.Coordinate + coords = append(coords, &baidunavi.Coordinate{ + Lng: sLng, + Lat: sLat, + }, &baidunavi.Coordinate{ + Lat: uLat, + Lng: uLng, + }) - if len(polyLineList) > model.NO { - return polyLineList, distance, duration, errCode - } + coords, err = api.BaiDuNaviAPI.BatchCoordinateConvert(coords, baidunavi.CoordSysGCJ02, baidunavi.CoordSysBaiDu) + if err != nil || len(coords) <= model.NO { + return nil, 0, 0, err } + data, err := api.BaiDuNaviAPI.DirectionLiteRide(coords) + if err != nil { + return nil, 0, 0, err + } + path := &baidunavi.RiderPath{} + if err := json.Unmarshal([]byte(data.(string)), path); err != nil { + return nil, 0, 0, err + } + distance = int64(path.Result.Routes[0].Distance) // 距离 + duration = int64(path.Result.Routes[0].Duration) // 时间 + + for _, v := range path.Result.Routes[0].Steps { + polyLineList = append(polyLineList, strings.Split(v.Path, ";")...) + } + + // 高德()免费次数太少暂时不用 + //for { + // polyLineList, distance, duration, errCode = api.AutonaviAPI.GetCyclingPlan(origin, destination) + // if errCode != nil { + // ddmsg.SendUserMessage(dingdingapi.MsgTyeText, "2452A93EEB9111EC9B06525400E86DC0", "获取骑行路线:", utils.Format4Output(errCode, false)) + // } + // if errCode != nil && (errCode.Error() == autonavi.DAILYQUERYOVERLIMIT || errCode.Error() == autonavi.USERDAILYQUERYOVERLIMIT) { + // AutonaviKeyIndex += model.YES + // if AutonaviKeyIndex >= len(AutonaviKeyList) { + // AutonaviKeyIndex = model.NO + // } + // api.AutonaviAPI.SetKey(AutonaviKeyList[AutonaviKeyIndex]) + // } else if errCode != nil { + // return nil, 0, 0, errCode + // } + // + // if len(polyLineList) > model.NO { + // return polyLineList, distance, duration, errCode + // } + //} + + return } From bb508663745fb69a3b58f2cefcd1d3c510c06882 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Mon, 11 Sep 2023 15:38:39 +0800 Subject: [PATCH 02/19] 1 --- business/jxstore/cms/cms.go | 66 ++++++++++++----------- business/partner/delivery/sfps/waybill.go | 2 +- 2 files changed, 36 insertions(+), 32 deletions(-) diff --git a/business/jxstore/cms/cms.go b/business/jxstore/cms/cms.go index c20d30c79..a738f86fe 100644 --- a/business/jxstore/cms/cms.go +++ b/business/jxstore/cms/cms.go @@ -616,7 +616,8 @@ func GetSToURidingDistance2(sLng, sLat, uLng, uLat float64, orderId string) (way var ( //origin = fmt.Sprintf("%f,%f", sLng, sLat) //destination = fmt.Sprintf("%f,%f", uLng, uLat) - db = dao.GetDB() + db = dao.GetDB() + vendorMaps = map[int]int{model.VendorIDDada: 1, model.VendorIDFengNiao: 1, model.VendorIDMTPS: 1, model.VendorIDUUPT: 1, model.VendorIDSFPS: 1} ) for { @@ -643,37 +644,40 @@ func GetSToURidingDistance2(sLng, sLat, uLng, uLat float64, orderId string) (way } //} - // 如果是三方配送,更新骑手信息 - if handler := partner.GetDeliveryPlatformFromVendorID(v.WaybillVendorID); handler != nil { - riderInfo, _ := handler.Handler.GetRiderInfo(v.VendorOrderID, v.ID+1000000, v.VendorWaybillID) - if riderInfo != nil { - if len(riderInfo.Longitude) < len("104.065861") && riderInfo.Longitude != "" { - riderInfo.Longitude += "0" - } - if len(riderInfo.Latitude) < len("27.934441") && riderInfo.Latitude != "" { - riderInfo.Latitude += "0" - } - v.CourierCoordinate = fmt.Sprintf("%s,%s", riderInfo.Longitude, riderInfo.Latitude) - if (v.CourierName == "" || v.CourierMobile == "") && riderInfo.CourierName != "" { - v.CourierName = riderInfo.CourierName - v.CourierMobile = riderInfo.CourierPhone + if vendorMaps[v.WaybillVendorID] == model.YES { + // 如果是三方配送,更新骑手信息 + if handler := partner.GetDeliveryPlatformFromVendorID(v.WaybillVendorID); handler != nil { + riderInfo, _ := handler.Handler.GetRiderInfo(v.VendorOrderID, v.ID+1000000, v.VendorWaybillID) + if riderInfo != nil { + if len(riderInfo.Longitude) < len("104.065861") && riderInfo.Longitude != "" { + riderInfo.Longitude += "0" + } + if len(riderInfo.Latitude) < len("27.934441") && riderInfo.Latitude != "" { + riderInfo.Latitude += "0" + } + v.CourierCoordinate = fmt.Sprintf("%s,%s", riderInfo.Longitude, riderInfo.Latitude) + if (v.CourierName == "" || v.CourierMobile == "") && riderInfo.CourierName != "" { + v.CourierName = riderInfo.CourierName + v.CourierMobile = riderInfo.CourierPhone + } } } - } - // 如果是平台配送,获取骑手信息 - if handler := partner.GetPurchaseOrderHandlerFromVendorID(v.WaybillVendorID); handler != nil { - riderInfo, _ := handler.OrderLogisticsStatus(v.VendorOrderID) - if riderInfo != nil { - if len(riderInfo.Longitude) < len("104.065861") && riderInfo.Longitude != "" { - riderInfo.Longitude += "0" - } - if len(riderInfo.Latitude) < len("27.934441") && riderInfo.Latitude != "" { - riderInfo.Latitude += "0" - } - v.CourierCoordinate = fmt.Sprintf("%s,%s", riderInfo.Longitude, riderInfo.Latitude) - if (v.CourierName == "" || v.CourierMobile == "") && riderInfo.CourierName != "" { - v.CourierName = riderInfo.CourierName - v.CourierMobile = riderInfo.CourierPhone + } else { + // 如果是平台配送,获取骑手信息 + if handler := partner.GetPurchaseOrderHandlerFromVendorID(v.WaybillVendorID); handler != nil { + riderInfo, _ := handler.OrderLogisticsStatus(v.VendorOrderID) + if riderInfo != nil { + if len(riderInfo.Longitude) < len("104.065861") && riderInfo.Longitude != "" { + riderInfo.Longitude += "0" + } + if len(riderInfo.Latitude) < len("27.934441") && riderInfo.Latitude != "" { + riderInfo.Latitude += "0" + } + v.CourierCoordinate = fmt.Sprintf("%s,%s", riderInfo.Longitude, riderInfo.Latitude) + if (v.CourierName == "" || v.CourierMobile == "") && riderInfo.CourierName != "" { + v.CourierName = riderInfo.CourierName + v.CourierMobile = riderInfo.CourierPhone + } } } } @@ -735,7 +739,7 @@ func GetCyclingLine(sLng, sLat, uLng, uLat float64) (polyLineList []string, dist } distance = int64(path.Result.Routes[0].Distance) // 距离 duration = int64(path.Result.Routes[0].Duration) // 时间 - + for _, v := range path.Result.Routes[0].Steps { polyLineList = append(polyLineList, strings.Split(v.Path, ";")...) } diff --git a/business/partner/delivery/sfps/waybill.go b/business/partner/delivery/sfps/waybill.go index 6e864c649..5393e2ff9 100644 --- a/business/partner/delivery/sfps/waybill.go +++ b/business/partner/delivery/sfps/waybill.go @@ -281,7 +281,7 @@ func (d DeliveryHandler) GetWaybillFee(order *model.GoodsOrder) (deliveryFeeInfo } func (d DeliveryHandler) ComplaintRider(bill *model.Waybill, resonID int, resonContent string) (err error) { - return nil + return fmt.Errorf("顺丰暂未实现投诉") } // GetDeliverLiquidatedDamages 获取取消运单违约金 From f7d3eee018d196f21b8d9ed492b26b658f98d35d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Mon, 11 Sep 2023 16:01:28 +0800 Subject: [PATCH 03/19] 1 --- business/jxstore/cms/cms.go | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/business/jxstore/cms/cms.go b/business/jxstore/cms/cms.go index a738f86fe..ae18c4a0e 100644 --- a/business/jxstore/cms/cms.go +++ b/business/jxstore/cms/cms.go @@ -5,6 +5,7 @@ import ( "fmt" "git.rosy.net.cn/baseapi/platformapi/autonavi" "git.rosy.net.cn/baseapi/platformapi/baidunavi" + "git.rosy.net.cn/jx-callback/globals" "math" "reflect" "regexp" @@ -648,11 +649,12 @@ func GetSToURidingDistance2(sLng, sLat, uLng, uLat float64, orderId string) (way // 如果是三方配送,更新骑手信息 if handler := partner.GetDeliveryPlatformFromVendorID(v.WaybillVendorID); handler != nil { riderInfo, _ := handler.Handler.GetRiderInfo(v.VendorOrderID, v.ID+1000000, v.VendorWaybillID) + globals.SugarLogger.Debugf("=======riderInfo := %s", utils.Format4Output(riderInfo, false)) if riderInfo != nil { - if len(riderInfo.Longitude) < len("104.065861") && riderInfo.Longitude != "" { + if len(riderInfo.Longitude) < len("104.065861") || riderInfo.Longitude != "" { riderInfo.Longitude += "0" } - if len(riderInfo.Latitude) < len("27.934441") && riderInfo.Latitude != "" { + if len(riderInfo.Latitude) < len("27.934441") || riderInfo.Latitude != "" { riderInfo.Latitude += "0" } v.CourierCoordinate = fmt.Sprintf("%s,%s", riderInfo.Longitude, riderInfo.Latitude) @@ -666,11 +668,12 @@ func GetSToURidingDistance2(sLng, sLat, uLng, uLat float64, orderId string) (way // 如果是平台配送,获取骑手信息 if handler := partner.GetPurchaseOrderHandlerFromVendorID(v.WaybillVendorID); handler != nil { riderInfo, _ := handler.OrderLogisticsStatus(v.VendorOrderID) + globals.SugarLogger.Debugf("=======riderInfo := %s", utils.Format4Output(riderInfo, false)) if riderInfo != nil { - if len(riderInfo.Longitude) < len("104.065861") && riderInfo.Longitude != "" { + if len(riderInfo.Longitude) < len("104.065861") || riderInfo.Longitude != "" { riderInfo.Longitude += "0" } - if len(riderInfo.Latitude) < len("27.934441") && riderInfo.Latitude != "" { + if len(riderInfo.Latitude) < len("27.934441") || riderInfo.Latitude != "" { riderInfo.Latitude += "0" } v.CourierCoordinate = fmt.Sprintf("%s,%s", riderInfo.Longitude, riderInfo.Latitude) @@ -702,6 +705,7 @@ func GetSToURidingDistance2(sLng, sLat, uLng, uLat float64, orderId string) (way } } + globals.SugarLogger.Debugf("=========v := %s", utils.Format4Output(v, false)) dao.UpdateEntity(db, v, "OriginalData", "CourierCoordinate", "Distance", "DurationTime") if v.CourierName == "" || v.CourierMobile == "" { v.CourierName = "暂无骑手" From b53d8b9406b810237aec16ce2a1808445cc15127 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Mon, 11 Sep 2023 16:06:34 +0800 Subject: [PATCH 04/19] 1' --- business/jxstore/cms/cms.go | 4 ---- business/partner/purchase/mtwm/order.go | 2 +- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/business/jxstore/cms/cms.go b/business/jxstore/cms/cms.go index ae18c4a0e..1aac9fea8 100644 --- a/business/jxstore/cms/cms.go +++ b/business/jxstore/cms/cms.go @@ -5,7 +5,6 @@ import ( "fmt" "git.rosy.net.cn/baseapi/platformapi/autonavi" "git.rosy.net.cn/baseapi/platformapi/baidunavi" - "git.rosy.net.cn/jx-callback/globals" "math" "reflect" "regexp" @@ -649,7 +648,6 @@ func GetSToURidingDistance2(sLng, sLat, uLng, uLat float64, orderId string) (way // 如果是三方配送,更新骑手信息 if handler := partner.GetDeliveryPlatformFromVendorID(v.WaybillVendorID); handler != nil { riderInfo, _ := handler.Handler.GetRiderInfo(v.VendorOrderID, v.ID+1000000, v.VendorWaybillID) - globals.SugarLogger.Debugf("=======riderInfo := %s", utils.Format4Output(riderInfo, false)) if riderInfo != nil { if len(riderInfo.Longitude) < len("104.065861") || riderInfo.Longitude != "" { riderInfo.Longitude += "0" @@ -668,7 +666,6 @@ func GetSToURidingDistance2(sLng, sLat, uLng, uLat float64, orderId string) (way // 如果是平台配送,获取骑手信息 if handler := partner.GetPurchaseOrderHandlerFromVendorID(v.WaybillVendorID); handler != nil { riderInfo, _ := handler.OrderLogisticsStatus(v.VendorOrderID) - globals.SugarLogger.Debugf("=======riderInfo := %s", utils.Format4Output(riderInfo, false)) if riderInfo != nil { if len(riderInfo.Longitude) < len("104.065861") || riderInfo.Longitude != "" { riderInfo.Longitude += "0" @@ -705,7 +702,6 @@ func GetSToURidingDistance2(sLng, sLat, uLng, uLat float64, orderId string) (way } } - globals.SugarLogger.Debugf("=========v := %s", utils.Format4Output(v, false)) dao.UpdateEntity(db, v, "OriginalData", "CourierCoordinate", "Distance", "DurationTime") if v.CourierName == "" || v.CourierMobile == "" { v.CourierName = "暂无骑手" diff --git a/business/partner/purchase/mtwm/order.go b/business/partner/purchase/mtwm/order.go index ff8e342f0..2d7934f8d 100644 --- a/business/partner/purchase/mtwm/order.go +++ b/business/partner/purchase/mtwm/order.go @@ -927,7 +927,7 @@ func (c *PurchaseHandler) OrderLogisticsStatus(orderId string) (*utils.RiderInfo } // 获取骑手坐标最后一个 - lng, lat, _ := api.GetDeliveryPath(utils.Str2Int64(orderId), orderInfo.VendorOrderID) + lng, lat, _ := api.GetDeliveryPath(utils.Str2Int64(orderId), orderInfo.VendorStoreID) status.Longitude = utils.Float64ToStr(jxutils.IntCoordinate2Standard(int(lng))) status.Latitude = utils.Float64ToStr(jxutils.IntCoordinate2Standard(int(lat))) return status, nil From 5cd90b716e192ff6230e76e9ef189eb7227a7e29 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Mon, 11 Sep 2023 17:07:22 +0800 Subject: [PATCH 05/19] 1 --- globals/api/apimanager/apimanager.go | 34 ++++++++++++++-------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/globals/api/apimanager/apimanager.go b/globals/api/apimanager/apimanager.go index 54587e201..d98472b25 100644 --- a/globals/api/apimanager/apimanager.go +++ b/globals/api/apimanager/apimanager.go @@ -69,27 +69,27 @@ func (a *APIManager) GetAPI(vendorID int, appOrgCode string) (pfAPI interface{}) } case model.VendorIDTaoVegetable: api := api.TaoVegetableApi - if beego.BConfig.RunMode == "dev" { - api.SetToken("50002C00414zMSClqLiSDjBr2N19748391yiazjtFmsgTOdbBftik0XDfkUQywSmcjfC") - } else if api == nil || api.GetToken() == "" { - codes, _ := dao.GetVendorOrgCode(db, vendorID, appOrgCode, "platform") - if len(codes) == 0 { + //if beego.BConfig.RunMode == "dev" { + // api.SetToken("50002C00414zMSClqLiSDjBr2N19748391yiazjtFmsgTOdbBftik0XDfkUQywSmcjfC") + //} else if api == nil || api.GetToken() == "" { + codes, _ := dao.GetVendorOrgCode(db, vendorID, appOrgCode, "platform") + if len(codes) == 0 { + return nil + } + code := codes[0] + api = tao_vegetable.NewTaoVegetable(code.AppKey, code.AppSecret, beego.AppConfig.DefaultString("taoVegetableServerUrl", "")) + if code.Token != "" { + var tokenInfo *tao_vegetable.StoreTokenInfo + if err := json.Unmarshal([]byte(code.Token), &tokenInfo); err != nil { return nil } - code := codes[0] - api = tao_vegetable.NewTaoVegetable(code.AppKey, code.AppSecret, beego.AppConfig.DefaultString("taoVegetableServerUrl", "")) - if code.Token != "" { - var tokenInfo *tao_vegetable.StoreTokenInfo - if err := json.Unmarshal([]byte(code.Token), &tokenInfo); err != nil { - return nil - } - if tokenInfo.AccessToken != "" && tokenInfo.ExpireTime > time.Now().UnixNano()/1e6 { - api.SetToken(tokenInfo.AccessToken) - } else { - ddmsg.SendUserMessage(dingdingapi.MsgTyeText, "DDC5657B43EE11E9A9FF525400E86DC0", "淘鲜达token过期", ",请重新授权") - } + if tokenInfo.AccessToken != "" && tokenInfo.ExpireTime > time.Now().UnixNano()/1e6 { + api.SetToken(tokenInfo.AccessToken) + } else { + ddmsg.SendUserMessage(dingdingapi.MsgTyeText, "DDC5657B43EE11E9A9FF525400E86DC0", "淘鲜达token过期", ",请重新授权") } } + //} pfAPI = api case model.VendorIDEBAI: From c667c39a8a1e60e35a911ffab12e5c3bcfa018c1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Tue, 12 Sep 2023 17:41:52 +0800 Subject: [PATCH 06/19] 1 --- business/partner/purchase/tao_vegetable/order.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/business/partner/purchase/tao_vegetable/order.go b/business/partner/purchase/tao_vegetable/order.go index 40d77512a..b94b9dc82 100644 --- a/business/partner/purchase/tao_vegetable/order.go +++ b/business/partner/purchase/tao_vegetable/order.go @@ -513,7 +513,7 @@ func (c *PurchaseHandler) PickupGoods(order *model.GoodsOrder, isSelfDelivery bo return err } - if err != nil && err2 != nil { + if err == nil && err2 == nil { c.postFakeMsg(order.VendorOrderID, tao_vegetable.OrderStatusPickedUp, tao_vegetable.OrderStatusPickedUp) } } From 22e90e0f09bc08a85e70d8c8b9abe83fe6ffd0cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Tue, 12 Sep 2023 17:51:20 +0800 Subject: [PATCH 07/19] 1 --- .../partner/purchase/tao_vegetable/order.go | 21 ++++++++++--------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/business/partner/purchase/tao_vegetable/order.go b/business/partner/purchase/tao_vegetable/order.go index b94b9dc82..9e8994444 100644 --- a/business/partner/purchase/tao_vegetable/order.go +++ b/business/partner/purchase/tao_vegetable/order.go @@ -498,24 +498,25 @@ func (c *PurchaseHandler) AcceptOrRefuseOrder(order *model.GoodsOrder, isAcceptI // PickupGoods 拣货 func (c *PurchaseHandler) PickupGoods(order *model.GoodsOrder, isSelfDelivery bool, userName string) (err error) { - var err2 error if isSelfDelivery { param, err := orderStatusChangeNotice(order, tao_vegetable.OrderStatusPickedUp) if err != nil { return err } api := getAPI(order.VendorOrgCode, jxutils.GetSaleStoreIDFromOrder(order), "") - err = api.DeliveryFinish(param) - if err != nil && strings.Contains(err.Error(), "并发操作,执行失败,请重试") { - time.Sleep(200 * time.Millisecond) - err2 = api.DeliveryFinish(param) - } else if err != nil { - return err + for i := 0; i < 3; i++ { + err2 := api.DeliveryFinish(param) + if err2 != nil { + time.Sleep(200 * time.Millisecond) + err = err2 + continue + } + if err2 == nil { + c.postFakeMsg(order.VendorOrderID, tao_vegetable.OrderStatusPickedUp, tao_vegetable.OrderStatusPickedUp) + break + } } - if err == nil && err2 == nil { - c.postFakeMsg(order.VendorOrderID, tao_vegetable.OrderStatusPickedUp, tao_vegetable.OrderStatusPickedUp) - } } return err } From 10d5d19cb70088c48c798eaa234dab7edd0b2bdf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Tue, 12 Sep 2023 18:05:20 +0800 Subject: [PATCH 08/19] 1 --- business/jxstore/misc/misc.go | 3 +++ business/partner/delivery/rider.go | 1 + 2 files changed, 4 insertions(+) diff --git a/business/jxstore/misc/misc.go b/business/jxstore/misc/misc.go index 11aa66c3a..96b080697 100644 --- a/business/jxstore/misc/misc.go +++ b/business/jxstore/misc/misc.go @@ -165,7 +165,9 @@ func IsImportantTaskRunning(taskName string) bool { } func Init() { + globals.SugarLogger.Debugf("========================ScheduleTimerFuncByInterval=") if globals.IsProductEnv() { + globals.SugarLogger.Debugf("========================ScheduleTimerFuncByInterval=2222") //ScheduleTimerFunc("doDailyWork2", doDailyWork2, dailyWorkTimeList2) //京东的订单信息解密密钥获取 @@ -209,6 +211,7 @@ func Init() { // 每分钟轮询一次,推送骑手信息(假的订单) ScheduleTimerFuncByInterval(func() { + globals.SugarLogger.Debugf("定时任务推送UpdateFakeWayBillToTiktok := ") delivery.UpdateFakeWayBillToTiktok() }, 10*time.Second, 2*time.Minute) diff --git a/business/partner/delivery/rider.go b/business/partner/delivery/rider.go index a5cd2d410..e05507435 100644 --- a/business/partner/delivery/rider.go +++ b/business/partner/delivery/rider.go @@ -401,6 +401,7 @@ func UpdateFakeWayBillToTiktok() { //} fakeWayBill, err := dao.GetWayBillFakeOrder() + globals.SugarLogger.Debugf("定时任务推送UpdateFakeWayBillToTiktok := %d", len(fakeWayBill)) if err != nil { globals.SugarLogger.Debugf("Get Fake Order Err : %s", err.Error()) return From 297e348bb6e35a67798ddcf672f90d4924a3e8d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Tue, 12 Sep 2023 18:21:44 +0800 Subject: [PATCH 09/19] 1 --- business/jxcallback/auto_delivery/auto_delivery.go | 4 ++++ business/partner/delivery/rider.go | 2 ++ 2 files changed, 6 insertions(+) diff --git a/business/jxcallback/auto_delivery/auto_delivery.go b/business/jxcallback/auto_delivery/auto_delivery.go index 7aa7bce6e..614433e88 100644 --- a/business/jxcallback/auto_delivery/auto_delivery.go +++ b/business/jxcallback/auto_delivery/auto_delivery.go @@ -94,6 +94,10 @@ func AutoSettingFakeDelivery() { // 获取刷单门店订单 storeList := strings.Split(configList[0].Value, ",") for _, v := range storeList { + if !strings.Contains(v, "-") { + globals.SugarLogger.Errorf("newConfig 刷单门店配置异常") + return + } storeIdAndVendorId := strings.Split(v, "-") if len(storeIdAndVendorId) == model.NO { continue diff --git a/business/partner/delivery/rider.go b/business/partner/delivery/rider.go index e05507435..f041ff1a9 100644 --- a/business/partner/delivery/rider.go +++ b/business/partner/delivery/rider.go @@ -117,12 +117,14 @@ func GetOrderRiderInfoToPlatform(orderId string, wayBillStatus int) { riderInfo, err = handlerInfo.Handler.GetRiderInfo(v.VendorOrderID, 0, v.VendorWaybillID) if err != nil { globals.SugarLogger.Debug("Get Order waybill rider info err FN/DADA/SFPS :%v", err) + continue } } else if v.WaybillVendorID == model.VendorIDMTPS { if v.VendorWaybillID != "" { riderInfo, err = handlerInfo.Handler.GetRiderInfo(v.VendorOrderID, v.ID+1000000, v.VendorWaybillID) if err != nil { globals.SugarLogger.Debug("Get Order waybill rider info err MT:%v", err) + continue } } } else { From 65b704f9c832dcd1e4f3d5e997ac8bb96d7cf60b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Tue, 12 Sep 2023 18:24:53 +0800 Subject: [PATCH 10/19] 1 --- business/jxstore/misc/misc.go | 9 ++++----- business/partner/delivery/rider.go | 1 + 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/business/jxstore/misc/misc.go b/business/jxstore/misc/misc.go index 96b080697..1b9238eae 100644 --- a/business/jxstore/misc/misc.go +++ b/business/jxstore/misc/misc.go @@ -7,7 +7,6 @@ import ( "git.rosy.net.cn/baseapi/platformapi/dingdingapi" "git.rosy.net.cn/jx-callback/business/bidding" - "git.rosy.net.cn/jx-callback/business/jxcallback/auto_delivery" "git.rosy.net.cn/jx-callback/business/jxutils/ddmsg" "git.rosy.net.cn/jx-callback/business/partner/delivery" @@ -221,10 +220,10 @@ func Init() { }, 10*time.Second, 5*time.Minute) // (自动发单拣货,设置骑手) 刷单用 - ScheduleTimerFuncByInterval(func() { - auto_delivery.Init() // 初始化骑手列表 - auto_delivery.AutoSettingFakeDelivery() - }, 10*time.Second, 5*time.Minute) + //ScheduleTimerFuncByInterval(func() { + // auto_delivery.Init() // 初始化骑手列表 + // auto_delivery.AutoSettingFakeDelivery() + //}, 10*time.Second, 5*time.Minute) // 定时任务更新负责人信息 ScheduleTimerFunc("RefreshStoreOperator", func() { diff --git a/business/partner/delivery/rider.go b/business/partner/delivery/rider.go index f041ff1a9..9f4b66e5f 100644 --- a/business/partner/delivery/rider.go +++ b/business/partner/delivery/rider.go @@ -413,6 +413,7 @@ func UpdateFakeWayBillToTiktok() { } for i := 0; i < len(fakeWayBill); i++ { + globals.SugarLogger.Debugf("定时任务推送UpdateFakeWayBillToTiktok := %s", fakeWayBill[i].VendorOrderID) // 判断当前订单是否可以推送,UpdatedAt > 当前时间 就跳过 if fakeWayBill[i].StatusTime.After(time.Now()) { continue From c1f245472279e15413d6610138985fd6dc9d49b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Tue, 12 Sep 2023 18:39:43 +0800 Subject: [PATCH 11/19] 1 --- business/jxstore/cms/cms.go | 3 +++ business/partner/purchase/tao_vegetable/order.go | 2 +- globals/api/apimanager/apimanager.go | 5 ----- 3 files changed, 4 insertions(+), 6 deletions(-) diff --git a/business/jxstore/cms/cms.go b/business/jxstore/cms/cms.go index 1aac9fea8..303e76ad7 100644 --- a/business/jxstore/cms/cms.go +++ b/business/jxstore/cms/cms.go @@ -733,6 +733,9 @@ func GetCyclingLine(sLng, sLat, uLng, uLat float64) (polyLineList []string, dist if err != nil { return nil, 0, 0, err } + if data == "" { + return nil, 0, 0, fmt.Errorf("获取骑行规划路线错误") + } path := &baidunavi.RiderPath{} if err := json.Unmarshal([]byte(data.(string)), path); err != nil { return nil, 0, 0, err diff --git a/business/partner/purchase/tao_vegetable/order.go b/business/partner/purchase/tao_vegetable/order.go index 9e8994444..05f579597 100644 --- a/business/partner/purchase/tao_vegetable/order.go +++ b/business/partner/purchase/tao_vegetable/order.go @@ -249,7 +249,7 @@ func PushDelivererChangeInfo(order *model.GoodsOrder, bill *model.Waybill, deliv LogisticsNo: utils.String2Pointer(bill.VendorWaybillID), }, } - return getAPI(order.VendorOrgCode, 0, "").DelivererChange(param) + return getAPI(order.VendorOrgCode, order.JxStoreID, order.VendorStoreID).DelivererChange(param) } func (p *PurchaseHandler) GetOrder(vendorOrgCode, vendorOrderID, vendorStoreID string) (order *model.GoodsOrder, err error) { diff --git a/globals/api/apimanager/apimanager.go b/globals/api/apimanager/apimanager.go index d98472b25..9826f2a0b 100644 --- a/globals/api/apimanager/apimanager.go +++ b/globals/api/apimanager/apimanager.go @@ -69,9 +69,6 @@ func (a *APIManager) GetAPI(vendorID int, appOrgCode string) (pfAPI interface{}) } case model.VendorIDTaoVegetable: api := api.TaoVegetableApi - //if beego.BConfig.RunMode == "dev" { - // api.SetToken("50002C00414zMSClqLiSDjBr2N19748391yiazjtFmsgTOdbBftik0XDfkUQywSmcjfC") - //} else if api == nil || api.GetToken() == "" { codes, _ := dao.GetVendorOrgCode(db, vendorID, appOrgCode, "platform") if len(codes) == 0 { return nil @@ -89,8 +86,6 @@ func (a *APIManager) GetAPI(vendorID int, appOrgCode string) (pfAPI interface{}) ddmsg.SendUserMessage(dingdingapi.MsgTyeText, "DDC5657B43EE11E9A9FF525400E86DC0", "淘鲜达token过期", ",请重新授权") } } - //} - pfAPI = api case model.VendorIDEBAI: pfAPI = api.EbaiAPI From 5ebc38ce1f2ce94ca2f47d41505296c78d93170d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Tue, 12 Sep 2023 18:48:30 +0800 Subject: [PATCH 12/19] 1 --- business/jxstore/cms/cms.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/business/jxstore/cms/cms.go b/business/jxstore/cms/cms.go index 303e76ad7..b044b5ceb 100644 --- a/business/jxstore/cms/cms.go +++ b/business/jxstore/cms/cms.go @@ -5,6 +5,7 @@ import ( "fmt" "git.rosy.net.cn/baseapi/platformapi/autonavi" "git.rosy.net.cn/baseapi/platformapi/baidunavi" + "git.rosy.net.cn/jx-callback/globals" "math" "reflect" "regexp" @@ -740,6 +741,8 @@ func GetCyclingLine(sLng, sLat, uLng, uLat float64) (polyLineList []string, dist if err := json.Unmarshal([]byte(data.(string)), path); err != nil { return nil, 0, 0, err } + globals.SugarLogger.Debugf("===========data := %s", data) + globals.SugarLogger.Debugf("===========path := %s", utils.Format4Output(path, false)) distance = int64(path.Result.Routes[0].Distance) // 距离 duration = int64(path.Result.Routes[0].Duration) // 时间 From d0acb420a4bee9907e8c6e8e242f6bb413729e30 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Tue, 12 Sep 2023 18:59:37 +0800 Subject: [PATCH 13/19] 1 --- business/jxstore/cms/cms.go | 18 +++++++++--------- business/partner/delivery/rider.go | 3 +-- 2 files changed, 10 insertions(+), 11 deletions(-) diff --git a/business/jxstore/cms/cms.go b/business/jxstore/cms/cms.go index b044b5ceb..631c3480c 100644 --- a/business/jxstore/cms/cms.go +++ b/business/jxstore/cms/cms.go @@ -5,7 +5,6 @@ import ( "fmt" "git.rosy.net.cn/baseapi/platformapi/autonavi" "git.rosy.net.cn/baseapi/platformapi/baidunavi" - "git.rosy.net.cn/jx-callback/globals" "math" "reflect" "regexp" @@ -636,12 +635,12 @@ func GetSToURidingDistance2(sLng, sLat, uLng, uLat float64, orderId string) (way if v.OriginalData == "" { //originalData, distance, durationTime, err := GetCyclingLine(origin, destination) originalData, distance, durationTime, err := GetCyclingLine(sLng, sLat, uLng, uLat) - if err != nil { - return nil, err + if err == nil { + v.OriginalData = strings.Join(originalData, ";") + v.Distance = distance + v.DurationTime = durationTime } - v.OriginalData = strings.Join(originalData, ";") - v.Distance = distance - v.DurationTime = durationTime + } //} @@ -684,7 +683,7 @@ func GetSToURidingDistance2(sLng, sLat, uLng, uLat float64, orderId string) (way } // 当这个运单为假物流/门店真实自送/获取运单骑手信息为空的时候使用假的骑手信息 - if v.WaybillVendorID == model.VendorJXFakeWL || v.WaybillVendorID == model.VendorIDUnknown || v.CourierCoordinate == "" { + if (v.WaybillVendorID == model.VendorJXFakeWL || v.WaybillVendorID == model.VendorIDUnknown || v.CourierCoordinate == "") && v.OriginalData != "" { riderLine := strings.Split(v.OriginalData, ";") // 路线坐标点 courierDistance := float64(time.Now().Unix()-v.WaybillCreatedAt.Unix()) * (float64(v.Distance) / float64(v.DurationTime)) // 当前骑手骑行距离 @@ -741,8 +740,9 @@ func GetCyclingLine(sLng, sLat, uLng, uLat float64) (polyLineList []string, dist if err := json.Unmarshal([]byte(data.(string)), path); err != nil { return nil, 0, 0, err } - globals.SugarLogger.Debugf("===========data := %s", data) - globals.SugarLogger.Debugf("===========path := %s", utils.Format4Output(path, false)) + if path.Status != model.NO { + return nil, 0, 0, fmt.Errorf("%d,%s", path.Status, path.Message) + } distance = int64(path.Result.Routes[0].Distance) // 距离 duration = int64(path.Result.Routes[0].Duration) // 时间 diff --git a/business/partner/delivery/rider.go b/business/partner/delivery/rider.go index 9f4b66e5f..8f41ed78e 100644 --- a/business/partner/delivery/rider.go +++ b/business/partner/delivery/rider.go @@ -328,8 +328,7 @@ func makeRiderInfo(fakeWayBill *model.Waybill, riderInfo *utils.RiderInfo) { waybill2, err := cms.GetSToURidingDistance2(jxutils.IntCoordinate2Standard(storeDetail.Lng), jxutils.IntCoordinate2Standard(storeDetail.Lat), jxutils.IntCoordinate2Standard(order.ConsigneeLng), jxutils.IntCoordinate2Standard(order.ConsigneeLat), fakeWayBill.VendorOrderID) if err != nil { - ddmsg.SendUserMessage(dingdingapi.MsgTyeText, "2452A93EEB9111EC9B06525400E86DC0", "高德地图骑行方案获取错误:", utils.Format4Output(err.Error(), false)) - return + ddmsg.SendUserMessage(dingdingapi.MsgTyeText, "2452A93EEB9111EC9B06525400E86DC0", "百度地图骑行方案获取错误:", utils.Format4Output(err.Error(), false)) } courierCoordinate := strings.Split(waybill2.CourierCoordinate, ",") if len(courierCoordinate) < 2 && fakeWayBill.Status < model.WaybillStatusDelivered { From ac5db58c28e122462e553f1b99aa68c28a2ca6b6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Wed, 13 Sep 2023 09:49:09 +0800 Subject: [PATCH 14/19] 1 --- .../partner/purchase/tao_vegetable/order.go | 33 ++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) diff --git a/business/partner/purchase/tao_vegetable/order.go b/business/partner/purchase/tao_vegetable/order.go index 05f579597..318d37b16 100644 --- a/business/partner/purchase/tao_vegetable/order.go +++ b/business/partner/purchase/tao_vegetable/order.go @@ -3,6 +3,8 @@ package tao_vegetable import ( "errors" "fmt" + "git.rosy.net.cn/baseapi/platformapi/dingdingapi" + "git.rosy.net.cn/jx-callback/business/jxutils/ddmsg" "regexp" "strings" "time" @@ -580,7 +582,36 @@ func (c *PurchaseHandler) SelfDeliverDelivering(order *model.GoodsOrder, userNam // SelfDeliverDelivered 自配送订单送达 func (c *PurchaseHandler) SelfDeliverDelivered(order *model.GoodsOrder, userName string) (err error) { param := OrderStatusChangeDelivery(order, tao_vegetable.OrderStatusDeliveryOver) - return getAPI(order.VendorOrgCode, jxutils.GetSaleStoreIDFromOrder(order), "").DeliveryFinish(param) + api := getAPI(order.VendorOrgCode, jxutils.GetSaleStoreIDFromOrder(order), "") + err = api.DeliveryFinish(param) + // 这个是因为自动拣货失败出现订单状态为更新,无法设置送达 + if err != nil && strings.Contains(err.Error(), "当前状态不允许更新") { + errMap := make(map[string]interface{}, 0) + + pickupErr := c.PickupGoods(order, true, userName) // 自动拣货 + time.Sleep(200 * time.Millisecond) + deliverErr := c.Swtich2SelfDeliver(order, userName) // 出库 + time.Sleep(200 * time.Millisecond) + deliveringErr := c.SelfDeliverDelivering(order, userName) // 配送中 + time.Sleep(200 * time.Millisecond) + deliveredErr := c.Swtich2SelfDelivered(order, userName) // 送达 + if pickupErr != nil { + errMap["pickupErr"] = pickupErr + } + if deliverErr != nil { + errMap["deliverErr"] = deliverErr + } + if deliveringErr != nil { + errMap["deliveringErr"] = deliveringErr + } + if deliveredErr != nil { + errMap["deliveredErr"] = deliveredErr + } + if len(errMap) > 0 { + ddmsg.SendUserMessage(dingdingapi.MsgTyeText, "2452A93EEB9111EC9B06525400E86DC0", "淘宝订单拣货异常,导致设置送达错误:", utils.Format4Output(errMap, false)) + } + } + return err } func (c *PurchaseHandler) GetOrderRealMobile(ctx *jxcontext.Context, order *model.GoodsOrder) (mobile string, err error) { From 69d4bade0890a1f312c7df636d206f65da8deb18 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Wed, 13 Sep 2023 09:52:23 +0800 Subject: [PATCH 15/19] 1 --- business/jxstore/misc/misc.go | 3 --- business/partner/delivery/rider.go | 2 -- 2 files changed, 5 deletions(-) diff --git a/business/jxstore/misc/misc.go b/business/jxstore/misc/misc.go index 1b9238eae..6889376fc 100644 --- a/business/jxstore/misc/misc.go +++ b/business/jxstore/misc/misc.go @@ -164,9 +164,7 @@ func IsImportantTaskRunning(taskName string) bool { } func Init() { - globals.SugarLogger.Debugf("========================ScheduleTimerFuncByInterval=") if globals.IsProductEnv() { - globals.SugarLogger.Debugf("========================ScheduleTimerFuncByInterval=2222") //ScheduleTimerFunc("doDailyWork2", doDailyWork2, dailyWorkTimeList2) //京东的订单信息解密密钥获取 @@ -210,7 +208,6 @@ func Init() { // 每分钟轮询一次,推送骑手信息(假的订单) ScheduleTimerFuncByInterval(func() { - globals.SugarLogger.Debugf("定时任务推送UpdateFakeWayBillToTiktok := ") delivery.UpdateFakeWayBillToTiktok() }, 10*time.Second, 2*time.Minute) diff --git a/business/partner/delivery/rider.go b/business/partner/delivery/rider.go index 8f41ed78e..b0ec98f49 100644 --- a/business/partner/delivery/rider.go +++ b/business/partner/delivery/rider.go @@ -402,7 +402,6 @@ func UpdateFakeWayBillToTiktok() { //} fakeWayBill, err := dao.GetWayBillFakeOrder() - globals.SugarLogger.Debugf("定时任务推送UpdateFakeWayBillToTiktok := %d", len(fakeWayBill)) if err != nil { globals.SugarLogger.Debugf("Get Fake Order Err : %s", err.Error()) return @@ -412,7 +411,6 @@ func UpdateFakeWayBillToTiktok() { } for i := 0; i < len(fakeWayBill); i++ { - globals.SugarLogger.Debugf("定时任务推送UpdateFakeWayBillToTiktok := %s", fakeWayBill[i].VendorOrderID) // 判断当前订单是否可以推送,UpdatedAt > 当前时间 就跳过 if fakeWayBill[i].StatusTime.After(time.Now()) { continue From a98f9ff181a11d5531463bf6aa4b16b05f989993 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Wed, 13 Sep 2023 13:59:06 +0800 Subject: [PATCH 16/19] 1 --- business/partner/purchase/mtwm/order_afs.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/business/partner/purchase/mtwm/order_afs.go b/business/partner/purchase/mtwm/order_afs.go index e7ff38001..2ec45a0b5 100644 --- a/business/partner/purchase/mtwm/order_afs.go +++ b/business/partner/purchase/mtwm/order_afs.go @@ -66,6 +66,8 @@ func (c *PurchaseHandler) OnAfsOrderMsg(msg *mtwmapi.CallbackMsg) (retVal *mtwma func (c *PurchaseHandler) onAfsOrderMsg(msg *mtwmapi.CallbackMsg) (retVal *mtwmapi.CallbackResponse) { var err error orderStatus := c.callbackAfsMsg2Status(msg) + globals.SugarLogger.Debugf("=================msg := %s", utils.Format4Output(msg, false)) + globals.SugarLogger.Debugf("=================orderStatus := %s", utils.Format4Output(orderStatus, false)) needCallNew := orderStatus.Status == model.AfsOrderStatusWait4Approve || orderStatus.Status == model.AfsOrderStatusNew if !needCallNew { _, err := partner.CurOrderManager.LoadAfsOrder(orderStatus.VendorOrderID, orderStatus.VendorID) @@ -146,6 +148,8 @@ func (c *PurchaseHandler) onAfsOrderMsg(msg *mtwmapi.CallbackMsg) (retVal *mtwma if orderStatus.Status == model.AfsOrderStatusFinished { afsOrder.AfsFinishedAt = afsOrder.AfsCreatedAt } + globals.SugarLogger.Debugf("afsOrder=============== : %s", utils.Format4Output(afsOrder, false)) + globals.SugarLogger.Debugf("orderStatus=============== : %s", utils.Format4Output(orderStatus, false)) err = partner.CurOrderManager.OnAfsOrderNew(afsOrder, orderStatus) } } else { From 8f6bdaa68ea3782dc2ada550f41ca60463079764 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Wed, 13 Sep 2023 15:30:13 +0800 Subject: [PATCH 17/19] 1 --- business/partner/purchase/mtwm/order_afs.go | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/business/partner/purchase/mtwm/order_afs.go b/business/partner/purchase/mtwm/order_afs.go index 2ec45a0b5..66669bb02 100644 --- a/business/partner/purchase/mtwm/order_afs.go +++ b/business/partner/purchase/mtwm/order_afs.go @@ -197,10 +197,17 @@ func (c *PurchaseHandler) callbackAfsMsg2Status(msg *mtwmapi.CallbackMsg) (order } else { orderStatus.VendorOrderID = orderStatus.RefVendorOrderID } + if refundData.NotifyType == "" && refundData.ResType == model.NO { + orderStatus.VendorStatus = "用户申请退货且退款" + } return orderStatus } func (c *PurchaseHandler) GetAfsStatusFromVendorStatus(resType int, notifyType string) int { + // 当resType为0且notifyType为空的时候,是退货退款,之前是未处理这个,现在退货退款默认成退款未处理 + if notifyType == "" { + notifyType = mtwmapi.NotifyTypeApply + } status := AfsVendorStatus2StatusMap[notifyType] if status == model.AfsOrderStatusWait4Approve && resType != mtwmapi.ResTypePending { status = model.AfsOrderStatusNew From 9e33517dcb38b98fae90f9422ad10be2f727933e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Thu, 14 Sep 2023 11:33:12 +0800 Subject: [PATCH 18/19] 1 --- business/jxcallback/orderman/orderman_ext.go | 8 +-- business/model/dao/store.go | 58 ++++++++++++++++---- controllers/jx_order.go | 14 ++++- 3 files changed, 63 insertions(+), 17 deletions(-) diff --git a/business/jxcallback/orderman/orderman_ext.go b/business/jxcallback/orderman/orderman_ext.go index f8d6d83bd..c685b486a 100644 --- a/business/jxcallback/orderman/orderman_ext.go +++ b/business/jxcallback/orderman/orderman_ext.go @@ -876,7 +876,7 @@ func (c *OrderManager) GetStoresOrderSaleInfo(ctx *jxcontext.Context, storeIDLis return c.GetStoresOrderSaleInfoNew(ctx, storeIDList, fromTime, toTime, statusList) } -func (c *OrderManager) GetStoresOrderSaleInfo2(ctx *jxcontext.Context, fromTime time.Time, toTime time.Time, storeId int) (map[string]interface{}, error) { +func (c *OrderManager) GetStoresOrderSaleInfo2(ctx *jxcontext.Context, fromTime time.Time, toTime time.Time, storeId int, brandId, vendorId []int) (map[string]interface{}, error) { year, month, day := time.Now().Date() if fromTime.IsZero() { fromTime = time.Date(year, month, day, 0, 0, 0, 0, time.Local) @@ -887,19 +887,19 @@ func (c *OrderManager) GetStoresOrderSaleInfo2(ctx *jxcontext.Context, fromTime db := dao.GetDB() // 门店统计 - storeStatus, err := dao.StatisticsStoreInfo(db) + storeStatus, err := dao.StatisticsStoreInfo(db, brandId, vendorId) if err != nil { return nil, err } // 订单统计 - orderStatus, err := dao.StatisticsOrderInfo(db, fromTime, toTime, storeId) + orderStatus, err := dao.StatisticsOrderInfo(db, fromTime, toTime, storeId, brandId, vendorId) if err != nil { return nil, err } // 售后单统计 - afsOrderStatus, err := dao.StatisticsAfsOrderInfo(db, fromTime, toTime, storeId) + afsOrderStatus, err := dao.StatisticsAfsOrderInfo(db, fromTime, toTime, storeId, brandId, vendorId) if err != nil { return nil, err } diff --git a/business/model/dao/store.go b/business/model/dao/store.go index a1785a400..8470d2258 100644 --- a/business/model/dao/store.go +++ b/business/model/dao/store.go @@ -1698,11 +1698,23 @@ type StatisticsStore struct { } // StatisticsStoreInfo 统计所有的门店信息 -func StatisticsStoreInfo(db *DaoDB) ([]*StatisticsStore, error) { +func StatisticsStoreInfo(db *DaoDB, brandId []int, vendorId []int) ([]*StatisticsStore, error) { statistics := make([]*StatisticsStore, 0, 0) - sql := ` SELECT count(s.status) count, s.status FROM store s GROUP BY s.status ` - if err := GetRows(db, &statistics, sql, nil); err != nil { + sql := ` SELECT count(s.status) count, s.status FROM store s ` + param := make([]interface{}, 0, 0) + if len(vendorId) > model.NO { + sql += ` INNER JOIN store_map m ON s.id = m.store_id AND m.vendor_id IN (` + GenQuestionMarks(len(vendorId)) + `)` + param = append(param, vendorId) + } + sql += ` WHERE 1=1 ` + if len(brandId) > model.NO { + sql += ` AND s.brand_id IN (` + GenQuestionMarks(len(brandId)) + `)` + param = append(param, brandId) + } + + sql += ` GROUP BY s.status ` + if err := GetRows(db, &statistics, sql, param); err != nil { return nil, err } return statistics, nil @@ -1715,13 +1727,25 @@ type StatisticsOrder struct { } // StatisticsOrderInfo 统计订单信息 -func StatisticsOrderInfo(db *DaoDB, startTime, endTime time.Time, storeId int) ([]*StatisticsOrder, error) { - sql := ` SELECT count(g.vendor_order_id) count,g.status status ,sum(g.total_shop_money) total_shop_money FROM goods_order g WHERE g.order_created_at >= ? AND g.order_created_at <= ? ` - parma := []interface{}{startTime, endTime} +func StatisticsOrderInfo(db *DaoDB, startTime, endTime time.Time, storeId int, brandId, vendorId []int) ([]*StatisticsOrder, error) { + parma := []interface{}{} + sql := ` SELECT count(g.vendor_order_id) count,g.status status ,sum(g.total_shop_money) total_shop_money FROM goods_order g ` + + if len(brandId) > model.NO { + sql += ` INNER JOIN store s ON IF(g.store_id <> 0,g.store_id,g.jx_store_id) = s.id AND s.brand_id IN (` + GenQuestionMarks(len(brandId)) + `)` + parma = append(parma, brandId) + } + + sql += ` WHERE g.order_created_at >= ? AND g.order_created_at <= ?` + parma = append(parma, startTime, endTime) if storeId != model.NO { sql += ` AND IF(g.store_id <> 0,g.store_id,g.jx_store_id) = ?` parma = append(parma, storeId) } + if len(vendorId) > model.NO { + sql += ` AND g.vendor_id IN (` + GenQuestionMarks(len(vendorId)) + `)` + parma = append(parma, vendorId) + } sql += ` GROUP BY g.status ` orderStatistics := make([]*StatisticsOrder, 0, 0) if err := GetRows(GetDB(), &orderStatistics, sql, parma...); err != nil { @@ -1731,13 +1755,27 @@ func StatisticsOrderInfo(db *DaoDB, startTime, endTime time.Time, storeId int) ( } // StatisticsAfsOrderInfo 售后单信息统计 -func StatisticsAfsOrderInfo(db *DaoDB, startTime, endTime time.Time, storeId int) ([]*StatisticsOrder, error) { - sql := `SELECT count(a.vendor_order_id) count,a.status status ,sum(a.afs_total_shop_money) total_shop_money FROM afs_order a WHERE a.afs_created_at >= ? AND a.afs_created_at <= ? ` - parma := []interface{}{startTime, endTime} +func StatisticsAfsOrderInfo(db *DaoDB, startTime, endTime time.Time, storeId int, brandId, vendorId []int) ([]*StatisticsOrder, error) { + parma := []interface{}{} + sql := `SELECT count(a.vendor_order_id) count,a.status status ,sum(a.afs_total_shop_money) total_shop_money FROM afs_order a ` + + if len(brandId) > model.NO { + sql += ` INNER JOIN store s ON IF(a.store_id <> 0,a.store_id,a.jx_store_id) = s.id AND s.brand_id IN (` + GenQuestionMarks(len(brandId)) + `)` + parma = append(parma, brandId) + } + sql += ` WHERE a.afs_created_at >= ? AND a.afs_created_at <= ?` + parma = append(parma, startTime, endTime) + if storeId != model.NO { - sql += ` AND IF(a.store_id <> 0,a.store_id,a.jx_store_id) = 100743` + sql += ` AND IF(a.store_id <> 0,a.store_id,a.jx_store_id) = ?` parma = append(parma, storeId) } + + if len(vendorId) > 0 { + sql += ` AND a.vendor_id IN (` + GenQuestionMarks(len(vendorId)) + `)` + parma = append(parma, vendorId) + } + sql += ` GROUP BY a.status` orderStatistics := make([]*StatisticsOrder, 0, 0) if err := GetRows(GetDB(), &orderStatistics, sql, parma...); err != nil { diff --git a/controllers/jx_order.go b/controllers/jx_order.go index 9ff3adfa3..fa97393f5 100644 --- a/controllers/jx_order.go +++ b/controllers/jx_order.go @@ -484,16 +484,24 @@ func (c *OrderController) GetStoresOrderSaleInfo() { // @Param token header string true "认证token" // @Param fromTime query string true "起始时间" // @Param toTime query string true "结束时间" -// @Param storeIDs query int false "门店id" +// @Param brandIds query string false "品牌id" +// @Param vendorIds query string false "平台id" +// @Param storeID query int false "门店id" // @Success 200 {object} controllers.CallResult // @Failure 200 {object} controllers.CallResult // @router /StaleIndexInfo [get] func (c *OrderController) StaleIndexInfo() { c.callStaleIndexInfo(func(params *tOrderStaleIndexInfoParams) (retVal interface{}, code string, err error) { timeList, err := jxutils.BatchStr2Time(params.FromTime, params.ToTime) - if err == nil { - retVal, err = orderman.FixedOrderManager.GetStoresOrderSaleInfo2(params.Ctx, timeList[0], timeList[1], params.StoreIDs) + if err != nil { + return nil, "", err } + var vendors []int + var brandIds []int + if err := jxutils.Strings2Objs(params.VendorIds, &vendors, params.BrandIds, &brandIds); err != nil { + return nil, "", err + } + retVal, err = orderman.FixedOrderManager.GetStoresOrderSaleInfo2(params.Ctx, timeList[0], timeList[1], params.StoreID, brandIds, vendors) return retVal, "", err }) } From 28ce18262cde61d8c52d6ee95009cc409a8ead73 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Thu, 14 Sep 2023 12:40:42 +0800 Subject: [PATCH 19/19] 1 --- business/partner/purchase/mtwm/order_afs.go | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/business/partner/purchase/mtwm/order_afs.go b/business/partner/purchase/mtwm/order_afs.go index 66669bb02..d7fa3fa2e 100644 --- a/business/partner/purchase/mtwm/order_afs.go +++ b/business/partner/purchase/mtwm/order_afs.go @@ -187,7 +187,7 @@ func (c *PurchaseHandler) callbackAfsMsg2Status(msg *mtwmapi.CallbackMsg) (order OrderType: model.OrderTypeAfsOrder, RefVendorOrderID: utils.Int64ToStr(refundData.OrderID), RefVendorID: model.VendorIDMTWM, - VendorStatus: fmt.Sprintf("%s:%d", refundData.NotifyType, refundData.ResType), + VendorStatus: refundData.Status, // fmt.Sprintf("%s:%d", refundData.NotifyType, refundData.ResType), Status: c.GetAfsStatusFromVendorStatus(refundData.ResType, refundData.NotifyType), StatusTime: utils.Timestamp2Time(refundData.Timestamp), Remark: refundData.Reason, @@ -200,6 +200,11 @@ func (c *PurchaseHandler) callbackAfsMsg2Status(msg *mtwmapi.CallbackMsg) (order if refundData.NotifyType == "" && refundData.ResType == model.NO { orderStatus.VendorStatus = "用户申请退货且退款" } + // 1-已申请 10-初审已同意 11-初审已驳回 16-初审已申诉 17-初审申诉已同意 18-初审申诉已驳回 20-终审已发起(用户已发货) 21-终审已同意 22-终审已驳回 26-终审已申诉 27-终审申诉已同意 28-终审申诉已驳回 30-已取消 + if refundData.Status == "21" { + orderStatus.Status = model.AfsOrderStatusFinished + orderStatus.VendorStatus += "," + refundData.Status + } return orderStatus }