From 92ed3708b487811e770e33c4e654e9fede2bd6ef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Mon, 20 Nov 2023 09:37:02 +0800 Subject: [PATCH 01/18] 1 --- business/jxstore/cms/sku.go | 37 +++++++++++++++---- business/partner/purchase/jd/order.go | 3 +- .../partner/purchase/tiktok_store/order.go | 27 +++++++++++--- 3 files changed, 52 insertions(+), 15 deletions(-) diff --git a/business/jxstore/cms/sku.go b/business/jxstore/cms/sku.go index 00e4ab8ce..12e03306d 100644 --- a/business/jxstore/cms/sku.go +++ b/business/jxstore/cms/sku.go @@ -1121,19 +1121,20 @@ func UpdateSkuName(ctx *jxcontext.Context, nameID int, payload map[string]interf dao.Rollback(db, txDB) return 0, err } - // if valid["jdsStockSwitch"] != nil { - // if _, err = SetStoreSkuSyncStatus2(db, []int{model.JdShopMainStoreID}, []int{model.VendorIDJDShop}, skuIDs, model.SyncFlagSaleMask); err != nil { - // dao.Rollback(db, txDB) - // return 0, err - // } - // } } dao.Commit(db, txDB) errList := errlist.New() errList.AddErr(err) - _, err = CurVendorSync.SyncSku(ctx, db, nameID, -1, false, false, userName) - errList.AddErr(err) + //_, err = CurVendorSync.SyncSku(ctx, db, nameID, -1, false, false, userName) + //errList.AddErr(err) + + storeIds, err := GetSyncSkuStoreId(db, skuIDs) + if err != nil { + return 0, err + } + _, err2 = CurVendorSync.SyncStoresSkus(jxcontext.AdminCtx, nil, 0, db, partner.GetSingleStoreVendorIDs(), storeIds, skuIDs, false, false, true) + errList.AddErr(err2) err = errList.GetErrListAsOne() if globals.IsAddEvent { mapBefore := refutil.FindMapAndStructMixed(valid, beforSkuName) @@ -1410,6 +1411,26 @@ func SetUpdateSkuPriceIfChange(db *dao.DaoDB, skuPrice, nowPrice int64, skuId in return err } +// GetSyncSkuStoreId 当每个商品存在修改时,需要重新同步商品的信息,立马同步,获取需要同步的门店信息 +func GetSyncSkuStoreId(db *dao.DaoDB, skus []int) ([]int, error) { + sql := ` SELECT * FROM store_sku_bind b + INNER JOIN store s on s.id = b.store_id + WHERE b.sku_id IN (` + dao.GenQuestionMarks(len(skus)) + `) AND b.status = ? AND s.status <> ? AND b.deleted_at = ? ` + param := []interface{}{skus, model.YES, model.StoreStatusDisabled, utils.DefaultTimeValue} + + skuBind := make([]*model.StoreSkuBind, 0, 0) + if err := dao.GetRows(db, &skuBind, sql, param); err != nil { + return nil, err + } + + storeIds := make([]int, 0, 0) + for _, v := range skuBind { + storeIds = append(storeIds, v.StoreID) + } + + return storeIds, nil +} + func UpdateSkuImg(ctx *jxcontext.Context, skuID int, payload map[string]interface{}) (string, error) { var ( db = dao.GetDB() diff --git a/business/partner/purchase/jd/order.go b/business/partner/purchase/jd/order.go index 98c083ab9..02169bcc9 100644 --- a/business/partner/purchase/jd/order.go +++ b/business/partner/purchase/jd/order.go @@ -351,8 +351,9 @@ func Map2Order(orderData map[string]interface{}) (order *model.GoodsOrder) { order.Skus = append(order.Skus, sku) } // 包装袋金额设置 - store, _ := dao.GetStoreDetail(dao.GetDB(), order.JxStoreID, order.VendorID, order.VendorOrgCode) + store, _ := dao.GetStoreDetailByVendorStoreID(dao.GetDB(), order.VendorStoreID, order.VendorID, order.VendorOrgCode) order.PackagePrice = store.PackageSetting + order.JxStoreID = store.ID jxutils.RefreshOrderSkuRelated(order) return order } diff --git a/business/partner/purchase/tiktok_store/order.go b/business/partner/purchase/tiktok_store/order.go index ff46b3dff..04b8b8347 100644 --- a/business/partner/purchase/tiktok_store/order.go +++ b/business/partner/purchase/tiktok_store/order.go @@ -587,20 +587,35 @@ func (c *PurchaseHandler) Swtich2SelfDeliver(order *model.GoodsOrder, userName s } } } - - //转门店自送通知抖音发货 - err = api.OrderDelivering(&order_logisticsAdd_request.OrderLogisticsAddParam{ + logisticsAdd := &order_logisticsAdd_request.OrderLogisticsAddParam{ OrderId: order.VendorOrderID, Company: "", - CompanyCode: "chengdouruoxi", + CompanyCode: "", LogisticsCode: order.VendorOrderID, IsRefundReject: false, IsRejectRefund: false, SerialNumberList: nil, AddressId: 0, StoreId: utils.Str2Int64(order.VendorStoreID), - }) - return err + } + switch order.WaybillVendorID { + case model.VendorIDDada: + logisticsAdd.CompanyCode = tiktokShop.TiktokDeliveryTypeDaDa + case model.VendorIDMTPS: + logisticsAdd.CompanyCode = tiktokShop.TiktokDeliveryTypeMeiTuan + case model.VendorIDFengNiao: + logisticsAdd.CompanyCode = tiktokShop.TiktokDeliveryTypeFengNiao + case model.VendorIDSFPS: + logisticsAdd.CompanyCode = tiktokShop.TiktokDeliveryTypeSF + case model.VendorIDUUPT: + logisticsAdd.CompanyCode = tiktokShop.TiktokDeliveryTypeUU + case model.VendorJXFakeWL, -1: + logisticsAdd.CompanyCode = tiktokShop.TiktokDeliveryTypeMerchant + default: + logisticsAdd.CompanyCode = tiktokShop.TiktokDeliveryTypeMerchant + } + //转门店自送通知抖音发货 + return api.OrderDelivering(logisticsAdd) } // Swtich2SelfDelivered 暂无自送完成 From bda5d4eb1a11db86b0a716f16b8b0dd65b02047b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Mon, 20 Nov 2023 11:04:05 +0800 Subject: [PATCH 02/18] 1 --- business/jxutils/jxutils_cms.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/business/jxutils/jxutils_cms.go b/business/jxutils/jxutils_cms.go index 18e2b8b44..65c538f9d 100644 --- a/business/jxutils/jxutils_cms.go +++ b/business/jxutils/jxutils_cms.go @@ -219,11 +219,17 @@ func RegularizeSkuQuality(specQuality float32, specUnit string) (g int) { // 计算SKU价格,unitPrice为一斤的单价,specQuality为质量,单位为克 func CaculateSkuPrice(unitPrice int, specQuality float32, specUnit string, skuNameUnit string) int { + globals.SugarLogger.Debugf("=====unitPrice := %d", unitPrice) + globals.SugarLogger.Debugf("=====specQuality := %f", specQuality) + globals.SugarLogger.Debugf("=====specUnit := %s", specUnit) + globals.SugarLogger.Debugf("=====skuNameUnit := %s", skuNameUnit) if skuNameUnit != model.SpecialUnit { return unitPrice } specQuality2 := RegularizeSkuQuality(specQuality, specUnit) + globals.SugarLogger.Debugf("=====specQuality2 := %d", specQuality2) floatPrice := float64(unitPrice) * float64(specQuality2) / float64(model.SpecialSpecQuality) + globals.SugarLogger.Debugf("=====floatPrice := %s", utils.Float64ToStr(floatPrice)) // if specQuality2 < 250 { // floatPrice = floatPrice * 110 / 100 // } else if specQuality2 < 500 { From b38491c7db39a27b9a826a027fdb4426b3b3c0eb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Mon, 20 Nov 2023 11:47:24 +0800 Subject: [PATCH 03/18] 1 --- business/jxutils/jxutils_cms.go | 6 ------ business/partner/purchase/tao_vegetable/store_sku2.go | 1 + 2 files changed, 1 insertion(+), 6 deletions(-) diff --git a/business/jxutils/jxutils_cms.go b/business/jxutils/jxutils_cms.go index 65c538f9d..18e2b8b44 100644 --- a/business/jxutils/jxutils_cms.go +++ b/business/jxutils/jxutils_cms.go @@ -219,17 +219,11 @@ func RegularizeSkuQuality(specQuality float32, specUnit string) (g int) { // 计算SKU价格,unitPrice为一斤的单价,specQuality为质量,单位为克 func CaculateSkuPrice(unitPrice int, specQuality float32, specUnit string, skuNameUnit string) int { - globals.SugarLogger.Debugf("=====unitPrice := %d", unitPrice) - globals.SugarLogger.Debugf("=====specQuality := %f", specQuality) - globals.SugarLogger.Debugf("=====specUnit := %s", specUnit) - globals.SugarLogger.Debugf("=====skuNameUnit := %s", skuNameUnit) if skuNameUnit != model.SpecialUnit { return unitPrice } specQuality2 := RegularizeSkuQuality(specQuality, specUnit) - globals.SugarLogger.Debugf("=====specQuality2 := %d", specQuality2) floatPrice := float64(unitPrice) * float64(specQuality2) / float64(model.SpecialSpecQuality) - globals.SugarLogger.Debugf("=====floatPrice := %s", utils.Float64ToStr(floatPrice)) // if specQuality2 < 250 { // floatPrice = floatPrice * 110 / 100 // } else if specQuality2 < 500 { diff --git a/business/partner/purchase/tao_vegetable/store_sku2.go b/business/partner/purchase/tao_vegetable/store_sku2.go index bf961bb86..13526c601 100644 --- a/business/partner/purchase/tao_vegetable/store_sku2.go +++ b/business/partner/purchase/tao_vegetable/store_sku2.go @@ -279,6 +279,7 @@ func createTaoVegetable(ctx *jxcontext.Context, api *tao_vegetable.API, storeSku vendorSkuIdMap := make(map[string]string, 0) for _, storeSku := range storeSkuList { + globals.SugarLogger.Debugf("==============storeSku := %s", utils.Format4Output(storeSku, false)) price := utils.String2Pointer(utils.Float64ToStr(utils.Int64ToFloat64(storeSku.VendorPrice) / utils.Int64ToFloat64(100))) sku := domain585.AlibabaWdkSkuAddSkuDo{ Barcodes: utils.String2Pointer(utils.Int2Str(storeSku.SkuID)), From f62c9bb1432b87332409eab2d435467fdcfb6226 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Mon, 20 Nov 2023 11:49:03 +0800 Subject: [PATCH 04/18] 1 --- business/partner/purchase/tao_vegetable/store_sku2.go | 1 + 1 file changed, 1 insertion(+) diff --git a/business/partner/purchase/tao_vegetable/store_sku2.go b/business/partner/purchase/tao_vegetable/store_sku2.go index 13526c601..dcde535a9 100644 --- a/business/partner/purchase/tao_vegetable/store_sku2.go +++ b/business/partner/purchase/tao_vegetable/store_sku2.go @@ -281,6 +281,7 @@ func createTaoVegetable(ctx *jxcontext.Context, api *tao_vegetable.API, storeSku for _, storeSku := range storeSkuList { globals.SugarLogger.Debugf("==============storeSku := %s", utils.Format4Output(storeSku, false)) price := utils.String2Pointer(utils.Float64ToStr(utils.Int64ToFloat64(storeSku.VendorPrice) / utils.Int64ToFloat64(100))) + globals.SugarLogger.Debugf("==============price := %s", utils.Format4Output(price, false)) sku := domain585.AlibabaWdkSkuAddSkuDo{ Barcodes: utils.String2Pointer(utils.Int2Str(storeSku.SkuID)), BrandName: utils.String2Pointer(tao_vegetable.CreateSkuBrandName), From 2b401bc0b58e49edb1f3ab015ee15bd4336f7a8f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Mon, 20 Nov 2023 15:36:44 +0800 Subject: [PATCH 05/18] 1 --- business/partner/purchase/tao_vegetable/callback.go | 2 +- business/partner/purchase/tao_vegetable/store_sku2.go | 2 -- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/business/partner/purchase/tao_vegetable/callback.go b/business/partner/purchase/tao_vegetable/callback.go index c2b1c5d52..6beb0cc26 100644 --- a/business/partner/purchase/tao_vegetable/callback.go +++ b/business/partner/purchase/tao_vegetable/callback.go @@ -17,7 +17,7 @@ func OnCallbackMsg(orderStatus, orderId string, msg interface{}) (response *tao_ response = CurPurchaseHandler.onOrderMsg(orderStatus, orderId, msg) }, jxutils.ComposeUniversalOrderID(orderId, model.VendorIDTaoVegetable)) } - return tao_vegetable.CallBackResultInfo(nil) + return response } func forwardOrderToGy(msg *mtwmapi.CallbackMsg, orderStatus string) { diff --git a/business/partner/purchase/tao_vegetable/store_sku2.go b/business/partner/purchase/tao_vegetable/store_sku2.go index dcde535a9..bf961bb86 100644 --- a/business/partner/purchase/tao_vegetable/store_sku2.go +++ b/business/partner/purchase/tao_vegetable/store_sku2.go @@ -279,9 +279,7 @@ func createTaoVegetable(ctx *jxcontext.Context, api *tao_vegetable.API, storeSku vendorSkuIdMap := make(map[string]string, 0) for _, storeSku := range storeSkuList { - globals.SugarLogger.Debugf("==============storeSku := %s", utils.Format4Output(storeSku, false)) price := utils.String2Pointer(utils.Float64ToStr(utils.Int64ToFloat64(storeSku.VendorPrice) / utils.Int64ToFloat64(100))) - globals.SugarLogger.Debugf("==============price := %s", utils.Format4Output(price, false)) sku := domain585.AlibabaWdkSkuAddSkuDo{ Barcodes: utils.String2Pointer(utils.Int2Str(storeSku.SkuID)), BrandName: utils.String2Pointer(tao_vegetable.CreateSkuBrandName), From 764ab747c22d20c391f2c8c01b77151713aa2bf1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Mon, 20 Nov 2023 16:24:24 +0800 Subject: [PATCH 06/18] 1 --- business/partner/purchase/tao_vegetable/order.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/business/partner/purchase/tao_vegetable/order.go b/business/partner/purchase/tao_vegetable/order.go index 180a37211..10391e51e 100644 --- a/business/partner/purchase/tao_vegetable/order.go +++ b/business/partner/purchase/tao_vegetable/order.go @@ -351,8 +351,13 @@ func (c *PurchaseHandler) onOrderMsg(orderStatus, orderId string, orderCallback // 商户接单/支付完成代表新订单 if msg.OrderStatus == tao_vegetable.OrderStatusPayFinsh { order, orderMap, err2 := c.getOrder("", msg.BizOrderId, msg.StoreId) + globals.SugarLogger.Debugf("=======msg:= %s", utils.Format4Output(msg, false)) + globals.SugarLogger.Debugf("=======order:= %s", utils.Format4Output(order, false)) + globals.SugarLogger.Debugf("=======orderMap:= %s", utils.Format4Output(orderMap, false)) + globals.SugarLogger.Debugf("=======err2:= %s", utils.Format4Output(err2, false)) if err = err2; err == nil { err = partner.CurOrderManager.OnOrderNew(order, status) + globals.SugarLogger.Debugf("=======err:= %s", utils.Format4Output(err, false)) if err == nil { utils.CallFuncAsync(func() { if msg.OrderStatus == tao_vegetable.OrderStatusPayFinsh { From 7604d294313555398a5fd9d14d75350ed296d1eb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Mon, 20 Nov 2023 16:29:10 +0800 Subject: [PATCH 07/18] 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 10391e51e..7d516b15f 100644 --- a/business/partner/purchase/tao_vegetable/order.go +++ b/business/partner/purchase/tao_vegetable/order.go @@ -354,7 +354,7 @@ func (c *PurchaseHandler) onOrderMsg(orderStatus, orderId string, orderCallback globals.SugarLogger.Debugf("=======msg:= %s", utils.Format4Output(msg, false)) globals.SugarLogger.Debugf("=======order:= %s", utils.Format4Output(order, false)) globals.SugarLogger.Debugf("=======orderMap:= %s", utils.Format4Output(orderMap, false)) - globals.SugarLogger.Debugf("=======err2:= %s", utils.Format4Output(err2, false)) + globals.SugarLogger.Debugf("=======err2:= %v", err2) if err = err2; err == nil { err = partner.CurOrderManager.OnOrderNew(order, status) globals.SugarLogger.Debugf("=======err:= %s", utils.Format4Output(err, false)) From edb8a5bd5479cf15cf44a0dadffd1452be01c724 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Mon, 20 Nov 2023 16:52:36 +0800 Subject: [PATCH 08/18] 1 --- business/partner/purchase/tao_vegetable/callback.go | 11 +++++------ business/partner/purchase/tao_vegetable/order.go | 5 ----- 2 files changed, 5 insertions(+), 11 deletions(-) diff --git a/business/partner/purchase/tao_vegetable/callback.go b/business/partner/purchase/tao_vegetable/callback.go index 6beb0cc26..cc1da3fb6 100644 --- a/business/partner/purchase/tao_vegetable/callback.go +++ b/business/partner/purchase/tao_vegetable/callback.go @@ -3,8 +3,6 @@ package tao_vegetable import ( "git.rosy.net.cn/baseapi/platformapi/mtwmapi" "git.rosy.net.cn/baseapi/platformapi/tao_vegetable" - "git.rosy.net.cn/jx-callback/business/jxutils" - "git.rosy.net.cn/jx-callback/business/model" "git.rosy.net.cn/jx-callback/globals" "net/http" "strings" @@ -13,11 +11,12 @@ import ( // OnCallbackMsg 淘宝回调接口 func OnCallbackMsg(orderStatus, orderId string, msg interface{}) (response *tao_vegetable.CallBackResult) { if CurPurchaseHandler != nil { - jxutils.CallMsgHandlerAsync(func() { - response = CurPurchaseHandler.onOrderMsg(orderStatus, orderId, msg) - }, jxutils.ComposeUniversalOrderID(orderId, model.VendorIDTaoVegetable)) + return CurPurchaseHandler.onOrderMsg(orderStatus, orderId, msg) + //jxutils.CallMsgHandlerAsync(func() { + // response = CurPurchaseHandler.onOrderMsg(orderStatus, orderId, msg) + //}, jxutils.ComposeUniversalOrderID(orderId, model.VendorIDTaoVegetable)) } - return response + return tao_vegetable.CallBackResultInfo(nil) } func forwardOrderToGy(msg *mtwmapi.CallbackMsg, orderStatus string) { diff --git a/business/partner/purchase/tao_vegetable/order.go b/business/partner/purchase/tao_vegetable/order.go index 7d516b15f..180a37211 100644 --- a/business/partner/purchase/tao_vegetable/order.go +++ b/business/partner/purchase/tao_vegetable/order.go @@ -351,13 +351,8 @@ func (c *PurchaseHandler) onOrderMsg(orderStatus, orderId string, orderCallback // 商户接单/支付完成代表新订单 if msg.OrderStatus == tao_vegetable.OrderStatusPayFinsh { order, orderMap, err2 := c.getOrder("", msg.BizOrderId, msg.StoreId) - globals.SugarLogger.Debugf("=======msg:= %s", utils.Format4Output(msg, false)) - globals.SugarLogger.Debugf("=======order:= %s", utils.Format4Output(order, false)) - globals.SugarLogger.Debugf("=======orderMap:= %s", utils.Format4Output(orderMap, false)) - globals.SugarLogger.Debugf("=======err2:= %v", err2) if err = err2; err == nil { err = partner.CurOrderManager.OnOrderNew(order, status) - globals.SugarLogger.Debugf("=======err:= %s", utils.Format4Output(err, false)) if err == nil { utils.CallFuncAsync(func() { if msg.OrderStatus == tao_vegetable.OrderStatusPayFinsh { From 8f12a4f753089c747a22adade1e7a8245fe8a529 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Mon, 20 Nov 2023 16:58:17 +0800 Subject: [PATCH 09/18] 1 --- business/partner/purchase/tao_vegetable/callback.go | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/business/partner/purchase/tao_vegetable/callback.go b/business/partner/purchase/tao_vegetable/callback.go index cc1da3fb6..707ef0888 100644 --- a/business/partner/purchase/tao_vegetable/callback.go +++ b/business/partner/purchase/tao_vegetable/callback.go @@ -3,6 +3,8 @@ package tao_vegetable import ( "git.rosy.net.cn/baseapi/platformapi/mtwmapi" "git.rosy.net.cn/baseapi/platformapi/tao_vegetable" + "git.rosy.net.cn/jx-callback/business/jxutils" + "git.rosy.net.cn/jx-callback/business/model" "git.rosy.net.cn/jx-callback/globals" "net/http" "strings" @@ -11,10 +13,10 @@ import ( // OnCallbackMsg 淘宝回调接口 func OnCallbackMsg(orderStatus, orderId string, msg interface{}) (response *tao_vegetable.CallBackResult) { if CurPurchaseHandler != nil { - return CurPurchaseHandler.onOrderMsg(orderStatus, orderId, msg) - //jxutils.CallMsgHandlerAsync(func() { - // response = CurPurchaseHandler.onOrderMsg(orderStatus, orderId, msg) - //}, jxutils.ComposeUniversalOrderID(orderId, model.VendorIDTaoVegetable)) + // return CurPurchaseHandler.onOrderMsg(orderStatus, orderId, msg) + jxutils.CallMsgHandlerAsync(func() { + response = CurPurchaseHandler.onOrderMsg(orderStatus, orderId, msg) + }, jxutils.ComposeUniversalOrderID(orderId, model.VendorIDTaoVegetable)) } return tao_vegetable.CallBackResultInfo(nil) } From 687eb45befae785206630fd172957b7762605068 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Thu, 23 Nov 2023 10:26:25 +0800 Subject: [PATCH 10/18] 1 --- business/jxstore/cms/sync_store_sku.go | 19 +++++++++++ business/partner/purchase/ebai/order.go | 2 +- business/partner/purchase/ebai/order_afs.go | 28 +++++++++++------ business/partner/purchase/ebai/store.go | 3 +- business/partner/purchase/ebai/store_sku2.go | 33 ++++++++++++++++++-- 5 files changed, 69 insertions(+), 16 deletions(-) diff --git a/business/jxstore/cms/sync_store_sku.go b/business/jxstore/cms/sync_store_sku.go index 49d40f60b..9e4d73aac 100644 --- a/business/jxstore/cms/sync_store_sku.go +++ b/business/jxstore/cms/sync_store_sku.go @@ -3,6 +3,7 @@ package cms import ( "errors" "fmt" + "git.rosy.net.cn/baseapi/platformapi/ebaiapi" "github.com/astaxie/beego/server/web" beego "github.com/astaxie/beego/server/web" "regexp" @@ -96,6 +97,24 @@ func SyncStoreCategories(ctx *jxcontext.Context, parentTask tasksch.ITask, vendo func(rootTask *tasksch.SeqTask, step int, params ...interface{}) (result interface{}, err error) { level := step + 1 catList, err := dao.GetDirtyStoreCategories(db, vendorID, storeID, level, skuIDs) + + // 保证下面api成功率添加校验 + if vendorID == model.VendorIDEBAI { + status, err := api.EbaiAPI.ShopStatusGet("", utils.Str2Int64(vendorStoreID)) + if err != nil { + return nil, err + } + switch status { + case ebaiapi.ShopCheckStatusCheckSuccess: + + case ebaiapi.ShopCheckStatusNew, ebaiapi.ShopCheckStatusWaitCheck, ebaiapi.ShopCheckStatusUpdateWaitCheck: + return nil, fmt.Errorf("门店审核中,请联系饿了么工作人员加快审核") + case ebaiapi.ShopCheckStatusGoLiveFail: + return nil, fmt.Errorf("门店上线审核失败,请联系饿了么工作人员加快审核") + case ebaiapi.ShopCheckStatusCheckFail: + return nil, fmt.Errorf("门店审核未通过") + } + } if len(catList) > 0 { num += len(catList) task := tasksch.NewParallelTask(fmt.Sprintf("%s SyncStoreCategory step2, level=%d", model.VendorChineseNames[vendorID], level), diff --git a/business/partner/purchase/ebai/order.go b/business/partner/purchase/ebai/order.go index 431af3ea0..fb21b55b3 100644 --- a/business/partner/purchase/ebai/order.go +++ b/business/partner/purchase/ebai/order.go @@ -665,7 +665,7 @@ func (c *PurchaseHandler) AgreeOrRefuseCancel(ctx *jxcontext.Context, order *mod ReasonRemarks: reason, } refundProductList := make([]*ebaiapi.RefundProductList, 0, 0) - date, _ := api.EbaiAPI.GetReverseOrder(order.VendorOrderID) + date, _, _ := api.EbaiAPI.GetReverseOrder(order.VendorOrderID) for _, v := range date { v2 := v.(map[string]interface{}) refundProduct := &ebaiapi.RefundProductList{ diff --git a/business/partner/purchase/ebai/order_afs.go b/business/partner/purchase/ebai/order_afs.go index f92362b7c..09f7d72fb 100644 --- a/business/partner/purchase/ebai/order_afs.go +++ b/business/partner/purchase/ebai/order_afs.go @@ -242,7 +242,7 @@ func (c *PurchaseHandler) AgreeOrRefuseRefund(ctx *jxcontext.Context, order *mod ReasonRemarks: reason, } refundProductList := make([]*ebaiapi.RefundProductList, 0, 0) - date, _ := api.EbaiAPI.GetReverseOrder(order.VendorOrderID) + date, _, _ := api.EbaiAPI.GetReverseOrder(order.VendorOrderID) for _, v := range date { v2 := v.(map[string]interface{}) refundProduct := &ebaiapi.RefundProductList{ @@ -303,24 +303,19 @@ func (c *PurchaseHandler) PartRefundOrder(ctx *jxcontext.Context, order *model.G ReasonCode: "", ReasonRemarks: reason, } - date, err := api.EbaiAPI.GetReverseOrder(order.VendorOrderID) + date, removerAll, err := api.EbaiAPI.GetReverseOrder(order.VendorOrderID) if err != nil { return err } refundProductList := make([]*ebaiapi.RefundProductList, 0, 0) - removerAll := false if date != nil && len(date) != model.NO { - for k, v := range date { + for _, v := range date { v2 := v.(map[string]interface{}) refundProduct := &ebaiapi.RefundProductList{ SubBizOrderId: v2["sub_biz_order_id"].(string), PlatformSkuId: utils.Int64ToStr(utils.Interface2Int64WithDefault(v2["platform_sku_id"], 0)), } - // 全退 - if k == model.NO && utils.MustInterface2Int64(v2["is_refund_all"]) == model.YES { - removerAll = true - } switch utils.MustInterface2Int64(v2["fund_calculate_type"]) { case 0: refundProduct.Number = utils.Int64ToStr(utils.MustInterface2Int64(v2["refund_quantity"])) @@ -359,9 +354,22 @@ func orderSkus2AfsSkus(refundSkuList []*model.OrderSku) (removeSkuList []*ebaiap func (c *PurchaseHandler) GetOrderAfsInfo(ctx *jxcontext.Context, vendorOrderID, afsOrderID string) (orderAfsInfo *partner.OrderAfsInfo, err error) { orderAfsInfo = &partner.OrderAfsInfo{} - if result, err := api.EbaiAPI.OrderPartRefundGet(vendorOrderID); err == nil { + result, _, err := api.EbaiAPI.GetReverseOrder(vendorOrderID) + if err == nil { orderAfsInfo.VendorOrderID = vendorOrderID - orderAfsInfo.AfsTotalShopMoney = utils.MustInterface2Int64(result["shop_fee"]) + var afsTotalShopMoney int64 = 0 + for _, v := range result { + v2 := v.(map[string]interface{}) + afsTotalShopMoney += utils.MustInterface2Int64(v2["refund_user_amount"]) + } + orderAfsInfo.AfsTotalShopMoney = afsTotalShopMoney } return orderAfsInfo, err + + //orderAfsInfo = &partner.OrderAfsInfo{} + //if result, err := api.EbaiAPI.OrderPartRefundGet(vendorOrderID) ;err == nil { + // orderAfsInfo.VendorOrderID = vendorOrderID + // orderAfsInfo.AfsTotalShopMoney = utils.MustInterface2Int64(result["shop_fee"]) + //} + //return orderAfsInfo, err } diff --git a/business/partner/purchase/ebai/store.go b/business/partner/purchase/ebai/store.go index 7320d14d1..236931e93 100644 --- a/business/partner/purchase/ebai/store.go +++ b/business/partner/purchase/ebai/store.go @@ -342,8 +342,7 @@ func (p *PurchaseHandler) RefreshAllStoresID(ctx *jxcontext.Context, parentTask } } if globals.EnableEbaiStoreWrite { - fBaiduIDs, fShopIDs, err1 := FilterStoreRel(baiduShopIDs) - globals.SugarLogger.Debugf("RefreshAllStoresID FilterStoreRel fBaiduIDs====%d fShopIDs====%d err====%v", fBaiduIDs, fShopIDs, err1) + fBaiduIDs, fShopIDs, _ := FilterStoreRel(baiduShopIDs) err = api.EbaiAPI.ShopIDBatchUpdate(fBaiduIDs, fShopIDs) } return nil, err diff --git a/business/partner/purchase/ebai/store_sku2.go b/business/partner/purchase/ebai/store_sku2.go index c2fdee9a7..13304761c 100644 --- a/business/partner/purchase/ebai/store_sku2.go +++ b/business/partner/purchase/ebai/store_sku2.go @@ -187,6 +187,10 @@ func (p *PurchaseHandler) UpdateStoreCategory(ctx *jxcontext.Context, storeID in if globals.EnableEbaiStoreWrite { if catName, catSeq, isCheck := getCheckExdStoreNameAndSeq(storeID, storeCat); !isCheck { err = api.EbaiAPI.ShopCategoryUpdate(utils.Int2Str(storeID), utils.Str2Int64WithDefault(storeCat.VendorCatID, 0), formatCatName(catName), jxCatSeq2Ebai(catSeq)) + // 修改分类时错误:自定义分类ID(category_id)不存在(降低api调用错误) + if err != nil && strings.Contains(err.Error(), "自定义分类ID(category_id)不存在") { + dao.SetStoreCategorySyncStatus(dao.GetDB(), model.VendorIDEBAI, []int{storeID}, []int{storeCat.StoreCatID}, 2) + } } // todo, 饿百将一个分类重复改名,也会报分类名重复错,特殊处理一下,不过因为GetStoreCategory其实会拉取所有的门店分类,是比较耗时的操作 if utils.IsErrMatch(err, "1", []string{"分类名称已经存在"}) { @@ -231,8 +235,19 @@ func (p *PurchaseHandler) updateStoreSkus(ctx *jxcontext.Context, storeID int, v _, err = api.EbaiAPI.SkuUpdate(ctx.GetTrackInfo(), strStoreID, utils.Str2Int64(storeSku.VendorSkuID), params) if err != nil { failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorChineseNames[model.VendorIDEBAI], "更新商品基础信息") + // 本地商品存在饿百商品id,但是平台不存在该商品 + if strings.Contains(err.Error(), "sku不存在") { + sql := ` UPDATE store_sku_bind SET ebai_id = 0,ebai_sync_status = 2 WHERE store_id = ? AND sku_id = ?` + param := []interface{}{storeID, storeSku.SkuID} + dao.ExecuteSQL(dao.GetDB(), sql, param...) + } else if strings.Contains(err.Error(), "商品禁止售卖不允许上架,请去商品审核模块进行修改") { + sql := ` UPDATE store_sku_bind SET ebai_sync_status = 0 WHERE store_id = ? AND sku_id = ?` + param := []interface{}{storeID, storeSku.SkuID} + dao.ExecuteSQL(dao.GetDB(), sql, param...) + } } - if ebaiExSkuCatMap[storeSku.SkuID] == 0 && ebaiExSkuCatMap2[storeSku.SkuID] == 0 && ebaiExSkuCatMap3[storeSku.SkuID] == 0 { + + if ebaiExSkuCatMap[storeSku.SkuID] == 0 && ebaiExSkuCatMap2[storeSku.SkuID] == 0 && ebaiExSkuCatMap3[storeSku.SkuID] == 0 && err == nil { if isNeedMapCat && !isExd { utils.CallFuncAsync(func() { api.EbaiAPI.SkuShopCategoryMap(strStoreID, utils.Str2Int64(storeSku.VendorSkuID), "", utils.Str2Int64(storeSku.VendorCatID), genSkuCatRank(storeSku)) @@ -315,7 +330,7 @@ func (p *PurchaseHandler) UpdateStoreSkusStatus(ctx *jxcontext.Context, vendorOr vendorSkuIDs := partner.BareStoreSkuInfoList(storeSkuList).GetVendorSkuIDIntList() if globals.EnableEbaiStoreWrite { var opResult *ebaiapi.BatchOpResult - if status == model.SkuStatusNormal { + if status == model.SkuStatusNormal { // 可售上架 if len(vendorSkuIDs) > 1 { opResult, err = api.EbaiAPI.SkuOnline(ctx.GetTrackInfo(), utils.Int2Str(storeID), vendorSkuIDs, nil, nil) } else if len(vendorSkuIDs) == 1 { @@ -325,7 +340,7 @@ func (p *PurchaseHandler) UpdateStoreSkusStatus(ctx *jxcontext.Context, vendorOr } return failedList, err } - } else { + } else { // 下架 if len(vendorSkuIDs) > 1 { opResult, err = api.EbaiAPI.SkuOffline(ctx.GetTrackInfo(), utils.Int2Str(storeID), vendorSkuIDs, nil, nil) } else if len(vendorSkuIDs) == 1 { @@ -389,6 +404,12 @@ func (p *PurchaseHandler) UpdateStoreSkusStock(ctx *jxcontext.Context, vendorOrg if err != nil { failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorChineseNames[model.VendorIDEBAI], "更新商品库存") } + // 本地商品存在饿百商品id,但是平台不存在该商品 + if err != nil && strings.Contains(err.Error(), "商品不存在") { + sql := ` UPDATE store_sku_bind SET ebai_id = 0,ebai_sync_status = 2 WHERE store_id = ? AND sku_id = ?` + param := []interface{}{storeID, storeSkuList[0].SkuID} + dao.ExecuteSQL(dao.GetDB(), sql, param...) + } } err = nil } @@ -677,6 +698,12 @@ func SelectStoreSkuListByOpResult(storeSkuList []*partner.StoreSkuInfo, opResult VendoreName: vendorName, SyncType: syncType, } + // 本地商品存在饿百商品id,但是平台不存在该商品 + if strings.Contains(opResultMap[utils.Str2Int64(v.VendorSkuID)], "商品不存在") { + sql := ` UPDATE store_sku_bind SET ebai_id = 0,ebai_sync_status = 2 WHERE store_id = ? AND sku_id = ?` + param := []interface{}{storeID, v.SkuID} + dao.ExecuteSQL(dao.GetDB(), sql, param...) + } selectedStoreSkuList = append(selectedStoreSkuList, opFailed) } } From d4588cda5102c907244f66ffa97b1ea30aeb2b19 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Thu, 23 Nov 2023 13:50:33 +0800 Subject: [PATCH 11/18] 1 --- business/partner/purchase/mtwm/store.go | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/business/partner/purchase/mtwm/store.go b/business/partner/purchase/mtwm/store.go index c5a303bdf..6a3c4819b 100644 --- a/business/partner/purchase/mtwm/store.go +++ b/business/partner/purchase/mtwm/store.go @@ -460,10 +460,17 @@ func (c *PurchaseHandler) UpdateStoreBoxFee(ctx *jxcontext.Context, vendorOrgCod } func (c *PurchaseHandler) UpdateStoreLineStatus(ctx *jxcontext.Context, vendorOrgCode string, storeID int, vendorStoreID string, lineStatus int) (err error) { - if lineStatus == model.StoreStatusOpened { - err = getAPI(vendorOrgCode, storeID, vendorStoreID).PoiOnline(vendorStoreID) - } else { - err = getAPI(vendorOrgCode, storeID, vendorStoreID).PoiOffline(vendorStoreID) + mtwmApi := getAPI(vendorOrgCode, storeID, vendorStoreID) + switch lineStatus { + case model.StoreStatusOpened: + if err = mtwmApi.PoiOnline(vendorStoreID); err != nil { + err = mtwmApi.PoiOpen(vendorStoreID) + } + default: + if err = mtwmApi.PoiOffline(vendorStoreID); err != nil { + err = mtwmApi.PoiClose(vendorStoreID) + } } + return err } From 67aeedb18272ae3313d4c4e96fe97d6505b124a5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Thu, 23 Nov 2023 16:15:26 +0800 Subject: [PATCH 12/18] 1 --- business/jxstore/cms/sku.go | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/business/jxstore/cms/sku.go b/business/jxstore/cms/sku.go index 12e03306d..d5dbef398 100644 --- a/business/jxstore/cms/sku.go +++ b/business/jxstore/cms/sku.go @@ -956,6 +956,7 @@ func AddSkuName(ctx *jxcontext.Context, skuNameExt *model.SkuNameExt, userName s } func UpdateSkuName(ctx *jxcontext.Context, nameID int, payload map[string]interface{}, isExd bool) (num int64, err error) { + globals.SugarLogger.Debugf("===========================1 %s", utils.Format4Output(time.Now(), false)) userName := ctx.GetUserName() skuName := &model.SkuName{} skuName.ID = nameID @@ -972,6 +973,7 @@ func UpdateSkuName(ctx *jxcontext.Context, nameID int, payload map[string]interf payload["name"] = newSkuName } } + globals.SugarLogger.Debugf("===========================2 %s", utils.Format4Output(time.Now(), false)) delete(payload, "isSpu") delete(payload, "seq") @@ -980,6 +982,7 @@ func UpdateSkuName(ctx *jxcontext.Context, nameID int, payload map[string]interf valid = utils.RemoveGeneralMapKeys(valid, model.FieldSpecQuality, model.FieldSpecUnit) _, hasPlaces := payload["places"] flag := updateOrCreateSkuVendorCategoryMap(db, ctx, nameID, payload, nil, false) + globals.SugarLogger.Debugf("===========================3 %s", utils.Format4Output(time.Now(), false)) if len(valid) > 0 || hasPlaces || flag { if valid["Upc"] != nil { //if upc, _ := valid["Upc"].(string); upc == "" { @@ -1016,6 +1019,7 @@ func UpdateSkuName(ctx *jxcontext.Context, nameID int, payload map[string]interf } } } + globals.SugarLogger.Debugf("===========================4 %s", utils.Format4Output(time.Now(), false)) var eclpID string if payload["eclpID"] != nil { eclpID = payload["eclpID"].(string) @@ -1042,6 +1046,7 @@ func UpdateSkuName(ctx *jxcontext.Context, nameID int, payload map[string]interf dao.Rollback(db, txDB) return 0, err } + globals.SugarLogger.Debugf("===========================5 %s", utils.Format4Output(time.Now(), false)) if !isExd && eclpID == "" { if err = OnUpdateThing(ctx, db, nil, int64(nameID), model.ThingTypeSkuName); err != nil { dao.Rollback(db, txDB) @@ -1069,6 +1074,7 @@ func UpdateSkuName(ctx *jxcontext.Context, nameID int, payload map[string]interf } } } + globals.SugarLogger.Debugf("===========================6 %s", utils.Format4Output(time.Now(), false)) skuList, err2 := dao.GetSkus(db, nil, []int{nameID}, nil, nil, nil) if err = err2; err == nil { for _, v := range skuList { @@ -1088,11 +1094,13 @@ func UpdateSkuName(ctx *jxcontext.Context, nameID int, payload map[string]interf } } } + globals.SugarLogger.Debugf("===========================7 %s", utils.Format4Output(time.Now(), false)) skuIDs, err2 := dao.GetSkuIDByNames(db, []int{nameID}) if err = err2; err != nil { dao.Rollback(db, txDB) return 0, err } + globals.SugarLogger.Debugf("===========================8 %s", utils.Format4Output(time.Now(), false)) if len(skuIDs) > 0 { // 判断是否改价 if payload["price"] != nil { @@ -1116,11 +1124,13 @@ func UpdateSkuName(ctx *jxcontext.Context, nameID int, payload map[string]interf } } + globals.SugarLogger.Debugf("===========================9 %s", utils.Format4Output(time.Now(), false)) // 更新skuIds对应在store_sku_bind中的价格体系,解决老版本改价之前关注的商品,在价格修改后,store_sku_bind中京西价未修改的问题 if _, err = SetStoreSkuSyncStatus2(db, nil, partner.GetSingleStoreVendorIDs(), skuIDs, model.SyncFlagModifiedMask); err != nil { dao.Rollback(db, txDB) return 0, err } + globals.SugarLogger.Debugf("===========================10 %s", utils.Format4Output(time.Now(), false)) } dao.Commit(db, txDB) @@ -1128,6 +1138,7 @@ func UpdateSkuName(ctx *jxcontext.Context, nameID int, payload map[string]interf errList.AddErr(err) //_, err = CurVendorSync.SyncSku(ctx, db, nameID, -1, false, false, userName) //errList.AddErr(err) + globals.SugarLogger.Debugf("===========================11 %s", utils.Format4Output(time.Now(), false)) storeIds, err := GetSyncSkuStoreId(db, skuIDs) if err != nil { @@ -1135,11 +1146,13 @@ func UpdateSkuName(ctx *jxcontext.Context, nameID int, payload map[string]interf } _, err2 = CurVendorSync.SyncStoresSkus(jxcontext.AdminCtx, nil, 0, db, partner.GetSingleStoreVendorIDs(), storeIds, skuIDs, false, false, true) errList.AddErr(err2) + globals.SugarLogger.Debugf("===========================12 %s", utils.Format4Output(time.Now(), false)) err = errList.GetErrListAsOne() if globals.IsAddEvent { mapBefore := refutil.FindMapAndStructMixed(valid, beforSkuName) err = AddEventDetail(db, ctx, model.OperateUpdate, nameID, model.ThingTypeSkuName, 0, BuildDiffData(mapBefore), BuildDiffData(valid)) } + globals.SugarLogger.Debugf("===========================13 %s", utils.Format4Output(time.Now(), false)) } return num, err } From 56d14778f893c32563643a03ab8df4b92a3279d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Thu, 23 Nov 2023 16:30:09 +0800 Subject: [PATCH 13/18] 1 --- business/jxstore/cms/sku.go | 38 ++++++++++++++++++------------------- 1 file changed, 18 insertions(+), 20 deletions(-) diff --git a/business/jxstore/cms/sku.go b/business/jxstore/cms/sku.go index d5dbef398..9b6058dcd 100644 --- a/business/jxstore/cms/sku.go +++ b/business/jxstore/cms/sku.go @@ -956,7 +956,6 @@ func AddSkuName(ctx *jxcontext.Context, skuNameExt *model.SkuNameExt, userName s } func UpdateSkuName(ctx *jxcontext.Context, nameID int, payload map[string]interface{}, isExd bool) (num int64, err error) { - globals.SugarLogger.Debugf("===========================1 %s", utils.Format4Output(time.Now(), false)) userName := ctx.GetUserName() skuName := &model.SkuName{} skuName.ID = nameID @@ -973,7 +972,6 @@ func UpdateSkuName(ctx *jxcontext.Context, nameID int, payload map[string]interf payload["name"] = newSkuName } } - globals.SugarLogger.Debugf("===========================2 %s", utils.Format4Output(time.Now(), false)) delete(payload, "isSpu") delete(payload, "seq") @@ -982,7 +980,6 @@ func UpdateSkuName(ctx *jxcontext.Context, nameID int, payload map[string]interf valid = utils.RemoveGeneralMapKeys(valid, model.FieldSpecQuality, model.FieldSpecUnit) _, hasPlaces := payload["places"] flag := updateOrCreateSkuVendorCategoryMap(db, ctx, nameID, payload, nil, false) - globals.SugarLogger.Debugf("===========================3 %s", utils.Format4Output(time.Now(), false)) if len(valid) > 0 || hasPlaces || flag { if valid["Upc"] != nil { //if upc, _ := valid["Upc"].(string); upc == "" { @@ -1019,7 +1016,6 @@ func UpdateSkuName(ctx *jxcontext.Context, nameID int, payload map[string]interf } } } - globals.SugarLogger.Debugf("===========================4 %s", utils.Format4Output(time.Now(), false)) var eclpID string if payload["eclpID"] != nil { eclpID = payload["eclpID"].(string) @@ -1046,7 +1042,6 @@ func UpdateSkuName(ctx *jxcontext.Context, nameID int, payload map[string]interf dao.Rollback(db, txDB) return 0, err } - globals.SugarLogger.Debugf("===========================5 %s", utils.Format4Output(time.Now(), false)) if !isExd && eclpID == "" { if err = OnUpdateThing(ctx, db, nil, int64(nameID), model.ThingTypeSkuName); err != nil { dao.Rollback(db, txDB) @@ -1074,7 +1069,6 @@ func UpdateSkuName(ctx *jxcontext.Context, nameID int, payload map[string]interf } } } - globals.SugarLogger.Debugf("===========================6 %s", utils.Format4Output(time.Now(), false)) skuList, err2 := dao.GetSkus(db, nil, []int{nameID}, nil, nil, nil) if err = err2; err == nil { for _, v := range skuList { @@ -1094,13 +1088,11 @@ func UpdateSkuName(ctx *jxcontext.Context, nameID int, payload map[string]interf } } } - globals.SugarLogger.Debugf("===========================7 %s", utils.Format4Output(time.Now(), false)) skuIDs, err2 := dao.GetSkuIDByNames(db, []int{nameID}) if err = err2; err != nil { dao.Rollback(db, txDB) return 0, err } - globals.SugarLogger.Debugf("===========================8 %s", utils.Format4Output(time.Now(), false)) if len(skuIDs) > 0 { // 判断是否改价 if payload["price"] != nil { @@ -1124,13 +1116,11 @@ func UpdateSkuName(ctx *jxcontext.Context, nameID int, payload map[string]interf } } - globals.SugarLogger.Debugf("===========================9 %s", utils.Format4Output(time.Now(), false)) // 更新skuIds对应在store_sku_bind中的价格体系,解决老版本改价之前关注的商品,在价格修改后,store_sku_bind中京西价未修改的问题 if _, err = SetStoreSkuSyncStatus2(db, nil, partner.GetSingleStoreVendorIDs(), skuIDs, model.SyncFlagModifiedMask); err != nil { dao.Rollback(db, txDB) return 0, err } - globals.SugarLogger.Debugf("===========================10 %s", utils.Format4Output(time.Now(), false)) } dao.Commit(db, txDB) @@ -1138,21 +1128,29 @@ func UpdateSkuName(ctx *jxcontext.Context, nameID int, payload map[string]interf errList.AddErr(err) //_, err = CurVendorSync.SyncSku(ctx, db, nameID, -1, false, false, userName) //errList.AddErr(err) - globals.SugarLogger.Debugf("===========================11 %s", utils.Format4Output(time.Now(), false)) - storeIds, err := GetSyncSkuStoreId(db, skuIDs) - if err != nil { - return 0, err - } - _, err2 = CurVendorSync.SyncStoresSkus(jxcontext.AdminCtx, nil, 0, db, partner.GetSingleStoreVendorIDs(), storeIds, skuIDs, false, false, true) - errList.AddErr(err2) - globals.SugarLogger.Debugf("===========================12 %s", utils.Format4Output(time.Now(), false)) - err = errList.GetErrListAsOne() + jxutils.CallMsgHandlerAsync(func() { + storeIds, _ := GetSyncSkuStoreId(db, skuIDs) + if len(storeIds) > model.NO { + CurVendorSync.SyncStoresSkus(jxcontext.AdminCtx, nil, 0, db, partner.GetSingleStoreVendorIDs(), storeIds, skuIDs, false, false, true) + } + }, "") + + // 修改之前的bug,运营在修改商品之后,可能是价格或者其他什么发生变化,去重新更新一下各个平台的商品 + // 但是会出现商品所属门店或者分组比较多,然后更新异常慢,采用异步处理一下,但是本方法会出现很多更新异常 + // 商品未创建,图片啊,价格啊什么的 + //storeIds, err := GetSyncSkuStoreId(db, skuIDs) + //if err != nil { + // return 0, err + //} + //_, err2 = CurVendorSync.SyncStoresSkus(jxcontext.AdminCtx, nil, 0, db, partner.GetSingleStoreVendorIDs(), storeIds, skuIDs, false, false, true) + //errList.AddErr(err2) + //err = errList.GetErrListAsOne() + if globals.IsAddEvent { mapBefore := refutil.FindMapAndStructMixed(valid, beforSkuName) err = AddEventDetail(db, ctx, model.OperateUpdate, nameID, model.ThingTypeSkuName, 0, BuildDiffData(mapBefore), BuildDiffData(valid)) } - globals.SugarLogger.Debugf("===========================13 %s", utils.Format4Output(time.Now(), false)) } return num, err } From 88684cd9429e576fc9647c66968ab46967a45420 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Tue, 28 Nov 2023 18:26:57 +0800 Subject: [PATCH 14/18] 1 --- business/partner/delivery/dada/waybill.go | 15 +++++++++------ business/partner/delivery/fn/waybill.go | 9 ++++++--- business/partner/delivery/mtps/waybill.go | 7 +++++-- business/partner/delivery/sfps/waybill.go | 9 ++++++--- business/partner/delivery/uupt/waybill.go | 9 ++++++--- 5 files changed, 32 insertions(+), 17 deletions(-) diff --git a/business/partner/delivery/dada/waybill.go b/business/partner/delivery/dada/waybill.go index e21c5d70b..27f47444b 100644 --- a/business/partner/delivery/dada/waybill.go +++ b/business/partner/delivery/dada/waybill.go @@ -83,10 +83,10 @@ func (c *DeliveryHandler) OnWaybillMsg(msg *dadaapi.CallbackMsg) (retVal *dadaap func (c *DeliveryHandler) onWaybillMsg(msg *dadaapi.CallbackMsg) (retVal *dadaapi.CallbackResponse) { order, goodsOrder := c.callbackMsg2Waybill(msg) store, _ := dao.GetStoreDetail(dao.GetDB(), goodsOrder.JxStoreID, goodsOrder.VendorID, goodsOrder.VendorOrgCode) + switch msg.OrderStatus { case dadaapi.OrderStatusWaitingForAccept: - dadaOrder, err := api.DadaAPI.QueryOrderInfo(msg.OrderID) - if err == nil { + if dadaOrder, err2 := api.DadaAPI.QueryOrderInfo(msg.OrderID); err2 == nil { order.ActualFee = jxutils.StandardPrice2Int(dadaOrder.ActualFee) order.DesiredFee = jxutils.StandardPrice2Int(dadaOrder.DeliveryFee) + int64(store.FreightMarkup) } @@ -94,7 +94,7 @@ func (c *DeliveryHandler) onWaybillMsg(msg *dadaapi.CallbackMsg) (retVal *dadaap case dadaapi.OrderStatusAccepted: order.Status = model.WaybillStatusCourierAssigned order.Remark = order.CourierName + "," + order.CourierMobile - if dadaOrder, err := api.DadaAPI.QueryOrderInfo(msg.OrderID); err == nil { + if dadaOrder, err2 := api.DadaAPI.QueryOrderInfo(msg.OrderID); err2 == nil { order.ActualFee = jxutils.StandardPrice2Int(dadaOrder.ActualFee) order.DesiredFee = jxutils.StandardPrice2Int(dadaOrder.DeliveryFee) + int64(store.FreightMarkup) } @@ -116,7 +116,8 @@ func (c *DeliveryHandler) onWaybillMsg(msg *dadaapi.CallbackMsg) (retVal *dadaap switch order.OrderVendorID { case model.VendorIDDD: - tiktokStatusPush(order, msg.OrderStatus) + Lng, Lat, _ := partner.GetRidderPositionGetter(order.WaybillVendorID).GetRidderPosition(nil, order.VendorOrderID, order.VendorOrderID, order.VendorWaybillID, order.VendorWaybillID2) + tiktokStatusPush(order, msg.OrderStatus, utils.Float64ToStr(Lng), utils.Float64ToStr(Lat)) case model.VendorIDMTWM, model.VendorIDTaoVegetable: delivery.GetOrderRiderInfoToPlatform(order.VendorOrderID, order.Status) // 骑手位置更新 if goodsOrder.VendorID == model.VendorIDTaoVegetable && msg.OrderStatus == dadaapi.OrderStatusAccepted { @@ -128,15 +129,17 @@ func (c *DeliveryHandler) onWaybillMsg(msg *dadaapi.CallbackMsg) (retVal *dadaap } // 抖音订单状态回传 -func tiktokStatusPush(order *model.Waybill, status int) { +func tiktokStatusPush(order *model.Waybill, status int, lng, lat string) { result := &utils.RiderInfo{ OrderId: order.VendorOrderID, - ThirdCarrierOrderId: order.VendorOrderID, + ThirdCarrierOrderId: order.VendorWaybillID, CourierName: order.CourierName, CourierPhone: order.CourierMobile, LogisticsStatus: order.Status, OpCode: "", LogisticsProviderCode: utils.DaDaCode, + Longitude: lng, + Latitude: lat, } switch status { diff --git a/business/partner/delivery/fn/waybill.go b/business/partner/delivery/fn/waybill.go index 7a41cfa2e..2d16e7ad2 100644 --- a/business/partner/delivery/fn/waybill.go +++ b/business/partner/delivery/fn/waybill.go @@ -310,7 +310,8 @@ func OnWaybillMsg(msg *fnpsapi.OrderStatusNottify, resultParam *fnpsapi.ShortSta switch order.OrderVendorID { case model.VendorIDDD: - tiktokStatusPush(order, orderStatus) + Lng, Lat, _ := partner.GetRidderPositionGetter(order.WaybillVendorID).GetRidderPosition(nil, order.VendorOrderID, order.VendorOrderID, order.VendorWaybillID, order.VendorWaybillID2) + tiktokStatusPush(order, orderStatus, utils.Float64ToStr(Lng), utils.Float64ToStr(Lat)) case model.VendorIDMTWM, model.VendorIDTaoVegetable: delivery.GetOrderRiderInfoToPlatform(order.VendorOrderID, order.Status) // 骑手位置更新 if good.VendorID == model.VendorIDTaoVegetable && cc.OrderStatus == fnpsapi.OrderStatusAssigned { @@ -321,15 +322,17 @@ func OnWaybillMsg(msg *fnpsapi.OrderStatusNottify, resultParam *fnpsapi.ShortSta } // 抖音订单状态回传 -func tiktokStatusPush(order *model.Waybill, orderStatus int64) { +func tiktokStatusPush(order *model.Waybill, orderStatus int64, lng, lat string) { result := &utils.RiderInfo{ OrderId: order.VendorOrderID, - ThirdCarrierOrderId: order.VendorOrderID, + ThirdCarrierOrderId: order.VendorWaybillID, CourierName: order.CourierName, CourierPhone: order.CourierMobile, LogisticsStatus: order.Status, OpCode: "", LogisticsProviderCode: utils.FnPsCode, + Longitude: lng, + Latitude: lat, } switch orderStatus { diff --git a/business/partner/delivery/mtps/waybill.go b/business/partner/delivery/mtps/waybill.go index 8804a654e..2116dc3ef 100644 --- a/business/partner/delivery/mtps/waybill.go +++ b/business/partner/delivery/mtps/waybill.go @@ -141,7 +141,8 @@ func (c *DeliveryHandler) onWaybillMsg(msg *mtpsapi.CallbackOrderMsg) (retVal *m err := mtpsapi.Err2CallbackResponse(partner.CurOrderManager.OnWaybillStatusChanged(order), order.VendorStatus) switch order.OrderVendorID { case model.VendorIDDD: - pushMTPSToTiktok(msg.Status, order) + Lng, Lat, _ := partner.GetRidderPositionGetter(order.WaybillVendorID).GetRidderPosition(nil, order.VendorOrderID, order.VendorOrderID, order.VendorWaybillID, order.VendorWaybillID2) + pushMTPSToTiktok(msg.Status, order, utils.Float64ToStr(Lng), utils.Float64ToStr(Lat)) case model.VendorIDMTWM, model.VendorIDTaoVegetable: delivery.GetOrderRiderInfoToPlatform(order.VendorOrderID, order.Status) // 骑手位置更新 if goodsOrder.VendorID == model.VendorIDTaoVegetable && msg.Status == mtpsapi.OrderStatusAccepted { @@ -152,7 +153,7 @@ func (c *DeliveryHandler) onWaybillMsg(msg *mtpsapi.CallbackOrderMsg) (retVal *m return err } -func pushMTPSToTiktok(msgStatus int, order *model.Waybill) { +func pushMTPSToTiktok(msgStatus int, order *model.Waybill, lng, lat string) { result := &utils.RiderInfo{ OrderId: order.VendorOrderID, ThirdCarrierOrderId: order.VendorOrderID, @@ -161,6 +162,8 @@ func pushMTPSToTiktok(msgStatus int, order *model.Waybill) { LogisticsProviderCode: utils.MTPsCode, LogisticsStatus: order.Status, OpCode: "", + Longitude: lng, + Latitude: lat, } switch msgStatus { diff --git a/business/partner/delivery/sfps/waybill.go b/business/partner/delivery/sfps/waybill.go index 5393e2ff9..7c6c581ff 100644 --- a/business/partner/delivery/sfps/waybill.go +++ b/business/partner/delivery/sfps/waybill.go @@ -440,7 +440,8 @@ func OnWaybillMsg(urlIndex string, msg interface{}) (resp *sfps2.CallbackRespons switch order.OrderVendorID { case model.VendorIDDD: - tiktokStatusPush(order, orderStatus) + Lng, Lat, _ := partner.GetRidderPositionGetter(order.WaybillVendorID).GetRidderPosition(nil, order.VendorOrderID, order.VendorOrderID, order.VendorWaybillID, order.VendorWaybillID2) + tiktokStatusPush(order, orderStatus, utils.Float64ToStr(Lng), utils.Float64ToStr(Lat)) case model.VendorIDTaoVegetable, model.VendorIDMTWM: delivery.GetOrderRiderInfoToPlatform(order.VendorOrderID, order.Status) // 骑手位置更新 if good.VendorID == model.VendorIDTaoVegetable && orderStatus == sfps2.OrderStatusTakeOrder { @@ -450,15 +451,17 @@ func OnWaybillMsg(urlIndex string, msg interface{}) (resp *sfps2.CallbackRespons return sfps2.Err2CallbackResponse(nil) } -func tiktokStatusPush(order *model.Waybill, orderStatus int64) { +func tiktokStatusPush(order *model.Waybill, orderStatus int64, lng, lat string) { result := &utils.RiderInfo{ OrderId: order.VendorOrderID, ThirdCarrierOrderId: order.VendorOrderID, CourierName: order.CourierName, CourierPhone: order.CourierMobile, - LogisticsProviderCode: "10002", + LogisticsProviderCode: utils.SFPSCode, LogisticsStatus: order.Status, OpCode: "", + Latitude: lat, + Longitude: lng, } switch orderStatus { case sfps2.OrderStatusNewOrder: diff --git a/business/partner/delivery/uupt/waybill.go b/business/partner/delivery/uupt/waybill.go index 6032dbef6..0d3e20bb3 100644 --- a/business/partner/delivery/uupt/waybill.go +++ b/business/partner/delivery/uupt/waybill.go @@ -396,7 +396,8 @@ func OnWaybillMsg(req *uuptapi.WaybillCallbackParam) (resp *uuptapi.CallbackResp //推送抖音 switch param.OrderVendorID { case model.VendorIDDD: - tiktokStatusPush(param, req.State) + Lng, Lat, _ := partner.GetRidderPositionGetter(param.WaybillVendorID).GetRidderPosition(nil, param.VendorOrderID, param.VendorOrderID, param.VendorWaybillID, param.VendorWaybillID2) + tiktokStatusPush(param, req.State, utils.Float64ToStr(Lng), utils.Float64ToStr(Lat)) case model.VendorIDMTWM, model.VendorIDTaoVegetable: delivery.GetOrderRiderInfoToPlatform(param.VendorOrderID, param.Status) // 骑手位置更新 if good.VendorID == model.VendorIDTaoVegetable && req.State == uuptapi.StateRMGrabsOrder { @@ -406,15 +407,17 @@ func OnWaybillMsg(req *uuptapi.WaybillCallbackParam) (resp *uuptapi.CallbackResp return uuptapi.Err2CallbackResponse(nil) } -func tiktokStatusPush(param *model.Waybill, orderStatus string) { +func tiktokStatusPush(param *model.Waybill, orderStatus string, lng, lat string) { result := &utils.RiderInfo{ OrderId: param.VendorOrderID, ThirdCarrierOrderId: param.VendorOrderID, CourierName: param.CourierName, CourierPhone: param.CourierMobile, - LogisticsProviderCode: "10002", + LogisticsProviderCode: utils.UUPTCode, LogisticsStatus: param.Status, OpCode: "", + Longitude: lng, + Latitude: lat, } switch orderStatus { case uuptapi.StateConfirmSuccess: //下单成功 From 5a5af474d35e804ed5442dbdc57622fc6b14e6f1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Wed, 29 Nov 2023 10:46:23 +0800 Subject: [PATCH 15/18] 1 --- business/jxcallback/orderman/orderman_ext.go | 26 ++++++++++---------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/business/jxcallback/orderman/orderman_ext.go b/business/jxcallback/orderman/orderman_ext.go index c685b486a..1b0c6c1b7 100644 --- a/business/jxcallback/orderman/orderman_ext.go +++ b/business/jxcallback/orderman/orderman_ext.go @@ -1178,19 +1178,19 @@ func (c *OrderManager) GetAfsOrders(ctx *jxcontext.Context, keyword, afsOrderID, } if vendorOrderID != "" || afsOrderID != "" { sqlWhere = "WHERE (0 = 1" - if vendorOrderID != "" { - sqlWhere += " OR (t1.vendor_order_id = ? OR t1.vendor_order_id2 = ?)" - sqlParams = append(sqlParams, []interface{}{ - vendorOrderID, - vendorOrderID, - }) - } - if afsOrderID != "" { - sqlWhere += " OR (t1.afs_order_id = ?)" - sqlParams = append(sqlParams, []interface{}{ - afsOrderID, - }) - } + //if vendorOrderID != "" { + sqlWhere += " OR (t1.vendor_order_id = ? OR t1.vendor_order_id2 = ?)" + sqlParams = append(sqlParams, []interface{}{ + vendorOrderID, + vendorOrderID, + }) + //} + //if afsOrderID != "" { + sqlWhere += " OR (t1.afs_order_id = ?)" + sqlParams = append(sqlParams, []interface{}{ + afsOrderID, + }) + //} sqlWhere += ")" } else { if toTime.Sub(fromTime) > 24*time.Hour*60 { From 11a8deadaac1729792d16db3138fe5f9a8e65943 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Wed, 29 Nov 2023 10:54:26 +0800 Subject: [PATCH 16/18] 1 --- business/jxcallback/orderman/orderman_ext.go | 122 +++++++++---------- 1 file changed, 61 insertions(+), 61 deletions(-) diff --git a/business/jxcallback/orderman/orderman_ext.go b/business/jxcallback/orderman/orderman_ext.go index 1b0c6c1b7..95b689a04 100644 --- a/business/jxcallback/orderman/orderman_ext.go +++ b/business/jxcallback/orderman/orderman_ext.go @@ -1168,75 +1168,75 @@ func (c *OrderManager) GetAfsOrders(ctx *jxcontext.Context, keyword, afsOrderID, sqlParams []interface{} ) // 如果搜索关键字可能为订单或售后单号,则当成订单或售后单查询 - if keyword != "" { - if jxutils.GetPossibleVendorIDFromAfsOrderID(keyword) > model.VendorIDUnknown && afsOrderID == "" { - afsOrderID = keyword - } - if jxutils.GetPossibleVendorIDFromVendorOrderID(keyword) > model.VendorIDUnknown && vendorOrderID == "" { - vendorOrderID = keyword - } + //if keyword != "" { + // if jxutils.GetPossibleVendorIDFromAfsOrderID(keyword) > model.VendorIDUnknown && afsOrderID == "" { + // afsOrderID = keyword + // } + // if jxutils.GetPossibleVendorIDFromVendorOrderID(keyword) > model.VendorIDUnknown && vendorOrderID == "" { + // vendorOrderID = keyword + // } + //} + //if vendorOrderID != "" || afsOrderID != "" { + // sqlWhere = "WHERE (0 = 1" + // if vendorOrderID != "" { + // sqlWhere += " OR (t1.vendor_order_id = ? OR t1.vendor_order_id2 = ?)" + // sqlParams = append(sqlParams, []interface{}{ + // vendorOrderID, + // vendorOrderID, + // }) + // } + // if afsOrderID != "" { + // sqlWhere += " OR (t1.afs_order_id = ?)" + // sqlParams = append(sqlParams, []interface{}{ + // afsOrderID, + // }) + // } + // sqlWhere += ")" + //} else { + if toTime.Sub(fromTime) > 24*time.Hour*60 { + return nil, fmt.Errorf("售后单查询时间不能超过60天") } - if vendorOrderID != "" || afsOrderID != "" { - sqlWhere = "WHERE (0 = 1" - //if vendorOrderID != "" { - sqlWhere += " OR (t1.vendor_order_id = ? OR t1.vendor_order_id2 = ?)" - sqlParams = append(sqlParams, []interface{}{ - vendorOrderID, - vendorOrderID, - }) - //} - //if afsOrderID != "" { - sqlWhere += " OR (t1.afs_order_id = ?)" - sqlParams = append(sqlParams, []interface{}{ - afsOrderID, - }) - //} - sqlWhere += ")" - } else { - if toTime.Sub(fromTime) > 24*time.Hour*60 { - return nil, fmt.Errorf("售后单查询时间不能超过60天") - } - sqlWhere = ` + sqlWhere = ` WHERE t1.afs_created_at >= ? AND t1.afs_created_at <= ? ` - sqlParams = []interface{}{ - fromTime, - toTime, - } - if keyword != "" { - keywordLike := "%" + keyword + "%" - sqlWhere += ` + sqlParams = []interface{}{ + fromTime, + toTime, + } + if keyword != "" { + keywordLike := "%" + keyword + "%" + sqlWhere += ` AND (t1.vendor_order_id2 LIKE ? OR t1.vendor_order_id LIKE ? OR t1.afs_order_id LIKE ? OR t1.vendor_store_id LIKE ? OR t1.reason_desc LIKE ? ` - sqlParams = append(sqlParams, keywordLike, keywordLike, keywordLike, keywordLike, keywordLike) - if keywordInt64 := utils.Str2Int64WithDefault(keyword, 0); keywordInt64 > 0 { - sqlWhere += " OR t1.store_id = ? OR t1.jx_store_id = ?" - sqlParams = append(sqlParams, keywordInt64, keywordInt64) - } - sqlWhere += ")" - } - if len(storeIDList) > 0 { - sqlWhere += " AND IF(t1.jx_store_id != 0, t1.jx_store_id, t1.store_id) IN (" + dao.GenQuestionMarks(len(storeIDList)) + ")" - sqlParams = append(sqlParams, storeIDList) - } - if len(statusList) > 0 { - sqlWhere += " AND t1.status IN (" + dao.GenQuestionMarks(len(statusList)) + ")" - sqlParams = append(sqlParams, statusList) - } - if len(appealTypeList) > 0 { - sqlWhere += " AND t1.appeal_type IN (" + dao.GenQuestionMarks(len(appealTypeList)) + ")" - sqlParams = append(sqlParams, appealTypeList) - } - if len(skuIDs) > 0 { - sqlWhere += " AND (SELECT COUNT(*) FROM order_sku_financial t11 WHERE t11.is_afs_order = 1 AND t11.afs_order_id = t1.afs_order_id AND t11.vendor_id = t1.vendor_id AND t11.jx_sku_id IN (" + dao.GenQuestionMarks(len(skuIDs)) + ")) > 0" - sqlParams = append(sqlParams, skuIDs) - } - if len(vendorIDList) > 0 { - sqlWhere += " AND t1.vendor_id IN (" + dao.GenQuestionMarks(len(vendorIDList)) + ")" - sqlParams = append(sqlParams, vendorIDList) + sqlParams = append(sqlParams, keywordLike, keywordLike, keywordLike, keywordLike, keywordLike) + if keywordInt64 := utils.Str2Int64WithDefault(keyword, 0); keywordInt64 > 0 { + sqlWhere += " OR t1.store_id = ? OR t1.jx_store_id = ?" + sqlParams = append(sqlParams, keywordInt64, keywordInt64) } + sqlWhere += ")" } + if len(storeIDList) > 0 { + sqlWhere += " AND IF(t1.jx_store_id != 0, t1.jx_store_id, t1.store_id) IN (" + dao.GenQuestionMarks(len(storeIDList)) + ")" + sqlParams = append(sqlParams, storeIDList) + } + if len(statusList) > 0 { + sqlWhere += " AND t1.status IN (" + dao.GenQuestionMarks(len(statusList)) + ")" + sqlParams = append(sqlParams, statusList) + } + if len(appealTypeList) > 0 { + sqlWhere += " AND t1.appeal_type IN (" + dao.GenQuestionMarks(len(appealTypeList)) + ")" + sqlParams = append(sqlParams, appealTypeList) + } + if len(skuIDs) > 0 { + sqlWhere += " AND (SELECT COUNT(*) FROM order_sku_financial t11 WHERE t11.is_afs_order = 1 AND t11.afs_order_id = t1.afs_order_id AND t11.vendor_id = t1.vendor_id AND t11.jx_sku_id IN (" + dao.GenQuestionMarks(len(skuIDs)) + ")) > 0" + sqlParams = append(sqlParams, skuIDs) + } + if len(vendorIDList) > 0 { + sqlWhere += " AND t1.vendor_id IN (" + dao.GenQuestionMarks(len(vendorIDList)) + ")" + sqlParams = append(sqlParams, vendorIDList) + } + //} sql += sqlWhere sql += ` ORDER BY t1.afs_created_at DESC From 52b3ceae408993970a810b66feefdf1fee8ac625 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Wed, 29 Nov 2023 11:27:05 +0800 Subject: [PATCH 17/18] 1 --- business/jxcallback/orderman/orderman_ext.go | 122 +++++++++---------- 1 file changed, 61 insertions(+), 61 deletions(-) diff --git a/business/jxcallback/orderman/orderman_ext.go b/business/jxcallback/orderman/orderman_ext.go index 95b689a04..c685b486a 100644 --- a/business/jxcallback/orderman/orderman_ext.go +++ b/business/jxcallback/orderman/orderman_ext.go @@ -1168,75 +1168,75 @@ func (c *OrderManager) GetAfsOrders(ctx *jxcontext.Context, keyword, afsOrderID, sqlParams []interface{} ) // 如果搜索关键字可能为订单或售后单号,则当成订单或售后单查询 - //if keyword != "" { - // if jxutils.GetPossibleVendorIDFromAfsOrderID(keyword) > model.VendorIDUnknown && afsOrderID == "" { - // afsOrderID = keyword - // } - // if jxutils.GetPossibleVendorIDFromVendorOrderID(keyword) > model.VendorIDUnknown && vendorOrderID == "" { - // vendorOrderID = keyword - // } - //} - //if vendorOrderID != "" || afsOrderID != "" { - // sqlWhere = "WHERE (0 = 1" - // if vendorOrderID != "" { - // sqlWhere += " OR (t1.vendor_order_id = ? OR t1.vendor_order_id2 = ?)" - // sqlParams = append(sqlParams, []interface{}{ - // vendorOrderID, - // vendorOrderID, - // }) - // } - // if afsOrderID != "" { - // sqlWhere += " OR (t1.afs_order_id = ?)" - // sqlParams = append(sqlParams, []interface{}{ - // afsOrderID, - // }) - // } - // sqlWhere += ")" - //} else { - if toTime.Sub(fromTime) > 24*time.Hour*60 { - return nil, fmt.Errorf("售后单查询时间不能超过60天") + if keyword != "" { + if jxutils.GetPossibleVendorIDFromAfsOrderID(keyword) > model.VendorIDUnknown && afsOrderID == "" { + afsOrderID = keyword + } + if jxutils.GetPossibleVendorIDFromVendorOrderID(keyword) > model.VendorIDUnknown && vendorOrderID == "" { + vendorOrderID = keyword + } } - sqlWhere = ` + if vendorOrderID != "" || afsOrderID != "" { + sqlWhere = "WHERE (0 = 1" + if vendorOrderID != "" { + sqlWhere += " OR (t1.vendor_order_id = ? OR t1.vendor_order_id2 = ?)" + sqlParams = append(sqlParams, []interface{}{ + vendorOrderID, + vendorOrderID, + }) + } + if afsOrderID != "" { + sqlWhere += " OR (t1.afs_order_id = ?)" + sqlParams = append(sqlParams, []interface{}{ + afsOrderID, + }) + } + sqlWhere += ")" + } else { + if toTime.Sub(fromTime) > 24*time.Hour*60 { + return nil, fmt.Errorf("售后单查询时间不能超过60天") + } + sqlWhere = ` WHERE t1.afs_created_at >= ? AND t1.afs_created_at <= ? ` - sqlParams = []interface{}{ - fromTime, - toTime, - } - if keyword != "" { - keywordLike := "%" + keyword + "%" - sqlWhere += ` + sqlParams = []interface{}{ + fromTime, + toTime, + } + if keyword != "" { + keywordLike := "%" + keyword + "%" + sqlWhere += ` AND (t1.vendor_order_id2 LIKE ? OR t1.vendor_order_id LIKE ? OR t1.afs_order_id LIKE ? OR t1.vendor_store_id LIKE ? OR t1.reason_desc LIKE ? ` - sqlParams = append(sqlParams, keywordLike, keywordLike, keywordLike, keywordLike, keywordLike) - if keywordInt64 := utils.Str2Int64WithDefault(keyword, 0); keywordInt64 > 0 { - sqlWhere += " OR t1.store_id = ? OR t1.jx_store_id = ?" - sqlParams = append(sqlParams, keywordInt64, keywordInt64) + sqlParams = append(sqlParams, keywordLike, keywordLike, keywordLike, keywordLike, keywordLike) + if keywordInt64 := utils.Str2Int64WithDefault(keyword, 0); keywordInt64 > 0 { + sqlWhere += " OR t1.store_id = ? OR t1.jx_store_id = ?" + sqlParams = append(sqlParams, keywordInt64, keywordInt64) + } + sqlWhere += ")" + } + if len(storeIDList) > 0 { + sqlWhere += " AND IF(t1.jx_store_id != 0, t1.jx_store_id, t1.store_id) IN (" + dao.GenQuestionMarks(len(storeIDList)) + ")" + sqlParams = append(sqlParams, storeIDList) + } + if len(statusList) > 0 { + sqlWhere += " AND t1.status IN (" + dao.GenQuestionMarks(len(statusList)) + ")" + sqlParams = append(sqlParams, statusList) + } + if len(appealTypeList) > 0 { + sqlWhere += " AND t1.appeal_type IN (" + dao.GenQuestionMarks(len(appealTypeList)) + ")" + sqlParams = append(sqlParams, appealTypeList) + } + if len(skuIDs) > 0 { + sqlWhere += " AND (SELECT COUNT(*) FROM order_sku_financial t11 WHERE t11.is_afs_order = 1 AND t11.afs_order_id = t1.afs_order_id AND t11.vendor_id = t1.vendor_id AND t11.jx_sku_id IN (" + dao.GenQuestionMarks(len(skuIDs)) + ")) > 0" + sqlParams = append(sqlParams, skuIDs) + } + if len(vendorIDList) > 0 { + sqlWhere += " AND t1.vendor_id IN (" + dao.GenQuestionMarks(len(vendorIDList)) + ")" + sqlParams = append(sqlParams, vendorIDList) } - sqlWhere += ")" } - if len(storeIDList) > 0 { - sqlWhere += " AND IF(t1.jx_store_id != 0, t1.jx_store_id, t1.store_id) IN (" + dao.GenQuestionMarks(len(storeIDList)) + ")" - sqlParams = append(sqlParams, storeIDList) - } - if len(statusList) > 0 { - sqlWhere += " AND t1.status IN (" + dao.GenQuestionMarks(len(statusList)) + ")" - sqlParams = append(sqlParams, statusList) - } - if len(appealTypeList) > 0 { - sqlWhere += " AND t1.appeal_type IN (" + dao.GenQuestionMarks(len(appealTypeList)) + ")" - sqlParams = append(sqlParams, appealTypeList) - } - if len(skuIDs) > 0 { - sqlWhere += " AND (SELECT COUNT(*) FROM order_sku_financial t11 WHERE t11.is_afs_order = 1 AND t11.afs_order_id = t1.afs_order_id AND t11.vendor_id = t1.vendor_id AND t11.jx_sku_id IN (" + dao.GenQuestionMarks(len(skuIDs)) + ")) > 0" - sqlParams = append(sqlParams, skuIDs) - } - if len(vendorIDList) > 0 { - sqlWhere += " AND t1.vendor_id IN (" + dao.GenQuestionMarks(len(vendorIDList)) + ")" - sqlParams = append(sqlParams, vendorIDList) - } - //} sql += sqlWhere sql += ` ORDER BY t1.afs_created_at DESC From 9476575dc8e2bee58ef665511b92195b2a65eff7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Wed, 29 Nov 2023 15:45:45 +0800 Subject: [PATCH 18/18] 1 --- business/jxstore/cms/store_sku_check.go | 277 +----------------------- business/jxstore/cms/sync_store_sku.go | 24 +- controllers/temp_op.go | 6 +- 3 files changed, 26 insertions(+), 281 deletions(-) diff --git a/business/jxstore/cms/store_sku_check.go b/business/jxstore/cms/store_sku_check.go index a36320297..039bf05a1 100644 --- a/business/jxstore/cms/store_sku_check.go +++ b/business/jxstore/cms/store_sku_check.go @@ -6,9 +6,6 @@ import ( "sync" "time" - "git.rosy.net.cn/baseapi/platformapi/dingdingapi" - "git.rosy.net.cn/jx-callback/business/jxutils/ddmsg" - "git.rosy.net.cn/jx-callback/business/model/dao" "git.rosy.net.cn/baseapi" @@ -931,262 +928,12 @@ func StoreOpenAll(ctx *jxcontext.Context) { // globals.SugarLogger.Debug("StoreOpenAll skuID is Complete") //} -func TestDiff(ctx *jxcontext.Context, vendorIDList []int, storeIDList []int) { - baseapi.SugarLogger.Debugf("CheckSkuDiffBetweenJxAndVendor start time: %v", time.Now()) - startProcessTime := time.Now().Unix() - vendorMap := make(map[int]bool) - for _, vendorID := range vendorIDList { - vendorMap[vendorID] = true //map[平台ID:true] - } - storeIDMap := make(map[int]bool) - for _, storeID := range storeIDList { - storeIDMap[storeID] = true //map[门店ID:true] - } - /************************************************update**************************************************/ - //自己存值 - a := func() { - for vendorID, _ := range vendorNameList { - //filter for vendorID - if len(vendorMap) > 0 { - if _, ok := vendorMap[vendorID]; !ok { - continue - } - } - if partner.IsMultiStore(vendorID) { - multiHandler := partner.GetPurchasePlatformFromVendorID(vendorID).(partner.IMultipleStoresHandler) - for _, vendorOrgCode := range apimanager.CurAPIManager.GetAppOrgCodeList(vendorID) { - allSkuNameInfoList, err := multiHandler.GetSkus(ctx, vendorOrgCode, 0, "") - //获取单个表格对比的物品信息列表 - skuNameInfoList = allSkuNameInfoList - if err != nil { - fmt.Println("allSkuNameInfoList赋值错误,error信息" + err.Error()) - continue - } - //*partner.StoreSkuInfo skuNameList []*SkuNameInfo - var bareStoreSkuList []*partner.StoreSkuInfo - for _, v := range allSkuNameInfoList { - for _, v2 := range v.SkuList { - if v2.Status > model.SkuStatusDontSale { - for _, v2 := range v.SkuList { - bareStoreSkuList = append(bareStoreSkuList, &v2.StoreSkuInfo) - } - } - } - } - //if multiStoreAllSkuInfoList[vendorID][vendorOrgCode] != nil && bareStoreSkuList != nil { - if multiStoreAllSkuInfoList[vendorID] != nil && bareStoreSkuList != nil { - multiStoreAllSkuInfoList[vendorID][vendorOrgCode] = bareStoreSkuList - //}else if multiStoreAllSkuInfoList[vendorID][vendorOrgCode] == nil{ - } else if multiStoreAllSkuInfoList[vendorID] == nil { - multiStoreAllSkuInfoList = make(map[int]map[string][]*partner.StoreSkuInfo) - multiStoreAllSkuInfoList[vendorID] = make(map[string][]*partner.StoreSkuInfo) - multiStoreAllSkuInfoList[vendorID][vendorOrgCode] = bareStoreSkuList - } - tempMap := make(map[int]*partner.SkuNameInfo) - for _, value := range allSkuNameInfoList { - for _, skuInfo := range value.SkuList { - //表示平台商品库未下架的 - if skuInfo.Status > model.SkuStatusDontSale { - filterVendorDepotUnSaleSkuIds = append(filterVendorDepotUnSaleSkuIds, skuInfo.SkuID) - tempMap[skuInfo.SkuID] = value - } - } - } - //商品信息 - if multiStoreAllSkuInfoMap[vendorID] == nil { - multiStoreAllSkuInfoMap = make(map[int]map[string]map[int]*partner.SkuNameInfo) - multiStoreAllSkuInfoMap[vendorID] = make(map[string]map[int]*partner.SkuNameInfo) - //multiStoreAllSkuInfoMap[vendorID][vendorOrgCode] = make(map[int]*partner.SkuNameInfo) - multiStoreAllSkuInfoMap[vendorID][vendorOrgCode] = tempMap - } else { - multiStoreAllSkuInfoMap[vendorID][vendorOrgCode] = tempMap - } - } - } - } - } - - /************************************************update****************************************************/ - //1.获取京西本地所有门店信息 store、place、user表联查 jxStoreInfoList - //2.过滤所有门店信息,只留下传进来的vendorMap,storeIDMap中对应的平台和门台信息 filterStoreList - //3.判断是否多平台门店,两种情况两种处理 - b := func() { - jxStoreInfoList, err := GetStores(ctx, "", map[string]interface{}{}, 0, -1, utils.DefaultTimeValue, utils.DefaultTimeValue, 0, 0) - if err != nil { - baseapi.SugarLogger.Errorf("CheckSkuDiffBetweenJxAndVendor GetStores error:%v", err) - } else { - //获取总共几个门店任务 - filterStoreList := GetFilterStoreList(jxStoreInfoList.Stores, vendorMap, storeIDMap) - diffData.InitData() - for i := range filterStoreList { - jxStoreInfoListValue := filterStoreList[i] - storeID := jxStoreInfoListValue.ID - storeIDStr := utils.Int2Str(storeID) - storeName := jxStoreInfoListValue.Name - jxSkuInfoDataSingle := &dao.StoreSkuNamesInfo{} - jxSkuInfoDataMulti := &dao.StoreSkuNamesInfo{} - if jxStoreInfoListValue.StoreMaps != nil { - var multiFlag = false - var singleFlag = false - var filterJxSkuInfoMapSingle map[int]*dao.StoreSkuNameExt - var filterJxSkuInfoMapMulti map[int]*dao.StoreSkuNameExt - for _, vendorListValue := range jxStoreInfoListValue.StoreMaps { - vendorID := vendorListValue.VendorID - if partner.IsMultiStore(vendorID) { - if multiFlag == false { - //jxSkuInfoDataMulti, _ = GetStoreSkus(ctx, storeID, filterJxDepotUnSaleSkuIds, true, "", true, false, map[string]interface{}{}, 0, -1) - jxSkuInfoDataMulti, _ = GetStoreSkus2(ctx, storeID, filterJxDepotUnSaleSkuIds, true, "", true, false, map[string]interface{}{}, 0, -1) - /*重新计算价格*/ - SetJxPrice(jxSkuInfoDataMulti, storeID, vendorID) - filterJxSkuInfoMapMulti = GetFilterJxSkuInfoMap(jxSkuInfoDataMulti.SkuNames) //map[京西商品ID:StoreSkuNameExt] - multiFlag = true - } - } else { - if singleFlag == false { - //jxSkuInfoDataSingle, _ = GetStoreSkus(ctx, storeID, nil, true, "", true, false, map[string]interface{}{}, 0, -1) - jxSkuInfoDataSingle, _ = GetStoreSkus2(ctx, storeID, nil, true, "", true, false, map[string]interface{}{}, 0, -1) - /*重新计算价格*/ - SetJxPrice(jxSkuInfoDataSingle, storeID, vendorID) - filterJxSkuInfoMapSingle = GetFilterJxSkuInfoMap(jxSkuInfoDataSingle.SkuNames) //map[京西商品ID:StoreSkuNameExt] - singleFlag = true - } - } - vendorStoreID := vendorListValue.VendorStoreID - baseapi.SugarLogger.Debugf("CheckSkuDiffBetweenJxAndVendor storeID:%d vendorID:%d vendorStoreID:%s vendorListValue:%v", storeID, vendorID, vendorStoreID, vendorListValue) - - if partner.IsMultiStore(vendorID) { - singleStoreHandler := partner.GetPurchasePlatformFromVendorID(vendorID).(partner.IPurchasePlatformStoreSkuHandler) - allSkuInfoList := GetMultiStoreAllSkuInfoList(vendorID, vendorListValue.VendorOrgCode) - skuBareInfoList, err := singleStoreHandler.GetStoreSkusBareInfo(ctx, vendorListValue.VendorOrgCode, nil, storeID, vendorStoreID, allSkuInfoList) - if err != nil { - baseapi.SugarLogger.Infof("CheckSkuDiffBetweenJxAndVendor GetStoreSkusBareInfo error:%v", err) - } else if len(skuBareInfoList) > 0 { - //获取京东的商品 - filterSkuInfoMap := GetFilterMultiStoreSkuInfoMap(vendorID, vendorListValue.VendorOrgCode, skuBareInfoList) //map[京东商品ID:SkuNameInfo] - CompareJxAndVendor(vendorID, storeIDStr, vendorStoreID, storeName, filterJxSkuInfoMapMulti, filterSkuInfoMap, 1) - } - } else { - singleStoreHandler := partner.GetPurchasePlatformFromVendorID(vendorID).(partner.ISingleStoreStoreSkuHandler) - vendorSkuInfoList, err := singleStoreHandler.GetStoreSkusFullInfo(ctx, nil, storeID, vendorStoreID, nil) - if err != nil { - baseapi.SugarLogger.Infof("CheckSkuDiffBetweenJxAndVendor GetStoreSkusFullInfo error:%v", err) - } else if len(vendorSkuInfoList) > 0 { - //获取京东的商品 - filterVendorSkuInfoMap := GetFilterVendorSkuInfoMap(vendorSkuInfoList) //map[平台商品ID:SkuNameInfo] - CompareJxAndVendor(vendorID, storeIDStr, vendorStoreID, storeName, filterJxSkuInfoMapSingle, filterVendorSkuInfoMap, 0) - } - } - } - } - } - } - } - - /********************************第三步****************************/ - c := func(data map[int][]DiffData, depotData map[int][]DepotDiffData) { - var sheetList []*excel.Obj2ExcelSheetConfig - for key, value := range data { - sheetName := vendorNameList[key] - if partner.IsMultiStore(key) { - excelConfDepot := &excel.Obj2ExcelSheetConfig{ - Title: sheetName + "商品库与京西商品库对比", - Data: depotData[key], - CaptionList: deoptTitleList, - } - sheetList = append(sheetList, excelConfDepot) - } - excelConf := &excel.Obj2ExcelSheetConfig{ - Title: sheetName, - Data: value, - CaptionList: titleList, - } - sheetList = append(sheetList, excelConf) - if needStatistic { - statisticSheet := AddStatisticSheet(sheetName, value) - sheetList = append(sheetList, statisticSheet) - } - baseapi.SugarLogger.Debugf("WriteToExcel:append:%s count:%d", sheetName, len(value)) - } - - if len(sheetList) > 0 { - excelBin := excel.Obj2Excel(sheetList) - sheetList = nil - timeStr := utils.Int64ToStr(time.Now().Unix()) - diffFullFileName := diffFileName[IsJXCS()] + timeStr + fileExt - if canWriteTolocal { - jxutils.WriteFile(diffFullFileName, excelBin) - } - baseapi.SugarLogger.Debugf("WriteToExcel:save %s success", diffFullFileName) - //上传 - downloadURL, err := jxutils.UploadExportContent(excelBin, diffFullFileName) - if err != nil { - baseapi.SugarLogger.Errorf("WriteToExcel:upload %s failed error:%v", diffFullFileName, err) - } else { - baseapi.SugarLogger.Debugf("WriteToExcel:upload %s success, downloadURL: %s", diffFullFileName, downloadURL) - /*************发送钉钉消息**************/ - ddmsg.SendUserMessage(dingdingapi.MsgTyeText, ctx.GetUserID(), "异步任务完成", "京西平台对比数据上传成功:Excel下载地址是 "+downloadURL) - } - } else { - baseapi.SugarLogger.Debug("WriteToExcel:No diff data!!!") - } - //} - endProcessTime := time.Now().Unix() - diff := endProcessTime - startProcessTime - baseapi.SugarLogger.Debugf("CheckSkuDiffBetweenJxAndVendor end time: %v", time.Now()) - baseapi.SugarLogger.Debugf("CheckSkuDiffBetweenJxAndVendor cost time: %d sec", diff) - } - apiover := make(chan int, 1) - compover := make(chan int, 1) - over := false - /********************************第三步****************************/ - /*异步任务*/ - /************************************************************************************/ - go func() { - defer func() { - if recover() != nil { - // beego.Info("执行任务失败") - panic("API调用失败") - } - }() - a() - depotDiffData.InitData2() - CompareJxAndMultiVenderDepot(ctx, vendorMap) - apiover <- 0 - }() - /*a等待a现成执行完*/ - go func() { - for !over { - select { - case <-apiover: - /*第二步 为了获取 filterJxDepotUnSaleSkuIds*/ - go func() { - defer func() { - if recover() != nil { - // beego.Info("比较任务失败") - panic("比较任务失败") - } - }() - b() - compover <- 0 //比较任务完成 - }() - /*第二步*/ - case <-compover: - go func() { - defer func() { - if recover() != nil { - // beego.Info("写入任务失败") - panic("写入任务失败") - } - }() - c(diffData.diffDataMap, depotDiffData.diffDataMap) - fmt.Println("任务执行完成") - over = true - }() - break - } - } - }() - /************************************************************************************/ +// 对比本地商品和平台商品差异(价格和规格),不同的重新同步 +func CheckSkuDiffBetweenJxAndVendor2(ctx *jxcontext.Context, vendorIDList []int, storeIDList []int) { + //db := dao.GetDB() + //for _, v := range storeIDList { + // //storeMapList, err := dao.GetStoresMapList(db, vendorIDList, []int{v}, []int{model.StoreStatusOpened, model.StoreStatusHaveRest, model.StoreStatusClosed}, status, model.StoreIsSyncYes, "", "", "") + //} } //入口函数,校验本地商品京西和其他平台的差异 @@ -1408,15 +1155,3 @@ func WriteToExcel(task *tasksch.SeqTask, data map[int][]DiffData, depotData map[ baseapi.SugarLogger.Debug("WriteToExcel:No diff data!!!") } } - -func SetJxPrice(jxSkuInfoDataMulti *dao.StoreSkuNamesInfo, storeId int, vendorid int) (err error) { - storeDetail, err := dao.GetStoreDetail(dao.GetDB(), storeId, vendorid, "") - /*重新计算京西价格*/ - for _, values := range jxSkuInfoDataMulti.SkuNames { - for _, value := range values.Skus { - value.JxPrice = jxutils.CaculatePriceByPricePack(storeDetail.PricePercentagePackObj, int(storeDetail.PricePercentage), value.BindPrice) - } - } - /*重新计算京西价格*/ - return nil -} diff --git a/business/jxstore/cms/sync_store_sku.go b/business/jxstore/cms/sync_store_sku.go index 9e4d73aac..4386629c2 100644 --- a/business/jxstore/cms/sync_store_sku.go +++ b/business/jxstore/cms/sync_store_sku.go @@ -95,26 +95,36 @@ func SyncStoreCategories(ctx *jxcontext.Context, parentTask tasksch.ITask, vendo num := 0 rootTask := tasksch.NewSeqTask(fmt.Sprintf("%s SyncStoreCategory step1", model.VendorChineseNames[vendorID]), ctx, func(rootTask *tasksch.SeqTask, step int, params ...interface{}) (result interface{}, err error) { - level := step + 1 - catList, err := dao.GetDirtyStoreCategories(db, vendorID, storeID, level, skuIDs) - // 保证下面api成功率添加校验 if vendorID == model.VendorIDEBAI { + // 门店审核状态 status, err := api.EbaiAPI.ShopStatusGet("", utils.Str2Int64(vendorStoreID)) if err != nil { return nil, err } + // 门店营业状态 + ebaiStatus, err := api.EbaiAPI.ShopBusStatusGet("", utils.Str2Int64(vendorStoreID), ebaiapi.PlatformFlagElm) + switch status { case ebaiapi.ShopCheckStatusCheckSuccess: - + case ebaiapi.ShopCheckStatusNew, ebaiapi.ShopCheckStatusWaitCheck, ebaiapi.ShopCheckStatusUpdateWaitCheck: - return nil, fmt.Errorf("门店审核中,请联系饿了么工作人员加快审核") + if ebaiStatus == ebaiapi.ShopBusStatusSuspended { + return nil, fmt.Errorf("门店审核中,请联系饿了么工作人员加快审核") + } case ebaiapi.ShopCheckStatusGoLiveFail: - return nil, fmt.Errorf("门店上线审核失败,请联系饿了么工作人员加快审核") + if ebaiStatus == ebaiapi.ShopBusStatusSuspended { + return nil, fmt.Errorf("门店上线审核失败,请联系饿了么工作人员加快审核") + } case ebaiapi.ShopCheckStatusCheckFail: - return nil, fmt.Errorf("门店审核未通过") + if ebaiStatus == ebaiapi.ShopBusStatusSuspended { + return nil, fmt.Errorf("门店审核未通过") + } } } + + level := step + 1 + catList, err := dao.GetDirtyStoreCategories(db, vendorID, storeID, level, skuIDs) if len(catList) > 0 { num += len(catList) task := tasksch.NewParallelTask(fmt.Sprintf("%s SyncStoreCategory step2, level=%d", model.VendorChineseNames[vendorID], level), diff --git a/controllers/temp_op.go b/controllers/temp_op.go index bf297df1d..3ec038ed8 100644 --- a/controllers/temp_op.go +++ b/controllers/temp_op.go @@ -275,7 +275,7 @@ func (c *TempOpController) TestStartOrEndOpStore() { // @Title 京西平台和其他平台商品的对比 // @Description 京西平台和其他平台商品的对比 // @Param token header string true "认证token" -// @Param vendorIDs formData string false "运营商ID列表(京东0 美团1 饿百3)" +// @Param vendorIDs formData string false "运营商ID列表(京东0 美团1 饿百3,14抖音,16淘宝)" // @Param storeIDs formData string false "京西门店ID列表" // @Success 200 {object} controllers.CallResult // @Failure 200 {object} controllers.CallResult @@ -295,7 +295,7 @@ func (c *TempOpController) CheckSkuDiffBetweenJxAndVendor() { // @Title 京西平台和其他平台商品的对比Test // @Description 对比Test // @Param token header string true "认证token" -// @Param vendorIDs formData string false "运营商ID列表(京东0 美团1 饿百3)" +// @Param vendorIDs formData string false "运营商ID列表(京东0 美团1 饿百3 14抖音 16淘宝)" // @Param storeIDs formData string false "京西门店ID列表" // @Success 200 {object} controllers.CallResult // @Failure 404 User not found @@ -305,7 +305,7 @@ func (c *TempOpController) StoreSkuCheckDiff() { var vendorIDList []int var storeIDList []int if err = jxutils.Strings2Objs(params.VendorIDs, &vendorIDList, params.StoreIDs, &storeIDList); err == nil { - cms.TestDiff(params.Ctx, vendorIDList, storeIDList) + } return retVal, "", err })