|
|
@@ -0,0 +1,64 @@
|
|
|
+const API = require("../../lib/API");
|
|
|
+const db = require('../../plugin/DataBase/db')
|
|
|
+const Redis = require('../../plugin/DataBase/Redis')
|
|
|
+const lepao = require("../../lib/Lepao/Lepao.js").lepao
|
|
|
+const { BaseStdResponse } = require("../../BaseStdResponse")
|
|
|
+
|
|
|
+// 出现异常情况时补充乐跑
|
|
|
+class StartLepao extends API {
|
|
|
+ constructor() {
|
|
|
+ super();
|
|
|
+
|
|
|
+ this.noEncrypt()
|
|
|
+ this.setPath('/Corn/StartLepao');
|
|
|
+ this.setMethod('GET');
|
|
|
+ }
|
|
|
+
|
|
|
+ async onRequest(req, res) {
|
|
|
+ try {
|
|
|
+ let { time } = req.query
|
|
|
+
|
|
|
+ if ([time].some(value => value === '' || value === null || value === undefined))
|
|
|
+ return res.json({
|
|
|
+ ...BaseStdResponse.MISSING_PARAMETER
|
|
|
+ })
|
|
|
+
|
|
|
+ res.json({
|
|
|
+ ...BaseStdResponse.OK
|
|
|
+ })
|
|
|
+
|
|
|
+ this.logger.info('开始执行补充乐跑任务')
|
|
|
+ let sql = `
|
|
|
+ SELECT name, create_user, student_num, token, uid, school_id, state
|
|
|
+ FROM lepao_account
|
|
|
+ WHERE auto_run = 1
|
|
|
+ AND (auto_time = ? OR (auto_time = -1 AND today_auto_time = ?))
|
|
|
+ `
|
|
|
+ let r = await db.query(sql, [time, time])
|
|
|
+ if (!r)
|
|
|
+ return this.logger.error('获取补充乐跑账号失败!')
|
|
|
+
|
|
|
+ for (const item of r) {
|
|
|
+ const { name, create_user, student_num, token, uid, school_id, state } = item
|
|
|
+ this.logger.info(`${name}(${student_num})开始乐跑`)
|
|
|
+
|
|
|
+ const isSuccess = await Redis.get(`lepaoSuccess:${student_num}`)
|
|
|
+ if (isSuccess) {
|
|
|
+ this.logger.info(`${name}(${student_num})当天已乐跑成功,不执行补充乐跑`)
|
|
|
+ continue
|
|
|
+ }
|
|
|
+
|
|
|
+ try {
|
|
|
+ await lepao.beginLepao(create_user, student_num, token, uid, school_id, state)
|
|
|
+ this.logger.info(`${name}(${student_num})乐跑完成`)
|
|
|
+ } catch (err) {
|
|
|
+ this.logger.error(`${name}(${student_num})乐跑失败:${err.message || err}`)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } catch (error) {
|
|
|
+ this.logger.error(error)
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+module.exports.StartLepao = StartLepao
|