fix军团:分服推送无法推全,放入chat服

This commit is contained in:
luying
2021-01-28 15:02:58 +08:00
parent b880962f02
commit a54e5d6d2b
7 changed files with 273 additions and 103 deletions

View File

@@ -1,8 +1,8 @@
import { Application, BackendSession, pinus, ChannelService } from 'pinus';
import { resResult, getRandEelm, reduceCe, getRefTime } from '../../../pubUtils/util';
import { STATUS, GUILD_OPERATE, GUILD_AUTH, GUILD_JOB, GUILD_APPLY_TYPE, GUILD_STRUCTURE, GUILD_REC_TYPE, GUILD_STRUCTURE_NAME, MAIL_TYPE, REDIS_KEY, GUILD_DATA_NAME } from '../../../consts';
import { STATUS, GUILD_OPERATE, GUILD_AUTH, GUILD_JOB, GUILD_APPLY_TYPE, GUILD_STRUCTURE, GUILD_REC_TYPE, GUILD_STRUCTURE_NAME, MAIL_TYPE, REDIS_KEY, GUILD_DATA_NAME, CHAT_SERVER } from '../../../consts';
import { UserGuildModel } from '../../../db/UserGuild';
import { checkAuth, joinGuild, getGuildWithRefActive, getUserGuildWithRefActive, addActive, message, settleGuildWeekly } from '../../../services/guildService';
import { checkAuth, joinGuild, getGuildWithRefActive, getUserGuildWithRefActive, addActive, settleGuildWeekly } from '../../../services/guildService';
import { GuildModel, GuildType } from '../../../db/Guild';
import { RoleModel, RoleType } from '../../../db/Role';
import { ARMY } from '../../../pubUtils/dicParam';
@@ -74,11 +74,11 @@ export class GuildHandler {
let rank = await getMyRank(REDIS_KEY.GUILD_ACTIVE_RANK, serverId, guild.code);
// 加入channel
message.enterChannel(guild.code, roleId, sid);
this.app.rpc.chat.guildRemote.enterChannel.toServer(CHAT_SERVER, guild.code, roleId, sid);
// 添加动态
const rec = await GuildRecModel.createGuildRec(roleId, guild.code, GUILD_REC_TYPE.JOIN_GUILD, [roleName]);
message.addRec(rec);
this.app.rpc.chat.guildRemote.addRec.toServer(CHAT_SERVER, rec);
// 返回
const result = { ...guild, rank, myInfo: { ...userGuild, isOnline: true}};
@@ -123,7 +123,7 @@ export class GuildHandler {
const select = ['code', 'name', 'notice', 'introduce', 'ceLimit', 'isAuto', 'icon'];
const guild = await GuildModel.updateInfo(code, { name, notice, introduce, ceLimit, isAuto }, {}, select.join(' '));
message.updateInfo(code, { name, notice, introduce, ceLimit, isAuto });
this.app.rpc.chat.guildRemote.updateInfo.toServer(CHAT_SERVER, code, { name, notice, introduce, ceLimit, isAuto });
await redisUserInfoUpdate(REDIS_KEY.GUILD_INFO, code, [{ field: 'name', value: name }]);
// 返回
@@ -213,17 +213,18 @@ export class GuildHandler {
// 添加动态
if(auth == GUILD_AUTH.MANAGER) {
const rec = await GuildRecModel.createGuildRec(roleId, code, GUILD_REC_TYPE.SET_MANAGER, [role.roleName]);
message.updateInfo(code, { managerCnt: guild.managerCnt });
message.addRec(rec);
this.app.rpc.chat.guildRemote.updateInfo.toServer(CHAT_SERVER, code, { managerCnt: guild.managerCnt });
this.app.rpc.chat.guildRemote.addRec.toServer(CHAT_SERVER, rec);
await sendMail(MAIL_TYPE.GUILD_BE_SET_MANAGER, memberRoleId, roleName, [guild.name]);
} else if (auth == GUILD_AUTH.LEADER) {
const rec = await GuildRecModel.createGuildRec(roleId, code, GUILD_REC_TYPE.SET_LEADER, [roleName, role.roleName]);
message.changeLeader(code, guild.managerCnt, role, roleId);
message.addRec(rec);
this.app.rpc.chat.guildRemote.changeLeader.toServer(CHAT_SERVER, code, guild.managerCnt, role, roleId);
this.app.rpc.chat.guildRemote.addRec.toServer(CHAT_SERVER, rec);
await sendMail(MAIL_TYPE.GUILD_BE_SET_LEADER, memberRoleId, roleName, [guild.name]);
} else {
message.updateInfo(code, { managerCnt: guild.managerCnt });
this.app.rpc.chat.guildRemote.updateInfo.toServer(CHAT_SERVER,code, { managerCnt: guild.managerCnt });
await sendMail(MAIL_TYPE.GUILD_BE_SET_MEMBER, memberRoleId, roleName, [guild.name]);
}
@@ -261,7 +262,9 @@ export class GuildHandler {
let leaderIsOnline = await isRoleOnline(guild.leader.roleId);
// 打开公会页面加入channel
message.enterChannel(userGuild.guildCode, roleId, sid);
if(userGuild.guildCode) {
this.app.rpc.chat.guildRemote.enterChannel.toServer(CHAT_SERVER, userGuild.guildCode, roleId, sid);
}
// 获取排行榜
const rank = await getMyRank(REDIS_KEY.GUILD_ACTIVE_RANK, serverId, guild.code);
@@ -311,8 +314,8 @@ export class GuildHandler {
// 添加动态
const rec = await GuildRecModel.createGuildRec(roleId, code, GUILD_REC_TYPE.JOIN_GUILD, [roleName]);
// 更新人数增加
message.updateInfo(code, { memberCnt: joinResult.memberCnt });
message.addRec(rec);
this.app.rpc.chat.guildRemote.updateInfo.toServer(CHAT_SERVER, code, { memberCnt: joinResult.memberCnt });
this.app.rpc.chat.guildRemote.addRec.toServer(CHAT_SERVER,rec);
hasGuild = true;
} else { // 不自动加入,插入申请表
@@ -368,10 +371,10 @@ export class GuildHandler {
if(joinResult.status == 0) continue;
// 更新人数增加
message.updateInfo(code, { memberCnt: joinResult.memberCnt });
this.app.rpc.chat.guildRemote.updateInfo.toServer(CHAT_SERVER, code, { memberCnt: joinResult.memberCnt });
// 添加动态
const rec = await GuildRecModel.createGuildRec(roleId, code, GUILD_REC_TYPE.JOIN_GUILD, [joinResult.roleName]);
message.addRec(rec);
this.app.rpc.chat.guildRemote.addRec.toServer(CHAT_SERVER,rec);
roleIds.push(roleId);
}
@@ -489,10 +492,10 @@ export class GuildHandler {
}
// 更新人数增加
message.updateInfo(code, { memberCnt: joinResult.memberCnt });
this.app.rpc.chat.guildRemote.updateInfo.toServer(CHAT_SERVER, code, { memberCnt: joinResult.memberCnt });
// 添加动态
const rec = await GuildRecModel.createGuildRec(roleId, code, GUILD_REC_TYPE.JOIN_GUILD, [joinResult.roleName]);
message.addRec(rec);
this.app.rpc.chat.guildRemote.addRec.toServer(CHAT_SERVER, rec);
code = guild.code;
}
@@ -567,7 +570,7 @@ export class GuildHandler {
// 删除channel
message.dismiss(code);
this.app.rpc.chat.guildRemote.dismiss.toServer(CHAT_SERVER,code);
await removeFromRank(REDIS_KEY.GUILD_ACTIVE_RANK, serverId, code);
return resResult(STATUS.SUCCESS, { code, status: guild.status });
@@ -597,8 +600,8 @@ export class GuildHandler {
// 添加动态
const rec = await GuildRecModel.createGuildRec(roleId, code, GUILD_REC_TYPE.QUIT_GUILD, [roleName]);
message.addRec(rec);
message.memberQuit(code, roleId, guild, sid);
this.app.rpc.chat.guildRemote.addRec.toServer(CHAT_SERVER,rec);
this.app.rpc.chat.guildRemote.memberQuit.toServer(CHAT_SERVER,code, roleId, guild, sid);
return resResult(STATUS.SUCCESS, { hasGuild: role.hasGuild });
}
@@ -629,11 +632,11 @@ export class GuildHandler {
const guild = await GuildModel.quit(code, memberRoleId, serverId);
if(!guild) return resResult(STATUS.GUILD_KICK_ERROR);
message.memberQuit(code, roleId, guild);
this.app.rpc.chat.guildRemote.memberQuit.toServer(CHAT_SERVER,code, roleId, guild);
// 添加动态
const rec = await GuildRecModel.createGuildRec(roleId, code, GUILD_REC_TYPE.QUIT_GUILD, [role.roleName]);
message.addRec(rec);
this.app.rpc.chat.guildRemote.addRec.toServer(CHAT_SERVER,rec);
await sendMail(MAIL_TYPE.GUILD_BE_KICK, memberRoleId, roleName, [guild.name]);
return resResult(STATUS.SUCCESS, { memberCnt: guild.memberCnt });
@@ -685,9 +688,9 @@ export class GuildHandler {
// 添加动态
const rec = await GuildRecModel.createGuildRec(roleId, code, GUILD_REC_TYPE.IMPEACH, [ oldRoleName, topUser.roleName]);
message.addRec(rec);
this.app.rpc.chat.guildRemote.addRec.toServer(CHAT_SERVER,rec);
message.changeLeader(code, guild.managerCnt, topUser, leaderRoleId);
this.app.rpc.chat.guildRemote.changeLeader.toServer(CHAT_SERVER,code, guild.managerCnt, topUser, leaderRoleId);
await sendMail(MAIL_TYPE.GUILD_BE_IMPEACH, leaderRoleId, roleName, [guild.name]);
await sendMail(MAIL_TYPE.GUILD_BE_SET_LEADER, topUser.roleId, roleName, [guild.name]);
@@ -753,13 +756,13 @@ export class GuildHandler {
const resultStructure = result.structure.find(cur => cur.id == id);
// 修改信息
message.updateInfo(code, { ...result });
this.app.rpc.chat.guildRemote.updateInfo.toServer(CHAT_SERVER,code, { ...result });
await redisUserInfoUpdate(REDIS_KEY.GUILD_INFO, code, [{field: 'lv', value: result.lv } ]);
// 添加动态
const structureName = GUILD_STRUCTURE_NAME.get(id);
const rec = await GuildRecModel.createGuildRec(roleId, code, GUILD_REC_TYPE.STRUCTURE_UP, [structureName, resultStructure.lv.toString()]);
message.addRec(rec);
this.app.rpc.chat.guildRemote.addRec.toServer(CHAT_SERVER,rec);
return resResult(STATUS.SUCCESS, result);
}
@@ -901,7 +904,7 @@ export class GuildHandler {
const { guild, userGuild } = result;
let { activeDaily, activeWeekly } = guild;
message.updateInfo(code, { activeDaily, activeWeekly });
this.app.rpc.chat.guildRemote.updateInfo.toServer(CHAT_SERVER, code, { activeDaily, activeWeekly });
return resResult(STATUS.SUCCESS, { activeDaily, activeWeekly, myInfo: userGuild });
}
@@ -918,7 +921,7 @@ export class GuildHandler {
const { code, count } = msg;
const guild = await GuildModel.updateInfo(code, {}, { fund: count }, 'fund');
message.updateInfo(code, {fund: guild.fund});
this.app.rpc.chat.guildRemote.updateInfo.toServer(CHAT_SERVER, code, {fund: guild.fund});
return resResult(STATUS.SUCCESS, { code, fund: guild.fund });
}