刷新京东门店等级

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