redis 排行榜分区

This commit is contained in:
luying
2020-11-23 16:29:21 +08:00
parent d8e2c609cb
commit aa5dc07b86
8 changed files with 72 additions and 23 deletions
@@ -11,7 +11,7 @@ import { decodeArrayStr, resResult, shouldRefresh, calculateNum, getRefTime, gen
import { calcuHangUpReward, checkTaskConditions, checkHangUpSpdUpCnt, createCurTasks, treatTask, getRemainTime, getTasksReward, getTaskStatus, getDoingOrWaitingTasks } from '../../../services/battleService';
import { handleFixedReward, handleReward } from '../../../services/rewardService';
import { checkBattleHeroes } from '../../../services/normalBattleService';
import { getRank, setRank } from '../../../services/redisService';
import { getRank, setRank, initRank, existsRank } from '../../../services/redisService';
export default function(app: Application) {
return new TowerBattleHandler(app);
@@ -27,13 +27,14 @@ export class TowerBattleHandler {
*/
async getStatus(msg: {}, session: BackendSession) {
let roleId = session.get('roleId');
let serverId = session.get('serverId');
let { towerLv } = await RoleModel.findByRoleId(roleId);
if (!towerLv) {
towerLv = 1;
let role = await RoleModel.towerLvUp(roleId);
// 更新redis
let { roleName, towerUpTime, lv, vLv } = role;
await setRank(REDIS_KEY.TOWER_RANK, roleId, towerLv, towerUpTime.getTime(), {roleName, lv, vLv, guildName:"", head: "zhaoyun"});
await setRank(REDIS_KEY.TOWER_RANK, serverId, roleId, towerLv, towerUpTime.getTime(), {roleName, lv, vLv, guildName:"", head: "zhaoyun"});
}
let towerRec = await TowerRecordModel.getRecordByLv(roleId, towerLv);
@@ -105,7 +106,7 @@ export class TowerBattleHandler {
const goods = await handleReward(roleId, roleName, timeReward);
await HangUpRecordModel.updateRec(roleId, roleName, endLv, endTime, needReceiveGoods);
return resResult(STATUS.SUCCESS, { endTime, hangUpPassTime: Math.floor((deltaTime%HANG_UP_CONSTS.MAX_TIME)/1000), ...goods });
return resResult(STATUS.SUCCESS, { endTime, hangUpPassTime: Math.floor((deltaTime%HANG_UP_CONSTS.UNIT_TIME)/1000), ...goods });
}
async hangUpSpeedUp(msg: {speedUpCnt: number}, session: BackendSession) {
@@ -303,12 +304,15 @@ export class TowerBattleHandler {
return resResult(STATUS.SUCCESS, { curTasks: treatTask(curTasks, curTime), goods, refRemainTime, nextCostGold: costGold });
}
async getTowerRank(msg: {}, session: BackendSession) {
let roleId = session.get('roleId');
let roleName = session.get('roleName');
let serverId = session.get('serverId')
let {ranks, myRank} = await getRank(REDIS_KEY.TOWER_RANK, roleId);
const hasTowerRank = await existsRank(REDIS_KEY.TOWER_RANK, serverId);
if(!hasTowerRank) await initRank(serverId);
let {ranks, myRank} = await getRank(REDIS_KEY.TOWER_RANK, serverId, roleId);
if(!myRank) {
let role = await RoleModel.findByRoleId(roleId);
let {towerLv, lv, vLv} = role;