优化 排行榜使用redis缓存
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
import { STATUS } from './../../../consts/statusCode';
|
||||
import { HANG_UP_CONSTS, GOLD_COST_RATIO, TOWER_TASK_CONST } from './../../../consts/consts';
|
||||
import { HANG_UP_CONSTS, GOLD_COST_RATIO, TOWER_TASK_CONST, REDIS_KEY } from './../../../consts/consts';
|
||||
import { TowerTaskRecModel } from './../../../db/TowerTaskRec';
|
||||
import { HangUpSpdUpRecModel } from './../../../db/HangUpSpdUpRec';
|
||||
import { HangUpRecordModel } from './../../../db/HangUpRecord';
|
||||
@@ -11,6 +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';
|
||||
|
||||
export default function(app: Application) {
|
||||
return new TowerBattleHandler(app);
|
||||
@@ -29,7 +30,11 @@ export class TowerBattleHandler {
|
||||
let { towerLv } = await RoleModel.findByRoleId(roleId);
|
||||
if (!towerLv) {
|
||||
towerLv = 1;
|
||||
await RoleModel.towerLvUp(roleId);
|
||||
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"});
|
||||
|
||||
}
|
||||
let towerRec = await TowerRecordModel.getRecordByLv(roleId, towerLv);
|
||||
if (!towerRec) {
|
||||
@@ -303,17 +308,7 @@ export class TowerBattleHandler {
|
||||
let roleId = session.get('roleId');
|
||||
let roleName = session.get('roleName');
|
||||
|
||||
let ranks = await RoleModel.getRank('tower', ['roleId', 'roleName', 'towerLv', 'lv', 'vLv']);
|
||||
let resultRanks = ranks.map((cur, index) => {
|
||||
let { roleId, roleName, towerLv, lv, vLv } = cur;
|
||||
return {rank: index+1, roleId, roleName, lv, vLv, guildName: "", head: "zhaoyun", num: towerLv, str: ''}
|
||||
});
|
||||
let myRank = null;
|
||||
for(let r of resultRanks) {
|
||||
if(r.roleId == roleId) {
|
||||
myRank = r; break
|
||||
}
|
||||
}
|
||||
let {ranks, myRank} = await getRank(REDIS_KEY.TOWER_RANK, roleId);
|
||||
if(!myRank) {
|
||||
let role = await RoleModel.findByRoleId(roleId);
|
||||
let {towerLv, lv, vLv} = role;
|
||||
@@ -322,6 +317,6 @@ export class TowerBattleHandler {
|
||||
}
|
||||
}
|
||||
|
||||
return resResult(STATUS.SUCCESS, { ranks: resultRanks, myRank });
|
||||
return resResult(STATUS.SUCCESS, { ranks, myRank });
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user