修改排行榜的存储方式
This commit is contained in:
parent
084f8d195a
commit
4dc6dc1c6a
@ -28,7 +28,8 @@ class GameController extends BaseController {
|
||||
logger.db('checkin', req)
|
||||
const user = req.user
|
||||
const { address } = user
|
||||
let { day } = req.params
|
||||
let { day, days } = req.params
|
||||
day = day || days
|
||||
if (day) {
|
||||
if (!isValidDayTag(day)) {
|
||||
throw new ZError(11, 'invalid day')
|
||||
|
@ -45,7 +45,7 @@ const updateRedis2 = (key, vals) => {
|
||||
new ZRedisClient(opts)
|
||||
let vals = []
|
||||
for (let i = 0, l = records.length; i < l; i++) {
|
||||
vals.push(records[i].count * 100 + 1 - Date.now() / 1000 / 10000000000)
|
||||
vals.push((records[i].count * 100) | 0)
|
||||
vals.push(records[i]._id)
|
||||
if (i % 1000 === 0) {
|
||||
await updateRedis2(totalKey, vals)
|
||||
@ -74,7 +74,7 @@ const updateRedis2 = (key, vals) => {
|
||||
console.log('records2: ', records2.length)
|
||||
let vals2 = []
|
||||
for (let i = 0, l = records.length; i < l; i++) {
|
||||
vals2.push(records[i].count * 100)
|
||||
vals2.push((records[i].count * 100) | 0)
|
||||
vals2.push(`${records[i]._id.from}_${records[i]._id.user}`)
|
||||
if (i % 1000 === 0) {
|
||||
await updateRedis2(keyInvite, vals2)
|
||||
|
@ -49,7 +49,7 @@ export const updateRankScore = async ({
|
||||
const score1 = score * INVITE_REBATE
|
||||
let scoreParams1 = Object.assign({ fromUser: user }, scoreParams)
|
||||
const keyInvite = `${activity}:invite`
|
||||
await updateRankInvite(keyInvite, parseInt(score1 * RANK_SCORE_SCALE + ''), `${userMod.inviteUser}_${user}`)
|
||||
await updateRankInvite(keyInvite, score1, `${userMod.inviteUser}_${user}`)
|
||||
await updateRankScore({
|
||||
user: userMod.inviteUser,
|
||||
score: score1,
|
||||
@ -69,17 +69,12 @@ export const updateRankScore = async ({
|
||||
* @param member
|
||||
*/
|
||||
export const updateRank = async (key: string, score: number, member: string) => {
|
||||
let scoreSaved = (await new ZRedisClient().zscore(key, member)) + ''
|
||||
if (scoreSaved) {
|
||||
scoreSaved = scoreSaved.substring(0, scoreSaved.indexOf('.'))
|
||||
}
|
||||
let scoreOld = parseInt(scoreSaved || '0')
|
||||
score = score * RANK_SCORE_SCALE + scoreOld
|
||||
const scoreToSave = score + 1 - Date.now() / 1000 / 10000000000
|
||||
await new ZRedisClient().zadd(key, scoreToSave, member)
|
||||
score = parseInt(score * RANK_SCORE_SCALE + '')
|
||||
await new ZRedisClient().zincrby(key, score, member)
|
||||
}
|
||||
|
||||
export const updateRankInvite = async (key: string, score: number, member: string) => {
|
||||
score = parseInt(score * RANK_SCORE_SCALE + '')
|
||||
await new ZRedisClient().zincrby(key, score, member)
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user