diff --git a/pages-activity/activity/duiduipeng/index.vue b/pages-activity/activity/duiduipeng/index.vue index 2beeae0..0aa32b2 100644 --- a/pages-activity/activity/duiduipeng/index.vue +++ b/pages-activity/activity/duiduipeng/index.vue @@ -521,41 +521,17 @@ function normalizeRewards(list) { enriched.sort((a, b) => (b.percent - a.percent)) return enriched } -function isFresh(ts) { - const now = Date.now() - const v = Number(ts || 0) - return now - v < 24 * 60 * 60 * 1000 -} -function getRewardCache() { - const obj = uni.getStorageSync('reward_cache_v1') || {} - return typeof obj === 'object' && obj ? obj : {} -} async function fetchRewardsForIssues(activityId) { const list = issues.value || [] - const cache = getRewardCache() - const act = cache[activityId] || {} - const toFetch = [] - list.forEach(it => { - const c = act[it.id] - if (c && isFresh(c.ts) && Array.isArray(c.value)) { - rewardsMap.value = { ...(rewardsMap.value || {}), [it.id]: c.value } - } else { - toFetch.push(it) - } - }) - if (!toFetch.length) return - const promises = toFetch.map(it => getActivityIssueRewards(activityId, it.id)) + const promises = list.map(it => getActivityIssueRewards(activityId, it.id)) const results = await Promise.allSettled(promises) - const nextAct = { ...act } + results.forEach((res, i) => { - const issueId = toFetch[i] && toFetch[i].id + const issueId = list[i] && list[i].id if (!issueId) return const value = res.status === 'fulfilled' ? normalizeRewards(res.value) : [] rewardsMap.value = { ...(rewardsMap.value || {}), [issueId]: value } - nextAct[issueId] = { value, ts: Date.now() } }) - cache[activityId] = nextAct - uni.setStorageSync('reward_cache_v1', cache) } async function fetchIssues(id) {