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, '哪吒乐跑 - 邮箱验证码', ` 哪吒乐跑 - 邮箱验证码

哪吒乐跑 - 邮箱验证码

尊敬的用户:

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

您的验证码为:

${code}

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

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

哪吒乐跑 - 注册成功提醒

尊敬的 ${username}:

您已成功注册哪吒乐跑账号:

用户名: ${username}

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

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

乐跑账号更新好啦,宝宝快看看~ 🎉💖✨

亲爱的 ${data.name} 宝宝 🌸:

嘻嘻~ 你已经成功更新了乐跑账号的登录信息啦 🥰💌:

学号: ${data.account} 🎓

年级: ${data.grade_id} 📚

学院: ${data.academy_name} 🏫

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

${data.auto_run === 0 ? '现在还没有帮宝宝开启自动乐跑呢 🐾💦 如果想要开始跑跑的话,记得登录后去哪吒乐跑手动点一下哦~ 🌈💕' : '已经为宝宝开启了自动乐跑啦 🏃‍♀️✨ 登录后系统会乖乖替你完成乐跑 💖 记得留意邮箱提醒哟~ 📬'}

宝宝要记得不要在其他设备上登录“智慧体育”小程序哦 🚫📱,不然会失效,到时候又要重新登录啦 😢💦~

有问题随时喊哪吒乐跑客服小可爱呀 💕💌 我们都会耐心陪宝宝解决的哟 ✨🥰

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

乐跑目标完成🎉

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

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

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

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

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

本月累计里程: ${(Number(data.month_km) || 0).toFixed(2)} Km 🎉

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

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

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

乐跑成功啦 🎉💖

亲爱的 ${data.name} 宝宝:

耶耶耶~ 我们已经乖乖帮你完成了一次乐跑啦 ✨🏃‍♀️💨

学号: ${data.account}

跑区: ${data.run_zone_name ?? data.pass_tit ?? '—'} 🌈

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

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

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

本月累计: ${(Number(data.month_km) || 0).toFixed(2)} Km ✨

累计总里程: ${(Number(data.total_km) || 0).toFixed(2)} Km 🧾

本月目标: ${Number(data.target_km) === 0 ? '不限' : `${(Number(data.target_km) || 0).toFixed(2)} Km`} 🎯

如果宝宝开启了自动乐跑,要记得不要在其他设备上登录“智慧体育”小程序哦 🚫📱,不然登录就会失效,要重新来一次啦~

有问题随时找哪吒乐跑客服小可爱呀 💌 我们会陪你耐心解决的~

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

乐跑没有成功呢 😢💦

亲爱的 ${data.name ?? data.account} 宝宝 🌸:

我们刚刚尝试帮你完成乐跑的时候,遇到了一点小意外呢 💔💦:

学号: ${data.account} 🎓

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

失败原因: ${data.reason} 😭

宝宝如果是登录失效的话 🥺✨,要记得重新启动哪吒乐跑乐跑登录器,再登录“智慧体育”小程序就可以啦 💕

如果还是不懂,随时可以来找哪吒乐跑客服小可爱哟 💌 我们会耐心陪宝宝解决问题的 🌈🥰

` ) } async orderNewReply(email, data) { await sendEmail(email, '哪吒乐跑 - 工单状态更新提醒', ` 工单状态更新提醒

工单状态更新提醒

尊敬的用户:

您编号为${data.id}的工单有新的回复:

回复内容: ${data.content}

回复时间: ${this.stramptoTime(new Date().getTime())}

${data.files.length > 0 ? '当前回复内含有附件,前往哪吒乐跑官网内查看' : ''}

请前往哪吒乐跑官网回复工单,请勿直接回复邮件。

` ) } async powerCheck(email, data) { await sendEmail(email, '宿舍电费提醒', ` 宿舍电费提醒

宿舍电费提醒

尊敬的用户:

${data.building}${data.room}宿舍电费已低于预设提醒阈值,请留意:

校区: ${data.area}

楼栋: ${data.building}

寝室号: ${data.room}

当前余额: ¥${data.now_balance}

提醒阈值: ¥${data.lowest}

扣费时间: ${data.now_change_time}

当前电费已低于预设提醒阈值${Number(data.lowest - data.now_balance).toFixed(2)}元,请及时充值

` ) } // 时长计算 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