军团:动态

This commit is contained in:
luying
2021-01-21 18:02:52 +08:00
parent 48ee9267ab
commit 5df884a5eb
4 changed files with 136 additions and 6 deletions

View File

@@ -1,6 +1,6 @@
import { Application, BackendSession, pinus } from 'pinus';
import { resResult, getRandEelm, reduceCe } from '../../../pubUtils/util';
import { STATUS, GUILD_OPERATE, GUILD_AUTH, GUILD_JOB, GUILD_APPLY_TYPE, GUILD_STRUCTURE } from '../../../consts';
import { STATUS, GUILD_OPERATE, GUILD_AUTH, GUILD_JOB, GUILD_APPLY_TYPE, GUILD_STRUCTURE, GUILD_REC_TYPE, GUILD_STRUCTURE_NAME } from '../../../consts';
import { UserGuildModel } from '../../../db/UserGuild';
import { checkAuth, joinGuild, costFund } from '../../../services/guildService';
import { GuildModel, GuildType } from '../../../db/Guild';
@@ -12,6 +12,7 @@ import { nowSeconds, getBeforeDaySeconds } from '../../../pubUtils/timeUtil';
import { GuildListInfo } from '../../../pubUtils/interface';
import { UserGuildApplyModel } from '../../../db/UserGuildApply';
import { hasStructureConsume, getStructureConsume, gameData } from '../../../pubUtils/data';
import { GuildRecModel } from '../../../db/GuildRec';
export default function (app: Application) {
return new GuildHandler(app);
@@ -25,6 +26,7 @@ export class GuildHandler {
async createGuild(msg: { name: string, icon: number, notice: string }, session: BackendSession) {
const roleId = session.get('roleId');
const roleName = session.get('roleName');
const sid = session.get('sid');
const serverId = session.get('serverId');
const { name, icon, notice } = msg;
@@ -56,11 +58,15 @@ export class GuildHandler {
if(!userGuild) return resResult(STATUS.GUILD_CREATE_ERROR);
await RoleModel.joinGuild(roleId);
await UserGuildApplyModel.deleteApply(roleId); // 删除玩家所有对其他公会的申请
// TODO 加入排行
const rank = 0;
// TODO 加入channel
// 添加动态
await GuildRecModel.createGuildRec(roleId, guild.code, GUILD_REC_TYPE.JOIN_GUILD, [roleName]);
// 返回
const result = { ...guild, rank, myInfo: userGuild};
return resResult(STATUS.SUCCESS, result);
@@ -132,6 +138,7 @@ export class GuildHandler {
async setAuth(msg: { roleId: string, auth: number }, session: BackendSession) {
const roleId = session.get('roleId');
const roleName = session.get('roleName');
const serverId = session.get('serverId');
const { roleId: memberRoleId, auth } = msg;
@@ -174,15 +181,23 @@ export class GuildHandler {
if(!userGuild) {
return resResult(STATUS.GUILD_MEMBER_NOT_FOUND);
}
const role = await RoleModel.findByRoleId(memberRoleId);
let updateObject = {};
if(auth == GUILD_AUTH.LEADER) { // 转让团长
const role = await RoleModel.findByRoleId(memberRoleId);
updateObject['leader'] = role._id;
await UserGuildModel.updateInfo(roleId, { auth: GUILD_AUTH.MEMBER }); // 自己降权限
}
guild = await GuildModel.updateInfo(code, updateObject, { managerCnt: managerCntInc }, 'managerCnt'); // 如果有转让团长设置leader
// 添加动态
if(auth == GUILD_AUTH.MANAGER) {
await GuildRecModel.createGuildRec(roleId, code, GUILD_REC_TYPE.SET_MANAGER, [role.roleName]);
} else if (auth == GUILD_AUTH.LEADER) {
await GuildRecModel.createGuildRec(roleId, code, GUILD_REC_TYPE.SET_LEADER, [roleName, role.roleName]);
}
// 返回
return resResult(STATUS.SUCCESS, {
roleId: memberRoleId, auth: userGuild.auth, managerCnt: guild.managerCnt
@@ -225,6 +240,7 @@ export class GuildHandler {
async applyGuild(msg: { code: string }, session: BackendSession) {
const roleId = session.get('roleId');
const roleName = session.get('roleName');
const serverId = session.get('serverId');
const { code } = msg;
@@ -256,6 +272,9 @@ export class GuildHandler {
return joinResult.resResult;
}
// 添加动态
await GuildRecModel.createGuildRec(roleId, code, GUILD_REC_TYPE.JOIN_GUILD, [roleName]);
hasGuild = true;
} else { // 不自动加入,插入申请表
await UserGuildApplyModel.createUserGuildApply(role, guild, GUILD_APPLY_TYPE.APPLY);
@@ -305,6 +324,10 @@ export class GuildHandler {
for(let { roleId } of applyList) {
const joinResult = await joinGuild(code, guild.lv, roleId, serverId);
if(joinResult.status == 0) continue;
// 添加动态
await GuildRecModel.createGuildRec(roleId, code, GUILD_REC_TYPE.JOIN_GUILD, [joinResult.roleName]);
roleIds.push(roleId);
}
} else { // 拒绝申请,删除申请
@@ -418,6 +441,9 @@ export class GuildHandler {
return joinResult.resResult;
}
// 添加动态
await GuildRecModel.createGuildRec(roleId, code, GUILD_REC_TYPE.JOIN_GUILD, [joinResult.roleName]);
code = guild.code;
}
await UserGuildApplyModel.deleteApplyByApplyCode([applyCode]); // 删除这条邀请
@@ -496,6 +522,7 @@ export class GuildHandler {
async quit(msg: { code: string }, session: BackendSession) {
const roleId = session.get('roleId');
const roleName = session.get('roleName');
const serverId = session.get('serverId');
const { code } = msg;
@@ -512,6 +539,9 @@ export class GuildHandler {
const guild = await GuildModel.quit(code, roleId, serverId);
if(!guild) return resResult(STATUS.GUILD_QUIT_ERROR);
// 添加动态
await GuildRecModel.createGuildRec(roleId, code, GUILD_REC_TYPE.QUIT_GUILD, [roleName]);
return resResult(STATUS.SUCCESS, { hasGuild: role.hasGuild });
}
@@ -542,6 +572,10 @@ export class GuildHandler {
// TODO 发送邮件,发送推送
// 添加动态
await GuildRecModel.createGuildRec(roleId, code, GUILD_REC_TYPE.QUIT_GUILD, [role.roleName]);
return resResult(STATUS.SUCCESS, { memberCnt: guild.memberCnt });
}
@@ -561,7 +595,7 @@ export class GuildHandler {
if (!checkHisAuth) return resResult(STATUS.GUILD_AUTH_NOT_ENOUGH);
// 离线72小时
const { loginTime } = await RoleModel.findByRoleId(leaderRoleId);
const { roleName: oldRoleName, loginTime } = await RoleModel.findByRoleId(leaderRoleId);
if (loginTime > getBeforeDaySeconds(3)) {
return resResult(STATUS.GUILD_LEADER_LOGIN);
}
@@ -580,6 +614,10 @@ export class GuildHandler {
const guild = await GuildModel.updateInfo(code, { leader: topUser._id }, { managerCnt: managerCntInc }, 'managerCnt'); // 如果有转让团长设置leader
// 添加动态
await GuildRecModel.createGuildRec(roleId, code, GUILD_REC_TYPE.IMPEACH, [ oldRoleName, topUser.roleName]);
const leader = { ...topUser, ce: reduceCe(topUser.ce) }
return resResult(STATUS.SUCCESS, {
code, managerCnt: guild.managerCnt, leader
@@ -627,7 +665,27 @@ export class GuildHandler {
if(!result) {
return resResult(STATUS.GUILD_STRUCTURE_NOT_FOUND);
}
const resultStructure = result.structure.find(cur => cur.id == id);
// 添加动态
const structureName = GUILD_STRUCTURE_NAME.get(id);
await GuildRecModel.createGuildRec(roleId, code, GUILD_REC_TYPE.STRUCTURE_UP, [structureName, resultStructure.lv.toString()]);
return resResult(STATUS.SUCCESS, result);
}
// 获取动态
async getRec(msg: { code: string }, session: BackendSession) {
const roleId = session.get('roleId');
const { code } = msg;
const checkResult = await checkAuth(GUILD_OPERATE.GET_REC, roleId, code);
if (!checkResult) return resResult(STATUS.GUILD_AUTH_NOT_ENOUGH);
const list = await GuildRecModel.getGuildRec(code);
return resResult(STATUS.SUCCESS, { list });
}
}