刷新京东门店等级

This commit is contained in:
苏尹岚
2019-12-17 08:53:07 +08:00
parent ac6372888d
commit 2064cc11f5

View File

@@ -2585,49 +2585,42 @@ func RefreshJdLevel(ctx *jxcontext.Context) (err error) {
db := dao.GetDB() db := dao.GetDB()
storeMapList, err := dao.GetStoresMapList(db, []int{model.VendorIDJD}, nil, model.StoreStatusOpened, -1, "") storeMapList, err := dao.GetStoresMapList(db, []int{model.VendorIDJD}, nil, model.StoreStatusOpened, -1, "")
if len(storeMapList) > 0 { if len(storeMapList) > 0 {
for _, v := range storeMapList { task := tasksch.NewParallelTask("更新京东门店等级", tasksch.NewParallelConfig().SetIsContinueWhenError(true), ctx,
var ( func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
pageNoList []int v := batchItemList[0].(*model.StoreMap)
storeMap = make(map[int]string) var (
pageNo int pageLimit = 50
pageLimit = 50 pageNo = 1
) level string
for i := 1; i < pageLimit; i++ { )
pageNoList = append(pageNoList, i) for ; pageNo < pageLimit+1; pageNo++ {
} level, err = jd.GetAPI(v.VendorOrgCode).GetJdStoreLevel(v.VendorOrgCode, v.VendorStoreID, pageNo)
task1 := tasksch.NewParallelTask("获取京东门店等级", tasksch.NewParallelConfig().SetIsContinueWhenError(true), ctx, if err != nil {
func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) { return retVal, err
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} if level != "" {
return retVal, err break
}, pageNoList) }
tasksch.HandleTask(task1, nil, true).Run() if pageNo == pageLimit {
tJdStoreInfoInterface, err := task1.GetResult(0) level = ""
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)
} }
} }
}() v.JdStoreLevel = level
_, err = dao.UpdateEntity(db, v, "JdStoreLevel") dao.Begin(db)
dao.Commit(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 retVal, err
}, storeMapList)
tasksch.HandleTask(task, nil, true).Run()
_, err = task.GetResult(0)
} }
return err return err
} }