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 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