const sendEmail = require('./Email') class emailTemplate { stramptoTime(time) { if (time < 10) return ''; return new Date(+time).toLocaleString('zh-CN', { year: 'numeric', month: '2-digit', day: '2-digit', hour: '2-digit', minute: '2-digit' }); } async checkEmail(email, code) { const time = new Date().getTime() await sendEmail(email, 'RunForge - 邮箱验证码', ` RunForge - 邮箱验证码

RunForge - 邮箱验证码

尊敬的用户:

您正在本站进行邮箱验证操作,如非您本人操作,请忽略此邮件。

您的验证码为:

${code}

验证码5分钟内有效,超时请重新获取

` ) } async registerSuccess(email, username) { const time = new Date().getTime() await sendEmail(email, '您已成功注册RunForge账号', ` RunForge - 注册成功提醒

RunForge - 注册成功提醒

尊敬的 ${username}:

您已成功注册RunForge账号:

用户名: ${username}

注册时间: ${this.stramptoTime(time)}

` ) } async updateSuccess(email, data) { await sendEmail(email, 'RunForge - 乐跑账号更新成功提醒', ` RunForge - 乐跑账号更新成功提醒

RunForge - 乐跑账号更新成功提醒

尊敬的 ${data.name}:

您已成功更新乐跑账号登录信息:

学号: ${data.account}

年级: ${data.grade_id}

学院: ${data.academy_name}

更新时间: ${this.stramptoTime(new Date().getTime())}

${data.auto_run === 0 ? '当前未开启自动乐跑,登录成功后如需进行乐跑,请前往 RunForge 手动执行乐跑操作。' : '当前已开启自动乐跑,登录成功后系统将自动进行乐跑,请留意邮箱提醒。'}

请避免在其他设备上登录“智慧体育”小程序,否则将导致登录失效,届时需要重新进行登录操作。

如有疑问请联系RunForge客服。

` ) } async lepaoOver(email, data) { await sendEmail(email, '🎉 RunForge - 乐跑完成祝贺', ` 🎉 RunForge - 乐跑完成祝贺

🏃‍♀️RunForge - 乐跑任务通关啦!🎉

亲爱的 ${data.name} 同学 ꒰。•ᴗ•。꒱:

✨恭喜恭喜~你已经火力全开地完成了本学期的乐跑任务啦!🎊
不得不说,你就是我们心中的 小跑神 🌟💨,坚持到最后真的超级棒!💪( •̀ᄇ• ́)و

跑过的风,晒过的阳,每一步都是你努力的见证!🌤️🍃
RunForge在远程为你打Call中 📣📣📣 ~真的好佩服佩服你!

这一学期和你一起“并肩作战”,我们感到非常幸运!🧡
希望你收获了健康,也收获了快乐~o(≧▽≦)o

📬 如果有任何问题,随时给我们戳小窗~我们在线等你哟 (´▽`)ノ♪

🥳 祝你假期躺赢、学习加buff、每天都开心到冒泡泡!✧*。٩(ˊᗜˋ*)و✧*。
📚 新学期我们一起继续加速奔跑吧~Let's gooo!🔥🔥

🧡我们已经为您关闭了自动乐跑功能,如您需要继续乐跑,还可前往RunForge自行开启哦!

` ) } async lepaoSuccess(email, data) { await sendEmail(email, 'RunForge - 乐跑成功提醒', ` RunForge - 乐跑成功提醒

RunForge - 乐跑成功提醒

尊敬的 ${data.name}:

RunForge已成功为您进行乐跑:

学号: ${data.account}

跑区: ${data.pass_tit}

跑步时间: ${this.formatSecondsToMinSec(data.time)}

平均配速: ${this.calculatePace(data.time, data.distance)}

跑步距离: ${data.distance} Km

累计次数: ${data.total_num} 次

剩余次数: ${data.term_num - data.total_num >= 0 ? (data.term_num - data.total_num) : '已完成'} 次

请您开启了自动乐跑,请避免在其他设备上登录“智慧体育”小程序,否则将导致登录失效。

如有疑问请联系RunForge客服。

` ) } async lepaoFail(email, data) { const time = new Date().getTime() await sendEmail(email, 'RunForge - 乐跑失败提醒', ` RunForge - 乐跑失败提醒

RunForge - 乐跑失败提醒

尊敬的 ${data.name}:

RunForge在尝试为您乐跑时遇到错误:

学号: ${data.account}

时间: ${this.stramptoTime(time)}

失败原因: ${data.reason}

若登录失效请启动RunForge乐跑登录器重新登录“智慧体育”小程序。

如有疑问请联系RunForge客服。

` ) } // 时长计算 formatSecondsToMinSec(totalSeconds) { const minutes = Math.floor(totalSeconds / 60); const seconds = totalSeconds % 60; return `${minutes}分${seconds.toString().padStart(2, '0')}秒`; } // 配速计算 calculatePace(seconds, kilometers) { const paceInSeconds = seconds / kilometers; const minutes = Math.floor(paceInSeconds / 60); const remainingSeconds = Math.round(paceInSeconds % 60); return `${minutes}'${remainingSeconds.toString().padStart(2, '0')}''`; } } const EmailTemplate = new emailTemplate() module.exports = EmailTemplate