饿鲜达合并,按美团调价包刷新京西价
This commit is contained in:
@@ -1443,3 +1443,12 @@ func DeleteSkuNameExPrefixOverdue(db *dao.DaoDB) (err error) {
|
|||||||
_, err = dao.DeleteSkuNameExPrefixOverdue(db)
|
_, err = dao.DeleteSkuNameExPrefixOverdue(db)
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func SumExianDaDepot() (err error) {
|
||||||
|
// result, err := api.EbaiAPI.GetExianDaSkuDepot()
|
||||||
|
// for _, v := range result {
|
||||||
|
// v.ElemeGoodsID
|
||||||
|
// v.ImageURL
|
||||||
|
// }
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|||||||
@@ -3539,7 +3539,7 @@ func SendSeckillSkusCountMsg(ctx *jxcontext.Context, vendorIDs []int, isAsync, i
|
|||||||
return hint, err
|
return hint, err
|
||||||
}
|
}
|
||||||
|
|
||||||
func RefreshJxPriceByVendor(ctx *jxcontext.Context, jdStoreSkus []*JdStoreSkus, isAsync, isContinueWhenError bool) (hint string, err error) {
|
func RefreshJxPriceByVendor(ctx *jxcontext.Context, jdStoreSkus []*JdStoreSkus, vendorID int, isAsync, isContinueWhenError bool) (hint string, err error) {
|
||||||
var (
|
var (
|
||||||
db = dao.GetDB()
|
db = dao.GetDB()
|
||||||
jdMap = make(map[int][]*JdStoreSkus)
|
jdMap = make(map[int][]*JdStoreSkus)
|
||||||
@@ -3549,67 +3549,111 @@ func RefreshJxPriceByVendor(ctx *jxcontext.Context, jdStoreSkus []*JdStoreSkus,
|
|||||||
taskSeqFunc := func(task *tasksch.SeqTask, step int, params ...interface{}) (result interface{}, err error) {
|
taskSeqFunc := func(task *tasksch.SeqTask, step int, params ...interface{}) (result interface{}, err error) {
|
||||||
switch step {
|
switch step {
|
||||||
case 0:
|
case 0:
|
||||||
for _, v := range jdStoreSkus {
|
if vendorID == model.VendorIDJD {
|
||||||
var (
|
for _, v := range jdStoreSkus {
|
||||||
pricePercentagePack []*model.PricePercentageItem
|
var (
|
||||||
cats []*model.ThingMap
|
pricePercentagePack []*model.PricePercentageItem
|
||||||
skus []*model.SkuAndName
|
cats []*model.ThingMap
|
||||||
)
|
skus []*model.SkuAndName
|
||||||
sql := `
|
)
|
||||||
SELECT t1.*
|
sql := `
|
||||||
FROM thing_map t1
|
SELECT t1.*
|
||||||
WHERE t1.deleted_at = ? AND t1.thing_type = ?
|
FROM thing_map t1
|
||||||
AND t1.vendor_thing_id = ?
|
WHERE t1.deleted_at = ? AND t1.thing_type = ?
|
||||||
`
|
AND t1.vendor_thing_id = ?
|
||||||
sqlParams := []interface{}{
|
`
|
||||||
utils.DefaultTimeValue,
|
sqlParams := []interface{}{
|
||||||
model.ThingTypeSku,
|
utils.DefaultTimeValue,
|
||||||
v.JdSkuID,
|
model.ThingTypeSku,
|
||||||
}
|
v.JdSkuID,
|
||||||
err = dao.GetRows(db, &cats, sql, sqlParams...)
|
|
||||||
if len(cats) > 0 {
|
|
||||||
skus, err = dao.GetSkus(db, []int{int(cats[0].ThingID)}, nil, nil, nil)
|
|
||||||
if err != nil || len(skus) == 0 {
|
|
||||||
return result, fmt.Errorf("没有找到该京西skuID!,京西skuID :[%v]", cats[0].ThingID)
|
|
||||||
}
|
}
|
||||||
} else {
|
err = dao.GetRows(db, &cats, sql, sqlParams...)
|
||||||
return result, fmt.Errorf("没有找到该京东skuID对应的京西skuID!,京东skuID :[%v]", v.JdSkuID)
|
if len(cats) > 0 {
|
||||||
}
|
skus, err = dao.GetSkus(db, []int{int(cats[0].ThingID)}, nil, nil, nil)
|
||||||
store, err := dao.GetStoreDetailByVendorStoreID(db, utils.Int2Str(v.JdStoreID), model.VendorIDJD)
|
if err != nil || len(skus) == 0 {
|
||||||
if err != nil || store == nil {
|
return result, fmt.Errorf("没有找到该京西skuID!,京西skuID :[%v]", cats[0].ThingID)
|
||||||
return result, fmt.Errorf("没有找到该京东门店对应的京西门店!,京东门店ID :[%v]", v.JdStoreID)
|
|
||||||
}
|
|
||||||
err = jxutils.Strings2Objs(store.PricePercentagePackStr, &pricePercentagePack)
|
|
||||||
jxPrice := jxutils.CaculateJxPriceByPricePack(pricePercentagePack, 0, v.Price)
|
|
||||||
jdMap[store.ID] = append(jdMap[store.ID], &JdStoreSkus{
|
|
||||||
JdSkuID: skus[0].NameID,
|
|
||||||
Price: jxPrice,
|
|
||||||
})
|
|
||||||
}
|
|
||||||
for k, v := range jdMap {
|
|
||||||
var skuNameMap = make(map[int]int)
|
|
||||||
for _, vv := range v {
|
|
||||||
if skuNameMap[vv.JdSkuID] != 0 {
|
|
||||||
if skuNameMap[vv.JdSkuID] > vv.Price {
|
|
||||||
skuNameMap[vv.JdSkuID] = vv.Price
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
skuNameMap[vv.JdSkuID] = vv.Price
|
return result, fmt.Errorf("没有找到该京东skuID对应的京西skuID!,京东skuID :[%v]", v.JdSkuID)
|
||||||
|
}
|
||||||
|
store, err := dao.GetStoreDetailByVendorStoreID(db, utils.Int2Str(v.JdStoreID), vendorID)
|
||||||
|
if err != nil || store == nil {
|
||||||
|
return result, fmt.Errorf("没有找到该京东门店对应的京西门店!,京东门店ID :[%v]", v.JdStoreID)
|
||||||
|
}
|
||||||
|
err = jxutils.Strings2Objs(store.PricePercentagePackStr, &pricePercentagePack)
|
||||||
|
jxPrice := jxutils.CaculateJxPriceByPricePack(pricePercentagePack, 0, v.Price)
|
||||||
|
jdMap[store.ID] = append(jdMap[store.ID], &JdStoreSkus{
|
||||||
|
JdSkuID: skus[0].NameID,
|
||||||
|
Price: jxPrice,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
for k, v := range jdMap {
|
||||||
|
var skuNameMap = make(map[int]int)
|
||||||
|
for _, vv := range v {
|
||||||
|
if skuNameMap[vv.JdSkuID] != 0 {
|
||||||
|
if skuNameMap[vv.JdSkuID] > vv.Price {
|
||||||
|
skuNameMap[vv.JdSkuID] = vv.Price
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
skuNameMap[vv.JdSkuID] = vv.Price
|
||||||
|
}
|
||||||
|
}
|
||||||
|
jxMap[k] = skuNameMap
|
||||||
|
}
|
||||||
|
for k, v := range jxMap {
|
||||||
|
for kk, vv := range v {
|
||||||
|
result, err := dao.GetStoreSkuBindByNameID(db, k, kk, model.SkuStatusNormal)
|
||||||
|
if len(result) > 0 && err == nil {
|
||||||
|
if result[0].UnitPrice > vv {
|
||||||
|
storeSkuBindInfo := &StoreSkuBindInfo{
|
||||||
|
StoreID: k,
|
||||||
|
NameID: kk,
|
||||||
|
UnitPrice: vv,
|
||||||
|
}
|
||||||
|
param = append(param, storeSkuBindInfo)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
jxMap[k] = skuNameMap
|
} else if vendorID == model.VendorIDMTWM {
|
||||||
}
|
for _, v := range jdStoreSkus {
|
||||||
for k, v := range jxMap {
|
var (
|
||||||
for kk, vv := range v {
|
pricePercentagePack []*model.PricePercentageItem
|
||||||
result, err := dao.GetStoreSkuBindByNameID(db, k, kk, model.SkuStatusNormal)
|
)
|
||||||
if len(result) > 0 && err == nil {
|
skus, _ := dao.GetSkus(db, []int{v.JdSkuID}, nil, nil, nil)
|
||||||
if result[0].UnitPrice > vv {
|
store, _ := dao.GetStoreDetail(db, v.JdStoreID, vendorID)
|
||||||
storeSkuBindInfo := &StoreSkuBindInfo{
|
err = jxutils.Strings2Objs(store.PricePercentagePackStr, &pricePercentagePack)
|
||||||
StoreID: k,
|
jxPrice := jxutils.CaculateJxPriceByPricePack(pricePercentagePack, 0, v.Price)
|
||||||
NameID: kk,
|
jdMap[v.JdStoreID] = append(jdMap[v.JdStoreID], &JdStoreSkus{
|
||||||
UnitPrice: vv,
|
JdSkuID: skus[0].NameID,
|
||||||
|
Price: jxPrice,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
for k, v := range jdMap {
|
||||||
|
var skuNameMap = make(map[int]int)
|
||||||
|
for _, vv := range v {
|
||||||
|
if skuNameMap[vv.JdSkuID] != 0 {
|
||||||
|
if skuNameMap[vv.JdSkuID] > vv.Price {
|
||||||
|
skuNameMap[vv.JdSkuID] = vv.Price
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
skuNameMap[vv.JdSkuID] = vv.Price
|
||||||
|
}
|
||||||
|
}
|
||||||
|
jxMap[k] = skuNameMap
|
||||||
|
}
|
||||||
|
for k, v := range jxMap {
|
||||||
|
for kk, vv := range v {
|
||||||
|
result, err := dao.GetStoreSkuBindByNameID(db, k, kk, model.SkuStatusNormal)
|
||||||
|
if len(result) > 0 && err == nil {
|
||||||
|
if result[0].UnitPrice > vv {
|
||||||
|
storeSkuBindInfo := &StoreSkuBindInfo{
|
||||||
|
StoreID: k,
|
||||||
|
NameID: kk,
|
||||||
|
UnitPrice: vv,
|
||||||
|
}
|
||||||
|
param = append(param, storeSkuBindInfo)
|
||||||
}
|
}
|
||||||
param = append(param, storeSkuBindInfo)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -129,7 +129,7 @@ func (p *PurchaseHandler) updateStoreSkus(ctx *jxcontext.Context, storeID int, v
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorChineseNames[model.VendorIDEBAI], "更新商品基础信息")
|
failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorChineseNames[model.VendorIDEBAI], "更新商品基础信息")
|
||||||
}
|
}
|
||||||
if isNeedMapCat {
|
if isNeedMapCat && !isExd {
|
||||||
utils.CallFuncAsync(func() {
|
utils.CallFuncAsync(func() {
|
||||||
api.EbaiAPI.SkuShopCategoryMap(strStoreID, utils.Str2Int64(storeSku.VendorSkuID), "", utils.Str2Int64(storeSku.VendorCatID), genSkuCatRank(storeSku))
|
api.EbaiAPI.SkuShopCategoryMap(strStoreID, utils.Str2Int64(storeSku.VendorSkuID), "", utils.Str2Int64(storeSku.VendorCatID), genSkuCatRank(storeSku))
|
||||||
})
|
})
|
||||||
@@ -161,7 +161,7 @@ func (p *PurchaseHandler) CreateStoreSkus(ctx *jxcontext.Context, storeID int, v
|
|||||||
params := genSkuParamsFromStoreSkuInfo2(storeSku, true, isExd)
|
params := genSkuParamsFromStoreSkuInfo2(storeSku, true, isExd)
|
||||||
if globals.EnableEbaiStoreWrite {
|
if globals.EnableEbaiStoreWrite {
|
||||||
strStoreID := utils.Int2Str(storeID)
|
strStoreID := utils.Int2Str(storeID)
|
||||||
if vendorSkuID, err = api.EbaiAPI.SkuCreate(ctx.GetTrackInfo(), strStoreID, customSkuID, params); err == nil {
|
if vendorSkuID, err = api.EbaiAPI.SkuCreate(ctx.GetTrackInfo(), strStoreID, customSkuID, params); err == nil && !isExd {
|
||||||
utils.AfterFuncWithRecover(5*time.Second, func() {
|
utils.AfterFuncWithRecover(5*time.Second, func() {
|
||||||
api.EbaiAPI.SkuShopCategoryMap(strStoreID, vendorSkuID, "", utils.Str2Int64(storeSku.VendorCatID), genSkuCatRank(storeSku))
|
api.EbaiAPI.SkuShopCategoryMap(strStoreID, vendorSkuID, "", utils.Str2Int64(storeSku.VendorCatID), genSkuCatRank(storeSku))
|
||||||
// 饿百平台有BUG,会导致新建一个之前删除的商品时,信息不会及时更新,强制刷新一下
|
// 饿百平台有BUG,会导致新建一个之前删除的商品时,信息不会及时更新,强制刷新一下
|
||||||
|
|||||||
@@ -66,6 +66,7 @@ fakeJdBaseURL = "http://test.jxc4.com/qqqq"
|
|||||||
|
|
||||||
ebaiStorePageCookieWMUSS = "B0AAFQCAAAGbhkuMCsvcyYBDkkyAxBGIBlgXAQYVwc7VwYZFkx2HDoPSmo5eV1femopWgJRawhgAALG04cg1RUmhUakBbJRdgPS0tNEhnQhNRewwuWwYYBDEFPCQSDXV5YWA6PAVRHUJ9SnVGMThYAjNjLw9pRxIbS04-XFo05AQgBl%7ERLA33vWcR73gEAKZ"
|
ebaiStorePageCookieWMUSS = "B0AAFQCAAAGbhkuMCsvcyYBDkkyAxBGIBlgXAQYVwc7VwYZFkx2HDoPSmo5eV1femopWgJRawhgAALG04cg1RUmhUakBbJRdgPS0tNEhnQhNRewwuWwYYBDEFPCQSDXV5YWA6PAVRHUJ9SnVGMThYAjNjLw9pRxIbS04-XFo05AQgBl%7ERLA33vWcR73gEAKZ"
|
||||||
ebaiStorePageCookieWMSTOKEN = "gAALgNAAAGfBI5YEBHSQdZY1InIS8CVQU9aBU1f3VLWVQqKHAAAc5LnRLZ1QLLx0S5IuzCSX8ZQ7oUwAAUr-GEm9JpRc9AQAAsLkLHHXzuhh2lZkbyrcAAAWBESKg3ZA"
|
ebaiStorePageCookieWMSTOKEN = "gAALgNAAAGfBI5YEBHSQdZY1InIS8CVQU9aBU1f3VLWVQqKHAAAc5LnRLZ1QLLx0S5IuzCSX8ZQ7oUwAAUr-GEm9JpRc9AQAAsLkLHHXzuhh2lZkbyrcAAAWBESKg3ZA"
|
||||||
|
ebaiStorePageCookieExdTOKEN = "PBE_2.0_5cd1c6141c127d4188f026ac01fc93656266683e8dfb3127c2fdf894259e9034125ff3bdd2a997a385802ee3ef1802ba93a04acea34fde2d2b6e802c5dcd4ec6e3f4ad909a1d806e3ceeb349ed726b03d60ed1fe7010d4140aa338d9c5f05e3fec172c78d3d7f0ca579d61b7015af1bf99aa46b04d2b8a64aa50646dc09afe94b6b60e0ba9a933635db5e8b2a035e9b6d693b289acf1b256d5b9a3f8478c87b0b009115bfd1394f20bb5a0dc2c07b8d013a25f286ec6bf7f2d86010d65507e31358834b7a6b58fbd88cb3f1a12cf71c997b91c1527f6f3c10693f7c2bd6073da8633a98cd2dc1114dfa5be5ee0e60b02cf7e4a94d0fb563a8c01717e7c050f02249117219c07a2eb211577c208ba77f4d536fa25139bc249be93b38d6fc495ef67a32aa206835d177db402bc534de1d29caf4f6b4fbcd912c13f167d00d1732222744c336a5189728f72fb5e153c4b1164171cfb0c811f34f4c2fedd43f721b8706b43f8d631251c"
|
||||||
mtpsStoreToken = "M0p9VatZSeSHfrosD5IViAVl73IcA8mlcuHIV5sG6Zpv83a7JE0wY3t26aEhrrs_MR5gtLSFF1UIkt8HAjaXow"
|
mtpsStoreToken = "M0p9VatZSeSHfrosD5IViAVl73IcA8mlcuHIV5sG6Zpv83a7JE0wY3t26aEhrrs_MR5gtLSFF1UIkt8HAjaXow"
|
||||||
|
|
||||||
weimobAppID = "319F5E7FB6784DFCA3684C9333EB7744"
|
weimobAppID = "319F5E7FB6784DFCA3684C9333EB7744"
|
||||||
@@ -280,7 +281,7 @@ weixinSecret = "ba32b269a068a5b72486a0beafd171e8"
|
|||||||
dbConnectStr = "root:WebServer@1@tcp(127.0.0.1:3306)/jxd_dev_0?charset=utf8mb4&loc=Local&parseTime=true"
|
dbConnectStr = "root:WebServer@1@tcp(127.0.0.1:3306)/jxd_dev_0?charset=utf8mb4&loc=Local&parseTime=true"
|
||||||
|
|
||||||
[alpha]
|
[alpha]
|
||||||
httpport = 8088
|
httpport = 8080
|
||||||
|
|
||||||
# xiaan
|
# xiaan
|
||||||
jdOrgCode = "82029"
|
jdOrgCode = "82029"
|
||||||
|
|||||||
@@ -415,3 +415,16 @@ func (c *SkuController) UpdateSkuNamesExPrefix() {
|
|||||||
return retVal, "", err
|
return retVal, "", err
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// @Title 合并饿鲜达商品库
|
||||||
|
// @Description 合并饿鲜达商品库
|
||||||
|
// @Param token header string true "认证token"
|
||||||
|
// @Success 200 {object} controllers.CallResult
|
||||||
|
// @Failure 200 {object} controllers.CallResult
|
||||||
|
// @router /SumExianDaDepot [put]
|
||||||
|
func (c *SkuController) SumExianDaDepot() {
|
||||||
|
c.callSumExianDaDepot(func(params *tSkuSumExianDaDepotParams) (retVal interface{}, errCode string, err error) {
|
||||||
|
err = cms.SumExianDaDepot()
|
||||||
|
return retVal, "", err
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|||||||
@@ -673,6 +673,7 @@ func (c *StoreSkuController) SendSeckillSkusCountMsg() {
|
|||||||
// @Description 根据平台价反算京西价
|
// @Description 根据平台价反算京西价
|
||||||
// @Param token header string true "认证token"
|
// @Param token header string true "认证token"
|
||||||
// @Param payload formData string true "json数据,JdStoreSkus对象"
|
// @Param payload formData string true "json数据,JdStoreSkus对象"
|
||||||
|
// @Param vendorID formData int true "厂商ID"
|
||||||
// @Param isAsync formData bool true "是否异步,缺省是同步"
|
// @Param isAsync formData bool true "是否异步,缺省是同步"
|
||||||
// @Param isContinueWhenError formData bool true "单个同步失败是否继续,缺省false"
|
// @Param isContinueWhenError formData bool true "单个同步失败是否继续,缺省false"
|
||||||
// @Success 200 {object} controllers.CallResult
|
// @Success 200 {object} controllers.CallResult
|
||||||
@@ -684,7 +685,7 @@ func (c *StoreSkuController) RefreshJxPriceByVendor() {
|
|||||||
if err = jxutils.Strings2Objs(params.Payload, &skuBindInfos); err != nil {
|
if err = jxutils.Strings2Objs(params.Payload, &skuBindInfos); err != nil {
|
||||||
return retVal, "", err
|
return retVal, "", err
|
||||||
}
|
}
|
||||||
retVal,err = cms.RefreshJxPriceByVendor(params.Ctx, skuBindInfos, params.IsAsync, params.IsContinueWhenError)
|
retVal, err = cms.RefreshJxPriceByVendor(params.Ctx, skuBindInfos, params.VendorID, params.IsAsync, params.IsContinueWhenError)
|
||||||
return retVal, "", err
|
return retVal, "", err
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -124,9 +124,11 @@ func Init() {
|
|||||||
EbaiAPI = ebaiapi.New(beego.AppConfig.String("ebaiSource"), beego.AppConfig.String("ebaiSecret"))
|
EbaiAPI = ebaiapi.New(beego.AppConfig.String("ebaiSource"), beego.AppConfig.String("ebaiSecret"))
|
||||||
ebaiStorePageCookieWMUSS := beego.AppConfig.DefaultString("ebaiStorePageCookieWMUSS", "")
|
ebaiStorePageCookieWMUSS := beego.AppConfig.DefaultString("ebaiStorePageCookieWMUSS", "")
|
||||||
ebaiStorePageCookieWMSTOKEN := beego.AppConfig.DefaultString("ebaiStorePageCookieWMSTOKEN", "")
|
ebaiStorePageCookieWMSTOKEN := beego.AppConfig.DefaultString("ebaiStorePageCookieWMSTOKEN", "")
|
||||||
if ebaiStorePageCookieWMUSS != "" && ebaiStorePageCookieWMSTOKEN != "" {
|
ebaiStorePageCookieExdTOKEN := beego.AppConfig.DefaultString("ebaiStorePageCookieExdTOKEN", "")
|
||||||
|
if ebaiStorePageCookieWMUSS != "" && ebaiStorePageCookieWMSTOKEN != "" && ebaiStorePageCookieExdTOKEN != "" {
|
||||||
EbaiAPI.SetCookie("WMUSS", ebaiStorePageCookieWMUSS)
|
EbaiAPI.SetCookie("WMUSS", ebaiStorePageCookieWMUSS)
|
||||||
EbaiAPI.SetCookie("WMSTOKEN", ebaiStorePageCookieWMSTOKEN)
|
EbaiAPI.SetCookie("WMSTOKEN", ebaiStorePageCookieWMSTOKEN)
|
||||||
|
EbaiAPI.SetCookie("PASSPORT_DELIMONT_TOKEN", ebaiStorePageCookieExdTOKEN)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
EbaiAPI = nil
|
EbaiAPI = nil
|
||||||
|
|||||||
@@ -1359,6 +1359,15 @@ func init() {
|
|||||||
Filters: nil,
|
Filters: nil,
|
||||||
Params: nil})
|
Params: nil})
|
||||||
|
|
||||||
|
beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:SkuController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:SkuController"],
|
||||||
|
beego.ControllerComments{
|
||||||
|
Method: "SumExianDaDepot",
|
||||||
|
Router: `/SumExianDaDepot`,
|
||||||
|
AllowHTTPMethods: []string{"put"},
|
||||||
|
MethodParams: param.Make(),
|
||||||
|
Filters: nil,
|
||||||
|
Params: nil})
|
||||||
|
|
||||||
beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:SkuController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:SkuController"],
|
beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:SkuController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:SkuController"],
|
||||||
beego.ControllerComments{
|
beego.ControllerComments{
|
||||||
Method: "SyncCategory",
|
Method: "SyncCategory",
|
||||||
|
|||||||
Reference in New Issue
Block a user