StartAutoLepao.js 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. const API = require("../../lib/API");
  2. const db = require('../../plugin/DataBase/db')
  3. const Redis = require('../../plugin/DataBase/Redis')
  4. const lepao = require("../../lib/Lepao/Lepao.js").lepao
  5. const { BaseStdResponse } = require("../../BaseStdResponse");
  6. class StartAutoLepao extends API {
  7. constructor() {
  8. super();
  9. this.noEncrypt()
  10. this.setPath('/Corn/StartAutoLepao');
  11. this.setMethod('GET');
  12. }
  13. async onRequest(req, res) {
  14. try {
  15. res.json({
  16. ...BaseStdResponse.OK
  17. })
  18. const hour = new Date().getHours()
  19. this.logger.info('开始执行自动乐跑任务')
  20. let sql = 'SELECT name, create_user, student_num, token, uid, school_id, state FROM lepao_account WHERE auto_run = 1 AND auto_time = ?'
  21. let r = await db.query(sql, [hour])
  22. if (!r)
  23. return this.logger.error('获取自动乐跑账号失败!')
  24. for (const item of r) {
  25. const { name, create_user, student_num, token, uid, school_id, state } = item
  26. this.logger.info(`${name}(${student_num})开始乐跑`)
  27. const isSuccess = await Redis.get(`lepaoSuccess:${student_num}`)
  28. if (isSuccess) {
  29. this.logger.info(`${name}(${student_num})当天已乐跑成功,不执行自动乐跑`)
  30. continue
  31. }
  32. try {
  33. await lepao.beginLepao(create_user, student_num, token, uid, school_id, state)
  34. this.logger.info(`${name}(${student_num})乐跑完成`)
  35. } catch (err) {
  36. this.logger.error(`${name}(${student_num})乐跑失败:${err.message || err}`)
  37. }
  38. }
  39. } catch (error) {
  40. this.logger.error(error)
  41. }
  42. }
  43. }
  44. module.exports.StartAutoLepao = StartAutoLepao;