This commit is contained in:
邹宗楠
2022-11-04 19:57:22 +08:00
parent 54e57f9c8a
commit 2c0e3b64cb
2 changed files with 54 additions and 25 deletions

View File

@@ -178,7 +178,7 @@ func CreateOrUpdateAll(vendorOrgCode string, storeID, vendorStoreID int64) error
if err != nil || warehouseID == 0 || utils.IsNil(warehouseID) {
globals.SugarLogger.Debugf("门店(%d) 创建仓库失败:%v", storeID, err)
errList.AddErr(fmt.Errorf("门店(%d) 创建仓库失败:%v", storeID, err))
} else { //绑定
} else { //绑定
if err = BindStoreWarehouse(vendorOrgCode, utils.Int64ToStr(storeID), vendorStoreID); err != nil { //仓库绑定通过自定义外部ID
globals.SugarLogger.Debugf("门店(%d) 绑定仓库:%d 失败:%v", storeID, warehouseID, err)
errList.AddErr(fmt.Errorf("门店(%d) 绑定仓库:%d 失败:%v", storeID, warehouseID, err))

View File

@@ -5,6 +5,7 @@ import (
"errors"
"fmt"
"git.rosy.net.cn/baseapi/platformapi/mtwmapi"
freightTemplate_create_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/freightTemplate_create/request"
product_addV2_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/product_addV2/request"
product_detail_response "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/product_detail/response"
product_editV2_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/product_editV2/request"
@@ -23,6 +24,7 @@ import (
"git.rosy.net.cn/jx-callback/business/partner"
"git.rosy.net.cn/jx-callback/business/partner/putils"
"git.rosy.net.cn/jx-callback/globals"
"math/rand"
"strings"
)
@@ -207,7 +209,7 @@ func (p *PurchaseHandler) createOrUpdateStoreSkus(ctx *jxcontext.Context, storeI
temp, err := dao.QueryStoreBindInfo(storeDetail.ID)
if err != nil || temp == nil || temp.TemplateID == 0 {
// 运费模板
param.FreightId, err = GetDeliveryTemp(api, vendorStoreID, storeDetail, temp)
param.FreightId, err = GetDeliveryTemp(api, vendorStoreID, storeDetail)
if err != nil {
return nil, err
}
@@ -382,43 +384,70 @@ func CreateSaleTemp(storeId int64, api *tiktokShop.API) (int64, error) {
}
// GetDeliveryTemp 获取运费模板id,运费模板不存在则创建
func GetDeliveryTemp(api *tiktokShop.API, vendorStoreID string, storeDetail *dao.StoreDetail, tempObj *model.FreightTemplate) (int64, error) {
func GetDeliveryTemp(api *tiktokShop.API, vendorStoreID string, storeDetail *dao.StoreDetail) (int64, error) {
// 没有模板是查询线上模板
freightId, _ := api.GetStoreBindTemp(utils.Str2Int64(vendorStoreID))
if freightId == 0 {
freightId, err := CreateFreightTemplate(storeDetail.Store.ID)
// 创建门店运费模板
productProvince := utils.Str2Int64(utils.Int2Str(storeDetail.ProvinceCode)[0:2])
tempDetail := &freightTemplate_create_request.FreightTemplateCreateParam{
Template: &freightTemplate_create_request.Template{
TemplateName: storeDetail.Name + utils.Int64ToStr(rand.Int63n(int64(storeDetail.ID))),
ProductProvince: productProvince,
ProductCity: int64(storeDetail.CityCode),
CalculateType: 2,
TransferType: 1, // 快递方式-1.快递 目前仅支持1
RuleType: 1, // 模板类型-0:阶梯计价 1:固定运费 2:卖家包邮 3:货到付款
FixedAmount: 500, //固定运费 单位:分
},
}
Columns := []freightTemplate_create_request.ColumnsItem{
{
RuleAddress: fmt.Sprintf(`{"%d":{"%s":{"%s":nil}}}`, productProvince, utils.Int2Str(storeDetail.CityCode), utils.Int2Str(storeDetail.DistrictCode)),
IsOverFree: true,
OverAmount: int64(storeDetail.DeliveryFeeDeductionSill),
ProvinceInfos: []freightTemplate_create_request.ProvinceInfosItem{
{
Id: productProvince,
Children: []freightTemplate_create_request.ChildrenItem_4{
{
Id: int64(storeDetail.CityCode),
Children: []freightTemplate_create_request.ChildrenItem_5{
{
Id: int64(storeDetail.DistrictCode),
Children: nil,
},
},
},
}},
},
},
}
// 固定运费模板
if storeDetail.DeliveryFeeDeductionSill == 0 {
tempDetail.Template.TemplateName += "固定运费模板"
} else {
// 满减运费模板
tempDetail.Template.TemplateName += "满减运费模板"
tempDetail.Columns = Columns // 满减
}
temp, err := api.FreightTemplateCreate(tempDetail)
if err != nil {
return 0, err
}
// 绑定门店运费模板
if err = api.BindFreightTemplate(&shop_bindStoreFreight_request.ShopBindStoreFreightParam{
StoreId: utils.Str2Int64(vendorStoreID),
FreightId: freightId,
FreightId: temp.TemplateId,
}); err != nil {
globals.SugarLogger.Debugf("BindFreightTemplate =err %s", err)
return 0, err
}
// 保存到数据库
if tempObj == nil {
param := &model.FreightTemplate{
StoreID: 0,
VendorStoreID: "",
TemplateID: 0,
WarehouseID: 0,
FenceID: "",
TradeLimitID: 0,
}
dao.WrapUpdateULEntity(param, "jxAdmin")
if err := dao.CreateEntity(dao.GetDB(), param); err != nil {
globals.SugarLogger.Debugf("==================err %s", err.Error())
}
} else {
if err := dao.InsertIntoFreightTemplate(storeDetail.Store.ID, storeDetail.VendorStoreID, freightId, 0, 0, 0); err != nil {
globals.SugarLogger.Debugf("==================err %s", err.Error())
}
}
freightId = temp.TemplateId
dao.InsertIntoFreightTemplate(storeDetail.Store.ID, storeDetail.VendorStoreID, freightId, 0, 0, 0)
}
globals.SugarLogger.Debugf("freightId =last %d", freightId)
return freightId, nil
}