军团活动:修复bug

This commit is contained in:
luying
2021-09-28 11:33:59 +08:00
parent faf94b7296
commit 63c2da2427
3 changed files with 15 additions and 4 deletions

View File

@@ -329,6 +329,9 @@ export class GateActivityHandler {
if (msg.week <= 2) {
await GuildActivityCityModel.deleteMany({});
}
await delGuildActivityRank(GUILD_ACTIVITY_TYPE.GATE_ACTIVITY);
await delGuildActivityRank(GUILD_ACTIVITY_TYPE.CITY_ACTIVITY);
await delGuildActivityRank(GUILD_ACTIVITY_TYPE.RACE_ACTIVITY);
return resResult(STATUS.SUCCESS);
}

View File

@@ -205,9 +205,9 @@ export async function getCityActivityRank(guildCode: string, serverId: number, c
let myR = new Rank(REDIS_KEY.USER_CITY_ACTIVITY, { serverId, guildCode });
myR.setGenerFieldsFun(generGuildActivityMemberRankField);
let { ranks: memberRank, myRank: myMemberRank } = await r.getRankListWithMyRank({ roleId });
let { ranks: memberRank, myRank: myMemberRank } = await myR.getRankListWithMyRank({ roleId });
if (roleName && !myMemberRank) {
myMemberRank = await r.generMyRankWithRole(roleId, 0, 0);
myMemberRank = await myR.generMyRankWithRole(roleId, 0, 0);
}
return { guildRank, myGuildRank, memberRank, myMemberRank }

View File

@@ -58,7 +58,7 @@ export class Rank {
case REDIS_KEY.RACE_ACTIVITY:
this.valueConfig = [
new ValueConfig(true, 'score', 0, false, false),
new ValueConfig(false, 'time', 6, true, true)
new ValueConfig(false, 'time', 10, true, true)
];
break;
case REDIS_KEY.GUILD_LV_RANK:
@@ -669,6 +669,9 @@ export class Rank {
const field = rankFromDb[ii];
let myId = this.decodeFields(this.key, field);
const scores = this.decodeScore(rankFromDb[ii + 1]);
console.log('**********', scores);
const info = await redisClient().hgetAsync(this.infoKey, this.composeFields(this.infoKey, myId));
const userInfo = JSON.parse(info);
@@ -828,10 +831,15 @@ export class Rank {
private decodeScore(num: string) {
let _num = parseInt(num);
let scores: number[] = [];
this.valueConfig.forEach(({ weight }) => {
this.valueConfig.forEach(({ reverse, isTimestamp, len, weight }) => {
let pow = Math.pow(10, weight);
let score = Math.floor(_num / pow);
_num -= pow * score;
if(isTimestamp) score = this.handleTimestamp(score, len);
if(reverse) {
let pow = Math.pow(10, len);
score = pow - 1 - score;
}
scores.push(score);
})
return scores;