This commit is contained in:
richboo111
2022-11-04 10:57:26 +08:00
parent 1d4b506f38
commit 6cc42492bf
3 changed files with 59 additions and 26 deletions

View File

@@ -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 {

View File

@@ -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 门店绑定限售模板

View File

@@ -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 {