diff --git a/business/jxstore/cms/sku.go b/business/jxstore/cms/sku.go index f939eab8b..894bcfa84 100644 --- a/business/jxstore/cms/sku.go +++ b/business/jxstore/cms/sku.go @@ -688,7 +688,7 @@ func GetSkuNames(ctx *jxcontext.Context, keyword string, isBySku, isQueryMidPric // return nil, err // } // } - skuVendorCats, _ := dao.GetSkuVendorCategoryMaps(db, []int{skuName.ID}, []int{model.VendorIDMTWM, model.VendorIDEBAI, model.VendorIDJDShop, model.VendorIDJD}, nil) + skuVendorCats, _ := dao.GetSkuVendorCategoryMaps(db, []int{skuName.ID}, []int{model.VendorIDMTWM, model.VendorIDEBAI, model.VendorIDJDShop, model.VendorIDJD, model.VendorIDDD}, nil) if len(skuVendorCats) > 0 { for _, v := range skuVendorCats { if v.VendorID == model.VendorIDJD { diff --git a/business/jxstore/cms/sync_store_sku.go b/business/jxstore/cms/sync_store_sku.go index 17cb338d0..f5bce23eb 100644 --- a/business/jxstore/cms/sync_store_sku.go +++ b/business/jxstore/cms/sync_store_sku.go @@ -450,7 +450,6 @@ func syncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, causeFlag var skus []*dao.StoreSkuSyncInfo if isFull { skus, err = dao.GetFullStoreSkus(db, vendorID, storeID) - } else { skus, err = dao.GetStoreSkus(db, vendorID, storeID, skuIDs) } diff --git a/business/model/dao/store.go b/business/model/dao/store.go index 9f19a1c5c..69cf11e26 100644 --- a/business/model/dao/store.go +++ b/business/model/dao/store.go @@ -1568,7 +1568,7 @@ func GetStoreBrandInfos(storeID int) (date *BrandInfos, err error) { // 查询FreightTemplate func QueryStoreBindInfo(storeID int) (*model.FreightTemplate, error) { var ( - sqlParams = []interface{}{} + sqlParams []interface{} bindInfo *model.FreightTemplate ) sql := "SELECT a.store_id,a.vendor_store_id,a.template_id,a.warehouse_id,a.fence_id,a.trade_limit_id FROM freight_template a " diff --git a/business/model/dao/store_sku.go b/business/model/dao/store_sku.go index 75adf6d44..b45794c00 100644 --- a/business/model/dao/store_sku.go +++ b/business/model/dao/store_sku.go @@ -103,6 +103,7 @@ type StoreSkuSyncInfo struct { NameStatus int SellCities []string NameCategoryID int `orm:"column(name_category_id)"` + TiktokAttribute string `orm:"column(tiktok_attribute)"` YbNameSuffix string //银豹的商品条码后缀 YbBarCode string //银豹的商品条码 JdsStockSwitch int @@ -568,7 +569,7 @@ func GetStoreSkus2(db *DaoDB, vendorID, storeID int, skuIDs []int, mustDirty boo %s vendor_sku_id, t1.%s_sync_status sku_sync_status, t1.%s_price vendor_price, t1.%s_lock_time lock_time,t1.vendor_sku_attr_id,t1.vendor_main_id, t1.store_id, t1.deleted_at bind_deleted_at,t1.status_sale_begin,t1.status_sale_end, t1.jds_ware_id, t1.stock, t1.mt_ladder_box_price, t2.*, - t3.id name_id, t3.prefix, t3.name, t3.unit, t3.upc, t3.status name_status, t3.category_id name_category_id, t3.yb_name_suffix, + t3.id name_id, t3.prefix, t3.name, t3.unit, t3.upc, t3.status name_status, t3.category_id name_category_id, t3.yb_name_suffix,t3.tiktok_attribute, t3.jds_stock_switch, t3.preparation_time, t3.img_watermark, t3.ex_vendor_id, t3.img img_origin, IF(t11.%s <> '', t11.%s, t3.img) img, IF(t12.%s <> '', t12.%s, t3.img2) img2, @@ -711,7 +712,7 @@ func GetFullStoreSkus(db *DaoDB, vendorID, storeID int) (skus []*StoreSkuSyncInf t1.%s_sync_status sku_sync_status, t1.%s_price vendor_price, t1.%s_lock_time lock_time, t1.store_id, t1.deleted_at bind_deleted_at, t1.stock, t2.*, t2.id sku_id, t2m.vendor_thing_id vendor_sku_id, - t3.id name_id, t3.prefix, t3.name, t3.unit, t3.upc, t3.status name_status, t3.ex_prefix, t3.ex_prefix_begin, t3.ex_prefix_end, t3.category_id name_category_id, + t3.id name_id, t3.prefix, t3.name, t3.unit, t3.upc, t3.status name_status, t3.ex_prefix, t3.ex_prefix_begin, t3.ex_prefix_end, t3.category_id name_category_id,t3.tiktok_attribute, IF(t11.%s <> '', t11.%s, t3.img) img, IF(t12.%s <> '', t12.%s, t3.img2) img2, IF(t13.%s <> '', t13.%s, t3.desc_img) desc_img, diff --git a/business/model/sku.go b/business/model/sku.go index ef8fa96a7..4a9e66f30 100644 --- a/business/model/sku.go +++ b/business/model/sku.go @@ -199,12 +199,13 @@ type SkuName struct { // JdSyncStatus int8 `orm:"default(2)" json:"jdSyncStatus"` // LinkID int `orm:"column(link_id);null;index" json:"linkID"` - YbNameSuffix string `json:"ybNameSuffix"` //银豹商品后缀 - JdsStockSwitch int8 `orm:"default(1)" json:"jdsStockSwitch"` //京东商城总库存 - PreparationTime int `orm:"default(1)" json:"preparationTime"` //商品准备时长 - BestSeller int `json:"bestSeller"` //畅销品 0不是 1是 - Video string `json:"video"` //商品视频地址 - VideoID string `orm:"column(video_id)" json:"videoID"` //商品视频美团ID + YbNameSuffix string `json:"ybNameSuffix"` //银豹商品后缀 + JdsStockSwitch int8 `orm:"default(1)" json:"jdsStockSwitch"` //京东商城总库存 + PreparationTime int `orm:"default(1)" json:"preparationTime"` //商品准备时长 + BestSeller int `json:"bestSeller"` //畅销品 0不是 1是 + Video string `json:"video"` //商品视频地址 + VideoID string `orm:"column(video_id)" json:"videoID"` //商品视频美团ID + TiktokAttribute string `orm:"column(tiktok_attribute);size(512)" json:"tiktok_attribute"` //抖音分类属性的存储 } func (*SkuName) TableUnique() [][]string { diff --git a/business/partner/purchase/tiktok_store/store_sku2.go b/business/partner/purchase/tiktok_store/store_sku2.go index 8586ba32b..84611498b 100644 --- a/business/partner/purchase/tiktok_store/store_sku2.go +++ b/business/partner/purchase/tiktok_store/store_sku2.go @@ -1,17 +1,14 @@ package tiktok_store import ( - "errors" "fmt" "git.rosy.net.cn/baseapi/platformapi/mtwmapi" 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" product_editV2_commit_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/product_editV2_commit/request" - shop_bindStoreSaleLimit_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/shop_bindStoreSaleLimit/request" sku_editPrice_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/sku_editPrice/request" sku_syncStock_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/sku_syncStock/request" - trade_createTradeLimitTemplate_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/trade_createTradeLimitTemplate/request" tiktokShop "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/tiktok_api" "git.rosy.net.cn/baseapi/utils" "git.rosy.net.cn/jx-callback/business/jxutils" @@ -308,12 +305,7 @@ func (p *PurchaseHandler) createOrUpdateStoreSkus(ctx *jxcontext.Context, storeI // spec_prices param.SpecPrices = GetSpecPrices(param.Specs, vendorStoreID, 0, storeSku) - // ProductFormatNew 获取商品属性 - productFormatNew, err := GetProductFormatNew(param.CategoryLeafId, storeDetail.VendorOrgCode) - if err != nil { - return nil, err - } - param.ProductFormatNew = productFormatNew + param.ProductFormatNew = storeSku.TiktokAttribute // 获取品牌 param.StandardBrandId, err = api.GetSkuBrand(param.CategoryLeafId) @@ -324,6 +316,8 @@ func (p *PurchaseHandler) createOrUpdateStoreSkus(ctx *jxcontext.Context, storeI // 根据本地商品id获取线上商品是否存在,存在则只创建子商品 var tiktokResultProductId int64 = 0 if _, err = api.GetSkuDetailLocalID("", param.OuterProductId); err != nil { // 线上不存在创建 + globals.SugarLogger.Debugf("er==============%s", err) + globals.SugarLogger.Debugf("er==============param%s", utils.Format4Output(param, false)) tiktokResult, err := api.CreateStoreCommodity(param) // 创建主商品 if err != nil { failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorChineseNames[model.VendorIDDD], syncType) @@ -341,22 +335,39 @@ func (p *PurchaseHandler) createOrUpdateStoreSkus(ctx *jxcontext.Context, storeI } // 创建子商品 - freightId, err := GetDeliveryTemp(api, vendorStoreID, storeDetail) // 运费模板 - if err != nil { - return nil, err + temp, err := dao.QueryStoreBindInfo(storeDetail.ID) + if err != nil || temp == nil || temp.TemplateID == 0 { + // 运费模板 + param.FreightId, err = GetDeliveryTemp(api, vendorStoreID, storeDetail) + if err != nil { + return nil, err + } + // 获取门店限售模板 + param.SaleLimitId, err = CreateSaleTemp(utils.Str2Int64(vendorStoreID), api) + if err != nil { + return nil, err + } + // 保存数据库 + freightTemplate := &model.FreightTemplate{ + StoreID: storeSku.StoreID, + VendorStoreID: storeDetail.VendorStoreID, + TemplateID: param.FreightId, + WarehouseID: 0, + FenceID: "", + TradeLimitID: param.SaleLimitId, + } + dao.WrapAddIDCULDEntity(param, "jxAdmin") + dao.CreateEntity(dao.GetDB(), &freightTemplate) + } else { + param.FreightId = temp.TemplateID + param.SaleLimitId = temp.TradeLimitID } - param.FreightId = freightId + param.MainProductId = tiktokResultProductId param.SpecPrices = GetSpecPrices(param.Specs, vendorStoreID, tiktokResultProductId, storeSku) - // 获取门店限售模板 - saleLimitId, err := CreateSaleTemp(utils.Str2Int64(vendorStoreID), api) - if err != nil { - return nil, err - } - param.SaleLimitId = saleLimitId param.StoreId = utils.Str2Int64(vendorStoreID) - + globals.SugarLogger.Debugf("============CreateStoreCommodity:%s", utils.Format4Output(param, false)) // 抖店创建子商品 tiktokResultChildren, err := api.CreateStoreCommodity(param) if err != nil { @@ -413,12 +424,7 @@ func (p *PurchaseHandler) createOrUpdateStoreSkus(ctx *jxcontext.Context, storeI // spec_prices param.SpecPrices = GetSpecPrices(param.Specs, vendorStoreID, utils.Str2Int64(storeSku.VendorSkuID), storeSku) - // ProductFormatNew 获取商品属性 - productFormatNew, err := GetProductFormatNew(param.CategoryLeafId, storeDetail.VendorOrgCode) - if err != nil { - return nil, err - } - param.ProductFormatNew = productFormatNew + param.ProductFormatNew = storeSku.TiktokAttribute // 获取品牌 //brandID, err := api.GetSkuBrand(param.CategoryLeafId) @@ -465,54 +471,6 @@ func (p *PurchaseHandler) createOrUpdateStoreSkus(ctx *jxcontext.Context, storeI return failedList, err } -// CreateSaleTemp 创建限售模板 -func CreateSaleTemp(storeId int64, api *tiktokShop.API) (int64, error) { - // 获取限售模板 - saleLimitId, _ := api.StoreQuerySaleLimitTemp(storeId) - if saleLimitId != 0 { - return saleLimitId, nil - } - - // 创建限售模板 - param := &trade_createTradeLimitTemplate_request.TradeCreateTradeLimitTemplateParam{ - StoreId: storeId, - TradeLimitRuleRequestList: []trade_createTradeLimitTemplate_request.TradeLimitRuleRequestListItem{}, - } - tradeLimitRuleRequestList := make([]trade_createTradeLimitTemplate_request.TradeLimitRuleRequestListItem, 0) - tradeLimitRuleRequest := trade_createTradeLimitTemplate_request.TradeLimitRuleRequestListItem{ - TradeLimitModel: 1, // 限购模型 1-重量,2-数量,3-地区,4-金额 - TradeLimitResource: 2, // 限购资源类别1-抖店,2-门店,3-商品ID,4-sku,5-类目,6-活动,7-商品标 - //TradeLimitResourceObject: nil, - TradeLimitPattern: &trade_createTradeLimitTemplate_request.TradeLimitPattern{ - Minimum: 1, // 1毫克 - Maximum: 500 * 1000 * 1000, //500千克 - CumulativeMax: 99999, - }, - //TimePeriod: nil, - TradeLimitSubjectList: []int32{1}, - } - tradeLimitRuleRequestList = append(tradeLimitRuleRequestList, tradeLimitRuleRequest) - result, err := api.CreateTradeLimitTemplate(param) - if err != nil { - return 0, err - } - - if result.TradeLimitId == 0 { - return 0, errors.New("限售模板创建错误,联系管理员") - } - - // 绑定限售模板 - if err := api.BindStoreSaleLimit(&shop_bindStoreSaleLimit_request.ShopBindStoreSaleLimitParam{ - StoreId: storeId, - SaleLimitId: result.TradeLimitId, - }); err != nil { - globals.SugarLogger.Debug("==========BindStoreSaleLimit", err) - return 0, err - } - - return result.TradeLimitId, nil -} - func (p *PurchaseHandler) DeleteStoreSkus(ctx *jxcontext.Context, storeID int, vendorStoreID string, storeSkuList []*partner.StoreSkuInfo) (failedList []*partner.StoreSkuInfoWithErr, err error) { if globals.EnableDdStoreWrite { for _, v := range storeSkuList { diff --git a/business/partner/purchase/tiktok_store/store_sku2_utils.go b/business/partner/purchase/tiktok_store/store_sku2_utils.go index a926ec98c..9dd8a1926 100644 --- a/business/partner/purchase/tiktok_store/store_sku2_utils.go +++ b/business/partner/purchase/tiktok_store/store_sku2_utils.go @@ -5,7 +5,10 @@ import ( "errors" "fmt" freightTemplate_create_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/freightTemplate_create/request" + product_getCatePropertyV2_response "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/product_getCatePropertyV2/response" shop_bindStoreFreight_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/shop_bindStoreFreight/request" + shop_bindStoreSaleLimit_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/shop_bindStoreSaleLimit/request" + trade_createTradeLimitTemplate_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/trade_createTradeLimitTemplate/request" tiktokShop "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/tiktok_api" "git.rosy.net.cn/baseapi/utils" "git.rosy.net.cn/jx-callback/business/model" @@ -14,10 +17,53 @@ import ( "strings" ) -// 获取运费模板id,运费模板不存在则创建 -func GetDeliveryTemp(api *tiktokShop.API, vendorStoreID string, storeDetail *dao.StoreDetail) (int64, error) { - // todo 获取本地数据模板 +// CreateSaleTemp 创建限售模板 +func CreateSaleTemp(storeId int64, api *tiktokShop.API) (int64, error) { + // 获取限售模板 + saleLimitId, _ := api.StoreQuerySaleLimitTemp(storeId) + if saleLimitId != 0 { + return saleLimitId, nil + } + // 创建限售模板 + param := &trade_createTradeLimitTemplate_request.TradeCreateTradeLimitTemplateParam{ + StoreId: storeId, + TradeLimitRuleRequestList: []trade_createTradeLimitTemplate_request.TradeLimitRuleRequestListItem{}, + } + tradeLimitRuleRequestList := make([]trade_createTradeLimitTemplate_request.TradeLimitRuleRequestListItem, 0) + tradeLimitRuleRequest := trade_createTradeLimitTemplate_request.TradeLimitRuleRequestListItem{ + TradeLimitModel: 1, // 限购模型 1-重量,2-数量,3-地区,4-金额 + TradeLimitResource: 2, // 限购资源类别1-抖店,2-门店,3-商品ID,4-sku,5-类目,6-活动,7-商品标 + TradeLimitPattern: &trade_createTradeLimitTemplate_request.TradeLimitPattern{ + Minimum: 1, // 1毫克 + Maximum: 500 * 1000 * 1000, //500千克 + CumulativeMax: 99999, + }, + TradeLimitSubjectList: []int32{1}, + } + tradeLimitRuleRequestList = append(tradeLimitRuleRequestList, tradeLimitRuleRequest) + result, err := api.CreateTradeLimitTemplate(param) + if err != nil { + return 0, err + } + + if result.TradeLimitId == 0 { + return 0, errors.New("限售模板创建错误,联系管理员") + } + + // 绑定限售模板 + if err := api.BindStoreSaleLimit(&shop_bindStoreSaleLimit_request.ShopBindStoreSaleLimitParam{ + StoreId: storeId, + SaleLimitId: result.TradeLimitId, + }); err != nil { + return 0, err + } + + return result.TradeLimitId, nil +} + +// GetDeliveryTemp 获取运费模板id,运费模板不存在则创建 +func GetDeliveryTemp(api *tiktokShop.API, vendorStoreID string, storeDetail *dao.StoreDetail) (int64, error) { // 没有模板是查询线上模板 freightId, _ := api.GetStoreBindTemp(utils.Str2Int64(vendorStoreID)) if freightId == 0 { @@ -28,11 +74,39 @@ func GetDeliveryTemp(api *tiktokShop.API, vendorStoreID string, storeDetail *dao ProductProvince: utils.Str2Int64(utils.Int2Str(storeDetail.ProvinceCode)[0:2]), ProductCity: int64(storeDetail.CityCode), CalculateType: 2, - TransferType: 1, // 快递 - RuleType: 1, - FixedAmount: 500, + TransferType: 1, // 快递方式-1.快递 目前仅支持1 + RuleType: 2, // 模板类型-0:阶梯计价 1:固定运费 2:卖家包邮 3:货到付款 + }, + Columns: []freightTemplate_create_request.ColumnsItem{ + { + FirstWeight: 0, + FirstWeightPrice: 0, + FirstNum: 1, + FirstNumPrice: 1, + AddNum: 1, + AddNumPrice: 0.01, + RuleAddress: fmt.Sprintf(`{"%s":{"%s":{"%s":[0]}}}`, utils.Int2Str(storeDetail.ProvinceCode), utils.Int2Str(storeDetail.CityCode)[:2], utils.Int2Str(storeDetail.DistrictCode)[:2]), + IsOverFree: true, + OverAmount: int64(storeDetail.DeliveryFeeDeductionSill), + ProvinceInfos: []freightTemplate_create_request.ProvinceInfosItem{ + { + Id: int64(storeDetail.ProvinceCode), + Children: []freightTemplate_create_request.ChildrenItem_4{ + { + Id: int64(storeDetail.CityCode), + Children: []freightTemplate_create_request.ChildrenItem_5{ + { + Id: int64(storeDetail.DistrictCode), + Children: []freightTemplate_create_request.ChildrenItem{ + {Id: 0}, + }, + }, + }, + }, + }}, + }, + }, }, - Columns: nil, }) if err != nil { return 0, err @@ -52,37 +126,31 @@ func GetDeliveryTemp(api *tiktokShop.API, vendorStoreID string, storeDetail *dao } // GetProductFormatNew 获取物品属性 -func GetProductFormatNew(categoryLeftId int64, vendorOrgCode string) (string, error) { +func GetProductFormatNew(categoryLeftId int64, vendorOrgCode string) (*product_getCatePropertyV2_response.ProductGetCatePropertyV2Response, error) { category, err := getAPI(vendorOrgCode, 0, "").GetCatePropertyV2(categoryLeftId) if err != nil { - return "", err + return nil, err } - format := make(map[string][]*tiktokShop.ProductFormatNewList, 0) - for _, v := range category.Data.Data { - if len(v.Options) == 0 { - formateNew := &tiktokShop.ProductFormatNewList{ - Value: 0, - Name: "暂不支持", - DiyType: 1, - } - format[utils.Int64ToStr(v.PropertyId)] = append(format[utils.Int64ToStr(v.CategoryId)], formateNew) - } else { - for _, d := range v.Options { - formateNew := &tiktokShop.ProductFormatNewList{ - Value: utils.Str2Int64(d.Value), - Name: d.Name, - DiyType: v.DiyType, - } - format[utils.Int64ToStr(v.PropertyId)] = append(format[utils.Int64ToStr(v.CategoryId)], formateNew) - } - } - - } - productFormatNew, err := json.Marshal(format) - if err != nil { - return "", err - } - return string(productFormatNew), nil + return category, nil + //format := make(map[string][]*tiktokShop.ProductFormatNewList, 0) + //for _, v := range category.Data.Data { + // if v.Required != 1 { // 必填属性必须填写 + // continue + // } + // for _, d := range v.Options { + // formateNew := &tiktokShop.ProductFormatNewList{ + // Value: utils.Str2Int64(d.Value), + // Name: d.Name, + // DiyType: v.DiyType, + // } + // format[utils.Int64ToStr(v.PropertyId)] = append(format[utils.Int64ToStr(v.CategoryId)], formateNew) + // } + //} + //productFormatNew, err := json.Marshal(format) + //if err != nil { + // return "", err + //} + //return string(productFormatNew), nil } // GetTiktokImgList 获取抖音图片链接 diff --git a/controllers/cms_sku.go b/controllers/cms_sku.go index 536d0d7e0..ea421343a 100644 --- a/controllers/cms_sku.go +++ b/controllers/cms_sku.go @@ -7,6 +7,7 @@ import ( "git.rosy.net.cn/jx-callback/business/jxutils" "git.rosy.net.cn/jx-callback/business/model" "git.rosy.net.cn/jx-callback/business/model/dao" + "git.rosy.net.cn/jx-callback/business/partner/purchase/tiktok_store" "git.rosy.net.cn/jx-callback/globals" "github.com/astaxie/beego/server/web" ) @@ -736,6 +737,21 @@ func (c *SkuController) GetSkuNamesNew() { }) } +// @Title 根据分类id获取平台属性值 +// @Description 根据分类id获取平台属性值 +// @Param token header string true "认证token" +// @Param categoryId query int64 false "抖音分类id" +// @Param vendorOrgCode query string false "默认的平台id(现在是测试门店id/后面改成京西的id)" +// @Success 200 {object} controllers.CallResult +// @Failure 200 {object} controllers.CallResult +// @router /GetTiktokCategoryValue [get] +func (c *SkuController) GetTiktokCategoryValue() { + c.callGetTiktokCategoryValue(func(params *tSkuGetTiktokCategoryValueParams) (interface{}, string, error) { + data, err := tiktok_store.GetProductFormatNew(int64(params.CategoryId), params.VendorOrgCode) + return data, "", err + }) +} + // @Title 更新美团到京东分类映射 // @Description 更新美团到京东分类映射 // @Param token header string true "认证token" diff --git a/routers/commentsRouter_controllers.go b/routers/commentsRouter_controllers.go index a4dd5ca3a..0e5e02a3e 100644 --- a/routers/commentsRouter_controllers.go +++ b/routers/commentsRouter_controllers.go @@ -1845,6 +1845,15 @@ func init() { Filters: nil, Params: nil}) + web.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:SkuController"] = append(web.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:SkuController"], + web.ControllerComments{ + Method: "GetTiktokCategoryValue", + Router: `/GetTiktokCategoryValue`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil}) + web.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:SkuController"] = append(web.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:SkuController"], web.ControllerComments{ Method: "UpdateMtCatToJd",