71 lines
2.3 KiB
TypeScript
71 lines
2.3 KiB
TypeScript
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)
|
|
})()
|