登陆:玩家在线情况redis改为hash格式
This commit is contained in:
@@ -15,9 +15,8 @@ import { UserGuildApplyModel } from '../../../db/UserGuildApply';
|
||||
import { hasStructureConsume, getStructureConsume, gameData } from '../../../pubUtils/data';
|
||||
import { GuildRecModel } from '../../../db/GuildRec';
|
||||
import { sendMail } from '../../../services/mailService';
|
||||
import { existsRank, initSingleRankWithServer, getRank, setRank, redisUserInfoUpdate, redisUserInfoAdd, removeFromRank, getMyRank, isRoleOnline, getRedis, redisSidKey } from '../../../services/redisService';
|
||||
import { lockData } from '../../../services/redLockService';
|
||||
import { DATA_NAME } from '../../../consts/dataName';
|
||||
import { existsRank, initSingleRankWithServer, getRank, setRank, redisUserInfoUpdate, removeFromRank, getMyRank, isRoleOnline, getRoleOnlineInfo } from '../../../services/redisService';
|
||||
|
||||
import { openGuildRefine } from '../../../services/guildRefineService';
|
||||
import { unlockTrain } from '../../../services/guildTrainService';
|
||||
import { removeBossRank } from '../../../services/guildBossService';
|
||||
@@ -450,8 +449,10 @@ export class GuildHandler {
|
||||
if(!role.hasGuild) {
|
||||
await UserGuildApplyModel.createUserGuildApply(role, guild, GUILD_APPLY_TYPE.INVITE);
|
||||
result.push(role.roleId);
|
||||
let hisSid = await getRedis(redisSidKey(role.roleId));
|
||||
uids.push({ uid: role.roleId, sid: hisSid })
|
||||
let hisInfo = await getRoleOnlineInfo(role.roleId);
|
||||
if(hisInfo.isOnline) {
|
||||
uids.push({ uid: role.roleId, sid: hisInfo.sid })
|
||||
}
|
||||
}
|
||||
}
|
||||
await GuildModel.recordInvitedMember(code, serverId, roleIds, shouldRefresh(guild.inviteTime, new Date(), 0));
|
||||
|
||||
@@ -11,7 +11,7 @@ import { GUILD_STRUCTURE } from '../../../consts/constModules/guildConst';
|
||||
import { getUserGuildWithRefActive } from '../../../services/guildService';
|
||||
import { findIndex, findWhere } from 'underscore';
|
||||
import { RoleModel } from '../../../db/Role';
|
||||
import { getRedis, redisSidKey } from '../../../services/redisService';
|
||||
import { getRoleOnlineInfo } from '../../../services/redisService';
|
||||
import { ARMY } from '../../../pubUtils/dicParam';
|
||||
export default function(app: Application) {
|
||||
return new WishPoolHandler(app);
|
||||
@@ -119,11 +119,11 @@ export class WishPoolHandler {
|
||||
return resResult(STATUS.HAS_RECEIVE_WISH_GOOD);//已经收到
|
||||
let { wishDntCnt } = await UserGuildModel.donateGoods(dntRoleId, 1, 'wishDntCnt');
|
||||
let { wishGoods: resWishGoods } = await UserGuildModel.donateUpdate(wishRoleId, dntRoleName, id, 'wishGoods');
|
||||
let key = redisSidKey(wishRoleId);
|
||||
let sid = await getRedis(key);
|
||||
await addItems(wishRoleId, role.roleName , sid , [{ id : wishGood.goodId, count: 1 }]);
|
||||
if (!!sid) {
|
||||
this.app.channelService.pushMessageByUids('onWishGoodsRecive', resResult(STATUS.SUCCESS, { wishGoods: resWishGoods }), [{uid:wishRoleId, sid}]);
|
||||
|
||||
let hisOnlineInfo = await getRoleOnlineInfo(wishRoleId);
|
||||
if(hisOnlineInfo.isOnline && hisOnlineInfo.sid) {
|
||||
await addItems(wishRoleId, role.roleName, hisOnlineInfo.sid , [{ id : wishGood.goodId, count: 1 }]);
|
||||
this.app.channelService.pushMessageByUids('onWishGoodsRecive', resResult(STATUS.SUCCESS, { wishGoods: resWishGoods }), [{uid:wishRoleId, sid: hisOnlineInfo.sid}]);
|
||||
}
|
||||
await WishPoolReportModel.addReport(code, wishRoleId, role.roleName , dntRoleId, dntRoleName, wishGood.goodId, 1);
|
||||
return resResult(STATUS.SUCCESS, { wishDntCnt, updateWishGoods: resWishGoods.map(({type, goodId, count, receiveCnt, drawCnt, id})=>{
|
||||
|
||||
@@ -13,7 +13,7 @@ import { ItemModel } from '../../../db/Item';
|
||||
import { chackFunOpenWhenLogin } from '../../../services/funcSwitchService';
|
||||
import { loginRefresh } from '../../../services/playerEventService';
|
||||
import { nowSeconds } from '../../../pubUtils/timeUtil';
|
||||
import { getRedis, setRedis, delRedis, rmRoleFromQueue, redisSidKey } from '../../../services/redisService';
|
||||
import { rmRoleFromQueue, roleLeave, getRoleOnlineInfo, roleLogin } from '../../../services/redisService';
|
||||
import { UserGuildModel } from '../../../db/UserGuild';
|
||||
import { GuildModel } from '../../../db/Guild';
|
||||
import { gameData } from '../../../pubUtils/data';
|
||||
@@ -47,13 +47,14 @@ export class EntryHandler {
|
||||
if (!role) {
|
||||
return resResult(STATUS.ROLE_NOT_FOUND);
|
||||
}
|
||||
let key = redisSidKey(role.roleId);
|
||||
let connect = await getRedis(key);
|
||||
if (!!connect) {
|
||||
await self.app.rpc.connector.connectorRemote.remoteLogin.toServer(connect, role.roleId);
|
||||
|
||||
let connect = await getRoleOnlineInfo(role.roleId);
|
||||
|
||||
if (connect.isOnline) { // 多地登陆踢下线
|
||||
await self.app.rpc.connector.connectorRemote.remoteLogin.toServer(connect.sid, role.roleId);
|
||||
}
|
||||
let serverName = this.app.getServerId();
|
||||
setRedis(key, serverName);
|
||||
await roleLogin(role.roleId, user.userCode, serverName); // 保存在线用户
|
||||
await session.abind(role.roleId);
|
||||
session.set('uid', role.roleId);
|
||||
session.set('roleId', role.roleId);
|
||||
@@ -139,8 +140,7 @@ export class EntryHandler {
|
||||
let roleId = session.get('roleId');
|
||||
let sid = session.get('sid');
|
||||
let serverId = session.get('serverId');
|
||||
let key = redisSidKey(roleId);
|
||||
delRedis(key);
|
||||
roleLeave(roleId);
|
||||
rmRoleFromQueue(roleId, sid, COM_BTL_QUALITY, null); // 删除redis中寻宝的匹配记录
|
||||
let channelService = this.app.get('channelService');
|
||||
let channel = channelService.getChannel(roleId, true);
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
import { Application, ChannelService, FrontendSession, pinus, RemoterClass } from 'pinus';
|
||||
import { STATUS } from '../../../consts/statusCode';
|
||||
import { resResult } from '../../../pubUtils/util';
|
||||
import { getRedis, setRedis, delRedis } from '../../../services/redisService';
|
||||
export default function (app: Application) {
|
||||
return new ConnectorRemote(app);
|
||||
}
|
||||
|
||||
@@ -7,7 +7,7 @@ import { FriendApplyModel } from "../../../db/FriendApply";
|
||||
import { FriendApplyParams, FriendListParam, FriendRecommendParams, BlackListParam, FriendValueListParam } from "../../../domain/roleField/friend";
|
||||
import { FriendShipModel, FriendShipType } from "../../../db/FriendShip";
|
||||
import { FriendRelationModel, Relation } from "../../../db/FriendRelation";
|
||||
import { isRoleOnline, getServerName, getMyRank, getRedis, redisSidKey } from "../../../services/redisService";
|
||||
import { isRoleOnline, getServerName, getMyRank, getRoleOnlineInfo } from "../../../services/redisService";
|
||||
import { increaseFrdCnt, getRecommendType, sortByBeSentHeart } from "../../../services/friendService";
|
||||
import { FriendPointModel } from "../../../db/FriendPoint";
|
||||
import { gameData } from "../../../pubUtils/data";
|
||||
@@ -146,8 +146,10 @@ export class FriendHandler {
|
||||
|
||||
await FriendApplyModel.createApply(hisRoleId, role);
|
||||
resultRoleIds.push(hisRoleId);
|
||||
let hisSid = await getRedis(redisSidKey(hisRoleId));
|
||||
uids.push({ uid: hisRoleId, sid: hisSid });
|
||||
let hisOnlineInfo = await getRoleOnlineInfo(hisRoleId);
|
||||
if(hisOnlineInfo.isOnline) {
|
||||
uids.push({ uid: hisRoleId, sid: hisOnlineInfo.sid });
|
||||
}
|
||||
}
|
||||
|
||||
this.channelService.pushMessageByUids('onFriendApply', resResult(STATUS.SUCCESS, { roleId }), uids);
|
||||
@@ -517,8 +519,10 @@ export class FriendHandler {
|
||||
todaySendCnt += FRIEND.FRIEND_FRIENDPOINT_ADD;
|
||||
todaySendInc += FRIEND.FRIEND_FRIENDPOINT_ADD;
|
||||
|
||||
let hisSid = await getRedis(redisSidKey(relation.roleId));
|
||||
uids.push({ uid: relation.roleId, sid: hisSid })
|
||||
let hisOnlineInfo = await getRoleOnlineInfo(relation.roleId);
|
||||
if(hisOnlineInfo.isOnline) {
|
||||
uids.push({ uid: relation.roleId, sid: hisOnlineInfo.sid });
|
||||
}
|
||||
}
|
||||
this.channelService.pushMessageByUids('onFriendSendHeart', resResult(STATUS.SUCCESS, {roleId}), uids);
|
||||
if(todaySendInc <= 0) return resResult(STATUS.FRIEND_HAS_SENT);
|
||||
|
||||
@@ -10,6 +10,7 @@ import { ItemModel } from '../../../db/Item';
|
||||
import { gameData, getHeroExpByLv, getHeroStarByQuality, getHeroWakeByQuality, getHeroLvByExp, getMaxGradeByjobClass, getJobByGradeAndClass, getFriendShipById, getFavourLvByExp } from '../../../pubUtils/data';
|
||||
import { RewardInter } from '../../../pubUtils/interface';
|
||||
import { getDropItems } from '../../../consts/constModules/itemConst'
|
||||
import { getRoleOnlineInfo, getAllOnlineRoles } from '../../../services/redisService';
|
||||
export default function(app: Application) {
|
||||
return new HeroHandler(app);
|
||||
}
|
||||
@@ -22,17 +23,10 @@ export class HeroHandler {
|
||||
|
||||
public async test(msg: { items:Array<{id: number, count: number, seqId:number, type:number}>}, session: BackendSession) {
|
||||
let roleId: string = session.get('roleId');
|
||||
let roleName: string = session.get('roleName');
|
||||
let sid: string = session.get('sid');
|
||||
|
||||
let {items} = msg;
|
||||
|
||||
let result = await handleCost(roleId, sid, items );
|
||||
//let result = await addItems(roleId, roleName, sid, [{id, count}] );
|
||||
if(!result) {
|
||||
return resResult(STATUS.BATTLE_CONSUMES_NOT_ENOUGH);
|
||||
}
|
||||
return resResult(STATUS.SUCCESS,{result});
|
||||
let role = await getRoleOnlineInfo(roleId);
|
||||
let list = await getAllOnlineRoles();
|
||||
return resResult(STATUS.SUCCESS, {role, list});
|
||||
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user