diff --git a/business/jxstore/cms/store.go b/business/jxstore/cms/store.go index 424239881..f4952c33a 100644 --- a/business/jxstore/cms/store.go +++ b/business/jxstore/cms/store.go @@ -2585,49 +2585,42 @@ 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, + task := tasksch.NewParallelTask("更新京东门店等级", tasksch.NewParallelConfig().SetIsContinueWhenError(true), ctx, + func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) { + v := batchItemList[0].(*model.StoreMap) + var ( + pageLimit = 50 + pageNo = 1 + level string + ) + for ; pageNo < pageLimit+1; pageNo++ { + level, err = jd.GetAPI(v.VendorOrgCode).GetJdStoreLevel(v.VendorOrgCode, v.VendorStoreID, pageNo) + if err != nil { + return retVal, err } - 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) + if level != "" { + break + } + if pageNo == pageLimit { + level = "" } } - }() - _, err = dao.UpdateEntity(db, v, "JdStoreLevel") - dao.Commit(db) - } + v.JdStoreLevel = level + 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 retVal, err + }, storeMapList) + tasksch.HandleTask(task, nil, true).Run() + _, err = task.GetResult(0) } return err }