- 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 {
|
||||
if parallelCount > MaxParallelCount {
|
||||
if parallelCount > MaxParallelCount || parallelCount == 0 {
|
||||
parallelCount = MaxParallelCount
|
||||
}
|
||||
listLen := jxutils.GetSliceLen(itemList)
|
||||
|
||||
@@ -23,7 +23,9 @@ const (
|
||||
FieldNameID = "NameID"
|
||||
FieldPlaceCode = "PlaceCode"
|
||||
|
||||
FieldJdID = "JdID"
|
||||
FieldJdID = "JdID"
|
||||
FieldElmID = "ElmID"
|
||||
FieldEbaiID = "EbaiID"
|
||||
)
|
||||
|
||||
type ModelIDCUL struct {
|
||||
|
||||
@@ -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"` // 分为单位
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
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
|
||||
}
|
||||
|
||||
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)
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
|
||||
@@ -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())
|
||||
}
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user