刷新京东等级

This commit is contained in:
苏尹岚
2019-12-16 18:32:32 +08:00
parent c65032474e
commit 6afbfb156a
7 changed files with 2266 additions and 2274 deletions

View File

@@ -145,6 +145,11 @@ type VendorStoreExcel struct {
OperatorName2 string `json:"运营负责人2"`
}
type JdStoreLevelExt struct {
Level string `json:"level`
PageNo int `json:"pageNo"`
}
var (
ErrMissingInput = errors.New("没有有效的输入参数")
ErrCanNotFindVendor = errors.New("vendorID参数不合法")
@@ -1708,8 +1713,6 @@ func GetStoresVendorSnapshot(ctx *jxcontext.Context, parentTask tasksch.ITask, v
DeliveryType: store.DeliveryType,
StoreName: store.OriginalName,
IsAutoOrder: store.IsAutoOrder,
JdStoreLevel: store.JdStoreLevel,
}}
}
}
@@ -1751,12 +1754,11 @@ func updateVendorStoreStatusBySnapshot(db *dao.DaoDB, curSnapshotList []*model.V
}()
for _, v := range storeMapList {
if snapshot := snapshotMap[jxutils.Combine2Int(v.StoreID, v.VendorID)]; snapshot != nil &&
(v.Status != snapshot.Status || v.DeliveryType != snapshot.DeliveryType || v.StoreName != snapshot.StoreName || v.JdStoreLevel != snapshot.JdStoreLevel) {
(v.Status != snapshot.Status || v.DeliveryType != snapshot.DeliveryType || v.StoreName != snapshot.StoreName) {
v.Status = snapshot.Status
v.DeliveryType = snapshot.DeliveryType
v.StoreName = snapshot.StoreName
v.JdStoreLevel = snapshot.JdStoreLevel
if _, err = dao.UpdateEntity(db, v, model.FieldStatus, "DeliveryType", "StoreName", "JdStoreLevel"); err != nil {
if _, err = dao.UpdateEntity(db, v, model.FieldStatus, "DeliveryType", "StoreName"); err != nil {
return err
}
}
@@ -2578,3 +2580,54 @@ func CreateStorePriceScore(ctx *jxcontext.Context) (err error) {
}
return err
}
func RefreshJdLevel(ctx *jxcontext.Context) (err error) {
db := dao.GetDB()
storeMapList, err := dao.GetStoresMapList(db, []int{model.VendorIDJD}, nil, model.StoreStatusOpened, -1, "")
if len(storeMapList) > 0 {
for _, v := range storeMapList {
var (
pageNoList []int
storeMap = make(map[int]string)
pageNo int
pageLimit = 50
)
for i := 1; i < pageLimit; i++ {
pageNoList = append(pageNoList, i)
}
task1 := tasksch.NewParallelTask("获取京东门店等级", tasksch.NewParallelConfig().SetIsContinueWhenError(true), ctx,
func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
currentPage := batchItemList[0].(int)
level, err := jd.GetAPI(v.VendorOrgCode).GetJdStoreLevel(v.VendorOrgCode, v.VendorStoreID, currentPage)
tJdStoreInfo1 := &JdStoreLevelExt{
Level: level,
PageNo: currentPage,
}
retVal = []*JdStoreLevelExt{tJdStoreInfo1}
return retVal, err
}, pageNoList)
tasksch.HandleTask(task1, nil, true).Run()
tJdStoreInfoInterface, err := task1.GetResult(0)
for _, v := range tJdStoreInfoInterface {
store := v.(*JdStoreLevelExt)
if store.PageNo < pageNo {
pageNo = store.PageNo
}
storeMap[store.PageNo] = store.Level
}
v.JdStoreLevel = storeMap[pageNo]
dao.Begin(db)
defer func() {
if r := recover(); r != nil || err != nil {
dao.Rollback(db)
if r != nil {
panic(r)
}
}
}()
_, err = dao.UpdateEntity(db, v, "JdStoreLevel")
dao.Commit(db)
}
}
return err
}

View File

@@ -2139,7 +2139,7 @@ func GetTopSkusByStoreIDs(ctx *jxcontext.Context, storeIDs []int) (storeSkuNameE
return storeSkuNameExt, err
}
func GetTopCategorysByStoreIDs(ctx *jxcontext.Context, storeIDs []int) (skuCategory []*model.SkuCategory, err error) {
func GetTopCategoriesByStoreIDs(ctx *jxcontext.Context, storeIDs []int) (skuCategory []*model.SkuCategory, err error) {
var (
skuCategory2 []*model.SkuCategory
skuCategoryMap = make(map[int]*model.SkuCategory)
@@ -2149,7 +2149,7 @@ func GetTopCategorysByStoreIDs(ctx *jxcontext.Context, storeIDs []int) (skuCateg
return skuCategory, err
}
db := dao.GetDB()
skuCategory, err = dao.GetTopCategorysByStoreIDs(db, storeIDs, limit)
skuCategory, err = dao.GetTopCategoriesByStoreIDs(db, storeIDs, limit)
//若大于等于10个就不用做下面的操作
if len(skuCategory) >= limit {
return skuCategory, err