From 6cc42492bf12e7369d04817fb07e673de3583a7b Mon Sep 17 00:00:00 2001 From: richboo111 Date: Fri, 4 Nov 2022 10:57:26 +0800 Subject: [PATCH] repair --- business/jxstore/cms/sync_store_sku.go | 1 - .../partner/purchase/tiktok_store/store.go | 65 ++++++++++++------- .../purchase/tiktok_store/warehouse.go | 19 +++++- 3 files changed, 59 insertions(+), 26 deletions(-) diff --git a/business/jxstore/cms/sync_store_sku.go b/business/jxstore/cms/sync_store_sku.go index dc4ff9099..d33bcb2a2 100644 --- a/business/jxstore/cms/sync_store_sku.go +++ b/business/jxstore/cms/sync_store_sku.go @@ -112,7 +112,6 @@ func SyncStoreCategories(ctx *jxcontext.Context, parentTask tasksch.ITask, vendo } } } else if model.IsSyncStatusNew(catInfo.CatSyncStatus) { // 新增 2 - globals.SugarLogger.Debugf("=====新增ebai分类:===%s,", utils.Format4Output(catInfo, false)) err = handler.CreateStoreCategory(ctx, storeID, vendorStoreID, catInfo) if err != nil && handler.IsErrCategoryExist(err) { if cat, err2 := handler.GetStoreCategory(ctx, storeID, vendorStoreID, catInfo.Name); err2 == nil { diff --git a/business/partner/purchase/tiktok_store/store.go b/business/partner/purchase/tiktok_store/store.go index bd9c96569..fcbd5b6f6 100644 --- a/business/partner/purchase/tiktok_store/store.go +++ b/business/partner/purchase/tiktok_store/store.go @@ -15,6 +15,7 @@ import ( shop_getStoreDetail_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/shop_getStoreDetail/request" shop_storeSuspend_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/shop_storeSuspend/request" shop_unsuspendStore_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/shop_unsuspendStore/request" + trade_UpdateTradeLimitTemplate_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/trade_UpdateTradeLimitTemplate/request" trade_createTradeLimitTemplate_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/trade_createTradeLimitTemplate/request" "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/tiktok_api" "git.rosy.net.cn/baseapi/utils" @@ -149,8 +150,8 @@ func CreateOrUpdateAll(vendorOrgCode string, storeID, vendorStoreID int64) error if bindFreightIDs == 0 { //(1)未查询到绑定信息,不算错误 //创建 if freightTemplateID, err := CreateFreightTemplate(int(storeID)); err != nil || freightTemplateID == 0 || utils.IsNil(freightTemplateID) { - globals.SugarLogger.Debug("创建运费模板失败:%v", err) - errList.AddErr(fmt.Errorf("创建运费模板失败:%v", err)) + globals.SugarLogger.Debug("京西菜市门店:%d 平台门店:%d 创建运费模板:%d 失败:%v", storeID, vendorStoreID, freightTemplateID, err) + errList.AddErr(fmt.Errorf("京西菜市门店:%d 平台门店:%d 创建运费模板:%d 失败:%v", storeID, vendorStoreID, freightTemplateID, err)) } else { //绑定 if err = ShopBindStoreFreight(vendorOrgCode, vendorStoreID, freightTemplateID); err != nil { globals.SugarLogger.Debug("京西菜市门店:%d 平台门店:%d 绑定运费模板:%d 失败:%v", storeID, vendorStoreID, freightTemplateID, err) @@ -159,6 +160,8 @@ func CreateOrUpdateAll(vendorOrgCode string, storeID, vendorStoreID int64) error FreightTemplate.TemplateID = freightTemplateID } } + } else { + FreightTemplate.TemplateID = bindFreightIDs } //2.平台获取仓库信息以及电子围栏id @@ -191,12 +194,7 @@ func CreateOrUpdateAll(vendorOrgCode string, storeID, vendorStoreID int64) error errList.AddErr(fmt.Errorf("门店(%d) 绑定电子围栏:%s失败:%v", storeID, fenceID, err)) } else { FreightTemplate.FenceID = utils.Int64ToStr(storeID) - if err := dao.CreateEntity(db, FreightTemplate); err != nil { - globals.SugarLogger.Debug("电子围栏ID(%s) 同步到数据库失败:%v", fenceID, err) - errList.AddErr(fmt.Errorf("电子围栏ID(%s) 同步到数据库失败:%v", fenceID, err)) - } } - FreightTemplate.FenceID = utils.Int64ToStr(storeID) } } else { //电子围栏二次验证 @@ -211,14 +209,10 @@ func CreateOrUpdateAll(vendorOrgCode string, storeID, vendorStoreID int64) error errList.AddErr(fmt.Errorf("门店(%d) 绑定电子围栏:%s失败:%v", storeID, fenceID, err)) } else { FreightTemplate.FenceID = utils.Int64ToStr(storeID) - if err := dao.CreateEntity(db, FreightTemplate); err != nil { - globals.SugarLogger.Debug("电子围栏ID(%s) 同步到数据库失败:%v", fenceID, err) - errList.AddErr(fmt.Errorf("电子围栏ID(%s) 同步到数据库失败:%v", fenceID, err)) - } } - FreightTemplate.FenceID = utils.Int64ToStr(storeID) } } + } //3.平台获取限售模板 @@ -240,6 +234,8 @@ func CreateOrUpdateAll(vendorOrgCode string, storeID, vendorStoreID int64) error } } } + + //4.同步进数据库 FreightTemplate.DeletedAt = utils.DefaultTimeValue FreightTemplate = &model.FreightTemplate{ StoreID: int(storeID), @@ -299,7 +295,7 @@ func (P *PurchaseHandler) UpdateStore(db *dao.DaoDB, storeID int, userName strin return err2 } if remoteStoreInfo.StoreDetail.Store.StoreId == 0 { - return fmt.Errorf("ID:%d 的门店不存在,请先创建", utils.Str2Int64(storeInfo.VendorStoreID)) + return fmt.Errorf("ID(%d) 的门店不存在,请先创建", utils.Str2Int64(storeInfo.VendorStoreID)) } mergedStoreStatus := jxutils.MergeStoreStatus(storeInfo.Status, storeInfo.VendorStatus) name = remoteStoreInfo.StoreDetail.Store.Name @@ -361,12 +357,12 @@ func (P *PurchaseHandler) UpdateStore(db *dao.DaoDB, storeID int, userName strin if err = UpdateFenceByStore(storeInfo.VendorOrgCode, outFenceID, storeID); err != nil { return errors.New(fmt.Sprintf("更新电子围栏失败,原因:%v", err)) } - if _, err = dao.UpdateEntity(db, FreightTemplate, "FenceID"); err != nil { - errList.AddErr(fmt.Errorf("同步进数据库错误信息:%v", err)) - } else { - if err = dao.CreateEntity(db, FreightTemplate); err != nil { - globals.SugarLogger.Debug("db update storeID,vendorStoreID defeat on :%v", err) - errList.AddErr(fmt.Errorf("db update storeID,vendorStoreID defeat on :%v", err)) + if err = dao.CreateEntity(db, FreightTemplate); err != nil { + if _, err1 := dao.UpdateEntity(db, FreightTemplate, "FenceID"); err1 != nil { + globals.SugarLogger.Debug("db update storeID,vendorStoreID defeat on :%v", err1) + errList.AddErr(fmt.Errorf("同步进数据库错误信息:%v", err1)) + } else { + errList.AddErr(fmt.Errorf("同步进数据库错误信息:%v", err)) } } } @@ -635,7 +631,7 @@ func CreateTradeLimitTemplate(appOrgCode string, vendorStoreID int64) (tradeLimi } //创建起送价的 运费模板以及绑定 -func CreateAndBindMinPriceTemplate(vendorOrgCode string, vendorStoreID, minimum int64) error { +func CreateAndBindMinPriceTemplate(vendorOrgCode string, vendorStoreID, minimum int64) (int64, error) { param := &trade_createTradeLimitTemplate_request.TradeCreateTradeLimitTemplateParam{ StoreId: vendorStoreID, TradeLimitRuleRequestList: []trade_createTradeLimitTemplate_request.TradeLimitRuleRequestListItem{ @@ -658,13 +654,36 @@ func CreateAndBindMinPriceTemplate(vendorOrgCode string, vendorStoreID, minimum } resp, err := getAPI(vendorOrgCode, 0, "").CreateTradeLimitTemplate(param) if err != nil || resp.TradeLimitId == 0 { - return errors.New(fmt.Sprintf("创建门店(%d)的起送价失败:%v", vendorStoreID, err)) + return 0, errors.New(fmt.Sprintf("创建门店(%d)的起送价失败:%v", vendorStoreID, err)) } else { //绑定 if err := BindStoreSaleLimit(vendorOrgCode, vendorStoreID, resp.TradeLimitId); err != nil { - return errors.New(fmt.Sprintf("门店(%d)绑定 起送价限售模板失败:%v", vendorStoreID, err)) + return 0, errors.New(fmt.Sprintf("门店(%d)绑定 起送价限售模板失败:%v", vendorStoreID, err)) } } - return nil + return resp.TradeLimitId, nil +} + +// /trade/UpdateTradeLimitTemplate 更新限售模板 目前只做起送价 +func UpdateTradeLimitTemplate(vendorOrgCode string, tradeLimitID, minPrice int64) (int64, error) { + param := &trade_UpdateTradeLimitTemplate_request.TradeUpdateTradeLimitTemplateParam{ + TradeLimitTemplateId: tradeLimitID, + TradeLimitRuleRequestList: []trade_UpdateTradeLimitTemplate_request.TradeLimitRuleRequestListItem{ + { + TradeLimitModel: tiktok_api.TradeLimitModelMoney, + TradeLimitPattern: &trade_UpdateTradeLimitTemplate_request.TradeLimitPattern{ + Minimum: minPrice, + }, + }, + }, + } + updateTradeLimit, err := getAPI(vendorOrgCode, 0, "").UpdateTradeLimitTemplate(param) + if err != nil { + return 0, err + } + if updateTradeLimit.TradeLimitTemplateId == 0 { + return 0, errors.New(fmt.Sprintf("更新操作返回的TradeLimitTemplateId=0")) + } + return updateTradeLimit.TradeLimitTemplateId, nil } // /shop/bindStoreSaleLimit 门店绑定限售模板 diff --git a/business/partner/purchase/tiktok_store/warehouse.go b/business/partner/purchase/tiktok_store/warehouse.go index 23595beea..bd5f69fb8 100644 --- a/business/partner/purchase/tiktok_store/warehouse.go +++ b/business/partner/purchase/tiktok_store/warehouse.go @@ -283,8 +283,23 @@ func SpecialTreat(vendorOrgCode string, vendorStoreID, storeID, deliveryFeeDeduc errList.AddErr(fmt.Errorf("设置门店打包费失败:%v", err)) } //设置门店起送价 默认为0 - if err := CreateAndBindMinPriceTemplate(vendorOrgCode, vendorStoreID, minPrice); err != nil { - errList.AddErr(fmt.Errorf("设置门店起送价失败:%v", err)) + bindSaleLimitID, err := GetStoreSaleLimit(vendorOrgCode, vendorStoreID) + if err != nil { + errList.AddErr(fmt.Errorf("获取门店限售模板失败:%v", err)) + } else { + if bindSaleLimitID == 0 || utils.IsNil(bindSaleLimitID) { //创建 + if createSaleLimitID, err := CreateAndBindMinPriceTemplate(vendorOrgCode, vendorStoreID, minPrice); err != nil { + errList.AddErr(fmt.Errorf("设置门店起送价限售模板失败:%v", err)) + } else { + FreightTemplate.TradeLimitID = createSaleLimitID + } + } else { //更新为起送价模板 + if updateSaleLimitID, err := UpdateTradeLimitTemplate(vendorOrgCode, bindSaleLimitID, minPrice); err != nil { + errList.AddErr(fmt.Errorf("更新门店起送价限售模板失败:%v", err)) + } else { + FreightTemplate.TradeLimitID = updateSaleLimitID + } + } } err1 := dao.CreateEntity(db, FreightTemplate) if err1 != nil {