月卡:修改玩家session

This commit is contained in:
luying
2022-03-09 20:14:02 +08:00
parent 0e10e3e6d3
commit d937679a5d
4 changed files with 12 additions and 22 deletions

View File

@@ -49,30 +49,16 @@ export class ConnectorRemote {
}
}
public async setOtherUserRoleNameSession(params: { roleId: string, roleName: string}[]) {
public async setOtherUserSession(params: { roleId: string, roleName?: string, blockType?: number, vipStartTime?: number}[]) {
try {
let sessionService = this.app.get('sessionService');
for(let {roleId, roleName} of params) {
for(let {roleId, roleName, blockType, vipStartTime} of params) {
let sessions = sessionService.getByUid(roleId);
if(!!sessions) {
sessions.forEach(session => {
sessionService.aimportAll(session.id, { roleName });
});
}
}
} catch(e) {
errlogger.error(`remote ${__filename} \n ${e.stack}`);
}
}
public async setOtherUseBlockTypeSession(params: { roleId: string, blockType: string}[]) {
try {
let sessionService = this.app.get('sessionService');
for(let {roleId, blockType} of params) {
let sessions = sessionService.getByUid(roleId);
if(!!sessions) {
sessions.forEach(session => {
sessionService.aimportAll(session.id, { blockType });
if(roleName) sessionService.aimportAll(session.id, { roleName });
if(blockType) sessionService.aimportAll(session.id, { blockType });
if(vipStartTime) sessionService.aimportAll(session.id, { vipStartTime });
});
}
}

View File

@@ -70,7 +70,7 @@ export class GmRoleHandler {
if(!role) return resResult(STATUS.ROLE_NOT_FOUND);
let { isOnline, sid } = await getRoleOnlineInfo(roleId);
if(isOnline) {
await this.app.rpc.connector.connectorRemote.setOtherUseBlockTypeSession.toServer(sid,[{ roleId, blockType }]);
await this.app.rpc.connector.connectorRemote.setOtherUserSession.toServer(sid,[{ roleId, blockType }]);
if(blockType == BLOCK_TYPE.BLOCK) { // 踢走
await this.app.rpc.connector.connectorRemote.remoteLogin.toServer(sid, roleId, STATUS.BLOCKED);
}

View File

@@ -13,6 +13,7 @@ import { RewardInter } from '../../pubUtils/interface';
import { getGoldId } from '../../pubUtils/itemUtils';
import { DUNGEON_CONST, PVP, VIP } from '../../pubUtils/dicParam';
import { cal } from '../../pubUtils/util';
import { pinus } from 'pinus';
/**
* 获取活动数据
@@ -122,7 +123,10 @@ export async function makeMonthlyTicketReward(roleId: string, roleName: string,
let endTime = playerData.isForever? moment(new Date()).startOf('d').add(playerData.days, 'day').toDate(): null;
console.log('endTime', moment(new Date()).startOf('d'), endTime, playerData.days)
await ActivityMonthlyTicketModel.buyMonthlyTicket(serverId, roleId, activityId, activityData.type, endTime, playerData.isForever)
await RoleModel.buyForeverTicket(roleId);
if(activityData.type == ACTIVITY_TYPE.MONTHLY_TICKET_2) {
let role = await RoleModel.buyForeverTicket(roleId);
await pinus.app.rpc.connector.connectorRemote.setOtherUserSession.toServer(sid,[{ roleId, vipStartTime: role.vipStartTime }]);
}
let firstReward = playerData.firstReward;
let rewardParamArr: Array<RewardParam> = stringToRewardParam(firstReward);
let result = await addReward(roleId, roleName, sid, serverId, rewardParamArr, ITEM_CHANGE_REASON.MONTHLY_TICKET_FIRST)

View File

@@ -111,7 +111,7 @@ export async function treatRoleName(roleId: string, isDebug?: boolean) {
await updateUserInfo(REDIS_KEY.USER_INFO, roleId, [{ field: 'roleName', value: newName }]); // redis缓存
const { sid } = await getRoleOnlineInfo(roleId);
if(!!sid) {
await pinus.app.rpc.connector.connectorRemote.setOtherUserRoleNameSession.toServer(sid,[{ roleId, roleName: newName }]); // 改session
await pinus.app.rpc.connector.connectorRemote.setOtherUserSession.toServer(sid,[{ roleId, roleName: newName }]); // 改session
pinus.app.get('channelService').pushMessageByUids('onPlayerDataChange', resResult(STATUS.SUCCESS, {
roleName: newName
}), [{uid: roleId, sid}]);