feat(后台): 一键清理排行榜

This commit is contained in:
luying
2023-08-02 13:33:18 +08:00
parent 9301ade5e5
commit bbd7efdb49
3 changed files with 37 additions and 1 deletions

View File

@@ -1,7 +1,7 @@
import { Application, BackendSession, pinus } from 'pinus';
import { resResult } from '../../../pubUtils/util';
import { STATUS } from '../../../consts/statusCode';
import { getRoleOnlineInfo, updateUserInfo } from '../../../services/redisService';
import { getRoleOnlineInfo, redisClient, updateUserInfo } from '../../../services/redisService';
import { addItems } from '../../../services/role/rewardService';
import { RewardInter } from '../../../pubUtils/interface';
import { gameData, getExpByLv, getHeroExpByLv, getHeroLvByExp, getLvByExp, getEquipByJobClassAndEPlace } from '../../../pubUtils/data';
@@ -30,6 +30,8 @@ import { RoleCeModel } from '../../../db/RoleCe';
import { setTrainLv } from '../../../services/gmService';
import { ArtifactModel } from '../../../db/Artifact';
import { roleLeave } from '../../../services/redisService';
import { KeyName } from '../../../domain/rank';
import { LadderMatchModel } from '../../../db/LadderMatch';
let timer: NodeJS.Timer;
export default function (app: Application) {
@@ -407,4 +409,29 @@ export class GmRoleHandler {
await calculateCeWithRole(HERO_SYSTEM_TYPE.RE_CAL, roleId, role.serverId, null, {}, { role, schools, jewels, heroes, skins, artifacts });
return resResult(STATUS.SUCCESS);
}
async clearRank(msg: { roleId: string }, session: BackendSession) {
let { roleId } = msg;
let role = await RoleModel.findByRoleId(roleId);
if(!role) return resResult(STATUS.WRONG_PARMS);
if(role.blockType != 2) return resResult(STATUS.GM_CANNOT_CLEAR_RANK)
let { serverId } = role;
await redisClient().zremAsync(new KeyName(REDIS_KEY.TOWER_RANK, { serverId }).getName(), roleId);
await redisClient().zremAsync(new KeyName(REDIS_KEY.LADDER, { serverId }).getName(), roleId);
await LadderMatchModel.updateByRoleId(roleId, { rank: 0 });
await redisClient().zremAsync(new KeyName(REDIS_KEY.TOP_LINEUP_RANK, { serverId }).getName(), roleId);
await redisClient().zremAsync(new KeyName(REDIS_KEY.TOP_HERO_RANK, { serverId }).getName(), roleId);
await redisClient().zremAsync(new KeyName(REDIS_KEY.HERO_NUM_RANK, { serverId }).getName(), roleId);
await redisClient().zremAsync(new KeyName(REDIS_KEY.SUM_CE_RANK, { serverId }).getName(), roleId);
await redisClient().zremAsync(new KeyName(REDIS_KEY.USER_LV, { serverId }).getName(), roleId);
await redisClient().zremAsync(new KeyName(REDIS_KEY.MAIN_RANK, { serverId }).getName(), roleId);
await redisClient().zremAsync(new KeyName(REDIS_KEY.MAIN_ELITE_RANK, { serverId }).getName(), roleId);
let keys = await redisClient().keysAsync(REDIS_KEY.PVP_RANK);
for(let key of keys) await redisClient().zremAsync(key, roleId);
return resResult(STATUS.SUCCESS);
}
}