Browse Source

完善重工自动乐跑功能

Pchen. 3 months ago
parent
commit
b6da84443b

+ 5 - 5
apis/Corn/StartAutoLepao.js

@@ -1,7 +1,7 @@
 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 lepao = require("../../lib/Lepao/cg_lepao.js").Lepao
 
 const { BaseStdResponse } = require("../../BaseStdResponse");
 
@@ -23,7 +23,7 @@ class StartAutoLepao extends API {
             const hour = new Date().getHours()
             this.logger.info('开始执行自动乐跑任务')
             let sql = `
-                        SELECT name, create_user, student_num, token, uid, school_id, state
+                        SELECT name, create_user, student_num
                         FROM lepao_account
                         WHERE auto_run = 1
                             AND (auto_time = ? OR (auto_time = -1 AND today_auto_time = ?))
@@ -33,17 +33,17 @@ class StartAutoLepao extends API {
                 return this.logger.error('获取自动乐跑账号失败!')
 
             for (const item of r) {
-                const { name, create_user, student_num, token, uid, school_id, state } = item
+                const { name, create_user, student_num } = item
                 this.logger.info(`${name}(${student_num})开始乐跑`)
 
-                const isSuccess = await Redis.get(`lepaoSuccess:${student_num}`)
+                const isSuccess = await Redis.get(`cgLepaoSuccess:${student_num}`)
                 if (isSuccess) {
                     this.logger.info(`${name}(${student_num})当天已乐跑成功,不执行自动乐跑`)
                     continue
                 }
 
                 try {
-                    await lepao.beginLepao(create_user, student_num, token, uid, school_id, state)
+                    await lepao.beginLepao(create_user, student_num)
                     this.logger.info(`${name}(${student_num})乐跑完成`)
                 } catch (err) {
                     this.logger.error(`${name}(${student_num})乐跑失败:${err.message || err}`)

+ 3 - 1
apis/Lepao/Record/Admin/GetLepaoRecords.js

@@ -61,7 +61,9 @@ class AdminGetLepaoRecords extends API {
                     r.endTime,
                     r.distance,
                     r.state,
-                    a.name
+                    a.name,
+                    u.avatar,
+                    u.username
                 FROM 
                     lepao_record r
                 LEFT JOIN 

+ 11 - 11
apis/Lepao/SingleRun.js

@@ -27,7 +27,7 @@ class SingleRun extends API {
                 ...BaseStdResponse.ACCESS_DENIED
             })
 
-        let hour = new Date().getHours()
+        // let hour = new Date().getHours()
         // if (hour < 7)
         //     return res.json({
         //         ...BaseStdResponse.ERR,
@@ -36,20 +36,20 @@ class SingleRun extends API {
 
         try {
             // 检查redis是否存在当天乐跑成功记录
-            const isSuccess = await Redis.get(`cgLepaoSuccess:${student_num}`)
-            if (isSuccess)
-                return res.json({
-                    ...BaseStdResponse.ERR,
-                    msg: '该账号当天已乐跑成功!请勿重复乐跑'
-                })
-
-            // const isProgress = await Redis.get(`cgLepaoProgress:${student_num}`)
-            // if (isProgress)
+            // const isSuccess = await Redis.get(`cgLepaoSuccess:${student_num}`)
+            // if (isSuccess)
             //     return res.json({
             //         ...BaseStdResponse.ERR,
-            //         msg: '该账号已进入乐跑任务队列,请等待乐跑完成后再进行乐跑操作'
+            //         msg: '该账号当天已乐跑成功!请勿重复乐跑'
             //     })
 
+            const isProgress = await Redis.get(`cgLepaoProgress:${student_num}`)
+            if (isProgress)
+                return res.json({
+                    ...BaseStdResponse.ERR,
+                    msg: '该账号已进入乐跑任务队列,请等待乐跑完成后再进行乐跑操作'
+                })
+
             let selectSql = 'SELECT create_user FROM lepao_account WHERE student_num = ?'
             let selectRows = await db.query(selectSql, [student_num])
             if (!selectRows || selectRows.length === 0)

+ 4 - 2
lib/Lepao/cg_lepao.js

@@ -154,8 +154,8 @@ class cgLepao {
             if (isSuccess)
                 throw new Error('该账号当天已存在成功乐跑记录')
             const isProgress = await Redis.get(`cgLepaoProgress:${account}`)
-            // if (isProgress)
-            //     throw new Error('该账号已进入乐跑任务队列,请等待乐跑完成后再进行乐跑操作')
+            if (isProgress)
+                throw new Error('该账号已进入乐跑任务队列,请等待乐跑完成后再进行乐跑操作')
 
             //已开始乐跑,存入Redis
             await Redis.set(`cgLepaoProgress:${account}`, account)
@@ -291,6 +291,8 @@ class cgLepao {
                 lepaoResult.distance = Number(pathData.distance).toFixed(2)
                 lepaoResult.area = pathData.run_zone_name
 
+                await this.writeRedis(task.account)
+
                 this.sendSuccessEmail(task.account, lepaoResult, frequency)
             } catch (error) {
                 await this.lepaoFail(task.uuid)