| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- const API = require("../../lib/API.js")
- const db = require('../../plugin/DataBase/db')
- const Redis = require('../../plugin/DataBase/Redis')
- const { BaseStdResponse } = require("../../BaseStdResponse")
- class ResetMonthTermNum extends API {
- constructor() {
- super()
- this.noEncrypt()
- this.setPath('/Corn/ResetMonthTermNum')
- this.setMethod('GET')
- }
- async onRequest(req, res) {
- try {
- res.json({
- ...BaseStdResponse.OK
- })
- // 1) 清空所有账号本月累计里程(term_num)
- const r = await db.query('UPDATE lepao_account SET term_num = 0')
- if (!r) {
- this.logger.error('月初重置 term_num 失败:数据库更新失败')
- return
- }
- // 2) 清理 Redis 当月缓存(jkes_month:{student}:{YYYY-MM})
- const now = new Date()
- const y = now.getFullYear()
- const m = String(now.getMonth() + 1).padStart(2, '0')
- const pattern = `jkes_month:*:${y}-${m}`
- try {
- const toDel = []
- for await (const key of Redis.scanIterator({ MATCH: pattern, COUNT: 500 })) {
- toDel.push(key)
- if (toDel.length >= 500) {
- await Redis.del(toDel)
- toDel.length = 0
- }
- }
- if (toDel.length) {
- await Redis.del(toDel)
- }
- } catch (e) {
- this.logger.warn(`月初清理 Redis 月缓存失败:${e.message || e}`)
- }
- this.logger.info(`月初重置完成:term_num=0,pattern=${pattern}`)
- } catch (error) {
- this.logger.error(error)
- }
- }
- }
- module.exports.ResetMonthTermNum = ResetMonthTermNum
|