Browse Source

🐞 fix: 加强乐跑失败原因判断

Pchen. 5 months ago
parent
commit
d29877968d
1 changed files with 9 additions and 6 deletions
  1. 9 6
      lib/Lepao/Lepao.js

+ 9 - 6
lib/Lepao/Lepao.js

@@ -121,7 +121,7 @@ class Lepao {
 
             if (state !== 1) {
                 this.logger.warn(`${account}登录状态异常 state=${state}`)
-                return this.sendFailEmail(account, '登录已过期,请尝试使用登录器重新登录')
+                return this.sendFailEmail(account, '乐跑账号登录已过期,请尝试使用登录器重新登录')
             }
 
             // 获取路径 ID
@@ -218,8 +218,11 @@ class Lepao {
                 this.logger.info(`${account}绑定乐跑数据返回结果: ${JSON.stringify(data)}`)
 
                 if (!data || data.status !== 1 || !data.data) {
-                    this.setStatusFail(account)
-                    throw new Error(data?.info || '未知错误,请尝试重新登录')
+                    // 10.17更新,只有明确说明登录失效才会更新状态
+                    if(data && data.info && data.info === '登录信息失效,请重新登录')
+                        this.setStatusFail(account)
+
+                    throw new Error(data?.info || '系统繁忙,请稍后再试')
                 }
 
                 await this.addRecord(uuid, account, data.data, path_id, point_data)
@@ -280,7 +283,7 @@ class Lepao {
     async sendSuccessEmail(account, lepaoData, term_num, total_num) {
         try {
             this.logger.info(`${account}发送乐跑成功邮件`)
-            const emailSql = 'SELECT name, email FROM lepao_account WHERE student_num = ?'
+            const emailSql = 'SELECT name, email, target_count FROM lepao_account WHERE student_num = ?'
             const rows = await db.query(emailSql, [account])
             if (!rows || rows.length === 0) {
                 this.logger.error(`${account}查找用户邮箱失败`)
@@ -289,7 +292,7 @@ class Lepao {
 
             const data = {
                 ...lepaoData,
-                term_num,
+                term_num: rows[0].target_count,
                 total_num,
                 name: rows[0].name,
                 account
@@ -298,7 +301,7 @@ class Lepao {
             await EmailTemplate.lepaoSuccess(rows[0].email, data)
             this.logger.info(`${account}乐跑成功邮件发送完成`)
 
-            if (total_num == term_num) {
+            if (total_num == rows[0].target_count) {
                 this.logger.info(`${account}乐跑目标完成,发送乐跑结束邮件并关闭自动乐跑`)
                 await EmailTemplate.lepaoOver(rows[0].email, data)
                 let overSql = 'UPDATE lepao_account SET auto_run = 0 WHERE student_num = ?'