|
@@ -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}`)
|
|
|
}
|
|
}
|
|
|
})
|
|
})
|