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 } else if model.IsSyncStatusNew(catInfo.CatSyncStatus) { // 新增 2
globals.SugarLogger.Debugf("=====新增ebai分类:===%s,", utils.Format4Output(catInfo, false))
err = handler.CreateStoreCategory(ctx, storeID, vendorStoreID, catInfo) err = handler.CreateStoreCategory(ctx, storeID, vendorStoreID, catInfo)
if err != nil && handler.IsErrCategoryExist(err) { if err != nil && handler.IsErrCategoryExist(err) {
if cat, err2 := handler.GetStoreCategory(ctx, storeID, vendorStoreID, catInfo.Name); err2 == nil { 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_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_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" 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" 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/platformapi/tiktok_shop/tiktok_api"
"git.rosy.net.cn/baseapi/utils" "git.rosy.net.cn/baseapi/utils"
@@ -149,8 +150,8 @@ func CreateOrUpdateAll(vendorOrgCode string, storeID, vendorStoreID int64) error
if bindFreightIDs == 0 { //1未查询到绑定信息不算错误 if bindFreightIDs == 0 { //1未查询到绑定信息不算错误
//创建 //创建
if freightTemplateID, err := CreateFreightTemplate(int(storeID)); err != nil || freightTemplateID == 0 || utils.IsNil(freightTemplateID) { if freightTemplateID, err := CreateFreightTemplate(int(storeID)); err != nil || freightTemplateID == 0 || utils.IsNil(freightTemplateID) {
globals.SugarLogger.Debug("创建运费模板失败:%v", err) globals.SugarLogger.Debug("京西菜市门店:%d 平台门店:%d 创建运费模板:%d 失败:%v", storeID, vendorStoreID, freightTemplateID, err)
errList.AddErr(fmt.Errorf("创建运费模板失败:%v", err)) errList.AddErr(fmt.Errorf("京西菜市门店:%d 平台门店:%d 创建运费模板:%d 失败:%v", storeID, vendorStoreID, freightTemplateID, err))
} else { //绑定 } else { //绑定
if err = ShopBindStoreFreight(vendorOrgCode, vendorStoreID, freightTemplateID); err != nil { if err = ShopBindStoreFreight(vendorOrgCode, vendorStoreID, freightTemplateID); err != nil {
globals.SugarLogger.Debug("京西菜市门店:%d 平台门店:%d 绑定运费模板:%d 失败:%v", storeID, vendorStoreID, freightTemplateID, err) 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 FreightTemplate.TemplateID = freightTemplateID
} }
} }
} else {
FreightTemplate.TemplateID = bindFreightIDs
} }
//2.平台获取仓库信息以及电子围栏id //2.平台获取仓库信息以及电子围栏id
@@ -191,13 +194,8 @@ func CreateOrUpdateAll(vendorOrgCode string, storeID, vendorStoreID int64) error
errList.AddErr(fmt.Errorf("门店(%d) 绑定电子围栏:%s失败:%v", storeID, fenceID, err)) errList.AddErr(fmt.Errorf("门店(%d) 绑定电子围栏:%s失败:%v", storeID, fenceID, err))
} else { } else {
FreightTemplate.FenceID = utils.Int64ToStr(storeID) 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 { } else {
//电子围栏二次验证 //电子围栏二次验证
if len(bindWarehouseAndFence[vendorStoreID][0].OutFenceIds) == 0 || utils.IsNil(bindWarehouseAndFence[vendorStoreID][0].OutFenceIds) { //未绑定电子围栏 if len(bindWarehouseAndFence[vendorStoreID][0].OutFenceIds) == 0 || utils.IsNil(bindWarehouseAndFence[vendorStoreID][0].OutFenceIds) { //未绑定电子围栏
@@ -211,14 +209,10 @@ func CreateOrUpdateAll(vendorOrgCode string, storeID, vendorStoreID int64) error
errList.AddErr(fmt.Errorf("门店(%d) 绑定电子围栏:%s失败:%v", storeID, fenceID, err)) errList.AddErr(fmt.Errorf("门店(%d) 绑定电子围栏:%s失败:%v", storeID, fenceID, err))
} else { } else {
FreightTemplate.FenceID = utils.Int64ToStr(storeID) 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.平台获取限售模板 //3.平台获取限售模板
@@ -240,6 +234,8 @@ func CreateOrUpdateAll(vendorOrgCode string, storeID, vendorStoreID int64) error
} }
} }
} }
//4.同步进数据库
FreightTemplate.DeletedAt = utils.DefaultTimeValue FreightTemplate.DeletedAt = utils.DefaultTimeValue
FreightTemplate = &model.FreightTemplate{ FreightTemplate = &model.FreightTemplate{
StoreID: int(storeID), StoreID: int(storeID),
@@ -299,7 +295,7 @@ func (P *PurchaseHandler) UpdateStore(db *dao.DaoDB, storeID int, userName strin
return err2 return err2
} }
if remoteStoreInfo.StoreDetail.Store.StoreId == 0 { 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) mergedStoreStatus := jxutils.MergeStoreStatus(storeInfo.Status, storeInfo.VendorStatus)
name = remoteStoreInfo.StoreDetail.Store.Name 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 { if err = UpdateFenceByStore(storeInfo.VendorOrgCode, outFenceID, storeID); err != nil {
return errors.New(fmt.Sprintf("更新电子围栏失败,原因:%v", err)) 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 { if err = dao.CreateEntity(db, FreightTemplate); err != nil {
globals.SugarLogger.Debug("db update storeID,vendorStoreID defeat on :%v", err) if _, err1 := dao.UpdateEntity(db, FreightTemplate, "FenceID"); err1 != nil {
errList.AddErr(fmt.Errorf("db update storeID,vendorStoreID defeat on :%v", err)) 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{ param := &trade_createTradeLimitTemplate_request.TradeCreateTradeLimitTemplateParam{
StoreId: vendorStoreID, StoreId: vendorStoreID,
TradeLimitRuleRequestList: []trade_createTradeLimitTemplate_request.TradeLimitRuleRequestListItem{ TradeLimitRuleRequestList: []trade_createTradeLimitTemplate_request.TradeLimitRuleRequestListItem{
@@ -658,13 +654,36 @@ func CreateAndBindMinPriceTemplate(vendorOrgCode string, vendorStoreID, minimum
} }
resp, err := getAPI(vendorOrgCode, 0, "").CreateTradeLimitTemplate(param) resp, err := getAPI(vendorOrgCode, 0, "").CreateTradeLimitTemplate(param)
if err != nil || resp.TradeLimitId == 0 { 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 { //绑定 } else { //绑定
if err := BindStoreSaleLimit(vendorOrgCode, vendorStoreID, resp.TradeLimitId); err != nil { 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 门店绑定限售模板 // /shop/bindStoreSaleLimit 门店绑定限售模板

View File

@@ -283,8 +283,23 @@ func SpecialTreat(vendorOrgCode string, vendorStoreID, storeID, deliveryFeeDeduc
errList.AddErr(fmt.Errorf("设置门店打包费失败:%v", err)) errList.AddErr(fmt.Errorf("设置门店打包费失败:%v", err))
} }
//设置门店起送价 默认为0 //设置门店起送价 默认为0
if err := CreateAndBindMinPriceTemplate(vendorOrgCode, vendorStoreID, minPrice); err != nil { bindSaleLimitID, err := GetStoreSaleLimit(vendorOrgCode, vendorStoreID)
errList.AddErr(fmt.Errorf("设置门店起送价失败:%v", err)) 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) err1 := dao.CreateEntity(db, FreightTemplate)
if err1 != nil { if err1 != nil {