Merge branch 'jdshop' of e.coding.net:rosydev/jx-callback into jdshop

This commit is contained in:
邹宗楠
2022-11-24 15:02:20 +08:00
5 changed files with 240 additions and 228 deletions

View File

@@ -6059,3 +6059,28 @@ func AssistCreateFence(relInfo map[string][]tiktok_store.RelInfo) (string, error
} }
return "", nil return "", nil
} }
//批量创建包邮运费模板
func BatchCreateFreeShipTemplate(relInfo map[string][]tiktok_store.RelInfo, shipFee int64) (string, error) {
errList := errlist.New()
for k, v := range relInfo {
for _, i := range v {
if bindFreightID, err := tiktok_store.GetStoreFreight(k, utils.Str2Int64(i.VendorStoreID)); err != nil || bindFreightID == 0 || utils.IsNil(bindFreightID) {
if err := tiktok_store.CreateBindFreeShipTemplate(utils.Str2Int(i.StoreID), shipFee); err != nil {
errList.AddErr(err)
}
} else {
globals.SugarLogger.Debugf("进入更新包邮模板操作")
if err := tiktok_store.ShopBindStoreFreight(k, utils.Str2Int64(i.VendorStoreID), bindFreightID); err == nil {
if err := tiktok_store.UpdateFreeShipTemplate(utils.Str2Int(i.StoreID), shipFee); err != nil {
errList.AddErr(err)
}
}
}
}
}
if errList.GetErrListAsOne() != nil {
return fmt.Sprintf("%v", errList.GetErrListAsOne()), nil
}
return "", nil
}

View File

@@ -3,9 +3,6 @@ package tiktok_store
import ( import (
"errors" "errors"
"fmt" "fmt"
address_create_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/address_create/request"
address_list_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/address_list/request"
address_list_response "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/address_list/response"
freightTemplate_create_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/freightTemplate_create/request" freightTemplate_create_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/freightTemplate_create/request"
freightTemplate_update_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/freightTemplate_update/request" freightTemplate_update_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/freightTemplate_update/request"
shop_batchCreateStore_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/shop_batchCreateStore/request" shop_batchCreateStore_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/shop_batchCreateStore/request"
@@ -160,12 +157,7 @@ func CreateOrUpdateAll(vendorOrgCode string, storeID, vendorStoreID, deliveryFee
db *dao.DaoDB db *dao.DaoDB
) )
//1.平台获取门店运费模板 //1.平台获取门店运费模板
bindFreightIDs, err := GetStoreFreight(vendorOrgCode, vendorStoreID) if bindFreightIDs, err := GetStoreFreight(vendorOrgCode, vendorStoreID); err != nil || bindFreightIDs == 0 { //1未查询到绑定信息不算错误
if err != nil {
globals.SugarLogger.Debugf("获取门店(%d) 绑定运费模板出错:%v", vendorStoreID, err)
errList.AddErr(fmt.Errorf("获取门店(%d) 绑定运费模板出错:%v", vendorStoreID, err))
}
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.Debugf("京西菜市门店:%d 平台门店:%d 创建运费模板:%d 失败:%v", storeID, vendorStoreID, freightTemplateID, err) globals.SugarLogger.Debugf("京西菜市门店:%d 平台门店:%d 创建运费模板:%d 失败:%v", storeID, vendorStoreID, freightTemplateID, err)
@@ -233,12 +225,7 @@ func CreateOrUpdateAll(vendorOrgCode string, storeID, vendorStoreID, deliveryFee
} }
//3.平台获取限售模板 //3.平台获取限售模板
bindSaleLimitID, err := GetStoreSaleLimit(vendorOrgCode, vendorStoreID) if bindSaleLimitID, err := GetStoreSaleLimit(vendorOrgCode, vendorStoreID); err != nil || bindSaleLimitID == 0 || utils.IsNil(bindSaleLimitID) { //未绑定限售模板,目前默认创建起送价限售模板
if err != nil {
globals.SugarLogger.Debugf("获取门店(%d) 限售模板失败:%v", vendorStoreID, err)
errList.AddErr(fmt.Errorf("获取门店(%d) 限售模板失败:%v", vendorStoreID, err))
}
if bindSaleLimitID == 0 || utils.IsNil(bindSaleLimitID) { //未绑定限售模板,目前默认创建起送价限售模板
if createSaleLimitID, err := CreateAndBindMinPriceTemplate(vendorOrgCode, vendorStoreID, minPrice); err != nil { if createSaleLimitID, err := CreateAndBindMinPriceTemplate(vendorOrgCode, vendorStoreID, minPrice); err != nil {
errList.AddErr(fmt.Errorf("设置门店起送价限售模板失败:%v", err)) errList.AddErr(fmt.Errorf("设置门店起送价限售模板失败:%v", err))
} else { } else {
@@ -451,8 +438,7 @@ func (P *PurchaseHandler) UpdateStore(db *dao.DaoDB, storeID int, userName strin
if storeInfo.SyncStatus&(model.SyncFlagNewMask|model.SyncFlagStoreStatus) != 0 { if storeInfo.SyncStatus&(model.SyncFlagNewMask|model.SyncFlagStoreStatus) != 0 {
errList.AddErr(UpdateStoreStatus(jxcontext.AdminCtx, storeInfo.VendorOrgCode, storeID, storeInfo.VendorStoreID, mergedStoreStatus)) errList.AddErr(UpdateStoreStatus(jxcontext.AdminCtx, storeInfo.VendorOrgCode, storeID, storeInfo.VendorStoreID, mergedStoreStatus))
} }
err3 := apiObj.EditStore(params) if err3 := apiObj.EditStore(params); err3 != nil {
if err3 != nil {
errList.AddErr(fmt.Errorf("修改门店(%d) 信息失败:%v", utils.Str2Int64(storeInfo.VendorStoreID), err3)) errList.AddErr(fmt.Errorf("修改门店(%d) 信息失败:%v", utils.Str2Int64(storeInfo.VendorStoreID), err3))
} }
//电子围栏 //电子围栏
@@ -547,20 +533,12 @@ func CreateFreightTemplate(storeCode int) (int64, error) {
Template: &freightTemplate_create_request.Template{ Template: &freightTemplate_create_request.Template{
TemplateName: storeDetail.VendorStoreName + "(" + utils.Int2Str(storeCode) + ")_", TemplateName: storeDetail.VendorStoreName + "(" + utils.Int2Str(storeCode) + ")_",
ProductProvince: utils.Str2Int64(utils.Int2Str(storeDetail.ProvinceCode)[:2]), ProductProvince: utils.Str2Int64(utils.Int2Str(storeDetail.ProvinceCode)[:2]),
CalculateType: 2, //计价方式-1.按重量 2.按数量 CalculateType: tiktok_api.CalculateTypeNum,
TransferType: 1, TransferType: tiktok_api.TransferTypeExpress,
RuleType: 1, //固定运费&卖家包邮 RuleType: tiktok_api.RuleTypeFlatShipping,
FixedAmount: 500, //固定运费 单位:分 FixedAmount: 500, //固定运费 单位:分
}, },
} }
//直辖市特殊处理
flag := false
if storeDetail.CityName == tiktok_api.MunicipalityBeiJin || storeDetail.CityName == tiktok_api.MunicipalityShangHai || storeDetail.CityName == tiktok_api.MunicipalityTianJin || storeDetail.CityName == tiktok_api.MunicipalityChongQing {
flag = true
param.Template.ProductCity = int64(storeDetail.ProvinceCode)
} else {
param.Template.ProductCity = int64(storeDetail.CityCode)
}
if int64(storeDetail.DeliveryFeeDeductionSill) != 0 { if int64(storeDetail.DeliveryFeeDeductionSill) != 0 {
param.Template.TemplateName += "满减包邮模板" param.Template.TemplateName += "满减包邮模板"
columns := []freightTemplate_create_request.ColumnsItem{ columns := []freightTemplate_create_request.ColumnsItem{
@@ -570,7 +548,13 @@ func CreateFreightTemplate(storeCode int) (int64, error) {
OverAmount: int64(storeDetail.DeliveryFeeDeductionSill), //此字段在vendor_id=14时 存储满x包邮金额 OverAmount: int64(storeDetail.DeliveryFeeDeductionSill), //此字段在vendor_id=14时 存储满x包邮金额
}} }}
param.Columns = columns param.Columns = columns
if flag { } else {
param.Columns = nil
param.Template.TemplateName += "固定运费模板"
}
//直辖市特殊处理
if HandleMunicipality(storeDetail.CityName) {
param.Template.ProductCity = int64(storeDetail.ProvinceCode)
param.Columns[0].ProvinceInfos = []freightTemplate_create_request.ProvinceInfosItem{ param.Columns[0].ProvinceInfos = []freightTemplate_create_request.ProvinceInfosItem{
{ {
Id: utils.Str2Int64(utils.Int2Str(storeDetail.ProvinceCode)[:2]), Id: utils.Str2Int64(utils.Int2Str(storeDetail.ProvinceCode)[:2]),
@@ -589,6 +573,7 @@ func CreateFreightTemplate(storeCode int) (int64, error) {
}}, }},
} }
} else { } else {
param.Template.ProductCity = int64(storeDetail.CityCode)
param.Columns[0].ProvinceInfos = []freightTemplate_create_request.ProvinceInfosItem{ param.Columns[0].ProvinceInfos = []freightTemplate_create_request.ProvinceInfosItem{
{ {
Id: utils.Str2Int64(utils.Int2Str(storeDetail.ProvinceCode)[:2]), Id: utils.Str2Int64(utils.Int2Str(storeDetail.ProvinceCode)[:2]),
@@ -607,17 +592,12 @@ func CreateFreightTemplate(storeCode int) (int64, error) {
}}, }},
} }
} }
} else { if resp, err := getAPI(storeDetail.VendorOrgCode, storeCode, storeDetail.VendorStoreID).FreightTemplateCreate(param); err != nil {
param.Columns = nil
param.Template.TemplateName += "固定运费模板"
}
globals.SugarLogger.Debugf(" param.Template.ProductCity==%d,param.Template.ProductProvince==%d", param.Template.ProductCity, param.Template.ProductProvince)
resp, err := getAPI(storeDetail.VendorOrgCode, storeCode, storeDetail.VendorStoreID).FreightTemplateCreate(param)
if err != nil {
return 0, err return 0, err
} } else {
return resp.TemplateId, nil return resp.TemplateId, nil
} }
}
// /freightTemplate/update 修改运费模板 // /freightTemplate/update 修改运费模板
func UpdateFreightTemplate(storeCode int) error { func UpdateFreightTemplate(storeCode int) error {
@@ -637,9 +617,9 @@ func UpdateFreightTemplate(storeCode int) error {
Id: bindTemplate, Id: bindTemplate,
TemplateName: storeDetail.VendorStoreName + "(" + utils.Int2Str(storeCode) + ")_", TemplateName: storeDetail.VendorStoreName + "(" + utils.Int2Str(storeCode) + ")_",
ProductProvince: utils.Str2Int64(utils.Int2Str(storeDetail.ProvinceCode)[:2]), ProductProvince: utils.Str2Int64(utils.Int2Str(storeDetail.ProvinceCode)[:2]),
CalculateType: 2, //计价方式-1.按重量 2.按数量 CalculateType: tiktok_api.CalculateTypeNum,
TransferType: 1, TransferType: tiktok_api.TransferTypeExpress,
RuleType: 1, //固定运费 RuleType: tiktok_api.RuleTypeFlatShipping,
FixedAmount: 500, //固定运费 单位:分 FixedAmount: 500, //固定运费 单位:分
}, },
} }
@@ -670,119 +650,103 @@ func UpdateFreightTemplate(storeCode int) error {
return nil return nil
} }
// /freightTemplate/create 批量创建 满x包邮 运费模板 // /freightTemplate/create 批量创建绑定 满x包邮 运费模板
//func (P *PurchaseHandler) BatchCreateFreightTemplate(relInfo map[string]map[string]string, shipFee int64) error { func CreateBindFreeShipTemplate(storeID int, shipFee int64) error {
// var ( var (
// errList = errlist.New() db = dao.GetDB()
// flag = make(map[string]bool) errList = errlist.New()
// ) FreightTemplate = &model.FreightTemplate{}
// for i, j := range relInfo { )
// for k, v := range j { if shipFee == 0 {
// if bindFreightID, err := getAPI(i, utils.Str2Int(k), v).GetStoreFreight(utils.Str2Int64(v)); err != nil || len(bindFreightID) == 0 { return errors.New("包邮金额必传,请检查")
// flag[v] = false }
// } storeDetail, err := dao.GetStoreDetail(dao.GetDB(), storeID, model.VendorIDDD, "")
// flag[v] = true if err != nil {
// } return errors.New("创建包邮运费模板,获取门店信息失败,请重试")
// } }
// storeDetail, err := dao.GetStoreDetail(dao.GetDB(), storeID, model.VendorIDDD, "") param := &freightTemplate_create_request.FreightTemplateCreateParam{
// if err != nil { Template: &freightTemplate_create_request.Template{
// return errors.New("获取门店信息失败,请重试") TemplateName: storeDetail.VendorStoreName + "(" + utils.Int2Str(storeID) + ")_的满" + utils.Int64ToStr(shipFee) + "包邮模板",
// } ProductProvince: utils.Str2Int64(utils.Int2Str(storeDetail.ProvinceCode)[:2]),
// //预处理(1)更新 (2)创建 CalculateType: tiktok_api.CalculateTypeNum,
// param := &freightTemplate_create_request.FreightTemplateCreateParam{ TransferType: tiktok_api.TransferTypeExpress,
// Template: &freightTemplate_create_request.Template{ RuleType: tiktok_api.RuleTypeFlatShipping,
// TemplateName: storeDetail.VendorStoreName + "(" + utils.Int2Str(storeID) + ")_", FixedAmount: 500, //固定运费 单位:分
// ProductProvince: utils.Str2Int64(utils.Int2Str(storeDetail.ProvinceCode)[:2]), },
// CalculateType: 2, //计价方式-1.按重量 2.按数量 Columns: []freightTemplate_create_request.ColumnsItem{
// TransferType: 1, {
// RuleType: 1, //固定运费&卖家包邮 IsOverFree: true,
// FixedAmount: 500, //固定运费 单位:分 IsLimited: false,
// }, OverAmount: shipFee,
// } }},
// //直辖市特殊处理 }
// flag := false //直辖市特殊处理
// if storeDetail.CityName == tiktok_api.MunicipalityBeiJin || storeDetail.CityName == tiktok_api.MunicipalityShangHai || storeDetail.CityName == tiktok_api.MunicipalityTianJin || storeDetail.CityName == tiktok_api.MunicipalityChongQing { if HandleMunicipality(storeDetail.CityName) {
// flag = true param.Template.ProductCity = int64(storeDetail.ProvinceCode)
// param.Template.ProductCity = int64(storeDetail.ProvinceCode) } else {
// } else { param.Template.ProductCity = int64(storeDetail.CityCode)
// param.Template.ProductCity = int64(storeDetail.CityCode) }
// } if resp, err := getAPI(storeDetail.VendorOrgCode, storeID, storeDetail.VendorStoreID).FreightTemplateCreate(param); err != nil {
// if int64(storeDetail.DeliveryFeeDeductionSill) != 0 { return errors.New(fmt.Sprintf("平台门店(%s) 京西门店(%d) 创建包邮模板失败:%v,根据提示处理", storeDetail.VendorStoreID, storeID, err))
// param.Template.TemplateName += "满减包邮模板" } else {
// columns := []freightTemplate_create_request.ColumnsItem{ if err := ShopBindStoreFreight(storeDetail.VendorOrgCode, utils.Str2Int64(storeDetail.VendorStoreID), resp.TemplateId); err != nil {
// { return errors.New(fmt.Sprintf("平台门店(%s) 京西门店(%d) 绑定包邮模板失败:%v,根据提示处理", storeDetail.VendorStoreID, storeID, err))
// IsOverFree: true, //是否包邮 } else {
// IsLimited: false, if err := dao.CreateEntity(db, FreightTemplate); err != nil {
// OverAmount: int64(storeDetail.DeliveryFeeDeductionSill), //此字段在vendor_id=14时 存储满x包邮金额 if _, err1 := dao.UpdateEntity(db, FreightTemplate, "TemplateID"); err1 != nil {
// }} errList.AddErr(fmt.Errorf("包邮模板:更新操作,同步进数据库错误信息:%v", err1))
// param.Columns = columns } else {
// if flag { errList.AddErr(fmt.Errorf("包邮模板:创建操作,同步进数据库错误信息:%v", err))
// param.Columns[0].ProvinceInfos = []freightTemplate_create_request.ProvinceInfosItem{ }
// { }
// Id: utils.Str2Int64(utils.Int2Str(storeDetail.ProvinceCode)[:2]), }
// Children: []freightTemplate_create_request.ChildrenItem_4{ }
// { if errList.GetErrListAsOne() != nil {
// Id: int64(storeDetail.ProvinceCode), return errList.GetErrListAsOne()
// Children: []freightTemplate_create_request.ChildrenItem_5{ }
// { return nil
// Id: int64(storeDetail.DistrictCode), }
// Children: []freightTemplate_create_request.ChildrenItem{
// {Id: 0}, //更新 包邮运费模板
// }, func UpdateFreeShipTemplate(storeID int, shipFee int64) error {
// }, if shipFee == 0 {
// }, return errors.New("包邮金额必传,请检查")
// }, }
// }}, storeDetail, err := dao.GetStoreDetail(dao.GetDB(), storeID, model.VendorIDDD, "")
// } if err != nil {
// } else { return errors.New("更新包邮运费模板,获取门店信息失败,请重试")
// param.Columns[0].ProvinceInfos = []freightTemplate_create_request.ProvinceInfosItem{ }
// { a := getAPI(storeDetail.VendorOrgCode, storeID, storeDetail.VendorStoreID)
// Id: utils.Str2Int64(utils.Int2Str(storeDetail.ProvinceCode)[:2]), //获取远程运费模板详情
// Children: []freightTemplate_create_request.ChildrenItem_4{ if bindFreightID, err := a.GetStoreFreight(utils.Str2Int64(storeDetail.VendorStoreID)); err != nil || len(bindFreightID) == 0 || utils.IsNil(bindFreightID) {
// { //return errors.New("门店未绑定运费模板,")
// Id: int64(storeDetail.CityCode), } else {
// Children: []freightTemplate_create_request.ChildrenItem_5{ if freightDetail, err := a.GetStoreFreightDetail(bindFreightID[0]); err != nil {
// { param := &freightTemplate_update_request.FreightTemplateUpdateParam{
// Id: int64(storeDetail.DistrictCode), Template: &freightTemplate_update_request.Template{
// Children: []freightTemplate_create_request.ChildrenItem{ Id: bindFreightID[0],
// {Id: 0}, TemplateName: freightDetail.Template.TemplateName,
// }, ProductProvince: utils.Str2Int64(freightDetail.Template.ProductProvince),
// }, ProductCity: utils.Str2Int64(freightDetail.Template.ProductCity),
// }, CalculateType: tiktok_api.CalculateTypeNum,
// }, TransferType: tiktok_api.TransferTypeExpress,
// }}, RuleType: tiktok_api.RuleTypeFlatShipping,
// } FixedAmount: 500,
// } },
// } else { Columns: []freightTemplate_update_request.ColumnsItem{
// param.Columns = nil {
// param.Template.TemplateName += "固定运费模板" IsOverFree: true,
// } IsLimited: false,
// globals.SugarLogger.Debugf(" param.Template.ProductCity==%d,param.Template.ProductProvince==%d", param.Template.ProductCity, param.Template.ProductProvince) OverAmount: shipFee,
// resp, err := getAPI(storeDetail.VendorOrgCode, storeCode, storeDetail.VendorStoreID).FreightTemplateCreate(param) }},
// if err != nil { }
// return 0, err if _, err := a.FreightTemplateUpdate(param); err != nil {
// } return errors.New("更新包邮运费模板失败")
// return resp.TemplateId, nil }
// }
// bindInfo := &shop_bindStoreFreight_request.ShopBindStoreFreightParam{ }
// StoreId: vendorStoreID, return nil
// FreightId: resp.TemplateId, }
// }
// err = api.BindFreightTemplate(bindInfo)
// if err != nil {
// return err
// }
// //并写入数据库
// freightInfo := model.FreightTemplate{
// StoreID: int(storeID),
// VendorStoreID: utils.Int64ToStr(vendorStoreID),
// TemplateID: resp.TemplateId,
// }
// if err = dao.CreateEntity(db, freightInfo); err != nil {
// return err
// }
// return nil
//}
// /shop/bindStoreFreight 门店绑定运费模版 // /shop/bindStoreFreight 门店绑定运费模版
//门店绑定运费模版,运费模版必须属于门店关联的抖店,且门店与运费模版是一对一关系 //门店绑定运费模版,运费模版必须属于门店关联的抖店,且门店与运费模版是一对一关系
@@ -805,38 +769,6 @@ func GetStoreFreight(vendorOrgCode string, storeID int64) (int64, error) {
} }
} }
// /address/create 创建店铺地址库(新建即绑定)
func (P *PurchaseHandler) CreateAddress(appOrgCode string, addressInfo address_create_request.AddressCreateParam) (addressID int64, err error) {
if resp, err := getAPI(appOrgCode, 0, utils.Int64ToStr(addressInfo.StoreId)).AddressCreate(&address_create_request.AddressCreateParam{
Address: addressInfo.Address,
StoreId: addressInfo.StoreId,
}); err != nil {
return 0, err
} else {
return resp.AddressId, nil
}
}
// /address/list 获取售后地址列表接口
//分页获取商家地址列表
func (P *PurchaseHandler) GetAddressList(appOrgCode string, param *address_list_request.AddressListParam) (*address_list_response.AddressListData, error) {
//不传入ID则是获取所有门店售后地址列表
info := &address_list_request.AddressListParam{
PageSize: 10,
PageNo: 1,
OrderBy: param.OrderBy,
OrderField: param.OrderField,
}
if param.StoreId != 0 {
info.StoreId = param.StoreId
}
if listInfo, err := getAPI(appOrgCode, 0, utils.Int64ToStr(info.StoreId)).GetAddressList(info); err != nil {
return nil, err
} else {
return listInfo, nil
}
}
// /trade/createTradeLimitTemplate 创建限售模板 默认模板 暂时不使用 // /trade/createTradeLimitTemplate 创建限售模板 默认模板 暂时不使用
func CreateTradeLimitTemplate(appOrgCode string, vendorStoreID int64) (tradeLimitID int64, err error) { func CreateTradeLimitTemplate(appOrgCode string, vendorStoreID int64) (tradeLimitID int64, err error) {
param := &trade_createTradeLimitTemplate_request.TradeCreateTradeLimitTemplateParam{ param := &trade_createTradeLimitTemplate_request.TradeCreateTradeLimitTemplateParam{
@@ -861,7 +793,7 @@ func CreateTradeLimitTemplate(appOrgCode string, vendorStoreID int64) (tradeLimi
return resp.TradeLimitId, nil return resp.TradeLimitId, nil
} }
//创建起送价的 运费模板以及绑定 //创建起送价的 限售模板以及绑定
func CreateAndBindMinPriceTemplate(vendorOrgCode string, vendorStoreID, minimum int64) (int64, error) { func CreateAndBindMinPriceTemplate(vendorOrgCode string, vendorStoreID, minimum int64) (int64, error) {
resp, err := getAPI(vendorOrgCode, 0, "").CreateTradeLimitTemplate(&trade_createTradeLimitTemplate_request.TradeCreateTradeLimitTemplateParam{ resp, err := getAPI(vendorOrgCode, 0, "").CreateTradeLimitTemplate(&trade_createTradeLimitTemplate_request.TradeCreateTradeLimitTemplateParam{
StoreId: vendorStoreID, StoreId: vendorStoreID,
@@ -1104,17 +1036,23 @@ type RelInfo struct {
VendorStoreID string `json:"vendorStoreID"` VendorStoreID string `json:"vendorStoreID"`
} }
func ToMap(actual interface{}) (map[string]string, error) { func ToStringSlice(actual interface{}) ([]string, error) {
var res []string var res []string
value := reflect.ValueOf(actual) value := reflect.ValueOf(actual)
globals.SugarLogger.Debugf("value.Kind()=========%s", value.Kind()) globals.SugarLogger.Debugf("value.Kind()=========%s", value.Kind())
if value.Kind() != reflect.Map { if value.Kind() != reflect.Slice || value.Kind() != reflect.Array {
return nil, errors.New("parse error") return nil, errors.New("parse error")
} }
temp := actual.(map[string]string)
globals.SugarLogger.Debugf("toMap temp===============%v", temp)
for i := 0; i < value.Len(); i++ { for i := 0; i < value.Len(); i++ {
res = append(res, value.Index(i).Interface().(string)) res = append(res, value.Index(i).Interface().(string))
} }
return temp, nil return res, nil
}
//直辖市判断
func HandleMunicipality(cityName string) bool {
if cityName == tiktok_api.MunicipalityBeiJin || cityName == tiktok_api.MunicipalityShangHai || cityName == tiktok_api.MunicipalityTianJin || cityName == tiktok_api.MunicipalityChongQing {
return true
}
return false
} }

View File

@@ -2,6 +2,9 @@ package tiktok_store
import ( import (
"fmt" "fmt"
address_create_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/address_create/request"
address_list_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/address_list/request"
address_list_response "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/address_list/response"
warehouse_bindFencesByStore_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/warehouse_bindFencesByStore/request" warehouse_bindFencesByStore_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/warehouse_bindFencesByStore/request"
warehouse_bindStore_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/warehouse_bindStore/request" warehouse_bindStore_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/warehouse_bindStore/request"
warehouse_create_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/warehouse_create/request" warehouse_create_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/warehouse_create/request"
@@ -313,3 +316,35 @@ func SpecialTreat(vendorOrgCode string, vendorStoreID, storeID, deliveryFeeDeduc
globals.SugarLogger.Debugf("SpecialTreat wrong information endErr: %s", endErr) globals.SugarLogger.Debugf("SpecialTreat wrong information endErr: %s", endErr)
return endErr return endErr
} }
// /address/create 创建店铺地址库(新建即绑定)
func (P *PurchaseHandler) CreateAddress(appOrgCode string, addressInfo address_create_request.AddressCreateParam) (addressID int64, err error) {
if resp, err := getAPI(appOrgCode, 0, utils.Int64ToStr(addressInfo.StoreId)).AddressCreate(&address_create_request.AddressCreateParam{
Address: addressInfo.Address,
StoreId: addressInfo.StoreId,
}); err != nil {
return 0, err
} else {
return resp.AddressId, nil
}
}
// /address/list 获取售后地址列表接口
//分页获取商家地址列表
func (P *PurchaseHandler) GetAddressList(appOrgCode string, param *address_list_request.AddressListParam) (*address_list_response.AddressListData, error) {
//不传入ID则是获取所有门店售后地址列表
info := &address_list_request.AddressListParam{
PageSize: 10,
PageNo: 1,
OrderBy: param.OrderBy,
OrderField: param.OrderField,
}
if param.StoreId != 0 {
info.StoreId = param.StoreId
}
if listInfo, err := getAPI(appOrgCode, 0, utils.Int64ToStr(info.StoreId)).GetAddressList(info); err != nil {
return nil, err
} else {
return listInfo, nil
}
}

View File

@@ -10,7 +10,6 @@ import (
"git.rosy.net.cn/jx-callback/business/jxutils/netprinter" "git.rosy.net.cn/jx-callback/business/jxutils/netprinter"
"git.rosy.net.cn/jx-callback/business/model" "git.rosy.net.cn/jx-callback/business/model"
"git.rosy.net.cn/jx-callback/business/partner/purchase/tiktok_store" "git.rosy.net.cn/jx-callback/business/partner/purchase/tiktok_store"
"git.rosy.net.cn/jx-callback/globals"
"git.rosy.net.cn/jx-callback/globals/api" "git.rosy.net.cn/jx-callback/globals/api"
"github.com/astaxie/beego/server/web" "github.com/astaxie/beego/server/web"
) )
@@ -1519,11 +1518,8 @@ func (c *StoreController) GetDDScope() {
// @router /CreateDDStoreFence [post] // @router /CreateDDStoreFence [post]
func (c *StoreController) CreateDDStoreFence() { func (c *StoreController) CreateDDStoreFence() {
c.callCreateDDStoreFence(func(params *tStoreCreateDDStoreFenceParams) (retVal interface{}, errCode string, err error) { c.callCreateDDStoreFence(func(params *tStoreCreateDDStoreFenceParams) (retVal interface{}, errCode string, err error) {
globals.SugarLogger.Debugf("进入callCreateDDStoreFence")
payload := make(map[string][]tiktok_store.RelInfo) payload := make(map[string][]tiktok_store.RelInfo)
globals.SugarLogger.Debugf("params.Payload===========%v", params.Payload)
if err := utils.UnmarshalUseNumber([]byte(params.Payload), &payload); err == nil { if err := utils.UnmarshalUseNumber([]byte(params.Payload), &payload); err == nil {
globals.SugarLogger.Debugf("payload=============%v", payload)
retVal, err = cms.AssistCreateFence(payload) retVal, err = cms.AssistCreateFence(payload)
} }
return retVal, "", err return retVal, "", err
@@ -1538,3 +1534,12 @@ func (c *StoreController) CreateDDStoreFence() {
// @Success 200 {object} controllers.CallResult // @Success 200 {object} controllers.CallResult
// @Failure 200 {object} controllers.CallResult // @Failure 200 {object} controllers.CallResult
// @router /CreateFreeShipTemplates [post] // @router /CreateFreeShipTemplates [post]
func (c *StoreController) CreateFreeShipTemplates() {
c.callCreateFreeShipTemplates(func(params *tStoreCreateFreeShipTemplatesParams) (retVal interface{}, errCode string, err error) {
payload := make(map[string][]tiktok_store.RelInfo)
if err := utils.UnmarshalUseNumber([]byte(params.Payload), &payload); err == nil {
retVal, err = cms.BatchCreateFreeShipTemplate(payload, int64(params.ShipFee))
}
return retVal, "", err
})
}

View File

@@ -2972,6 +2972,15 @@ func init() {
Filters: nil, Filters: nil,
Params: nil}) Params: nil})
web.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:StoreController"] = append(web.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:StoreController"],
web.ControllerComments{
Method: "CreateFreeShipTemplates",
Router: `/CreateFreeShipTemplates`,
AllowHTTPMethods: []string{"post"},
MethodParams: param.Make(),
Filters: nil,
Params: nil})
web.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:StoreSkuController"] = append(web.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:StoreSkuController"], web.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:StoreSkuController"] = append(web.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:StoreSkuController"],
web.ControllerComments{ web.ControllerComments{
Method: "BackUpStoreSkuBind", Method: "BackUpStoreSkuBind",