✨ feat(后台): 一键清理排行榜
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user