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);
}
}

View File

@@ -741,6 +741,8 @@ export const STATUS = {
GM_ACTIVITY_TIME_ERR: { code: 60031, simStr: '时间不可有重叠' },
GM_USER_TYPE_ERR: { code: 60032, simStr: '您不可使用账号密码登录,请从专属后台点击链接进入' },
GM_GVG_TIME_ERR: { code: 60033, simStr: '时间配置错误' },
GM_CANNOT_CLEAR_RANK: { code: 60034, simStr: '没有封号的玩家不能清空' },
// 支付相关状态 70000 - 79999
NO_PRODUCT_ID: { code: 70001, simStr: '无效商品' },
NO_PAY_TYPE: { code: 70002, simStr: '无效支付类型' },

View File

@@ -1013,5 +1013,12 @@
"name": "宝物查询",
"module": "user",
"type": "find"
},
{
"id": 147,
"api": "gm.gmRoleHandler.clearRank",
"name": "清空排行榜",
"module": "user",
"type": "update"
}
]