diff --git a/business/jxcallback/scheduler/basesch/basesch.go b/business/jxcallback/scheduler/basesch/basesch.go index c81c6744a..e9d6d7cd7 100644 --- a/business/jxcallback/scheduler/basesch/basesch.go +++ b/business/jxcallback/scheduler/basesch/basesch.go @@ -117,8 +117,12 @@ func (c *BaseScheduler) SelfDeliverDelivering(order *model.GoodsOrder, userName partner.CurOrderManager.OnOrderMsg(order, "取消美团外卖,转用三方配送", err.Error()) } // 查询订单状态, - orderStatus, _ := partner.GetPurchasePlatformFromVendorID(order.VendorID).OrderLogisticsStatus(utils.Str2Int64(order.VendorOrderID)) - if orderStatus == 100 { // 美团取消配送单 + orderStatus, _ := partner.GetPurchasePlatformFromVendorID(order.VendorID).OrderLogisticsStatus(order.VendorOrderID) + status := 0 + if orderStatus != nil { + status = orderStatus.LogisticsStatus + } + if status == 100 { // 美团取消配送单 partner.CurOrderManager.OnOrderMsg(order, "美团外卖转自送成功.", "") return nil } else if strings.Contains(err.Error(), "包裹不存在") || strings.Contains(err.Error(), "运单不存在") || strings.Contains(err.Error(), "1071") || strings.Contains(err.Error(), "1014") || strings.Contains(err.Error(), "invalid character 'o' looking for beginning of value") { @@ -137,13 +141,13 @@ func (c *BaseScheduler) SelfDeliverDelivering(order *model.GoodsOrder, userName } else if order.VendorID == model.VendorIDDD { //抖音配送 localBill, _ := partner.CurOrderManager.LoadWaybill(order.VendorWaybillID, order.WaybillVendorID) // 获取抖音配送状态 - tiktokWayBillStatus, _ := partner.GetPurchasePlatformFromVendorID(order.VendorID).OrderLogisticsStatus(utils.Str2Int64(order.VendorOrderID)) - if tiktokWayBillStatus >= tiktokShop.ShipmentStatusReceived { + tiktokWayBillStatus, _ := partner.GetPurchasePlatformFromVendorID(order.VendorID).OrderLogisticsStatus(order.VendorOrderID) + if tiktokWayBillStatus.LogisticsStatus >= tiktokShop.ShipmentStatusReceived { //取消抖音配送转自送 err = c.CancelWaybill(localBill, partner.CancelWaybillReasonDYPSCancel, partner.CancelWaybillReasonStrDYPSCancel) partner.CurOrderManager.OnOrderMsg(order, "取消抖音配送,转用门店自配送/三方配送", "抖音骑手已经接单,无法取消") return err - } else if tiktokWayBillStatus == -1 { // 先转自送,自送不成功取消平台配送. + } else if tiktokWayBillStatus.LogisticsStatus == -1 { // 先转自送,自送不成功取消平台配送. if err := partner.GetPurchaseOrderHandlerFromVendorID(order.VendorID).SelfDeliverDelivering(order, userName); err != nil { partner.CurOrderManager.OnOrderMsg(order, "抖音转自送,平台无运力", "tiktokWayBillStatus = -1") } diff --git a/business/jxstore/cms/cms.go b/business/jxstore/cms/cms.go index c3531aad6..1abf229cb 100644 --- a/business/jxstore/cms/cms.go +++ b/business/jxstore/cms/cms.go @@ -2,14 +2,15 @@ package cms import ( "fmt" + "git.rosy.net.cn/baseapi/platformapi/autonavi" + "git.rosy.net.cn/baseapi/platformapi/baidunavi" + "math" "reflect" "regexp" "strconv" "strings" "time" - "git.rosy.net.cn/baseapi/platformapi/baidunavi" - "git.rosy.net.cn/jx-callback/business/partner/purchase/ebai" "git.rosy.net.cn/baseapi/utils/errlist" @@ -100,6 +101,9 @@ var ( }, }, } + + AutonaviKeyList = []string{autonavi.AMAPCyclingPlanKey1, autonavi.AMAPCyclingPlanKey2, autonavi.AMAPCyclingPlanKey3, autonavi.AMAPCyclingPlanKey4, autonavi.AMAPCyclingPlanKey5} + AutonaviKeyIndex = 0 ) func InitServiceInfo(version string, buildTime time.Time, gitCommit string) { @@ -586,8 +590,8 @@ func GetCityBankBranches(ctx *jxcontext.Context, cityCode int, bankCode string) return info, err } -// GetSToUWalkingDistance 获取商家与用户间步行距离 -func GetSToURidingDistance(sLng, sLat, uLng, uLat float64) (stepInfo interface{}, err error) { +// GetSToURidingDistance 获取商家与用户间步行距离 +func GetSToURidingDistance(sLng, sLat, uLng, uLat float64, orderId string) (stepInfo interface{}, err error) { var coords []*baidunavi.Coordinate coords = append(coords, &baidunavi.Coordinate{ Lng: sLng, @@ -605,3 +609,112 @@ func GetSToURidingDistance(sLng, sLat, uLng, uLat float64) (stepInfo interface{} } return 0, err } + +// 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() + ) + + for { + // 骑手坐标 + waybills, err := dao.GetWaybills(db, orderId, nil) + if err != nil { + return nil, err + } + for _, v := range waybills { + if v.Status == model.WaybillStatusCanceled { + continue + } + //if v.Status >= model.WaybillStatusAccepted && v.Status <= model.WaybillStatusCanceled { + // 获取骑行路线图 + if v.OriginalData == "" { + originalData, distance, durationTime, err := GetCyclingLine(origin, destination) + if err != nil { + return nil, err + } + v.OriginalData = strings.Join(originalData, ";") + v.Distance = distance + v.DurationTime = durationTime + } + //} + + // 如果是三方配送,更新骑手信息 + if handler := partner.GetDeliveryPlatformFromVendorID(v.WaybillVendorID); handler != nil { + riderInfo, _ := handler.Handler.GetRiderInfo(v.VendorOrderID, v.ID+1000000, v.VendorWaybillID) + if riderInfo != nil { + 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 { + 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 v.WaybillVendorID == model.VendorJXFakeWL || v.WaybillVendorID == model.VendorIDUnknown || v.CourierCoordinate == "" { + riderLine := strings.Split(v.OriginalData, ";") // 路线坐标点 + + courierDistance := float64(time.Now().Unix()-v.WaybillCreatedAt.Unix()) * (float64(v.Distance) / float64(v.DurationTime)) // 当前骑手骑行距离 + if courierDistance >= float64(v.Distance) { + courierDistance = float64(v.Distance) + } + nowCourierDrop := int64(math.Ceil((courierDistance / float64(v.Distance)) * float64(len(riderLine)))) // 当前骑手骑行距离,占中的骑行距离百分比. + if nowCourierDrop >= int64(len(riderLine)) { + v.CourierCoordinate = riderLine[nowCourierDrop-1] + } + if nowCourierDrop <= 0 { + v.CourierCoordinate = riderLine[0] + } + if v.Status >= model.WaybillStatusDelivered { + v.CourierCoordinate = riderLine[len(riderLine)-1] + } + } + + dao.UpdateEntity(db, v, "OriginalData", "CourierCoordinate", "Distance", "DurationTime") + if v.CourierName == "" || v.CourierMobile == "" { + v.CourierName = "暂无骑手" + v.CourierMobile = "暂无电话" + } + + return v, nil + } + + } +} + +// 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 + } + + if len(polyLineList) > model.NO { + return polyLineList, distance, duration, errCode + } + } +} diff --git a/business/jxstore/misc/misc.go b/business/jxstore/misc/misc.go index bc0b04b3c..552e2a5da 100644 --- a/business/jxstore/misc/misc.go +++ b/business/jxstore/misc/misc.go @@ -178,11 +178,6 @@ func Init() { report.RefreshStoreManageState(jxcontext.AdminCtx, nil, []int{model.VendorIDJD}) }, 5*time.Second, 1*time.Hour) - // 每五分钟轮询一次推送骑手信息坐标给美团 - ScheduleTimerFuncByInterval(func() { - delivery.GetOrderRiderInfoToPlatform("", 0) - }, 10*time.Second, 5*time.Minute) - //每天晚上23:00更新抖店 审核状态 ScheduleTimerFunc("UpdateStorePoiStatus", func() { cms.UpdateStorePoiStatus(jxcontext.AdminCtx) @@ -212,16 +207,21 @@ func Init() { "12:30:00", }) - // 每分钟轮询一次,推送骑手信息 + // 每分钟轮询一次,推送骑手信息(假的订单) ScheduleTimerFuncByInterval(func() { delivery.UpdateFakeWayBillToTiktok() - }, 10*time.Second, 5*time.Second) + }, 10*time.Second, 1*time.Minute) - // (自动发单拣货,设置骑手) + // 每五分钟轮询一次推送骑手信息坐标给美团(真的订单) + ScheduleTimerFuncByInterval(func() { + delivery.GetOrderRiderInfoToPlatform("", 0) + }, 10*time.Second, 5*time.Minute) + + // (自动发单拣货,设置骑手) 刷单用 ScheduleTimerFuncByInterval(func() { auto_delivery.Init() // 初始化骑手列表 auto_delivery.AutoSettingFakeDelivery() - }, 10*time.Second, 3*time.Minute) + }, 10*time.Second, 5*time.Minute) // 定时任务更新负责人信息 ScheduleTimerFunc("RefreshStoreOperator", func() { diff --git a/business/jxutils/weixinmsg/weixinmsg.go b/business/jxutils/weixinmsg/weixinmsg.go index 8bf792bd6..049bc9ef8 100644 --- a/business/jxutils/weixinmsg/weixinmsg.go +++ b/business/jxutils/weixinmsg/weixinmsg.go @@ -676,6 +676,7 @@ func NotifyStoreOpRequestStatus(isAccepted bool, storeID, nameID int, spuName st func NotifyStoreMessage(storeID, msgID, msgStatusID int, msg *model.Message) (err error) { templateID := "" fileURL := globals.WxBackstageHost + fmt.Sprintf(WX_TO_SHOW_MSG, msgID, msgStatusID) + //fileURL := globals.WxBackstageHost + fmt.Sprintf("%s%d", WX_TO_ORDER_PAGE_URL, storeID) data := make(map[string]interface{}) switch msg.Type { case model.MessageTypeStore: diff --git a/business/model/dao/dao_order.go b/business/model/dao/dao_order.go index 3a3a276ff..758107ef7 100644 --- a/business/model/dao/dao_order.go +++ b/business/model/dao/dao_order.go @@ -1494,12 +1494,13 @@ func GetWaybills(db *DaoDB, vendorOrderID string, vendors []int64) (waybills []* FROM waybill WHERE vendor_order_id = ? ` + sqlParams := []interface{}{vendorOrderID} if len(vendors) > model.NO { sql += " AND waybill_vendor_id IN (" + GenQuestionMarks(len(vendors)) + ")" + sqlParams = append(sqlParams, vendors) } + sql += ` ORDER BY waybill_created_at asc` - sqlParams := []interface{}{vendorOrderID} - sqlParams = append(sqlParams, vendors) err = GetRows(db, &waybills, sql, sqlParams) return waybills, err } @@ -1520,10 +1521,10 @@ func GetWayBillFakeOrder() (waybills []*model.Waybill, err error) { sql := ` SELECT * FROM waybill - WHERE waybill_vendor_id = ? AND status < ? AND waybill_created_at>= ? AND waybill_created_at< ? + WHERE waybill_vendor_id IN (` + GenQuestionMarks(2) + `) AND status < ? AND waybill_created_at>= ? AND waybill_created_at< ? ` - sqlParams := []interface{}{model.VendorJXFakeWL, model.WaybillStatusFailed, time.Now().Add(-2 * 24 * time.Hour), time.Now()} + sqlParams := []interface{}{model.VendorJXFakeWL, model.VendorIDUnknown, model.WaybillStatusFailed, time.Now().Add(-2 * 24 * time.Hour), time.Now()} err = GetRows(GetDB(), &waybills, sql, sqlParams) return waybills, err } diff --git a/business/model/order.go b/business/model/order.go index 44ad263d6..5f14ea437 100644 --- a/business/model/order.go +++ b/business/model/order.go @@ -244,10 +244,14 @@ type Waybill struct { WaybillFinishedAt time.Time `orm:"type(datetime)" json:"waybillFinishedAt"` StatusTime time.Time `orm:"type(datetime)" json:"-"` // last status time ModelTimeInfo `json:"-"` - OriginalData string `orm:"type(text)" json:"-"` - Remark string `orm:"-" json:"-"` // 用于传递remark - PunctualFee int64 `orm:"column(punctual_fee)" json:"punctualFee"` // 对应美团外卖运单的准时保险费 - VendorOrgCode string `orm:"size(64)" json:"vendorOrgCode"` // 同一平台下不同的商户代码,如果只有一个,可以为空 + OriginalData string `orm:"type(text)" json:"original_data"` // 用来保存门店到用户间的坐标点 + Distance int64 `orm:"column(distance);size(16)" json:"distance"` // 门店和用户之间的推荐距离 + CourierCoordinate string `orm:"column(courier_coordinate);size(32)" json:"courier_coordinate"` // 骑手坐标 + DurationTime int64 `orm:"column(duration_time);size(16)" json:"duration_time"` // 骑行时间 + + Remark string `orm:"-" json:"-"` // 用于传递remark + PunctualFee int64 `orm:"column(punctual_fee)" json:"punctualFee"` // 对应美团外卖运单的准时保险费 + VendorOrgCode string `orm:"size(64)" json:"vendorOrgCode"` // 同一平台下不同的商户代码,如果只有一个,可以为空 } func (w *Waybill) TableUnique() [][]string { diff --git a/business/partner/delivery/dada/waybill.go b/business/partner/delivery/dada/waybill.go index 1b457783b..f72f8c455 100644 --- a/business/partner/delivery/dada/waybill.go +++ b/business/partner/delivery/dada/waybill.go @@ -3,7 +3,6 @@ package dada import ( "errors" "fmt" - "git.rosy.net.cn/baseapi/platformapi/mtpsapi" tao "git.rosy.net.cn/baseapi/platformapi/tao_vegetable" "git.rosy.net.cn/jx-callback/business/jxcallback/orderman" "git.rosy.net.cn/jx-callback/business/partner/purchase/tao_vegetable" @@ -130,7 +129,7 @@ func (c *DeliveryHandler) onWaybillMsg(msg *dadaapi.CallbackMsg) (retVal *dadaap // 抖音订单状态回传 func tiktokStatusPush(order *model.Waybill, status int) { - result := &mtpsapi.RiderInfo{ + result := &utils.RiderInfo{ OrderId: order.VendorOrderID, ThirdCarrierOrderId: order.VendorOrderID, CourierName: order.CourierName, @@ -507,18 +506,18 @@ func (c *DeliveryHandler) GetRidderPosition(ctx *jxcontext.Context, vendorOrgCod } // 获取骑手信息(订单详情) -func (c *DeliveryHandler) GetRiderInfo(orderId string, deliveryId int64, mtPeisongId string) (rider *mtpsapi.RiderInfo, err error) { +func (c *DeliveryHandler) GetRiderInfo(orderId string, deliveryId int64, mtPeisongId string) (rider *utils.RiderInfo, err error) { order, err := api.DadaAPI.QueryOrderInfo(orderId) if err != nil { return nil, err } - result := &mtpsapi.RiderInfo{ + result := &utils.RiderInfo{ OrderId: orderId, ThirdCarrierOrderId: mtPeisongId, CourierName: order.TransporterName, CourierPhone: order.TransporterPhone, - LogisticsProviderCode: mtpsapi.DaDaCode, + LogisticsProviderCode: utils.DaDaCode, LogisticsStatus: order.StatusCode, LogisticsContext: "", Latitude: order.TransporterLat, diff --git a/business/partner/delivery/fn/waybill.go b/business/partner/delivery/fn/waybill.go index 639a273b5..3ec8829e9 100644 --- a/business/partner/delivery/fn/waybill.go +++ b/business/partner/delivery/fn/waybill.go @@ -2,7 +2,6 @@ package fn import ( "fmt" - "git.rosy.net.cn/baseapi/platformapi/mtpsapi" tao "git.rosy.net.cn/baseapi/platformapi/tao_vegetable" "git.rosy.net.cn/baseapi/utils" "git.rosy.net.cn/jx-callback/business/jxcallback/orderman" @@ -323,7 +322,7 @@ func OnWaybillMsg(msg *fnpsapi.OrderStatusNottify, resultParam *fnpsapi.ShortSta // 抖音订单状态回传 func tiktokStatusPush(order *model.Waybill, orderStatus int64) { - result := &mtpsapi.RiderInfo{ + result := &utils.RiderInfo{ OrderId: order.VendorOrderID, ThirdCarrierOrderId: order.VendorOrderID, CourierName: order.CourierName, @@ -393,7 +392,7 @@ func GetDesiredFee(vendorOrderID string) (desiredFee, acuteFee int64) { } // 获取骑手信息 -func (c *DeliveryHandler) GetRiderInfo(orderId string, deliveryId int64, mtPeisongId string) (rider *mtpsapi.RiderInfo, err error) { +func (c *DeliveryHandler) GetRiderInfo(orderId string, deliveryId int64, mtPeisongId string) (rider *utils.RiderInfo, err error) { // 获取订单状态 order, err := api.FnAPI.QueryOrder(orderId) if err != nil { @@ -406,12 +405,12 @@ func (c *DeliveryHandler) GetRiderInfo(orderId string, deliveryId int64, mtPeiso return nil, err } - result := &mtpsapi.RiderInfo{ + result := &utils.RiderInfo{ OrderId: orderId, ThirdCarrierOrderId: utils.Int64ToStr(order.TrackingId), CourierName: knightInfo.CarrierDriverName, CourierPhone: knightInfo.CarrierDriverPhone, - LogisticsProviderCode: mtpsapi.FnPsCode, + LogisticsProviderCode: utils.FnPsCode, LogisticsStatus: order.OrderStatus, // 默认正在配送中 Latitude: knightInfo.CarrierDriverLatitude, Longitude: knightInfo.CarrierDriverLongitude, diff --git a/business/partner/delivery/jdeclp/waybill.go b/business/partner/delivery/jdeclp/waybill.go index 75ff86e9b..d27bdb5a3 100644 --- a/business/partner/delivery/jdeclp/waybill.go +++ b/business/partner/delivery/jdeclp/waybill.go @@ -2,7 +2,6 @@ package jdeclp import ( "fmt" - "git.rosy.net.cn/baseapi/platformapi/mtpsapi" "time" "git.rosy.net.cn/baseapi/platformapi/jdeclpapi" @@ -104,7 +103,7 @@ func (c *DeliveryHandler) ComplaintRider(bill *model.Waybill, resonID int, reson return err } -func (c *DeliveryHandler) GetRiderInfo(orderId string, deliveryId int64, mtPeisongId string) (rider *mtpsapi.RiderInfo, err error) { +func (c *DeliveryHandler) GetRiderInfo(orderId string, deliveryId int64, mtPeisongId string) (rider *utils.RiderInfo, err error) { return nil, nil } func (c *DeliveryHandler) GetDeliverLiquidatedDamages(orderId string, deliverId string) (money int64, err error) { diff --git a/business/partner/delivery/mtps/waybill.go b/business/partner/delivery/mtps/waybill.go index ea3aa27ea..fddb78ef7 100644 --- a/business/partner/delivery/mtps/waybill.go +++ b/business/partner/delivery/mtps/waybill.go @@ -153,7 +153,7 @@ func (c *DeliveryHandler) onWaybillMsg(msg *mtpsapi.CallbackOrderMsg) (retVal *m } func pushMTPSToTiktok(msgStatus int, order *model.Waybill) { - result := &mtpsapi.RiderInfo{ + result := &utils.RiderInfo{ OrderId: order.VendorOrderID, ThirdCarrierOrderId: order.VendorOrderID, CourierName: order.CourierName, @@ -471,7 +471,7 @@ func (c *DeliveryHandler) GetRidderPosition(ctx *jxcontext.Context, vendorOrgCod } // 获取骑手信息 美团配送 deliveryId,mtPeisongId这两参数美团专属 -func (c *DeliveryHandler) GetRiderInfo(orderId string, deliveryId int64, mtPeisongId string) (rider *mtpsapi.RiderInfo, err error) { +func (c *DeliveryHandler) GetRiderInfo(orderId string, deliveryId int64, mtPeisongId string) (rider *utils.RiderInfo, err error) { // 获取订单状态 order, err := api.MtpsAPI.QueryOrderStatus(deliveryId, mtPeisongId) if err != nil { @@ -483,12 +483,12 @@ func (c *DeliveryHandler) GetRiderInfo(orderId string, deliveryId int64, mtPeiso if err != nil { return nil, err } - result := &mtpsapi.RiderInfo{ + result := &utils.RiderInfo{ OrderId: orderId, ThirdCarrierOrderId: utils.Interface2String(order["mt_peisong_id"]), CourierName: utils.Interface2String(order["courier_name"]), CourierPhone: utils.Interface2String(order["courier_phone"]), - LogisticsProviderCode: mtpsapi.MTPsCode, + LogisticsProviderCode: utils.MTPsCode, LogisticsStatus: int(utils.MustInterface2Int64(order["status"])), // 默认正在配送中 Latitude: utils.Float64ToStr(jxutils.IntCoordinate2Standard(lat)), Longitude: utils.Float64ToStr(jxutils.IntCoordinate2Standard(lng)), diff --git a/business/partner/delivery/rider.go b/business/partner/delivery/rider.go index 4b88d04fb..ab339e5c1 100644 --- a/business/partner/delivery/rider.go +++ b/business/partner/delivery/rider.go @@ -3,7 +3,11 @@ package delivery import ( "crypto/rand" "fmt" + "git.rosy.net.cn/baseapi/platformapi/dingdingapi" + "git.rosy.net.cn/jx-callback/business/jxstore/cms" + "git.rosy.net.cn/jx-callback/business/jxutils/ddmsg" "math/big" + "strings" "time" "git.rosy.net.cn/baseapi/platformapi/tao_vegetable" @@ -16,7 +20,6 @@ import ( "git.rosy.net.cn/jx-callback/business/jxutils/tasksch" "git.rosy.net.cn/jx-callback/business/partner/purchase/mtwm" - "git.rosy.net.cn/baseapi/platformapi/mtpsapi" "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/tiktok_api" "git.rosy.net.cn/baseapi/utils" "git.rosy.net.cn/jx-callback/business/model" @@ -95,10 +98,10 @@ func GetOrderRiderInfoToPlatform(orderId string, wayBillStatus int) { if orderId == "" && v.VendorID == model.VendorIDDD { // 抖音门店订单除了三方配送回调时推送,不在主动推送配送消息 continue } - - //if (v.WaybillVendorID == model.YES || v.WaybillVendorID == -1) && v.VendorID == model.VendorIDMTWM { - // continue - //} + // 非三方配送订单不同步消息 + if v.WaybillVendorID < 100 { + continue + } if orderId == "" { // 订单id为空是,是定时轮询操作,不做此状态 waybillList, _ := dao.GetWaybills(dao.GetDB(), v.VendorOrderID, nil) @@ -108,7 +111,7 @@ func GetOrderRiderInfoToPlatform(orderId string, wayBillStatus int) { } } - riderInfo := &mtpsapi.RiderInfo{} + riderInfo := &utils.RiderInfo{} if handlerInfo := partner.GetDeliveryPlatformFromVendorID(v.WaybillVendorID); handlerInfo != nil { if v.WaybillVendorID == model.VendorIDDada || v.WaybillVendorID == model.VendorIDFengNiao || v.WaybillVendorID == model.VendorIDUUPT || v.WaybillVendorID == model.VendorIDSFPS { riderInfo, err = handlerInfo.Handler.GetRiderInfo(v.VendorOrderID, 0, v.VendorWaybillID) @@ -250,7 +253,7 @@ func GetOrderRiderInfoToPlatform(orderId string, wayBillStatus int) { return } -func PullTiktokRiderInfo(riderInfo *mtpsapi.RiderInfo) { +func PullTiktokRiderInfo(riderInfo *utils.RiderInfo) { switch riderInfo.LogisticsStatus { case 5: // 呼叫骑手 riderInfo.LogisticsStatus = 0 @@ -311,7 +314,7 @@ func UpdateOrder2Complete() { return } -func makeRiderInfo(fakeWayBill *model.Waybill, riderInfo *mtpsapi.RiderInfo) { +func makeRiderInfo(fakeWayBill *model.Waybill, riderInfo *utils.RiderInfo) { order, _ := partner.CurOrderManager.LoadOrder(fakeWayBill.VendorOrderID, fakeWayBill.OrderVendorID) storeId := 0 if order.StoreID != 0 { @@ -320,6 +323,13 @@ func makeRiderInfo(fakeWayBill *model.Waybill, riderInfo *mtpsapi.RiderInfo) { storeId = order.JxStoreID } storeDetail, _ := dao.GetStoreDetail(dao.GetDB(), storeId, order.VendorID, order.VendorOrgCode) + + 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 + } + courierCoordinate := strings.Split(waybill2.CourierCoordinate, ",") switch fakeWayBill.Status { case 5: // 呼叫骑手 riderInfo.LogisticsContext = "呼叫骑手,新建运单" @@ -334,11 +344,12 @@ func makeRiderInfo(fakeWayBill *model.Waybill, riderInfo *mtpsapi.RiderInfo) { fakeWayBill.Status = model.WaybillStatusCourierAssigned fakeWayBill.VendorStatus = utils.Int64ToStr(model.WaybillStatusCourierAssigned) case 12: // 骑手接单 + riderInfo.LogisticsContext = model.RiderWaitGetGoods riderInfo.LogisticsStatus = 10 riderInfo.OpCode = tiktok_api.TiktokLogisticsORDERRECEIVED - riderInfo.Latitude = utils.Float64ToStr(jxutils.IntCoordinate2Standard(storeDetail.Lat)) - riderInfo.Longitude = utils.Float64ToStr(jxutils.IntCoordinate2Standard(storeDetail.Lng)) + riderInfo.Latitude = courierCoordinate[1] + riderInfo.Longitude = courierCoordinate[0] // 下一状态以及推送时间 fakeWayBill.Status = model.WaybillStatusCourierArrived fakeWayBill.VendorStatus = utils.Int64ToStr(model.WaybillStatusCourierArrived) @@ -346,8 +357,8 @@ func makeRiderInfo(fakeWayBill *model.Waybill, riderInfo *mtpsapi.RiderInfo) { riderInfo.LogisticsContext = model.RiderToStore riderInfo.LogisticsStatus = 15 riderInfo.OpCode = tiktok_api.TiktokLogisticsRIDERARRIVED - riderInfo.Latitude = utils.Float64ToStr(jxutils.IntCoordinate2Standard(storeDetail.Lat)) - riderInfo.Longitude = utils.Float64ToStr(jxutils.IntCoordinate2Standard(storeDetail.Lng)) + riderInfo.Latitude = courierCoordinate[1] + riderInfo.Longitude = courierCoordinate[0] // 下一状态以及推送时间 fakeWayBill.Status = model.WaybillStatusDelivering fakeWayBill.VendorStatus = utils.Int64ToStr(model.WaybillStatusDelivering) @@ -355,8 +366,8 @@ func makeRiderInfo(fakeWayBill *model.Waybill, riderInfo *mtpsapi.RiderInfo) { riderInfo.LogisticsContext = model.RiderGetOrderDelivering riderInfo.LogisticsStatus = 20 riderInfo.OpCode = tiktok_api.TiktokLogisticsRIDERPICKUP - riderInfo.Latitude = utils.Float64ToStr(jxutils.IntCoordinate2Standard(storeDetail.Lat)) - riderInfo.Longitude = utils.Float64ToStr(jxutils.IntCoordinate2Standard(storeDetail.Lng)) + riderInfo.Latitude = courierCoordinate[1] + riderInfo.Longitude = courierCoordinate[0] // 下一状态以及推送时间 fakeWayBill.Status = model.WaybillStatusDelivered fakeWayBill.VendorStatus = utils.Int64ToStr(model.WaybillStatusDelivered) @@ -364,8 +375,8 @@ func makeRiderInfo(fakeWayBill *model.Waybill, riderInfo *mtpsapi.RiderInfo) { riderInfo.LogisticsContext = model.RiderGetOrderDelivered riderInfo.LogisticsStatus = 40 riderInfo.OpCode = tiktok_api.TiktokLogisticsDELIVERED - riderInfo.Latitude = utils.Float64ToStr(jxutils.IntCoordinate2Standard(order.ConsigneeLat)) - riderInfo.Longitude = utils.Float64ToStr(jxutils.IntCoordinate2Standard(order.ConsigneeLng)) + riderInfo.Latitude = courierCoordinate[1] + riderInfo.Longitude = courierCoordinate[0] // 下一状态以及推送时间 fakeWayBill.Status = model.WaybillStatusFailed fakeWayBill.VendorStatus = utils.Int64ToStr(model.WaybillStatusFailed) @@ -377,11 +388,11 @@ func makeRiderInfo(fakeWayBill *model.Waybill, riderInfo *mtpsapi.RiderInfo) { // UpdateFakeWayBillToTiktok 轮询更新假订单到抖音(抖音/美团/饿百) func UpdateFakeWayBillToTiktok() { - scheduleTimer, _ := rand.Int(rand.Reader, big.NewInt(1000)) - randTimeSchedule := scheduleTimer.Int64() - if randTimeSchedule > 200 { - return - } + //scheduleTimer, _ := rand.Int(rand.Reader, big.NewInt(1000)) + //randTimeSchedule := scheduleTimer.Int64() + //if randTimeSchedule > 500 { + // return + //} fakeWayBill, err := dao.GetWayBillFakeOrder() if err != nil { @@ -398,7 +409,7 @@ func UpdateFakeWayBillToTiktok() { continue } - riderInfo := &mtpsapi.RiderInfo{ + riderInfo := &utils.RiderInfo{ OrderId: fakeWayBill[i].VendorOrderID, ThirdCarrierOrderId: fakeWayBill[i].VendorOrderID, CourierName: fakeWayBill[i].CourierName, @@ -425,7 +436,8 @@ func UpdateFakeWayBillToTiktok() { paramsMap := utils.Struct2Map(riderInfo, "", true) handler := partner.GetPurchaseOrderHandlerFromVendorID(fakeWayBill[i].OrderVendorID) if handler != nil { - if err := handler.GetOrderRider(fakeWayBill[i].VendorOrgCode, "", paramsMap); err != nil { + order, _ := partner.CurOrderManager.LoadOrder(fakeWayBill[i].VendorOrderID, fakeWayBill[i].OrderVendorID) + if err := handler.GetOrderRider(fakeWayBill[i].VendorOrgCode, order.VendorStoreID, paramsMap); err != nil { globals.SugarLogger.Debugf("Fake Pull Rider Info Err :%s--%s--%v", riderInfo.OrderId, riderInfo.ThirdCarrierOrderId, err) continue } @@ -438,7 +450,7 @@ func UpdateFakeWayBillToTiktok() { } // 推送完成时加多加十分钟,相当于是配送中状态多存货十分钟 if fakeWayBill[i].Status == model.WaybillStatusDelivered { - randTime += 1200 + randTime += 300 } fakeWayBill[i].StatusTime = time.Now().Add(time.Duration(randTime) * time.Second).Local() fakeWayBill[i].WaybillFinishedAt = time.Now() @@ -552,8 +564,8 @@ func LoadingStoreOrderSettleAmount(startTime, endTime int64, jxStoreId []int) er return nil } -func GetVendorRiderInfo(wayBillVendorId, vendorId int, vendorOrderId, vendorWaybillId string) (riderInfo *mtpsapi.RiderInfo, err error) { - riderInfo = &mtpsapi.RiderInfo{} +func GetVendorRiderInfo(wayBillVendorId, vendorId int, vendorOrderId, vendorWaybillId string) (riderInfo *utils.RiderInfo, err error) { + riderInfo = &utils.RiderInfo{} if handlerInfo := partner.GetDeliveryPlatformFromVendorID(wayBillVendorId); handlerInfo != nil { if wayBillVendorId == model.VendorIDDada || wayBillVendorId == model.VendorIDFengNiao || wayBillVendorId == model.VendorIDUUPT { riderInfo, err = handlerInfo.Handler.GetRiderInfo(vendorOrderId, 0, vendorWaybillId) diff --git a/business/partner/delivery/sfps/waybill.go b/business/partner/delivery/sfps/waybill.go index 5612c0d56..31a423475 100644 --- a/business/partner/delivery/sfps/waybill.go +++ b/business/partner/delivery/sfps/waybill.go @@ -15,7 +15,6 @@ import ( "git.rosy.net.cn/jx-callback/business/jxutils" - "git.rosy.net.cn/baseapi/platformapi/mtpsapi" "git.rosy.net.cn/jx-callback/business/jxutils/jxcontext" "git.rosy.net.cn/jx-callback/globals/api" @@ -299,7 +298,7 @@ func (d DeliveryHandler) GetDeliverLiquidatedDamages(orderId string, deliverId s return money, nil } -func (d DeliveryHandler) GetRiderInfo(orderId string, deliveryId int64, mtPeisongId string) (rider *mtpsapi.RiderInfo, err error) { +func (d DeliveryHandler) GetRiderInfo(orderId string, deliveryId int64, mtPeisongId string) (rider *utils.RiderInfo, err error) { order, err := dao.GetWaybills(dao.GetDB(), orderId, []int64{model.VendorIDSFPS}) if len(order) == 0 || err != nil { return nil, errors.New("顺丰 订单id无效,请检查") @@ -311,12 +310,12 @@ func (d DeliveryHandler) GetRiderInfo(orderId string, deliveryId int64, mtPeison if sfRider == nil { return nil, errors.New("顺丰派送暂无骑手信息") } - result := &mtpsapi.RiderInfo{ + result := &utils.RiderInfo{ OrderId: orderId, ThirdCarrierOrderId: sfOrder.OrderID, CourierName: sfOrder.RiderName, CourierPhone: sfOrder.RiderPhone, - LogisticsProviderCode: mtpsapi.SFPSCode, + LogisticsProviderCode: utils.SFPSCode, LogisticsStatus: utils.Float64TwoInt(sfOrder.OrderStatus), // 默认正在配送中 Latitude: sfRider.RiderLat, Longitude: sfRider.RiderLng, @@ -452,7 +451,7 @@ func OnWaybillMsg(urlIndex string, msg interface{}) (resp *sfps2.CallbackRespons } func tiktokStatusPush(order *model.Waybill, orderStatus int64) { - result := &mtpsapi.RiderInfo{ + result := &utils.RiderInfo{ OrderId: order.VendorOrderID, ThirdCarrierOrderId: order.VendorOrderID, CourierName: order.CourierName, diff --git a/business/partner/delivery/uupt/waybill.go b/business/partner/delivery/uupt/waybill.go index 1d996cb63..212e886ba 100644 --- a/business/partner/delivery/uupt/waybill.go +++ b/business/partner/delivery/uupt/waybill.go @@ -9,7 +9,6 @@ import ( "git.rosy.net.cn/jx-callback/business/partner/purchase/tao_vegetable" "git.rosy.net.cn/baseapi/platformapi/baidunavi" - "git.rosy.net.cn/baseapi/platformapi/mtpsapi" "git.rosy.net.cn/baseapi/platformapi/uuptapi" "git.rosy.net.cn/baseapi/utils" "git.rosy.net.cn/jx-callback/business/jxutils" @@ -219,17 +218,17 @@ func (d DeliveryHandler) ComplaintRider(bill *model.Waybill, resonID int, resonC return fmt.Errorf("UU跑腿暂不支持此操作") } -func (d DeliveryHandler) GetRiderInfo(orderId string, deliveryId int64, mtPeisongId string) (rider *mtpsapi.RiderInfo, err error) { +func (d DeliveryHandler) GetRiderInfo(orderId string, deliveryId int64, mtPeisongId string) (rider *utils.RiderInfo, err error) { waybill, err := api.UuAPI.GetOrderDetail(orderId) if err != nil { return nil, err } - param := &mtpsapi.RiderInfo{ + param := &utils.RiderInfo{ OrderId: orderId, ThirdCarrierOrderId: waybill.OrderCode, CourierName: waybill.DriverName, CourierPhone: waybill.DriverMobile, - LogisticsProviderCode: mtpsapi.UUPTCode, + LogisticsProviderCode: utils.UUPTCode, LogisticsStatus: utils.Str2Int(waybill.State), } if len(waybill.DriverLastloc) == 0 { @@ -407,7 +406,7 @@ func OnWaybillMsg(req *uuptapi.WaybillCallbackParam) (resp *uuptapi.CallbackResp } func tiktokStatusPush(param *model.Waybill, orderStatus string) { - result := &mtpsapi.RiderInfo{ + result := &utils.RiderInfo{ OrderId: param.VendorOrderID, ThirdCarrierOrderId: param.VendorOrderID, CourierName: param.CourierName, diff --git a/business/partner/partner_delivery.go b/business/partner/partner_delivery.go index 59ed20cc3..48eeff7b9 100644 --- a/business/partner/partner_delivery.go +++ b/business/partner/partner_delivery.go @@ -2,7 +2,7 @@ package partner import ( "fmt" - "git.rosy.net.cn/baseapi/platformapi/mtpsapi" + "git.rosy.net.cn/baseapi/utils" "git.rosy.net.cn/jx-callback/business/jxutils/jxcontext" "git.rosy.net.cn/jx-callback/business/model" "git.rosy.net.cn/jx-callback/business/model/dao" @@ -41,7 +41,7 @@ type IDeliveryPlatformHandler interface { //投诉骑手 ComplaintRider(bill *model.Waybill, resonID int, resonContent string) (err error) // GetRiderInfo 获取骑手信息 - GetRiderInfo(orderId string, deliveryId int64, mtPeisongId string) (rider *mtpsapi.RiderInfo, err error) + GetRiderInfo(orderId string, deliveryId int64, mtPeisongId string) (rider *utils.RiderInfo, err error) // 三方配送时,呼叫骑手在取消.可能存在违约赔付!获取每单的违约金额! // 蜂鸟:骑手接单后-取餐之前,每单扣除2元,超过20分钟不扣款 // 达达:骑手接单后-到店之前,接单1-15分钟内,扣款2元,超过不扣款 diff --git a/business/partner/partner_order.go b/business/partner/partner_order.go index e4543148d..17e335020 100644 --- a/business/partner/partner_order.go +++ b/business/partner/partner_order.go @@ -1,6 +1,7 @@ package partner import ( + "git.rosy.net.cn/baseapi/utils" "git.rosy.net.cn/jx-callback/business/jxutils/jxcontext" "git.rosy.net.cn/jx-callback/business/model" ) @@ -48,25 +49,21 @@ type IPurchasePlatformOrderHandler interface { CanSwitch2SelfDeliver(order *model.GoodsOrder) (isCan bool, err error) // 将订单从购物平台配送转为自送 Swtich2SelfDeliver(order *model.GoodsOrder, userName string) (err error) - // 将订单从购物平台配送转为自送后又送达 Swtich2SelfDelivered(order *model.GoodsOrder, userName string) (err error) - // 完全自送的门店表示开始配送 SelfDeliverDelivering(order *model.GoodsOrder, userName string) (err error) - // 转自配送时取消非专送混合送门店取消理由 GetCancelDeliveryReason(order *model.GoodsOrder) (string, error) // 取消美团外卖理由转使用三方配送 CancelLogisticsByWmOrderId(order *model.GoodsOrder, reasonCode, detailContent, appPoiCode, orderId string) error - OrderLogisticsStatus(orderId int64) (int64, error) + // 获取运单状态 + OrderLogisticsStatus(orderId string) (*utils.RiderInfo, error) // 完全自送的门店表示配送完成 SelfDeliverDelivered(order *model.GoodsOrder, userName string) (err error) GetOrderRealMobile(ctx *jxcontext.Context, order *model.GoodsOrder) (mobile string, err error) - ReplyOrderComment(ctx *jxcontext.Context, vendorOrgCode string, orderComment *model.OrderComment, replyComment string) (err error) - AgreeOrRefuseCancel(ctx *jxcontext.Context, order *model.GoodsOrder, isAgree bool, reason string) (err error) CancelOrder(ctx *jxcontext.Context, order *model.GoodsOrder, reason string) (err error) // order.Skus要包含原始订单中的Sku信息,removedSkuList中是要移除的Sku信息 diff --git a/business/partner/purchase/ebai/order.go b/business/partner/purchase/ebai/order.go index 7d3b69e5d..abdd9d136 100644 --- a/business/partner/purchase/ebai/order.go +++ b/business/partner/purchase/ebai/order.go @@ -823,8 +823,20 @@ func (c *PurchaseHandler) CancelLogisticsByWmOrderId(order *model.GoodsOrder, re } // 获取订单配送状态 -func (c *PurchaseHandler) OrderLogisticsStatus(orderId int64) (int64, error) { - return 0, nil +func (c *PurchaseHandler) OrderLogisticsStatus(orderId string) (*utils.RiderInfo, error) { + status, err := api.EbaiAPI.OrderDeliveryGet(orderId) + if err != nil { + return nil, err + } + + data := &utils.RiderInfo{} + data.LogisticsStatus = int(utils.MustInterface2Int64(status["status"])) + data.CourierName = utils.Interface2String(status["name"]) + data.CourierPhone = utils.Interface2String(status["phone"]) + data.OrderId = utils.Interface2String(status["order_id"]) + data.Latitude = utils.Float64ToStr(utils.MustInterface2Float64(status["latitude"])) + data.Longitude = utils.Float64ToStr(utils.MustInterface2Float64(status["longitude"])) + return data, nil } // GetOrderSettleAccounts 获取订单结算信息 diff --git a/business/partner/purchase/elm/order.go b/business/partner/purchase/elm/order.go index 598e3872f..1a7416072 100644 --- a/business/partner/purchase/elm/order.go +++ b/business/partner/purchase/elm/order.go @@ -341,8 +341,8 @@ func (c *PurchaseHandler) CancelLogisticsByWmOrderId(order *model.GoodsOrder, re } // 获取订单配送状态 -func (c *PurchaseHandler) OrderLogisticsStatus(orderId int64) (int64, error) { - return 0, nil +func (c *PurchaseHandler) OrderLogisticsStatus(orderId string) (*utils.RiderInfo, error) { + return nil, nil } // GetOrderSettleAccounts 获取订单结算信息 diff --git a/business/partner/purchase/jd/order.go b/business/partner/purchase/jd/order.go index 2286d31cb..98c083ab9 100644 --- a/business/partner/purchase/jd/order.go +++ b/business/partner/purchase/jd/order.go @@ -661,8 +661,9 @@ func (c *PurchaseHandler) CancelLogisticsByWmOrderId(order *model.GoodsOrder, re } // 获取订单配送状态 -func (c *PurchaseHandler) OrderLogisticsStatus(orderId int64) (int64, error) { - return 0, nil +func (c *PurchaseHandler) OrderLogisticsStatus(orderId string) (*utils.RiderInfo, error) { + + return nil, nil } // GetOrderSettleAccounts 获取订单结算信息 diff --git a/business/partner/purchase/jdshop/order.go b/business/partner/purchase/jdshop/order.go index 2a2511edd..95f0904af 100644 --- a/business/partner/purchase/jdshop/order.go +++ b/business/partner/purchase/jdshop/order.go @@ -325,8 +325,8 @@ func (c *PurchaseHandler) CancelLogisticsByWmOrderId(order *model.GoodsOrder, re } // 获取订单配送状态 -func (c *PurchaseHandler) OrderLogisticsStatus(orderId int64) (int64, error) { - return 0, nil +func (c *PurchaseHandler) OrderLogisticsStatus(orderId string) (*utils.RiderInfo, error) { + return nil, nil } // GetOrderSettleAccounts 获取订单结算信息 diff --git a/business/partner/purchase/jx/order.go b/business/partner/purchase/jx/order.go index 01fa02392..b4ade77ed 100644 --- a/business/partner/purchase/jx/order.go +++ b/business/partner/purchase/jx/order.go @@ -1,6 +1,7 @@ package jx import ( + "git.rosy.net.cn/baseapi/utils" "time" "git.rosy.net.cn/jx-callback/business/jxutils/jxcontext" @@ -152,8 +153,8 @@ func (c *PurchaseHandler) CancelLogisticsByWmOrderId(order *model.GoodsOrder, re } // 获取订单配送状态 -func (c *PurchaseHandler) OrderLogisticsStatus(orderId int64) (int64, error) { - return 0, nil +func (c *PurchaseHandler) OrderLogisticsStatus(orderId string) (*utils.RiderInfo, error) { + return nil, nil } // GetOrderSettleAccounts 获取订单结算信息 diff --git a/business/partner/purchase/mtwm/order.go b/business/partner/purchase/mtwm/order.go index af7381656..5d9b0d6c9 100644 --- a/business/partner/purchase/mtwm/order.go +++ b/business/partner/purchase/mtwm/order.go @@ -9,8 +9,6 @@ import ( "strings" "time" - "git.rosy.net.cn/baseapi/platformapi/mtpsapi" - "git.rosy.net.cn/baseapi/platformapi/mtwmapi" "git.rosy.net.cn/baseapi/utils" "git.rosy.net.cn/jx-callback/business/jxutils" @@ -610,7 +608,7 @@ func (c *PurchaseHandler) SelfDeliverDelivered(order *model.GoodsOrder, userName err = api.OrderArrived(utils.Str2Int64(order.VendorOrderID)) if err == nil { - riderInfo := &mtpsapi.RiderInfo{ + riderInfo := &utils.RiderInfo{ OrderId: order.VendorOrderID, ThirdCarrierOrderId: order.VendorOrderID, CourierName: "", @@ -916,15 +914,15 @@ func (c *PurchaseHandler) CancelLogisticsByWmOrderId(order *model.GoodsOrder, re } // 获取订单配送状态 -func (c *PurchaseHandler) OrderLogisticsStatus(orderId int64) (int64, error) { - orderInfo, err := dao.GetSimpleOrder(dao.GetDB(), utils.Int64ToStr(orderId)) +func (c *PurchaseHandler) OrderLogisticsStatus(orderId string) (*utils.RiderInfo, error) { + orderInfo, err := dao.GetSimpleOrder(dao.GetDB(), orderId) if err != nil { - return 0, errors.New("获取本地门店账号信息失败,请重试") + return nil, errors.New("获取本地门店账号信息失败,请重试") } - status, err := getAPI(orderInfo.VendorOrgCode, 0, "").OrderLogisticsStatus(orderId) + status, err := getAPI(orderInfo.VendorOrgCode, 0, "").OrderLogisticsStatus(utils.Str2Int64(orderId)) if err != nil { - return 0, err + return nil, err } return status, nil diff --git a/business/partner/purchase/tao_vegetable/order.go b/business/partner/purchase/tao_vegetable/order.go index c006cdd1a..40d77512a 100644 --- a/business/partner/purchase/tao_vegetable/order.go +++ b/business/partner/purchase/tao_vegetable/order.go @@ -847,8 +847,8 @@ func (c *PurchaseHandler) CancelLogisticsByWmOrderId(order *model.GoodsOrder, re } // 获取订单配送状态 -func (c *PurchaseHandler) OrderLogisticsStatus(orderId int64) (int64, error) { - return 0, nil +func (c *PurchaseHandler) OrderLogisticsStatus(orderId string) (*utils.RiderInfo, error) { + return nil, nil } // GetOrderSettleAccounts 获取订单结算信息(t+1)当前订单获取不到结算 diff --git a/business/partner/purchase/tiktok_store/order.go b/business/partner/purchase/tiktok_store/order.go index a3897a633..0b44431da 100644 --- a/business/partner/purchase/tiktok_store/order.go +++ b/business/partner/purchase/tiktok_store/order.go @@ -8,7 +8,6 @@ import ( "strings" "time" - "git.rosy.net.cn/baseapi/platformapi/mtpsapi" order_getSettleBillDetailV3_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/order_getSettleBillDetailV3/request" order_logisticsAdd_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/order_logisticsAdd/request" order_orderDetail_response "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/order_orderDetail/response" @@ -634,7 +633,7 @@ func (c *PurchaseHandler) SelfDeliverDelivering(order *model.GoodsOrder, userNam return err } - riderInfo := &mtpsapi.RiderInfo{ + riderInfo := &utils.RiderInfo{ OrderId: order.VendorOrderID, ThirdCarrierOrderId: order.VendorOrderID, CourierName: "", @@ -652,7 +651,7 @@ func (c *PurchaseHandler) SelfDeliverDelivering(order *model.GoodsOrder, userNam // SelfDeliverDelivered 自配搜完成(暂无) func (c *PurchaseHandler) SelfDeliverDelivered(order *model.GoodsOrder, userName string) (err error) { - riderInfo := &mtpsapi.RiderInfo{ + riderInfo := &utils.RiderInfo{ OrderId: order.VendorOrderID, ThirdCarrierOrderId: order.VendorOrderID, CourierName: "", @@ -985,18 +984,27 @@ func (c *PurchaseHandler) CancelLogisticsByWmOrderId(order *model.GoodsOrder, re } // OrderLogisticsStatus 获取订单配送状态 -func (c *PurchaseHandler) OrderLogisticsStatus(orderId int64) (int64, error) { - orderInfo, err := dao.GetSimpleOrder(dao.GetDB(), utils.Int64ToStr(orderId)) +func (c *PurchaseHandler) OrderLogisticsStatus(orderId string) (*utils.RiderInfo, error) { + orderInfo, err := dao.GetSimpleOrder(dao.GetDB(), orderId) if err != nil { - return 0, errors.New("获取本地门店账号信息失败,请重试") + return nil, errors.New("获取本地门店账号信息失败,请重试") } waybill, err := getAPI(orderInfo.VendorOrgCode, 0, "").GetShipmentInfo(utils.Str2Int64(orderInfo.VendorOrderID), 0, tiktokShop.ShipmentTypeInvoice) if err != nil { - return 0, err + return nil, err } - return waybill.ShipmentStatus, nil + result := &utils.RiderInfo{ + OrderId: utils.Int64ToStr(waybill.ShopOrderID), + ThirdCarrierOrderId: waybill.TrackNo, + CourierName: waybill.RiderName, + CourierPhone: waybill.RiderPhone, + LogisticsStatus: int(waybill.ShipmentStatus), + Latitude: waybill.RiderLatitude, + Longitude: waybill.RiderLongitude, + } + return result, nil } // GetOrderTotalShopMoney 获取门店结算信息 diff --git a/business/partner/purchase/weimob/wsc/order.go b/business/partner/purchase/weimob/wsc/order.go index 8c88c141d..06404b3ef 100644 --- a/business/partner/purchase/weimob/wsc/order.go +++ b/business/partner/purchase/weimob/wsc/order.go @@ -309,8 +309,8 @@ func (c *PurchaseHandler) CancelLogisticsByWmOrderId(order *model.GoodsOrder, re } // 获取订单配送状态 -func (c *PurchaseHandler) OrderLogisticsStatus(orderId int64) (int64, error) { - return 0, nil +func (c *PurchaseHandler) OrderLogisticsStatus(orderId string) (*utils.RiderInfo, error) { + return nil, nil } // GetOrderSettleAccounts 获取订单结算信息 diff --git a/business/partner/purchase/yb/order.go b/business/partner/purchase/yb/order.go index b619e317d..0c7b427b4 100644 --- a/business/partner/purchase/yb/order.go +++ b/business/partner/purchase/yb/order.go @@ -1,6 +1,7 @@ package yb import ( + "git.rosy.net.cn/baseapi/utils" "git.rosy.net.cn/jx-callback/business/jxutils/jxcontext" "git.rosy.net.cn/jx-callback/business/model" "git.rosy.net.cn/jx-callback/business/partner" @@ -103,8 +104,8 @@ func (c *PurchaseHandler) CancelLogisticsByWmOrderId(order *model.GoodsOrder, re } // 获取订单配送状态 -func (c *PurchaseHandler) OrderLogisticsStatus(orderId int64) (int64, error) { - return 0, nil +func (c *PurchaseHandler) OrderLogisticsStatus(orderId string) (*utils.RiderInfo, error) { + return nil, nil } // GetOrderSettleAccounts 获取订单结算信息 diff --git a/controllers/cms.go b/controllers/cms.go index 6e6fa2eb6..5a7709108 100644 --- a/controllers/cms.go +++ b/controllers/cms.go @@ -367,6 +367,7 @@ func (c *CmsController) GetVendorOrgCodeInfo() { // @Param sLat query int true "商家纬度" // @Param uLng query int true "用户经度" // @Param uLat query int true "用户纬度" +// @Param orderId query string false "订单id" // @Success 200 {object} controllers.CallResult // @Failure 200 {object} controllers.CallResult // @router /GetSToURidingDistance [get] @@ -376,7 +377,29 @@ func (c *CmsController) GetSToURidingDistance() { sLat := jxutils.IntCoordinate2Standard(params.SLat) uLng := jxutils.IntCoordinate2Standard(params.ULng) uLat := jxutils.IntCoordinate2Standard(params.ULat) - retVal, err = cms.GetSToURidingDistance(sLng, sLat, uLng, uLat) + retVal, err = cms.GetSToURidingDistance(sLng, sLat, uLng, uLat, params.OrderId) + return retVal, "", err + }) +} + +// @Title 得到商家与用户之间骑行路线规划 +// @Description 得到商家与用户之间骑行路线规划 +// @Param token header string true "认证token" +// @Param sLng query int true "商家经度" +// @Param sLat query int true "商家纬度" +// @Param uLng query int true "用户经度" +// @Param uLat query int true "用户纬度" +// @Param orderId query string true "订单id" +// @Success 200 {object} controllers.CallResult +// @Failure 200 {object} controllers.CallResult +// @router /GetSToURidingDistance2 [get] +func (c *CmsController) GetSToURidingDistance2() { + c.callGetSToURidingDistance(func(params *tCmsGetSToURidingDistanceParams) (retVal interface{}, errCode string, err error) { + sLng := jxutils.IntCoordinate2Standard(params.SLng) + sLat := jxutils.IntCoordinate2Standard(params.SLat) + uLng := jxutils.IntCoordinate2Standard(params.ULng) + uLat := jxutils.IntCoordinate2Standard(params.ULat) + retVal, err = cms.GetSToURidingDistance2(sLng, sLat, uLng, uLat, params.OrderId) return retVal, "", err }) } diff --git a/routers/commentsRouter_controllers.go b/routers/commentsRouter_controllers.go index 85be64edd..5e2f79f23 100644 --- a/routers/commentsRouter_controllers.go +++ b/routers/commentsRouter_controllers.go @@ -474,6 +474,15 @@ func init() { Filters: nil, Params: nil}) + web.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:CmsController"] = append(web.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:CmsController"], + web.ControllerComments{ + Method: "GetSToURidingDistance2", + Router: `/GetSToURidingDistance2`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil}) + web.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:CmsController"] = append(web.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:CmsController"], web.ControllerComments{ Method: "NewConfig",