import mongoose from 'mongoose' import * as dotenv from 'dotenv' const envFile = process.env.NODE_ENV && process.env.NODE_ENV === 'production' ? `.env.production` : '.env.development' dotenv.config({ path: envFile }) console.log(process.env.DB_MAIN) import { ZRedisClient } from 'zutils' import { RANK_SCORE_SCALE } from 'common/Constants' import { ScoreRecord } from 'models/ScoreRecord' const db = mongoose.connection ;(async () => { try { // const activity = 'uaw_activity' // const start = 0 // const end = 500 // let opts = { url: process.env.REDIS } // new ZRedisClient(opts) // const records = await new ZRedisClient().zrevrange(`uaw_activity:score`, start, 100) // let score100 = 0 // console.log(records.length) // for (let i = 0; i < records.length; i += 2) { // let score = parseInt(records[i + 1]) / 100 // score100 += score // } // const record500 = await new ZRedisClient().zrevrange(`uaw_activity:score`, start, 500) // let score500 = 0 // console.log(record500.length) // for (let i = 0; i < record500.length; i += 2) { // let score = parseInt(record500[i + 1]) / 100 // score500 += score // } // console.log('score100:', score100) // console.log('score500:', score500) let begin = new Date('2024-04-17T00:00:00.000Z') const oneDay = 24 * 60 * 60 * 1000 let end = new Date(begin.getTime() + oneDay) let resultMap1 = new Map() let resultMap2 = new Map() let resultMap = new Map() while (end < new Date()) { let record = await ScoreRecord.aggregate([ { $match: { type: { $ne: 'invite_rebate' }, $and: [{ createdAt: { $gte: begin } }, { createdAt: { $lt: end } }], }, }, { $group: { _id: null, count: { $sum: '$score' } } }, ]) let record2 = await ScoreRecord.aggregate([ { $match: { type: 'invite_rebate', $and: [{ createdAt: { $gte: begin } }, { createdAt: { $lt: end } }], }, }, { $group: { _id: null, count: { $sum: '$score' } } }, ]) console.log(begin, '\t', record[0].count + record2[0].count, '\t', record[0].count, '\t', record2[0].count) begin = end end = new Date(begin.getTime() + oneDay) } } catch (e) { console.log(e) } process.exit(0) })()