From efd68f9150a657ffd2cceca4f5ea4e5946dbc54a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Mon, 31 Oct 2022 15:00:10 +0800 Subject: [PATCH] 1 --- business/jxcallback/scheduler/defsch/defsch.go | 8 ++++---- business/jxcallback/scheduler/scheduler.go | 1 + business/jxstore/cms/store_sku.go | 1 - business/jxstore/cms/sync_store_sku.go | 5 ----- business/model/const.go | 10 ++++++++++ business/partner/delivery/dada/waybill.go | 7 +++++++ business/partner/delivery/fn/waybill.go | 7 +++++++ business/partner/delivery/mtps/waybill.go | 5 +++++ business/partner/purchase/tiktok_store/callback.go | 4 ---- business/partner/purchase/tiktok_store/order.go | 3 ++- .../partner/purchase/tiktok_store/store_sku2_utils.go | 10 ---------- controllers/tiktok_order.go | 3 --- 12 files changed, 36 insertions(+), 28 deletions(-) diff --git a/business/jxcallback/scheduler/defsch/defsch.go b/business/jxcallback/scheduler/defsch/defsch.go index d95c989ed..d452f693e 100644 --- a/business/jxcallback/scheduler/defsch/defsch.go +++ b/business/jxcallback/scheduler/defsch/defsch.go @@ -517,6 +517,9 @@ func (s *DefScheduler) OnWaybillStatusChanged(bill *model.Waybill, isPending boo // globals.SugarLogger.Debugf("从美团上获取门店失败:%s", err) // isBlendWay = strings.Contains(mtStoreInfo.LogisticsCodes, model.MTWMStorePSWay8) //} + //if order.VendorID == model.VendorIDDD { + // partner.GetPurchaseOrderHandlerFromVendorID(order.VendorID).GetOrderRider() + //} // 暂时只处理抖音平台,抖音暂无配送,只要是抖音订单,三方配送压单了,直接通知送出 if bill.Status == model.WaybillStatusNew { @@ -1019,7 +1022,7 @@ func (s *DefScheduler) cancelOtherWaybills(savedOrderInfo *WatchOrderInfo, bill2 func (s *DefScheduler) swtich2SelfDeliverWithRetry(savedOrderInfo *WatchOrderInfo, bill *model.Waybill, retryCount int, duration time.Duration) { order := savedOrderInfo.order if order.WaybillVendorID != order.VendorID { - if err := s.Swtich2SelfDeliver(order, "Swtich2SelfDeliver转自送"); err != nil && (err != scheduler.ErrOrderStatusAlreadySatisfyCurOperation) { //301251饿了转自送 1047美团混合送 + if err := s.Swtich2SelfDeliver(order, "Swtich2SelfDeliver转自送"); err != nil && (err != scheduler.ErrOrderStatusAlreadySatisfyCurOperation && err != scheduler.ErrOrderStatusShippedCurOperation) { //301251饿了转自送 1047美团混合送 partner.CurOrderManager.OnOrderMsg(order, "调用[swtich2SelfDeliverWithRetry]转自送", err.Error()) if retryCount > 0 { utils.AfterFuncWithRecover(duration, func() { @@ -1047,7 +1050,6 @@ func (s *DefScheduler) swtich2SelfDeliverWithRetry(savedOrderInfo *WatchOrderInf // todo 之前这里为什么要设置OrderDeliveryFlagMaskScheduleDisabled标志呢 // order.DeliveryFlag |= model.OrderDeliveryFlagMaskScheduleDisabled // partner.CurOrderManager.UpdateOrderFields(order, []string{"DeliveryFlag"}) - partner.CurOrderManager.OnOrderMsg(order, "转商家自配送失败", errStr) } } @@ -1060,10 +1062,8 @@ func (s *DefScheduler) swtich2SelfDeliverWithRetry(savedOrderInfo *WatchOrderInf s.cancelOtherWaybills(savedOrderInfo, nil, partner.CancelWaybillReasonOther, partner.CancelWaybillReasonStrNotAcceptIntime) order.DeliveryFlag |= model.OrderDeliveryFlagMaskScheduleDisabled partner.CurOrderManager.UpdateOrderFields(order, []string{"DeliveryFlag"}) - // 进到这里的原因是,在这个时间点,购物平台物流已经抢单(但抢单消息还没有被收到),所以转自送会失败 (比如:818810379000941),更好的做法应该是判断Swtich2SelfDeliver的返回值,这种情况下就不得试了 partner.CurOrderManager.OnOrderMsg(order, "转商家自配送失败", "平台物流已接单") - // globals.SugarLogger.Warnf("swtich2SelfDeliverWithRetry orderID:%s status is wrong, order details:%v", order.VendorOrderID, order) } } diff --git a/business/jxcallback/scheduler/scheduler.go b/business/jxcallback/scheduler/scheduler.go index df7aae943..a5c9e786a 100644 --- a/business/jxcallback/scheduler/scheduler.go +++ b/business/jxcallback/scheduler/scheduler.go @@ -30,6 +30,7 @@ var ( var ( ErrOrderStatusIsNotSuitable4CurOperation = errors.New("订单锁定或状态不适合当前操作") ErrOrderStatusAlreadySatisfyCurOperation = errors.New("订单当前状态已满足当前操作") + ErrOrderStatusShippedCurOperation = errors.New("订单已发货,不允许再次执行发货") ErrOrderStatusAlreadySatisfyCurOperationELM = errors.New("无需切自配送") ErrOrderStatusAlreadySatisfyCurOperationMTWM = errors.New("非专送、快送、混合送订单不允许调用此接口 level:0, code:1047") diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index 69b7ca4a7..421daff35 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -1733,7 +1733,6 @@ func UpdateStoresSkus(ctx *jxcontext.Context, causeFlag int, storeIDs []int, sku } isAsync = asyncStoreSkuOpFilter(ctx, isAsync) num = int64(len(skuIDs)) - globals.SugarLogger.Debugf("关注商品成功需要同步=======%s", utils.Format4Output(skuIDs, false)) if num > 0 { hint, err = CurVendorSync.SyncStoresSkus(ctx, nil, causeFlag, db, nil, storeIDs, skuIDs, false, isAsync, isContinueWhenError) } diff --git a/business/jxstore/cms/sync_store_sku.go b/business/jxstore/cms/sync_store_sku.go index 60f2cda43..f79467ce4 100644 --- a/business/jxstore/cms/sync_store_sku.go +++ b/business/jxstore/cms/sync_store_sku.go @@ -678,7 +678,6 @@ func syncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, causeFlag switch step { case 0: if len(deleteList) > 0 { - globals.SugarLogger.Debugf("========删除门店商品") _, err = putils.FreeBatchStoreSkuInfo("删除门店商品", func(task tasksch.ITask, batchedStoreSkuList []*partner.StoreSkuInfo) (result interface{}, successCount int, err error) { var failedList []*partner.StoreSkuInfoWithErr if failedList, err = singleStoreHandler.DeleteStoreSkus(ctx, storeID, vendorStoreID, batchedStoreSkuList); err != nil { @@ -703,7 +702,6 @@ func syncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, causeFlag } case 1: if len(createList) > 0 { - globals.SugarLogger.Debugf("========创建门店商品") _, err = putils.FreeBatchStoreSkuSyncInfo("创建门店商品", func(task tasksch.ITask, batchedStoreSkuList []*dao.StoreSkuSyncInfo) (result interface{}, successCount int, err error) { var failedList []*partner.StoreSkuInfoWithErr if failedList, err = singleStoreHandler.CreateStoreSkus(ctx, storeID, vendorStoreID, batchedStoreSkuList); singleStoreHandler.IsErrSkuExist(err) { @@ -754,7 +752,6 @@ func syncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, causeFlag } case 2: if len(updateList) > 0 { - globals.SugarLogger.Debugf("========更新门店商品基础信息") _, err = putils.FreeBatchStoreSkuSyncInfo("更新门店商品基础信息", func(task tasksch.ITask, batchedStoreSkuList []*dao.StoreSkuSyncInfo) (result interface{}, successCount int, err error) { var failedList []*partner.StoreSkuInfoWithErr failedList, err = singleStoreHandler.UpdateStoreSkus(ctx, storeID, vendorStoreID, batchedStoreSkuList) @@ -772,7 +769,6 @@ func syncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, causeFlag case 3: // for k, list := range [][]*partner.StoreSkuInfo{stockList /*, onlineList*/} { if len(stockList) > 0 { - globals.SugarLogger.Debugf("========更新门店商品库存") _, err = putils.FreeBatchStoreSkuInfo("更新门店商品库存", func(task tasksch.ITask, batchedStoreSkuList []*partner.StoreSkuInfo) (result interface{}, successCount int, err error) { var failedList []*partner.StoreSkuInfoWithErr failedList, err = storeSkuHandler.UpdateStoreSkusStock(ctx, storeDetail.VendorOrgCode, storeID, vendorStoreID, batchedStoreSkuList) @@ -798,7 +794,6 @@ func syncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, causeFlag name = "不可售门店商品" } if len(statusList) > 0 { - globals.SugarLogger.Debugf("========%s", name) _, err = putils.FreeBatchStoreSkuInfo(name, func(task tasksch.ITask, batchedStoreSkuList []*partner.StoreSkuInfo) (result interface{}, successCount int, err error) { var failedList []*partner.StoreSkuInfoWithErr failedList, err = storeSkuHandler.UpdateStoreSkusStatus(ctx, storeDetail.VendorOrgCode, storeID, vendorStoreID, batchedStoreSkuList, status) diff --git a/business/model/const.go b/business/model/const.go index 500d4e0e5..6ea8ef303 100644 --- a/business/model/const.go +++ b/business/model/const.go @@ -344,6 +344,16 @@ const ( WaybillStatusEndEnd = 120 ) +const ( + RiderGetOrder = "骑手接单" + RiderToStore = "骑手到店" + RiderGetOrderDelivering = "骑手配送中" + RiderGetOrderDelivered = "骑手配送完成" + RiderGetOrderCanceled = "骑手取消" + RiderGetOrderDeliverFailed = "骑手配送异常" + RiderGetOrderDeliverOther = "其他待处理信息" +) + const ( BusinessTypeImmediate = 1 BusinessTypeDingshida = 2 diff --git a/business/partner/delivery/dada/waybill.go b/business/partner/delivery/dada/waybill.go index 2f9bcfecc..2ac1378d7 100644 --- a/business/partner/delivery/dada/waybill.go +++ b/business/partner/delivery/dada/waybill.go @@ -449,6 +449,7 @@ func (c *DeliveryHandler) GetRiderInfo(orderId string, deliveryId int64, mtPeiso CourierPhone: order.TransporterPhone, LogisticsProviderCode: mtpsapi.DaDaCode, LogisticsStatus: order.StatusCode, + LogisticsContext: "", Latitude: order.TransporterLat, Longitude: order.TransporterLng, } @@ -458,16 +459,22 @@ func (c *DeliveryHandler) GetRiderInfo(orderId string, deliveryId int64, mtPeiso // result.LogisticsStatus = model.WaybillStatusCourierAssigned case 100: // 骑手到店 result.LogisticsStatus = model.WaybillStatusCourierArrived + result.LogisticsContext = model.RiderGetOrder case 3: // 配送中 result.LogisticsStatus = model.WaybillStatusDelivering + result.LogisticsContext = model.RiderGetOrderDelivering case 4: // 完成 result.LogisticsStatus = model.WaybillStatusDelivered + result.LogisticsContext = model.RiderGetOrderDelivered case 5: // 取消 result.LogisticsStatus = model.WaybillStatusCanceled + result.LogisticsContext = model.RiderGetOrderCanceled case 9: // 配送异常 result.LogisticsStatus = model.WaybillStatusDeliverFailed + result.LogisticsContext = model.RiderGetOrderDeliverFailed default: result.LogisticsStatus = 0 + result.LogisticsContext = model.RiderGetOrderDeliverOther } return result, nil diff --git a/business/partner/delivery/fn/waybill.go b/business/partner/delivery/fn/waybill.go index 7b8fb319e..a0b1436ef 100644 --- a/business/partner/delivery/fn/waybill.go +++ b/business/partner/delivery/fn/waybill.go @@ -319,18 +319,25 @@ func (c *DeliveryHandler) GetRiderInfo(orderId string, deliveryId int64, mtPeiso switch order.OrderStatus { case 20: // 骑手接单 result.LogisticsStatus = model.WaybillStatusCourierAssigned + result.LogisticsContext = model.RiderGetOrder case 80: // 骑手到店 result.LogisticsStatus = model.WaybillStatusCourierArrived + result.LogisticsContext = model.RiderToStore case 2: // 配送中 result.LogisticsStatus = model.WaybillStatusDelivering + result.LogisticsContext = model.RiderGetOrderDelivering case 3: // 完成 result.LogisticsStatus = model.WaybillStatusDelivered + result.LogisticsContext = model.RiderGetOrderDelivered case 4: // 取消 result.LogisticsStatus = model.WaybillStatusCanceled + result.LogisticsContext = model.RiderGetOrderCanceled case 5: // 配送异常 result.LogisticsStatus = model.WaybillStatusDeliverFailed + result.LogisticsContext = model.RiderGetOrderDeliverFailed default: result.LogisticsStatus = 0 + result.LogisticsContext = model.RiderGetOrderDeliverOther } return result, nil diff --git a/business/partner/delivery/mtps/waybill.go b/business/partner/delivery/mtps/waybill.go index a3fca50b2..988d2ab38 100644 --- a/business/partner/delivery/mtps/waybill.go +++ b/business/partner/delivery/mtps/waybill.go @@ -411,14 +411,19 @@ func (c *DeliveryHandler) GetRiderInfo(orderId string, deliveryId int64, mtPeiso switch int(utils.MustInterface2Int64(order["status"])) { case 20: //已接单 result.LogisticsStatus = model.WaybillStatusCourierAssigned + result.LogisticsContext = model.RiderGetOrder case 30: //已取货 result.LogisticsStatus = model.WaybillStatusDelivering + result.LogisticsContext = model.RiderGetOrderDelivering case 50: //已送达 result.LogisticsStatus = model.WaybillStatusDelivered + result.LogisticsContext = model.RiderGetOrderDelivered case 90: //已取消 result.LogisticsStatus = model.WaybillStatusCanceled + result.LogisticsContext = model.RiderGetOrderCanceled default: result.LogisticsStatus = model.WaybillStatusDeliverFailed + result.LogisticsContext = model.RiderGetOrderDeliverOther } return result, nil diff --git a/business/partner/purchase/tiktok_store/callback.go b/business/partner/purchase/tiktok_store/callback.go index f702ef10c..0bf849fd7 100644 --- a/business/partner/purchase/tiktok_store/callback.go +++ b/business/partner/purchase/tiktok_store/callback.go @@ -2,10 +2,8 @@ package tiktok_store import ( tiktokShop "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/tiktok_api" - "git.rosy.net.cn/baseapi/utils" "git.rosy.net.cn/jx-callback/business/jxutils" "git.rosy.net.cn/jx-callback/business/model" - "git.rosy.net.cn/jx-callback/globals" "git.rosy.net.cn/jx-callback/globals/api" ) @@ -13,8 +11,6 @@ import ( func OnOrderMsg(msgId string, msg interface{}) (response *tiktokShop.CallbackResponse) { if CurPurchaseHandler != nil { orderId, _ := api.TiktokStore.GetCallbackOrderId(msgId, msg) - globals.SugarLogger.Debugf("======orderId:%s", orderId) - globals.SugarLogger.Debugf("======msg:%s", utils.Format4Output(msg, false)) jxutils.CallMsgHandler(func() { response = CurPurchaseHandler.onOrderMsg(msgId, orderId, msg) diff --git a/business/partner/purchase/tiktok_store/order.go b/business/partner/purchase/tiktok_store/order.go index 747388861..cca759f84 100644 --- a/business/partner/purchase/tiktok_store/order.go +++ b/business/partner/purchase/tiktok_store/order.go @@ -70,7 +70,8 @@ func (p *PurchaseHandler) getStatusFromVendorStatus(vendorStatus int64) int { } func (c *PurchaseHandler) Map2Order(orderData map[string]interface{}) (order *model.GoodsOrder) { - order, _, _ = c.getOrder("", orderData["vendorOrderID"].(string), "") + globals.SugarLogger.Debugf("Map2Order=====:%s", utils.Format4Output(orderData, false)) + order, _, _ = c.getOrder(orderData["VendorOrgCode"].(string), orderData["vendorOrderID"].(string), "") return order } diff --git a/business/partner/purchase/tiktok_store/store_sku2_utils.go b/business/partner/purchase/tiktok_store/store_sku2_utils.go index 4de3a10a3..cb1c61c38 100644 --- a/business/partner/purchase/tiktok_store/store_sku2_utils.go +++ b/business/partner/purchase/tiktok_store/store_sku2_utils.go @@ -183,21 +183,14 @@ func (p *PurchaseHandler) createOrUpdateStoreSkus(ctx *jxcontext.Context, storeI // 根据本地商品id获取线上商品是否存在,存在则只创建子商品 var tiktokResultProductId int64 = 0 // 获取本地存储映射关系 - globals.SugarLogger.Debugf("=======storeSku.SkuID :%d", storeSku.SkuID) - globals.SugarLogger.Debugf("=======storeSku :%s", utils.Format4Output(storeSku, false)) localThing, err := dao.GetThingToTiktokMapList(dao.GetDB(), model.VendorIDDD, int64(storeSku.SkuID)) - globals.SugarLogger.Debugf("=======localThing :%s", utils.Format4Output(localThing, false)) - globals.SugarLogger.Debugf("=======localThing :%s", utils.Format4Output(localThing, false)) - globals.SugarLogger.Debugf("localThing=======err :%s", err) if len(localThing) == 0 { // 线上不存在创建 tiktokResult, err := api.CreateStoreCommodity(param) // 创建主商品 if err != nil { - globals.SugarLogger.Debugf("CreateStoreCommodity=======err :%s", err) failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorChineseNames[model.VendorIDDD], syncType) storeSku.VendorSkuID = utils.Int2Str(storeSku.SkuID) continue } - globals.SugarLogger.Debugf("tiktokResult=======err :%s", utils.Format4Output(tiktokResult, false)) tiktokResultProductId = tiktokResult.ProductId var attrId []string @@ -438,10 +431,7 @@ func GetDeliveryTemp(api *tiktokShop.API, vendorStoreID string, storeDetail *dao tempDetail.Template.TemplateName += "满减运费模板" tempDetail.Columns = Columns // 满减 } - globals.SugarLogger.Debugf("tempDetail ========= %s", utils.Format4Output(tempDetail, false)) temp, err := api.FreightTemplateCreate(tempDetail) - globals.SugarLogger.Debugf("FreightTemplateCreate =err %s", utils.Format4Output(temp, false)) - globals.SugarLogger.Debugf("FreightTemplateCreate =err %s", err) if err != nil { return 0, err } diff --git a/controllers/tiktok_order.go b/controllers/tiktok_order.go index 04bafaf62..2a1eecdcb 100644 --- a/controllers/tiktok_order.go +++ b/controllers/tiktok_order.go @@ -2,9 +2,7 @@ package controllers import ( "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/tiktok_api" - "git.rosy.net.cn/baseapi/utils" "git.rosy.net.cn/jx-callback/business/partner/purchase/tiktok_store" - "git.rosy.net.cn/jx-callback/globals" "git.rosy.net.cn/jx-callback/globals/api" "github.com/astaxie/beego/server/web" "strings" @@ -37,7 +35,6 @@ func (t *TiktokController) CallbackTiktokOrderMsg() { return } - globals.SugarLogger.Debugf("========callback===%s", utils.Format4Output(orderStatus, false)) for k, v := range orderStatus { for _, callback := range v { resp2 := tiktok_store.OnOrderMsg(k, callback)