- InitVendorCategory可对三个主流平台进行操作
This commit is contained in:
@@ -19,7 +19,6 @@ import (
|
|||||||
"git.rosy.net.cn/jx-callback/business/model/dao"
|
"git.rosy.net.cn/jx-callback/business/model/dao"
|
||||||
"git.rosy.net.cn/jx-callback/business/partner"
|
"git.rosy.net.cn/jx-callback/business/partner"
|
||||||
"git.rosy.net.cn/jx-callback/business/partner/purchase/jd"
|
"git.rosy.net.cn/jx-callback/business/partner/purchase/jd"
|
||||||
"git.rosy.net.cn/jx-callback/business/partner/purchase/mtwm"
|
|
||||||
"git.rosy.net.cn/jx-callback/globals"
|
"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/qiniu/api.v7/storage"
|
"github.com/qiniu/api.v7/storage"
|
||||||
@@ -174,14 +173,21 @@ func InitSkuName(ctx *jxcontext.Context, isForce, isAsync, isContinueWhenError b
|
|||||||
}
|
}
|
||||||
|
|
||||||
func InitVendorCategory(ctx *jxcontext.Context, vendorID int) (num int64, err error) {
|
func InitVendorCategory(ctx *jxcontext.Context, vendorID int) (num int64, err error) {
|
||||||
if handler, ok := partner.PurchasePlatformHandlers[vendorID].(*mtwm.PurchaseHandler); ok {
|
if handler := partner.GetPurchasePlatformFromVendorID(vendorID); handler != nil {
|
||||||
cats, err2 := handler.GetVendorCategories()
|
cats, err2 := handler.GetVendorCategories(ctx)
|
||||||
if err2 != nil {
|
if err2 != nil {
|
||||||
return num, err2
|
return num, err2
|
||||||
}
|
}
|
||||||
db := dao.GetDB()
|
db := dao.GetDB()
|
||||||
dao.Begin(db)
|
dao.Begin(db)
|
||||||
defer dao.Rollback(db)
|
defer func() {
|
||||||
|
if r := recover(); r != nil || err != nil {
|
||||||
|
dao.Rollback(db)
|
||||||
|
if r != nil {
|
||||||
|
panic(r)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}()
|
||||||
sql := `
|
sql := `
|
||||||
DELETE
|
DELETE
|
||||||
FROM sku_vendor_category
|
FROM sku_vendor_category
|
||||||
@@ -198,6 +204,8 @@ func InitVendorCategory(ctx *jxcontext.Context, vendorID int) (num int64, err er
|
|||||||
}
|
}
|
||||||
dao.Commit(db)
|
dao.Commit(db)
|
||||||
num = int64(len(cats))
|
num = int64(len(cats))
|
||||||
|
} else {
|
||||||
|
err = fmt.Errorf("找不到平台:%d", vendorID)
|
||||||
}
|
}
|
||||||
return num, err
|
return num, err
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -183,6 +183,7 @@ type IPurchasePlatformHandler interface {
|
|||||||
DeleteRemoteStoreSkus(ctx *jxcontext.Context, parentTask tasksch.ITask, storeID int, isAsync, isContinueWhenError bool) (hint string, err error)
|
DeleteRemoteStoreSkus(ctx *jxcontext.Context, parentTask tasksch.ITask, storeID int, isAsync, isContinueWhenError bool) (hint string, err error)
|
||||||
UploadImg(ctx *jxcontext.Context, imgURL string, imgData []byte, imgName string) (imgHint string, err error)
|
UploadImg(ctx *jxcontext.Context, imgURL string, imgData []byte, imgName string) (imgHint string, err error)
|
||||||
GetStoreStatus(ctx *jxcontext.Context, vendorStoreID string) (storeStatus int, err error)
|
GetStoreStatus(ctx *jxcontext.Context, vendorStoreID string) (storeStatus int, err error)
|
||||||
|
GetVendorCategories(ctx *jxcontext.Context) (vendorCats []*model.SkuVendorCategory, err error)
|
||||||
}
|
}
|
||||||
|
|
||||||
// db *dao.DaoDB,
|
// db *dao.DaoDB,
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ package ebai
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"git.rosy.net.cn/baseapi/platformapi/ebaiapi"
|
"git.rosy.net.cn/baseapi/platformapi/ebaiapi"
|
||||||
|
"git.rosy.net.cn/baseapi/utils"
|
||||||
"git.rosy.net.cn/jx-callback/business/jxutils/jxcontext"
|
"git.rosy.net.cn/jx-callback/business/jxutils/jxcontext"
|
||||||
"git.rosy.net.cn/jx-callback/business/model"
|
"git.rosy.net.cn/jx-callback/business/model"
|
||||||
"git.rosy.net.cn/jx-callback/business/partner"
|
"git.rosy.net.cn/jx-callback/business/partner"
|
||||||
@@ -39,3 +40,40 @@ func (p *PurchaseHandler) UploadImg(ctx *jxcontext.Context, imgURL string, imgDa
|
|||||||
}
|
}
|
||||||
return imgHint, err
|
return imgHint, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (p *PurchaseHandler) getVendorCategories(level int, pid int64) (vendorCats []*model.SkuVendorCategory, err error) {
|
||||||
|
cats, err := api.EbaiAPI.SkuCategoryList("", level, pid)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
for _, v := range cats {
|
||||||
|
cat := &model.SkuVendorCategory{
|
||||||
|
VendorID: model.VendorIDJD,
|
||||||
|
Name: v.CatName,
|
||||||
|
Level: level,
|
||||||
|
VendorCategoryID: v.CatID,
|
||||||
|
}
|
||||||
|
cat.LastOperator = "builder"
|
||||||
|
if level > 1 {
|
||||||
|
cat.ParentID = v.ParentID
|
||||||
|
if level == 3 {
|
||||||
|
cat.IsLeaf = 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
vendorCats = append(vendorCats, cat)
|
||||||
|
if level < 3 {
|
||||||
|
childVendorCats, err2 := p.getVendorCategories(level+1, utils.Str2Int64(v.CatID))
|
||||||
|
if err2 == nil && len(childVendorCats) > 0 {
|
||||||
|
vendorCats = append(vendorCats, childVendorCats...)
|
||||||
|
} else {
|
||||||
|
cat.IsLeaf = 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return vendorCats, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (p *PurchaseHandler) GetVendorCategories(ctx *jxcontext.Context) (vendorCats []*model.SkuVendorCategory, err error) {
|
||||||
|
vendorCats, err = p.getVendorCategories(1, 0)
|
||||||
|
return vendorCats, err
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,6 +1,11 @@
|
|||||||
package ebai
|
package ebai
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"git.rosy.net.cn/baseapi/utils"
|
||||||
|
"git.rosy.net.cn/jx-callback/business/jxutils/jxcontext"
|
||||||
|
|
||||||
_ "git.rosy.net.cn/jx-callback/business/jxcallback/scheduler/defsch"
|
_ "git.rosy.net.cn/jx-callback/business/jxcallback/scheduler/defsch"
|
||||||
"git.rosy.net.cn/jx-callback/globals/testinit"
|
"git.rosy.net.cn/jx-callback/globals/testinit"
|
||||||
)
|
)
|
||||||
@@ -13,3 +18,11 @@ const (
|
|||||||
func init() {
|
func init() {
|
||||||
testinit.Init()
|
testinit.Init()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestGetVendorCategories(t *testing.T) {
|
||||||
|
catList, err := new(PurchaseHandler).GetVendorCategories(jxcontext.AdminCtx)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
t.Log(utils.Format4Output(catList, false))
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
package elm
|
package elm
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"fmt"
|
||||||
|
|
||||||
"git.rosy.net.cn/baseapi/platformapi/elmapi"
|
"git.rosy.net.cn/baseapi/platformapi/elmapi"
|
||||||
"git.rosy.net.cn/baseapi/utils"
|
"git.rosy.net.cn/baseapi/utils"
|
||||||
"git.rosy.net.cn/jx-callback/business/jxutils"
|
"git.rosy.net.cn/jx-callback/business/jxutils"
|
||||||
@@ -87,3 +89,7 @@ func (c *PurchaseHandler) OnCallbackMsg(msg *elmapi.CallbackMsg) (retVal *elmapi
|
|||||||
func (p *PurchaseHandler) UploadImg(ctx *jxcontext.Context, imgURL string, imgData []byte, imgName string) (imgHint string, err error) {
|
func (p *PurchaseHandler) UploadImg(ctx *jxcontext.Context, imgURL string, imgData []byte, imgName string) (imgHint string, err error) {
|
||||||
return imgHint, err
|
return imgHint, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (p *PurchaseHandler) GetVendorCategories(ctx *jxcontext.Context) (vendorCats []*model.SkuVendorCategory, err error) {
|
||||||
|
return nil, fmt.Errorf("平台%s不支持此操作", jxutils.GetVendorName(model.VendorIDELM))
|
||||||
|
}
|
||||||
|
|||||||
@@ -515,3 +515,42 @@ func jxStatus2jdStatus(jxStatus int) (jdStatus int) {
|
|||||||
}
|
}
|
||||||
return jdStatus
|
return jdStatus
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (p *PurchaseHandler) getVendorCategories(level int, pid int64) (vendorCats []*model.SkuVendorCategory, err error) {
|
||||||
|
cats, err := api.JdAPI.QueryChildCategoriesForOP(pid)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
for _, v := range cats {
|
||||||
|
if v.Status == 1 {
|
||||||
|
cat := &model.SkuVendorCategory{
|
||||||
|
VendorID: model.VendorIDJD,
|
||||||
|
Name: v.Name,
|
||||||
|
Level: level,
|
||||||
|
VendorCategoryID: utils.Int64ToStr(v.Id),
|
||||||
|
}
|
||||||
|
cat.LastOperator = "builder"
|
||||||
|
if level > 1 {
|
||||||
|
cat.ParentID = utils.Int64ToStr(v.ParentId)
|
||||||
|
if level == 3 {
|
||||||
|
cat.IsLeaf = 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
vendorCats = append(vendorCats, cat)
|
||||||
|
if level < 3 {
|
||||||
|
childVendorCats, err2 := p.getVendorCategories(level+1, v.Id)
|
||||||
|
if err2 == nil && len(childVendorCats) > 0 {
|
||||||
|
vendorCats = append(vendorCats, childVendorCats...)
|
||||||
|
} else {
|
||||||
|
cat.IsLeaf = 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return vendorCats, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (p *PurchaseHandler) GetVendorCategories(ctx *jxcontext.Context) (vendorCats []*model.SkuVendorCategory, err error) {
|
||||||
|
vendorCats, err = p.getVendorCategories(1, 0)
|
||||||
|
return vendorCats, err
|
||||||
|
}
|
||||||
|
|||||||
@@ -3,6 +3,8 @@ package jd
|
|||||||
import (
|
import (
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
|
"git.rosy.net.cn/jx-callback/business/jxutils/jxcontext"
|
||||||
|
|
||||||
"git.rosy.net.cn/baseapi/utils"
|
"git.rosy.net.cn/baseapi/utils"
|
||||||
"git.rosy.net.cn/jx-callback/business/model"
|
"git.rosy.net.cn/jx-callback/business/model"
|
||||||
"git.rosy.net.cn/jx-callback/business/model/dao"
|
"git.rosy.net.cn/jx-callback/business/model/dao"
|
||||||
@@ -53,3 +55,11 @@ func TestReadSku(t *testing.T) {
|
|||||||
t.Log(string(utils.MustMarshal(skuName)))
|
t.Log(string(utils.MustMarshal(skuName)))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestGetVendorCategories(t *testing.T) {
|
||||||
|
catList, err := new(PurchaseHandler).GetVendorCategories(jxcontext.AdminCtx)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err.Error())
|
||||||
|
}
|
||||||
|
t.Log(utils.Format4Output(catList, false))
|
||||||
|
}
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ func (c *PurchaseHandler) GetVendorID() int {
|
|||||||
return model.VendorIDMTWM
|
return model.VendorIDMTWM
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p *PurchaseHandler) GetVendorCategories() (vendorCats []*model.SkuVendorCategory, err error) {
|
func (p *PurchaseHandler) GetVendorCategories(ctx *jxcontext.Context) (vendorCats []*model.SkuVendorCategory, err error) {
|
||||||
cats, err := api.MtwmAPI.RetailGetSpTagIds()
|
cats, err := api.MtwmAPI.RetailGetSpTagIds()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
@@ -40,10 +40,10 @@ func (p *PurchaseHandler) GetVendorCategories() (vendorCats []*model.SkuVendorCa
|
|||||||
for i := 0; i < 3; i++ {
|
for i := 0; i < 3; i++ {
|
||||||
vendorCatMapList[i] = make(map[string]*model.SkuVendorCategory)
|
vendorCatMapList[i] = make(map[string]*model.SkuVendorCategory)
|
||||||
for _, v := range cats {
|
for _, v := range cats {
|
||||||
if utils.MustInterface2Int64(v["level"]) == 3 {
|
if v.Level == 3 {
|
||||||
namePathList := strings.Split(strings.Trim(utils.Interface2String(v["namePath"]), ","), ",")
|
namePathList := strings.Split(strings.Trim(v.NamePath, ","), ",")
|
||||||
if len(namePathList) != 3 {
|
if len(namePathList) != 3 {
|
||||||
panic(fmt.Sprintf("%s没有三级结构", v["namePath"]))
|
panic(fmt.Sprintf("%s没有三级结构", v.NamePath))
|
||||||
}
|
}
|
||||||
name := namePathList[i]
|
name := namePathList[i]
|
||||||
if _, ok := vendorCatMapList[i][name]; !ok {
|
if _, ok := vendorCatMapList[i][name]; !ok {
|
||||||
@@ -56,8 +56,8 @@ func (p *PurchaseHandler) GetVendorCategories() (vendorCats []*model.SkuVendorCa
|
|||||||
vendorCats = append(vendorCats, cat)
|
vendorCats = append(vendorCats, cat)
|
||||||
vendorCatMapList[i][name] = cat
|
vendorCatMapList[i][name] = cat
|
||||||
if i == 2 {
|
if i == 2 {
|
||||||
cat.IsLeaf = int8(1)
|
cat.IsLeaf = 1
|
||||||
cat.VendorCategoryID = utils.Int64ToStr(utils.MustInterface2Int64(v["id"]))
|
cat.VendorCategoryID = utils.Int64ToStr(v.ID)
|
||||||
} else {
|
} else {
|
||||||
cat.VendorCategoryID = utils.Int2Str(manID) // 非叶子结点编码没有实际使用
|
cat.VendorCategoryID = utils.Int2Str(manID) // 非叶子结点编码没有实际使用
|
||||||
manID++
|
manID++
|
||||||
|
|||||||
@@ -3,6 +3,8 @@ package mtwm
|
|||||||
import (
|
import (
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
|
"git.rosy.net.cn/jx-callback/business/jxutils/jxcontext"
|
||||||
|
|
||||||
"git.rosy.net.cn/baseapi/utils"
|
"git.rosy.net.cn/baseapi/utils"
|
||||||
_ "git.rosy.net.cn/jx-callback/business/jxcallback/orderman"
|
_ "git.rosy.net.cn/jx-callback/business/jxcallback/orderman"
|
||||||
"git.rosy.net.cn/jx-callback/globals/testinit"
|
"git.rosy.net.cn/jx-callback/globals/testinit"
|
||||||
@@ -13,7 +15,7 @@ func init() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestGetVendorCategories(t *testing.T) {
|
func TestGetVendorCategories(t *testing.T) {
|
||||||
result, err := new(PurchaseHandler).GetVendorCategories()
|
result, err := new(PurchaseHandler).GetVendorCategories(jxcontext.AdminCtx)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ func (c *PurchaseHandler) GetVendorID() int {
|
|||||||
return model.VendorIDWSC
|
return model.VendorIDWSC
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p *PurchaseHandler) GetVendorCategories() (vendorCats []*model.SkuVendorCategory, err error) {
|
func (p *PurchaseHandler) GetVendorCategories(ctx *jxcontext.Context) (vendorCats []*model.SkuVendorCategory, err error) {
|
||||||
rootCats, err := api.WeimobAPI.QueryCategoryTree()
|
rootCats, err := api.WeimobAPI.QueryCategoryTree()
|
||||||
catList := rootCats
|
catList := rootCats
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|||||||
@@ -79,7 +79,7 @@ zhongwuAppID = 8000192
|
|||||||
zhongwuAppSecret = "29435497822f52f3cf659c65da548a79"
|
zhongwuAppSecret = "29435497822f52f3cf659c65da548a79"
|
||||||
|
|
||||||
[dev]
|
[dev]
|
||||||
jdToken = "c8854ef2-f80a-45ee-aceb-dc8014d646f8"
|
jdToken = "df97f334-f7d8-4b36-9664-5784d8ae0baf"
|
||||||
jdAppKey = "06692746f7224695ad4788ce340bc854"
|
jdAppKey = "06692746f7224695ad4788ce340bc854"
|
||||||
jdSecret = "d6b42a35a7414a5490d811654d745c84"
|
jdSecret = "d6b42a35a7414a5490d811654d745c84"
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user