This commit is contained in:
gazebo
2018-09-22 23:28:52 +08:00
parent f21b4e614d
commit b936d3354b
10 changed files with 100 additions and 11 deletions

View File

@@ -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 {
if parallelCount > MaxParallelCount {
if parallelCount > MaxParallelCount || parallelCount == 0 {
parallelCount = MaxParallelCount
}
listLen := jxutils.GetSliceLen(itemList)

View File

@@ -23,7 +23,9 @@ const (
FieldNameID = "NameID"
FieldPlaceCode = "PlaceCode"
FieldJdID = "JdID"
FieldJdID = "JdID"
FieldElmID = "ElmID"
FieldEbaiID = "EbaiID"
)
type ModelIDCUL struct {

View File

@@ -17,6 +17,7 @@ type Place struct {
Level int8 `json:"level"` // 城市级别,参见相关常量定义
TelCode string `orm:"size(8);index" json:"telCode"`
JdCode int `orm:"index" json:"jdCode"` // 对应的京东代码
Enabled int8 `json:"enabled"` // 是否启用
MtpsPrice int `json:"mtpsPrice"` // 分为单位
EbaiCode int `orm:"index" json:"ebaiCode"`
Enabled int8 `json:"enabled"` // 是否启用
MtpsPrice int `json:"mtpsPrice"` // 分为单位
}

View File

@@ -74,13 +74,14 @@ type IPurchasePlatformHandler interface {
// CloseStore(vendorStoreID, closeNotice, userName string) error
SyncStoreSkus(db *dao.DaoDB, storeIDs []int, skuIDs []int, isForce bool, userName string) (err error)
GetFieldIDName() string
GetFieldSyncStatusName() string
}
// db *dao.DaoDB,
type IMultipleStoresHandler interface {
GetFieldIDName() string
GetFieldSyncStatusName() string
IPurchasePlatformHandler
ReadCategories() (cats []*model.SkuCategory, err error)
CreateCategory(db *dao.DaoDB, cat *model.SkuCategory, userName string) (err error)
@@ -98,6 +99,7 @@ type IMultipleStoresHandler interface {
}
type ISingleStoreHandler interface {
IPurchasePlatformHandler
SyncStoreCategories(db *dao.DaoDB, storeIDs []int, catIDs []int) (err error)
ReadStoreCategories(storeID int) (cats []*model.SkuCategory, err error)

View 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
}

View 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())
}
}

View File

@@ -28,6 +28,18 @@ type tEbaiStoreInfo struct {
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) {
baiduShopID := utils.Str2Int64(vendorStoreID)
result, err := api.EbaiAPI.ShopGet("", baiduShopID)

View File

@@ -9,7 +9,7 @@ func (p *PurchaseHandler) SyncStoreSkus(db *dao.DaoDB, storeIDs []int, skuIDs []
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 := `
// SELECT *
// 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_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.ebai_sync_status <> 0 AND t1.store_id = ?
// WHERE t1.store_id = ? AND (t1.ebai_sync_status <> 0
// `
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
}

View File

@@ -4,6 +4,7 @@ import (
"testing"
"git.rosy.net.cn/baseapi/utils"
"git.rosy.net.cn/jx-callback/business/model/dao"
)
func TestReadStore(t *testing.T) {
@@ -15,7 +16,8 @@ func TestReadStore(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 {
t.Fatal(err.Error())
}

View File

@@ -5,6 +5,14 @@ import (
"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) {
return nil, nil
}