- up.
This commit is contained in:
@@ -80,7 +80,7 @@ var (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func RunTask(taskName string, isContinueWhenError bool, resultHandler ResultHandlerFunc, parallelCount, batchSize int, userName string, worker WorkFunc, itemList interface{}, params ...interface{}) *Task {
|
func RunTask(taskName string, isContinueWhenError bool, resultHandler ResultHandlerFunc, parallelCount, batchSize int, userName string, worker WorkFunc, itemList interface{}, params ...interface{}) *Task {
|
||||||
if parallelCount > MaxParallelCount {
|
if parallelCount > MaxParallelCount || parallelCount == 0 {
|
||||||
parallelCount = MaxParallelCount
|
parallelCount = MaxParallelCount
|
||||||
}
|
}
|
||||||
listLen := jxutils.GetSliceLen(itemList)
|
listLen := jxutils.GetSliceLen(itemList)
|
||||||
|
|||||||
@@ -24,6 +24,8 @@ const (
|
|||||||
FieldPlaceCode = "PlaceCode"
|
FieldPlaceCode = "PlaceCode"
|
||||||
|
|
||||||
FieldJdID = "JdID"
|
FieldJdID = "JdID"
|
||||||
|
FieldElmID = "ElmID"
|
||||||
|
FieldEbaiID = "EbaiID"
|
||||||
)
|
)
|
||||||
|
|
||||||
type ModelIDCUL struct {
|
type ModelIDCUL struct {
|
||||||
|
|||||||
@@ -17,6 +17,7 @@ type Place struct {
|
|||||||
Level int8 `json:"level"` // 城市级别,参见相关常量定义
|
Level int8 `json:"level"` // 城市级别,参见相关常量定义
|
||||||
TelCode string `orm:"size(8);index" json:"telCode"`
|
TelCode string `orm:"size(8);index" json:"telCode"`
|
||||||
JdCode int `orm:"index" json:"jdCode"` // 对应的京东代码
|
JdCode int `orm:"index" json:"jdCode"` // 对应的京东代码
|
||||||
|
EbaiCode int `orm:"index" json:"ebaiCode"`
|
||||||
Enabled int8 `json:"enabled"` // 是否启用
|
Enabled int8 `json:"enabled"` // 是否启用
|
||||||
MtpsPrice int `json:"mtpsPrice"` // 分为单位
|
MtpsPrice int `json:"mtpsPrice"` // 分为单位
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -74,13 +74,14 @@ type IPurchasePlatformHandler interface {
|
|||||||
// CloseStore(vendorStoreID, closeNotice, userName string) error
|
// CloseStore(vendorStoreID, closeNotice, userName string) error
|
||||||
|
|
||||||
SyncStoreSkus(db *dao.DaoDB, storeIDs []int, skuIDs []int, isForce bool, userName string) (err error)
|
SyncStoreSkus(db *dao.DaoDB, storeIDs []int, skuIDs []int, isForce bool, userName string) (err error)
|
||||||
|
|
||||||
|
GetFieldIDName() string
|
||||||
|
GetFieldSyncStatusName() string
|
||||||
}
|
}
|
||||||
|
|
||||||
// db *dao.DaoDB,
|
// db *dao.DaoDB,
|
||||||
type IMultipleStoresHandler interface {
|
type IMultipleStoresHandler interface {
|
||||||
GetFieldIDName() string
|
IPurchasePlatformHandler
|
||||||
GetFieldSyncStatusName() string
|
|
||||||
|
|
||||||
ReadCategories() (cats []*model.SkuCategory, err error)
|
ReadCategories() (cats []*model.SkuCategory, err error)
|
||||||
|
|
||||||
CreateCategory(db *dao.DaoDB, cat *model.SkuCategory, userName string) (err error)
|
CreateCategory(db *dao.DaoDB, cat *model.SkuCategory, userName string) (err error)
|
||||||
@@ -98,6 +99,7 @@ type IMultipleStoresHandler interface {
|
|||||||
}
|
}
|
||||||
|
|
||||||
type ISingleStoreHandler interface {
|
type ISingleStoreHandler interface {
|
||||||
|
IPurchasePlatformHandler
|
||||||
SyncStoreCategories(db *dao.DaoDB, storeIDs []int, catIDs []int) (err error)
|
SyncStoreCategories(db *dao.DaoDB, storeIDs []int, catIDs []int) (err error)
|
||||||
ReadStoreCategories(storeID int) (cats []*model.SkuCategory, err error)
|
ReadStoreCategories(storeID int) (cats []*model.SkuCategory, err error)
|
||||||
|
|
||||||
|
|||||||
37
business/partner/purchase/ebai/common.go
Normal file
37
business/partner/purchase/ebai/common.go
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
package ebai
|
||||||
|
|
||||||
|
import (
|
||||||
|
"git.rosy.net.cn/baseapi/platformapi/ebaiapi"
|
||||||
|
"git.rosy.net.cn/baseapi/utils"
|
||||||
|
"git.rosy.net.cn/jx-callback/business/jxutils/tasksch"
|
||||||
|
"git.rosy.net.cn/jx-callback/globals"
|
||||||
|
"git.rosy.net.cn/jx-callback/globals/api"
|
||||||
|
)
|
||||||
|
|
||||||
|
func (p *PurchaseHandler) UpdatePlaces() (err error) {
|
||||||
|
provinces, err := api.EbaiAPI.CommonShopCities(0)
|
||||||
|
if err == nil {
|
||||||
|
task := tasksch.RunTask("UpdatePlaces", false, nil, 0, 1, "", func(batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
|
||||||
|
province := batchItemList[0].(*ebaiapi.CityInfo)
|
||||||
|
cities, err := api.EbaiAPI.CommonShopCities(province.ID)
|
||||||
|
retSlice := make([]*ebaiapi.CityInfo, len(cities))
|
||||||
|
copy(retSlice, cities)
|
||||||
|
for _, city := range cities {
|
||||||
|
if city.IsOpen != 0 {
|
||||||
|
districts, err2 := api.EbaiAPI.CommonShopCities(city.ID)
|
||||||
|
if err = err2; err == nil {
|
||||||
|
retSlice = append(retSlice, districts...)
|
||||||
|
} else {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return retSlice, err
|
||||||
|
}, provinces)
|
||||||
|
places, err2 := task.GetResult(0)
|
||||||
|
if err = err2; err == nil {
|
||||||
|
globals.SugarLogger.Debug(utils.Format4Output(places, false))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return err
|
||||||
|
}
|
||||||
12
business/partner/purchase/ebai/common_test.go
Normal file
12
business/partner/purchase/ebai/common_test.go
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
package ebai
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestUpdatePlacese(t *testing.T) {
|
||||||
|
err := new(PurchaseHandler).UpdatePlaces()
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err.Error())
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -28,6 +28,18 @@ type tEbaiStoreInfo struct {
|
|||||||
SyncStatus int
|
SyncStatus int
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (p *PurchaseHandler) GetFieldIDName() string {
|
||||||
|
return model.FieldEbaiID
|
||||||
|
}
|
||||||
|
|
||||||
|
func (p *PurchaseHandler) GetFieldSyncStatusName() string {
|
||||||
|
return model.FieldEbaiSyncStatus
|
||||||
|
}
|
||||||
|
|
||||||
|
func (p *PurchaseHandler) CreateStore(storeID int) (vendorStoreID string, err error) {
|
||||||
|
return "", err
|
||||||
|
}
|
||||||
|
|
||||||
func (p *PurchaseHandler) ReadStore(vendorStoreID string) (*model.Store, error) {
|
func (p *PurchaseHandler) ReadStore(vendorStoreID string) (*model.Store, error) {
|
||||||
baiduShopID := utils.Str2Int64(vendorStoreID)
|
baiduShopID := utils.Str2Int64(vendorStoreID)
|
||||||
result, err := api.EbaiAPI.ShopGet("", baiduShopID)
|
result, err := api.EbaiAPI.ShopGet("", baiduShopID)
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ func (p *PurchaseHandler) SyncStoreSkus(db *dao.DaoDB, storeIDs []int, skuIDs []
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p *PurchaseHandler) syncOneStoreSkus(db *dao.DaoDB, storeID, skuIDs []int, isForce bool, userName string) (err error) {
|
func (p *PurchaseHandler) syncOneStoreSkus(db *dao.DaoDB, storeID int, skuIDs []int, isForce bool, userName string) (err error) {
|
||||||
// sql := `
|
// sql := `
|
||||||
// SELECT *
|
// SELECT *
|
||||||
// FROM store_sku_bind t1
|
// FROM store_sku_bind t1
|
||||||
@@ -17,12 +17,25 @@ func (p *PurchaseHandler) syncOneStoreSkus(db *dao.DaoDB, storeID, skuIDs []int,
|
|||||||
// JOIN sku_name t3 ON t2.name_id = t3.id
|
// JOIN sku_name t3 ON t2.name_id = t3.id
|
||||||
// JOIN sku_category t4 ON t3.category_id = t4.id
|
// JOIN sku_category t4 ON t3.category_id = t4.id
|
||||||
// LEFT JOIN store_sku_category_map t5 ON t5.store_id = t1.store_id AND t5.sku_category_id = t4.id
|
// LEFT JOIN store_sku_category_map t5 ON t5.store_id = t1.store_id AND t5.sku_category_id = t4.id
|
||||||
// WHERE t1.ebai_sync_status <> 0 AND t1.store_id = ?
|
// WHERE t1.store_id = ? AND (t1.ebai_sync_status <> 0
|
||||||
// `
|
// `
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p *PurchaseHandler) SyncStoreCategories(db *dao.DaoDB, storeIDs []int, catIDs []int) (err error) {
|
func (p *PurchaseHandler) SyncStoreCategories(db *dao.DaoDB, storeID int, catIDs []int) (err error) {
|
||||||
|
// sql := `
|
||||||
|
// SELECT *
|
||||||
|
// FROM store_sku_bind t1
|
||||||
|
// JOIN sku t2 ON t1.sku_id = t2.skuIDs
|
||||||
|
// JOIN sku_name t3 ON t2.name_id = t3.id
|
||||||
|
// JOIN sku_category t4 ON t3.category_id = t4.id
|
||||||
|
// LEFT JOIN store_sku_category_map t5 ON t5.store_id = t1.store_id AND t5.sku_category_id = t4.id
|
||||||
|
// WHERE t1.store_id = ? AND (t1.ebai_sync_status <> 0
|
||||||
|
// `
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
func (p *PurchaseHandler) syncOneStoreCategory(db *dao.DaoDB, storeIDs []int, catIDs []int) (err error) {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import (
|
|||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"git.rosy.net.cn/baseapi/utils"
|
"git.rosy.net.cn/baseapi/utils"
|
||||||
|
"git.rosy.net.cn/jx-callback/business/model/dao"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestReadStore(t *testing.T) {
|
func TestReadStore(t *testing.T) {
|
||||||
@@ -15,7 +16,8 @@ func TestReadStore(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestUpdateStore(t *testing.T) {
|
func TestUpdateStore(t *testing.T) {
|
||||||
err := new(PurchaseHandler).UpdateStore(100077, "autotest")
|
db := dao.GetDB()
|
||||||
|
err := new(PurchaseHandler).UpdateStore(db, 100077, "autotest")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err.Error())
|
t.Fatal(err.Error())
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,6 +5,14 @@ import (
|
|||||||
"git.rosy.net.cn/jx-callback/business/model/dao"
|
"git.rosy.net.cn/jx-callback/business/model/dao"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
func (p *PurchaseHandler) GetFieldIDName() string {
|
||||||
|
return model.FieldElmID
|
||||||
|
}
|
||||||
|
|
||||||
|
func (p *PurchaseHandler) GetFieldSyncStatusName() string {
|
||||||
|
return model.FieldElmSyncStatus
|
||||||
|
}
|
||||||
|
|
||||||
func (p *PurchaseHandler) ReadStore(vendorStoreID string) (*model.Store, error) {
|
func (p *PurchaseHandler) ReadStore(vendorStoreID string) (*model.Store, error) {
|
||||||
return nil, nil
|
return nil, nil
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user