var plans = { beginner: { id: 'beginner', name: '初级 (7天)', totalDays: 7, description: '适合初学者,从30秒起步', days: [ { day: 1, target: 30 }, { day: 2, target: 40 }, { day: 3, target: 50 }, { day: 4, target: 60 }, { day: 5, target: 70 }, { day: 6, target: 80 }, { day: 7, target: 90 } ] }, intermediate: { id: 'intermediate', name: '中级 (14天)', totalDays: 14, description: '有一定基础,从60秒起步', days: [ { day: 1, target: 60 }, { day: 2, target: 60 }, { day: 3, target: 75 }, { day: 4, target: 75 }, { day: 5, target: 90 }, { day: 6, target: 90 }, { day: 7, target: 105 }, { day: 8, target: 105 }, { day: 9, target: 120 }, { day: 10, target: 120 }, { day: 11, target: 135 }, { day: 12, target: 135 }, { day: 13, target: 150 }, { day: 14, target: 150 } ] }, advanced: { id: 'advanced', name: '高级 (30天)', totalDays: 30, description: '挑战自我,从90秒起步', days: (function () { var arr = [] for (var i = 1; i <= 30; i++) { arr.push({ day: i, target: 90 + Math.floor((i - 1) / 3) * 15 }) } return arr })() } } function getPlan(planId) { return plans[planId] || plans.beginner } function getTodayTarget(planId, currentDay) { var plan = getPlan(planId) for (var i = 0; i < plan.days.length; i++) { if (plan.days[i].day === currentDay) return plan.days[i].target } return plan.days[0].target } function getPlanDay(planId, records) { var plan = getPlan(planId) var now = new Date() var today = now.getFullYear() + '-' + ('0' + (now.getMonth() + 1)).slice(-2) + '-' + ('0' + now.getDate()).slice(-2) var dates = {} records.forEach(function (r) { if (r.date !== today) dates[r.date] = true }) var trainedDays = Object.keys(dates).length return Math.min(trainedDays + 1, plan.totalDays) } module.exports = { plans: plans, getPlan: getPlan, getTodayTarget: getTodayTarget, getPlanDay: getPlanDay }