Browse Source

✨ feat: 加入乐跑次数更新

Pchen. 1 month ago
parent
commit
f734082389
1 changed files with 23 additions and 0 deletions
  1. 23 0
      lib/Lepao/Worker.js

+ 23 - 0
lib/Lepao/Worker.js

@@ -147,6 +147,27 @@ class Worker {
         }
         }
     }
     }
 
 
+    async syncRunCount(req, ctx) {
+        try {
+            const recordData = await this.handlers['lepao.getRecord'](req, ctx)
+            const data = recordData?.data
+            if (!data) return
+
+            const term_num = Number(data.term_num ?? 30)
+            const total_num = Number(data.total_num ?? 0)
+
+            const sql = 'UPDATE lepao_account SET term_num = ?, total_num = ? WHERE student_num = ?'
+            const rows = await db.query(sql, [term_num, total_num, req.account])
+            if (!rows || rows.affectedRows !== 1) {
+                this.logger.warn(`${req.account}更新乐跑次数失败`)
+                return
+            }
+            this.logger.info(`${req.account}更新乐跑次数成功 term_num=${term_num}, total_num=${total_num}`)
+        } catch (error) {
+            this.logger.warn(`${req?.account || 'unknown'}同步乐跑次数失败: ${error.message || error}`)
+        }
+    }
+
     lepaoTimestamp() {
     lepaoTimestamp() {
         return Number((Date.now() / 1000).toFixed(3))
         return Number((Date.now() / 1000).toFixed(3))
     }
     }
@@ -476,6 +497,8 @@ class Worker {
                 }
                 }
                 throw err
                 throw err
             } finally {
             } finally {
+                // 不论成功/失败,流程结束后同步一次乐跑次数
+                await this.syncRunCount(req, ctx)
                 await Redis.del(`lepaoProgress:${req.account}`)
                 await Redis.del(`lepaoProgress:${req.account}`)
             }
             }
         })
         })