- putils/store_sku.go用于一些通用实现

This commit is contained in:
gazebo
2019-07-13 15:31:30 +08:00
parent 01c522b5b0
commit f31b158259
10 changed files with 177 additions and 203 deletions

View File

@@ -6,6 +6,7 @@ import (
"git.rosy.net.cn/jx-callback/business/jxutils/jxcontext"
"git.rosy.net.cn/jx-callback/business/model"
"git.rosy.net.cn/jx-callback/business/partner"
"git.rosy.net.cn/jx-callback/business/partner/putils"
"git.rosy.net.cn/jx-callback/globals"
"git.rosy.net.cn/jx-callback/globals/api"
)
@@ -16,15 +17,22 @@ var (
type PurchaseHandler struct {
partner.BasePurchasePlatform
putils.DefSingleStorePlatform
}
func init() {
if api.EbaiAPI != nil {
CurPurchaseHandler = new(PurchaseHandler)
CurPurchaseHandler = New()
partner.RegisterPurchasePlatform(CurPurchaseHandler)
}
}
func New() (obj *PurchaseHandler) {
obj = new(PurchaseHandler)
obj.ISingleStoreStoreSkuHandler = obj
return obj
}
func EbaiBusStatus2JxStatus(ebaiStatus int) int {
if ebaiStatus == ebaiapi.ShopBusStatusHaveRest || ebaiStatus == ebaiapi.ShopBusStatusSuspended {
return model.StoreStatusClosed

View File

@@ -199,52 +199,6 @@ func genSkuParamsFromStoreSkuInfo2(storeSku *dao.StoreSkuSyncInfo) (params map[s
return params
}
func (p *PurchaseHandler) GetStoreSkusBareInfo(ctx *jxcontext.Context, parentTask tasksch.ITask, storeID int, vendorStoreID string, inStoreSkuList []*partner.StoreSkuInfo) (outStoreSkuList []*partner.StoreSkuInfo, err error) {
vendorSkuIDIntList := partner.BareStoreSkuInfoList(inStoreSkuList).GetVendorSkuIDIntList()
var vendorSkuList []*ebaiapi.SkuInfo
if len(vendorSkuIDIntList) > 1 {
task := tasksch.NewParallelTask("获取饿百平台门店商品信息", nil, ctx,
func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
vendorSkuID := batchItemList[0].(int64)
skuInfo, err := api.EbaiAPI.SkuList(utils.Int2Str(storeID), &ebaiapi.SkuListParams{
SkuID: vendorSkuID,
})
if err == nil {
vendorSkuList = skuInfo.List
return skuInfo.List, nil
}
return nil, err
}, vendorSkuIDIntList)
tasksch.HandleTask(task, parentTask, false).Run()
_, err = task.GetResult(0)
} else if len(vendorSkuIDIntList) == 1 {
skuInfo, err2 := api.EbaiAPI.SkuList(utils.Int2Str(storeID), &ebaiapi.SkuListParams{
SkuID: vendorSkuIDIntList[0],
})
if err = err2; err == nil {
vendorSkuList = skuInfo.List
}
} else {
return nil, nil
}
if err == nil {
storeSkuMap := make(map[int64]*partner.StoreSkuInfo)
for _, v := range inStoreSkuList {
storeSkuMap[utils.Str2Int64(v.VendorSkuID)] = v
}
for _, vendorSku := range vendorSkuList {
storeSku := storeSkuMap[vendorSku.SkuID]
// globals.SugarLogger.Debug(utils.Format4Output(storeSku, false))
storeSku.Stock = vendorSku.LeftNum
storeSku.Price = vendorSku.SalePrice
storeSku.Status = ebaiSkuStatus2Jx(vendorSku.Status)
outStoreSkuList = append(outStoreSkuList, storeSku)
}
}
return outStoreSkuList, err
}
func ebaiSkuStatus2Jx(ebaiSkuStatus int) (jxSkuStatus int) {
if ebaiSkuStatus == ebaiapi.SkuStatusOnline {
jxSkuStatus = model.SkuStatusNormal

View File

@@ -7,11 +7,34 @@ import (
"git.rosy.net.cn/jx-callback/business/jxutils/jxcontext"
)
func TestGetStoreAllSkus(t *testing.T) {
skuNameList, err := new(PurchaseHandler).GetStoreSkusFullInfo(jxcontext.AdminCtx, nil, testShopID, testShopBaiduID, []int{4256})
func TestGetStoreSkusFullInfo(t *testing.T) {
skuNameList, err := CurPurchaseHandler.GetStoreSkusFullInfo(jxcontext.AdminCtx, nil, testShopID, testShopBaiduID, []int{4256})
if err != nil {
t.Fatal(err.Error())
}
t.Log(utils.Format4Output(skuNameList, false))
t.Log(len(skuNameList))
}
func TestGetStoreSkusBareInfo(t *testing.T) {
storeSkuList, err := CurPurchaseHandler.GetStoreSkusBareInfo(jxcontext.AdminCtx, nil, testShopID, testShopBaiduID, nil)
if err != nil {
t.Fatal(err.Error())
}
t.Log(utils.Format4Output(storeSkuList, false))
t.Log(len(storeSkuList))
}
func TestDeleteStoreAllSkus(t *testing.T) {
err := CurPurchaseHandler.DeleteStoreAllSkus(jxcontext.AdminCtx, nil, testShopID, testShopBaiduID, true)
if err != nil {
t.Fatal(err)
}
}
func TestDeleteStoreAllCategories(t *testing.T) {
err := CurPurchaseHandler.DeleteStoreAllCategories(jxcontext.AdminCtx, nil, testShopID, testShopBaiduID, true)
if err != nil {
t.Fatal(err)
}
}