From a2c3bf2238c20bbea169ad9fcdc6ba1ffd9b69a5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Thu, 25 Jan 2024 11:37:20 +0800 Subject: [PATCH] 1 --- business/jxstore/cms/system_store_sku.go | 272 +++++++++++------------ business/partner/purchase/mtwm/order.go | 3 +- controllers/cms_store_sku.go | 2 +- controllers/taobao_vegetable.go | 34 +-- 4 files changed, 157 insertions(+), 154 deletions(-) diff --git a/business/jxstore/cms/system_store_sku.go b/business/jxstore/cms/system_store_sku.go index 6f8707764..00dce9bcd 100644 --- a/business/jxstore/cms/system_store_sku.go +++ b/business/jxstore/cms/system_store_sku.go @@ -1,155 +1,149 @@ package cms import ( - "fmt" - "git.rosy.net.cn/baseapi/platformapi/ebaiapi" - "git.rosy.net.cn/jx-callback/business/model" - "git.rosy.net.cn/jx-callback/business/partner" "git.rosy.net.cn/jx-callback/globals" - beego "github.com/astaxie/beego/server/web" "time" "git.rosy.net.cn/baseapi/platformapi/mtwmapi" "git.rosy.net.cn/baseapi/utils" "git.rosy.net.cn/jx-callback/business/jxutils/jxcontext" - "git.rosy.net.cn/jx-callback/business/jxutils/tasksch" - "git.rosy.net.cn/jx-callback/business/model/dao" ) // CopyOnStoreSkuToOther 将一个美团门店分类和商品复制到另一个门店 func CopyOnStoreSkuToOther(ctx *jxcontext.Context, fromStoreId, toStoreId string, vendorId int, isAsync bool, offSet int) (hint string, err error) { - var ( - db = dao.GetDB() - ) - - fromStoreDetail, _ := dao.GetStoreDetailByVendorStoreID(db, fromStoreId, vendorId, "") - if fromStoreDetail == nil { - return "", fmt.Errorf("%s,平台门店id未获取到", fromStoreId) - } - if fromStoreDetail.VendorOrgCode == globals.Mtwm2Code { - fromAPI := partner.CurAPIManager.GetAPI(vendorId, fromStoreDetail.VendorOrgCode).(*mtwmapi.API) - fromAPI.SetToken(fromStoreDetail.MtwmToken) - } else { - switch vendorId { - case model.VendorIDMTWM: - fromAPI = partner.CurAPIManager.GetAPI(vendorId, fromStoreDetail.VendorOrgCode).(*mtwmapi.API) - case model.VendorIDEBAI: - fromAPI = partner.CurAPIManager.GetAPI(vendorId, fromStoreDetail.VendorOrgCode).(*ebaiapi.API) - } - } - - toStoreDetail, _ := dao.GetStoreDetailByVendorStoreID(db, toStoreId, vendorId, "") - if toStoreDetail == nil { - return "", fmt.Errorf("%s,平台门店id未获取到", fromStoreId) - } - if toStoreDetail.VendorOrgCode == globals.Mtwm2Code { - toAPI := partner.CurAPIManager.GetAPI(vendorId, toStoreDetail.VendorOrgCode).(*mtwmapi.API) - toAPI.SetToken(fromStoreDetail.MtwmToken) - } - - apiObj := partner.CurAPIManager.GetAPI(vendorId, appOrgCode).(*mtwmapi.API) - if appOrgCode == globals.Mtwm2Code { - var storeDetail *dao.StoreDetail - if storeID != 0 { - storeDetail, _ = dao.GetStoreDetail(db, storeID, vendorId, appOrgCode) - } else if vendorStoreID != "" { - storeDetail, _ = dao.GetStoreDetailByVendorStoreID(db, vendorStoreID, vendorId, appOrgCode) - } - if storeDetail != nil { - apiObj.SetToken(storeDetail.MtwmToken) - } - } - - // 门店api加载 - toStore, err := dao.GetStoreDetailByVendorStoreID(db, toStoreId, vendorId, "") - if err != nil { - return "", err - } - toApi := mtwmapi.New(beego.AppConfig.DefaultString("mtwmAppID2", ""), beego.AppConfig.DefaultString("mtwmSecret2", ""), beego.AppConfig.DefaultString("mtwmCallbackURL2", ""), "") - toApi.SetToken(toStore.MtwmToken) - - fromStore, err := dao.GetStoreDetailByVendorStoreID(db, fromStoreId, vendorId, "") - if err != nil { - return "", err - } - fromApi := mtwmapi.New(beego.AppConfig.DefaultString("mtwmAppID2", ""), beego.AppConfig.DefaultString("mtwmSecret2", ""), beego.AppConfig.DefaultString("mtwmCallbackURL2", ""), "") - fromApi.SetToken(fromStore.MtwmToken) - - taskName := fmt.Sprintf("将平台门店[%s],分类和商品复制到[%s]", fromStoreId, toStoreId) - config := tasksch.NewParallelConfig().SetParallelCount(1).SetIsContinueWhenError(false) - work := func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) { - step := batchItemList[0].(int) - switch step { - // case 1: - // 1.加载门店商品,删除商品.当分类下没有商品时.删除分类 - // errs := LoadingStoreSkuList(ctx, toApi, toStore.VendorStoreID) - //if errs != nil && len(errs) > 0 { - // return nil, errs[0] - //} - case 1: - handler, _ := partner.GetPurchasePlatformFromVendorID(vendorId).(partner.ISingleStoreStoreSkuHandler) - if handler == nil { - return nil, fmt.Errorf(model.VendorChineseNames[vendorId] + ":不存在此平台") - } - fromCategory, err := handler.GetStoreAllCategories(ctx, fromStore.ID, fromStore.VendorStoreID) - - // 同步分类 - fromCategoryList, err := fromApi.RetailCatList(utils.Int2Str(fromVendorStoreId)) - //globals.SugarLogger.Debugf("err ============ %v", err) - //for _, v := range fromCategoryList { - // categoryErr := toApi.RetailCatUpdate(toStore.VendorStoreID, v.Name, &mtwmapi.Param4UpdateCat{ - // CategoryCode: v.Code, - // Sequence: v.Sequence, - // }) - // if categoryErr != nil { - // globals.SugarLogger.Debugf("err := RetailCatUpdate : %v", categoryErr) - // } - // if v.Children != nil && len(v.Children) != 0 { - // for _, c := range v.Children { - // if err3 := toApi.RetailCatUpdate(toStore.VendorStoreID, v.Name, &mtwmapi.Param4UpdateCat{ - // CategoryNameOrigin: v.Name, - // //CategoryCodeOrigin: v.Code, - // //CategoryCode: v.Code, - // SecondaryCategoryCode: c.Code, - // SecondaryCategoryName: c.Name, - // Sequence: c.Sequence, - // }); err3 != nil { - // globals.SugarLogger.Debugf("err := RetailCatUpdate Children : %v", err3) - // } - // } - // } - //} - - case 2: - i := offSet - for { - // 同步商品 - fromFoodList, err1 := fromApi.RetailListAll(fromStoreId, i) - if len(fromFoodList) == 0 || fromFoodList == nil { - return nil, fmt.Errorf("fromFoodList 为空 %s ,i:= %d", utils.Format4Output(err1, false), i) - } - - if err := BatchInitData(ctx, fromFoodList, toApi, toStore.VendorStoreID, i); err != nil { - globals.SugarLogger.Debugf("BatchInitData : %s", utils.Format4Output(err, false)) - } - if len(fromFoodList) < 100 { - break - } - i++ - } - - } - return - } - task := tasksch.NewParallelTask(taskName, config, ctx, work, []int{1, 2}) - tasksch.HandleTask(task, nil, true).Run() - if !isAsync { - _, err = task.GetResult(0) - hint = "1" - } else { - hint = task.ID - } - return hint, err + return "", err + //var ( + // db = dao.GetDB() + //) + // + //fromStoreDetail, _ := dao.GetStoreDetailByVendorStoreID(db, fromStoreId, vendorId, "") + //if fromStoreDetail == nil { + // return "", fmt.Errorf("%s,平台门店id未获取到", fromStoreId) + //} + //if fromStoreDetail.VendorOrgCode == globals.Mtwm2Code { + // fromAPI := partner.CurAPIManager.GetAPI(vendorId, fromStoreDetail.VendorOrgCode).(*mtwmapi.API) + // fromAPI.SetToken(fromStoreDetail.MtwmToken) + //} else { + // switch vendorId { + // case model.VendorIDMTWM: + // fromAPI = partner.CurAPIManager.GetAPI(vendorId, fromStoreDetail.VendorOrgCode).(*mtwmapi.API) + // case model.VendorIDEBAI: + // fromAPI = partner.CurAPIManager.GetAPI(vendorId, fromStoreDetail.VendorOrgCode).(*ebaiapi.API) + // } + //} + // + //toStoreDetail, _ := dao.GetStoreDetailByVendorStoreID(db, toStoreId, vendorId, "") + //if toStoreDetail == nil { + // return "", fmt.Errorf("%s,平台门店id未获取到", fromStoreId) + //} + //if toStoreDetail.VendorOrgCode == globals.Mtwm2Code { + // toAPI := partner.CurAPIManager.GetAPI(vendorId, toStoreDetail.VendorOrgCode).(*mtwmapi.API) + // toAPI.SetToken(fromStoreDetail.MtwmToken) + //} + // + //apiObj := partner.CurAPIManager.GetAPI(vendorId, appOrgCode).(*mtwmapi.API) + //if appOrgCode == globals.Mtwm2Code { + // var storeDetail *dao.StoreDetail + // if storeID != 0 { + // storeDetail, _ = dao.GetStoreDetail(db, storeID, vendorId, appOrgCode) + // } else if vendorStoreID != "" { + // storeDetail, _ = dao.GetStoreDetailByVendorStoreID(db, vendorStoreID, vendorId, appOrgCode) + // } + // if storeDetail != nil { + // apiObj.SetToken(storeDetail.MtwmToken) + // } + //} + // + //// 门店api加载 + //toStore, err := dao.GetStoreDetailByVendorStoreID(db, toStoreId, vendorId, "") + //if err != nil { + // return "", err + //} + //toApi := mtwmapi.New(beego.AppConfig.DefaultString("mtwmAppID2", ""), beego.AppConfig.DefaultString("mtwmSecret2", ""), beego.AppConfig.DefaultString("mtwmCallbackURL2", ""), "") + //toApi.SetToken(toStore.MtwmToken) + // + //fromStore, err := dao.GetStoreDetailByVendorStoreID(db, fromStoreId, vendorId, "") + //if err != nil { + // return "", err + //} + //fromApi := mtwmapi.New(beego.AppConfig.DefaultString("mtwmAppID2", ""), beego.AppConfig.DefaultString("mtwmSecret2", ""), beego.AppConfig.DefaultString("mtwmCallbackURL2", ""), "") + //fromApi.SetToken(fromStore.MtwmToken) + // + //taskName := fmt.Sprintf("将平台门店[%s],分类和商品复制到[%s]", fromStoreId, toStoreId) + //config := tasksch.NewParallelConfig().SetParallelCount(1).SetIsContinueWhenError(false) + //work := func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) { + // step := batchItemList[0].(int) + // switch step { + // // case 1: + // // 1.加载门店商品,删除商品.当分类下没有商品时.删除分类 + // // errs := LoadingStoreSkuList(ctx, toApi, toStore.VendorStoreID) + // //if errs != nil && len(errs) > 0 { + // // return nil, errs[0] + // //} + // case 1: + // handler, _ := partner.GetPurchasePlatformFromVendorID(vendorId).(partner.ISingleStoreStoreSkuHandler) + // if handler == nil { + // return nil, fmt.Errorf(model.VendorChineseNames[vendorId] + ":不存在此平台") + // } + // fromCategory, err := handler.GetStoreAllCategories(ctx, fromStore.ID, fromStore.VendorStoreID) + // + // // 同步分类 + // fromCategoryList, err := fromApi.RetailCatList(utils.Int2Str(fromVendorStoreId)) + // //globals.SugarLogger.Debugf("err ============ %v", err) + // //for _, v := range fromCategoryList { + // // categoryErr := toApi.RetailCatUpdate(toStore.VendorStoreID, v.Name, &mtwmapi.Param4UpdateCat{ + // // CategoryCode: v.Code, + // // Sequence: v.Sequence, + // // }) + // // if categoryErr != nil { + // // globals.SugarLogger.Debugf("err := RetailCatUpdate : %v", categoryErr) + // // } + // // if v.Children != nil && len(v.Children) != 0 { + // // for _, c := range v.Children { + // // if err3 := toApi.RetailCatUpdate(toStore.VendorStoreID, v.Name, &mtwmapi.Param4UpdateCat{ + // // CategoryNameOrigin: v.Name, + // // //CategoryCodeOrigin: v.Code, + // // //CategoryCode: v.Code, + // // SecondaryCategoryCode: c.Code, + // // SecondaryCategoryName: c.Name, + // // Sequence: c.Sequence, + // // }); err3 != nil { + // // globals.SugarLogger.Debugf("err := RetailCatUpdate Children : %v", err3) + // // } + // // } + // // } + // //} + // + // case 2: + // i := offSet + // for { + // // 同步商品 + // fromFoodList, err1 := fromApi.RetailListAll(fromStoreId, i) + // if len(fromFoodList) == 0 || fromFoodList == nil { + // return nil, fmt.Errorf("fromFoodList 为空 %s ,i:= %d", utils.Format4Output(err1, false), i) + // } + // + // if err := BatchInitData(ctx, fromFoodList, toApi, toStore.VendorStoreID, i); err != nil { + // globals.SugarLogger.Debugf("BatchInitData : %s", utils.Format4Output(err, false)) + // } + // if len(fromFoodList) < 100 { + // break + // } + // i++ + // } + // + // } + // return + //} + //task := tasksch.NewParallelTask(taskName, config, ctx, work, []int{1, 2}) + //tasksch.HandleTask(task, nil, true).Run() + //if !isAsync { + // _, err = task.GetResult(0) + // hint = "1" + //} else { + // hint = task.ID + //} + //return hint, err } func LoadingStoreSkuList(ctx *jxcontext.Context, api *mtwmapi.API, poiCode string) (err []error) { diff --git a/business/partner/purchase/mtwm/order.go b/business/partner/purchase/mtwm/order.go index 02f6b66db..26e415b29 100644 --- a/business/partner/purchase/mtwm/order.go +++ b/business/partner/purchase/mtwm/order.go @@ -537,7 +537,7 @@ func (c *PurchaseHandler) PickupGoods(order *model.GoodsOrder, isSelfDelivery bo // 美团专送、快送、混合送、美团企客 logisticsCode := utils.Interface2String(orderDetail["logistics_code"]) - isSelfDelivery = logisticsCode == mtwmapi.PeiSongTypeMTZSJM || logisticsCode == mtwmapi.PeiSongTypeMTZSZJ || logisticsCode == mtwmapi.PeiSongTypeKuaiDi || logisticsCode == mtwmapi.PeiSongTypeMixed || logisticsCode == mtwmapi.PeiSongTypeQiKe + isSelfDelivery = logisticsCode == mtwmapi.PeiSongTypeMTZSJM || logisticsCode == mtwmapi.PeiSongTypeMTZSZJ || logisticsCode == mtwmapi.PeiSongTypeKuaiDi || logisticsCode == mtwmapi.PeiSongTypeMixed || logisticsCode == mtwmapi.PeiSongTypeQiKe || logisticsCode == mtwmapi.PeiSongTypeMixedExpressQiKe //1001-专送(加盟);1002-专送(自建) //2002-快送;3001-混合送(专送+快送) //4015-企客远距离配送 @@ -554,6 +554,7 @@ func (c *PurchaseHandler) PickupGoods(order *model.GoodsOrder, isSelfDelivery bo //PeiSongTypeKuaiDi = "2002" // 快送 //PeiSongTypeWholeCity = "2010" // 全城送 //PeiSongTypeMixed = "3001" // 混合送(即美团专送+快送) + //PeiSongTypeMixedExpressQiKe // 混合快送 if isSelfDelivery { err = api.PreparationMealComplete(utils.Str2Int64(order.VendorOrderID)) } diff --git a/controllers/cms_store_sku.go b/controllers/cms_store_sku.go index 698414496..01a125d97 100644 --- a/controllers/cms_store_sku.go +++ b/controllers/cms_store_sku.go @@ -1057,7 +1057,7 @@ func (c *StoreSkuController) CopyMtToJd() { // @router /CopyMtToMt [post] func (c *StoreSkuController) CopyMtToMt() { c.callCopyMtToMt(func(params *tStoreSkuCopyMtToMtParams) (retVal interface{}, errCode string, err error) { - retVal, err = cms.CopyOnStoreSkuToOther(params.Ctx, params.FromStoreID, params.ToStoreID, false, params.OffSet) + //retVal, err = cms.CopyOnStoreSkuToOther(params.Ctx, params.FromStoreID, params.ToStoreID, false, params.OffSet) return retVal, errCode, err }) } diff --git a/controllers/taobao_vegetable.go b/controllers/taobao_vegetable.go index 5301e8b72..809fdf278 100644 --- a/controllers/taobao_vegetable.go +++ b/controllers/taobao_vegetable.go @@ -3,12 +3,6 @@ package controllers import ( "crypto/md5" "fmt" - "io/ioutil" - "net/http" - "net/url" - "sort" - "strings" - "git.rosy.net.cn/baseapi/platformapi/tao_vegetable" "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/tiktok_api" "git.rosy.net.cn/baseapi/utils" @@ -18,6 +12,11 @@ import ( taoVegetable "git.rosy.net.cn/jx-callback/business/partner/purchase/tao_vegetable" "git.rosy.net.cn/jx-callback/globals/api" "github.com/astaxie/beego/server/web" + "io/ioutil" + "net/http" + "net/url" + "sort" + "strings" ) type TaoBaoVegetableController struct { @@ -225,18 +224,27 @@ func (c *TaoBaoVegetableController) CancelOnSaleRefundOrder() { return } default: - //callbackResponse := taoVegetable.OnCallbackMsg(tao_vegetable.OrderStatusOnSaleCancel, utils.Int64ToStr(afsOrder.PartCancelRequest.BizOrderId), afsOrder) - //c.Data["json"] = callbackResponse order, err := partner.CurOrderManager.LoadOrder(utils.Int64ToStr(afsOrder.PartCancelRequest.BizOrderId), model.VendorIDTaoVegetable) - if err != nil || order.Status >= model.OrderStatusDelivering { - c.Data["json"] = tao_vegetable.CallBackResultOnSaleCancel(fmt.Errorf("不支持售中取消")) - c.ServeJSON() - } else { + if err != nil { c.Data["json"] = tao_vegetable.CallBackResultOnSaleCancel(nil) c.ServeJSON() + return } - return + if order.Status < model.OrderStatusDelivering || order.Status == model.OrderStatusCanceled { + if order.Status == model.OrderStatusCanceled { + c.Data["json"] = tao_vegetable.CallBackResultOnSaleCancel(nil) + c.ServeJSON() + } + + if order.Status >= model.OrderStatusDelivering { + c.Data["json"] = tao_vegetable.CallBackResultOnSaleCancel(fmt.Errorf("不支持售中取消")) + c.ServeJSON() + } else { + c.Data["json"] = tao_vegetable.CallBackResultOnSaleCancel(nil) + c.ServeJSON() + } + } } }