军团:添加邀请红点和演武台功能

This commit is contained in:
luying
2021-12-21 16:59:29 +08:00
parent a4f426e172
commit 5f2c07da00
10 changed files with 71 additions and 33 deletions

View File

@@ -2,7 +2,7 @@ import { Application, BackendSession, ChannelService, HandlerService, } from 'pi
import { resResult, getRandEelm, shouldRefresh, sortArrRandom } 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_SELECT, USER_GUILD_SELECT, TASK_TYPE, DEBUG_MAGIC_WORD, CHANNEL_PREFIX, MSG_TYPE, MSG_SOURCE, ITEM_CHANGE_REASON, TA_EVENT, GUILD_DISMISS_WAY, GUILD_MASTER_CHANGE_WAY, GUILD_QUIT_WAY } from '../../../consts';
import { UserGuildModel, UserGuildType } from '../../../db/UserGuild';
import { checkAuth, joinGuild, getGuildWithRefActive, getUserGuildWithRefActive, addActive, settleGuildWeekly, getMyGuildInfo, refreshUserGuild, setUserGuildSession } from '../../../services/guildService';
import { checkAuth, joinGuild, getGuildWithRefActive, getUserGuildWithRefActive, addActive, settleGuildWeekly, getMyGuildInfo, refreshUserGuild, setUserGuildSession, getInvitationList } from '../../../services/guildService';
import { GuildModel, GuildType, GuildUpdateParam } from '../../../db/Guild';
import { RoleModel, RoleType } from '../../../db/Role';
import { ARMY } from '../../../pubUtils/dicParam';
@@ -424,14 +424,18 @@ export class GuildHandler {
const roleList = await RoleModel.findByRoleIds(roleIds);
let result = new Array<string>();
let uids = [];
for (let role of roleList) {
if (!role.hasGuild || role.serverId == serverId) {
await UserGuildApplyModel.createUserGuildApply(role, guild, GUILD_APPLY_TYPE.INVITE);
let apply = await UserGuildApplyModel.createUserGuildApply(role, guild, GUILD_APPLY_TYPE.INVITE);
result.push(role.roleId);
let hisInfo = await getRoleOnlineInfo(role.roleId);
if (hisInfo.isOnline) {
uids.push({ uid: role.roleId, sid: hisInfo.sid })
let uids = [{ uid: role.roleId, sid: hisInfo.sid }];
let guild = <GuildType>apply.guild;
let leader = <RoleType>guild.leader;
let invitation = { applyCode: apply.applyCode, ...guild, leader: leader.roleName };
this.channelService.pushMessageByUids('onGuildInvite', resResult(STATUS.SUCCESS, { invitation }), uids);
}
}
}
@@ -440,7 +444,6 @@ export class GuildHandler {
}
await GuildModel.recordInvitedMember(code, serverId, roleIds, shouldRefresh(guild.inviteTime, new Date()));
this.channelService.pushMessageByUids('onGuildInvite', resResult(STATUS.SUCCESS, { code }), uids);
return resResult(STATUS.SUCCESS, { roleIds: result });
@@ -451,14 +454,7 @@ export class GuildHandler {
const roleId = session.get('roleId');
const { lastApplyCode } = msg;
const result = await UserGuildApplyModel.findInviteByRole(roleId, lastApplyCode);
const list = result.map(cur => {
let guild = <GuildType>cur.guild;
let leader = <RoleType>guild.leader;
delete cur.guild;
return { applyCode: cur.applyCode, ...guild, leader: leader.roleName };
});
let list = await getInvitationList(roleId, lastApplyCode);
return resResult(STATUS.SUCCESS, { list });