军团:添加邮件
This commit is contained in:
@@ -1,11 +1,11 @@
|
||||
import { Application, BackendSession, pinus, ChannelService } from 'pinus';
|
||||
import { resResult, getRandEelm, reduceCe } from '../../../pubUtils/util';
|
||||
import { STATUS, GUILD_OPERATE, GUILD_AUTH, GUILD_JOB, GUILD_APPLY_TYPE, GUILD_STRUCTURE, GUILD_REC_TYPE, GUILD_STRUCTURE_NAME } from '../../../consts';
|
||||
import { STATUS, GUILD_OPERATE, GUILD_AUTH, GUILD_JOB, GUILD_APPLY_TYPE, GUILD_STRUCTURE, GUILD_REC_TYPE, GUILD_STRUCTURE_NAME, MAIL_TYPE } from '../../../consts';
|
||||
import { UserGuildModel } from '../../../db/UserGuild';
|
||||
import { checkAuth, joinGuild, costFund, getGuildWithRefActive, getUserGuildWithRefActive, addGuildActive, message } from '../../../services/guildService';
|
||||
import { checkAuth, joinGuild, getGuildWithRefActive, getUserGuildWithRefActive, addGuildActive, message } from '../../../services/guildService';
|
||||
import { GuildModel, GuildType } from '../../../db/Guild';
|
||||
import { RoleModel, RoleType } from '../../../db/Role';
|
||||
import { GUILD } from '../../../pubUtils/dicParam';
|
||||
import { ARMY } from '../../../pubUtils/dicParam';
|
||||
import { handleCost, addItems } from '../../../services/rewardService';
|
||||
import { getGoldObject } from '../../../pubUtils/itemUtils';
|
||||
import { nowSeconds, getBeforeDaySeconds } from '../../../pubUtils/timeUtil';
|
||||
@@ -13,8 +13,7 @@ import { GuildListInfo } from '../../../pubUtils/interface';
|
||||
import { UserGuildApplyModel } from '../../../db/UserGuildApply';
|
||||
import { hasStructureConsume, getStructureConsume, gameData } from '../../../pubUtils/data';
|
||||
import { GuildRecModel } from '../../../db/GuildRec';
|
||||
import { MailModel } from '../../../db/Mail';
|
||||
import { getRedis } from '../../../services/redisService';
|
||||
import { sendMail } from '../../../services/mailService';
|
||||
|
||||
export default function (app: Application) {
|
||||
return new GuildHandler(app);
|
||||
@@ -43,11 +42,11 @@ export class GuildHandler {
|
||||
|
||||
// 检查元宝是否够
|
||||
const role = await RoleModel.findByRoleId(roleId);
|
||||
if(GUILD.GUILD_CREATE_COST > role.gold) { // TODO 系统参数表字段更改
|
||||
if(ARMY.ARMY_CREAT_COST > role.gold) {
|
||||
return resResult(STATUS.DAILY_REFRESH_GOLD_LACK);
|
||||
}
|
||||
|
||||
await handleCost(roleId, sid, [getGoldObject(GUILD.GUILD_CREATE_COST)]);
|
||||
await handleCost(roleId, sid, [getGoldObject(ARMY.ARMY_CREAT_COST)]);
|
||||
|
||||
// 创建公会
|
||||
const guild = await GuildModel.createGuild({ name, icon, notice }, role, serverId);
|
||||
@@ -194,20 +193,23 @@ export class GuildHandler {
|
||||
await UserGuildModel.updateInfo(roleId, { auth: GUILD_AUTH.MEMBER }); // 自己降权限
|
||||
}
|
||||
|
||||
guild = await GuildModel.updateInfo(code, updateObject, { managerCnt: managerCntInc }, 'managerCnt code'); // 如果有转让团长设置leader
|
||||
guild = await GuildModel.updateInfo(code, updateObject, { managerCnt: managerCntInc }, 'managerCnt code name'); // 如果有转让团长设置leader
|
||||
|
||||
// 添加动态
|
||||
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);
|
||||
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);
|
||||
await sendMail(MAIL_TYPE.GUILD_BE_SET_LEADER, memberRoleId, roleName, [guild.name]);
|
||||
} else {
|
||||
message.updateInfo(code, { managerCnt: guild.managerCnt });
|
||||
await sendMail(MAIL_TYPE.GUILD_BE_SET_MEMBER, memberRoleId, roleName, [guild.name]);
|
||||
}
|
||||
|
||||
|
||||
@@ -329,6 +331,7 @@ export class GuildHandler {
|
||||
async receiveApply(msg: { code: string, applyCodeList: [string], isReceived: boolean }, session: BackendSession) {
|
||||
|
||||
const roleId = session.get('roleId');
|
||||
const roleName = session.get('roleName');
|
||||
const serverId = session.get('serverId');
|
||||
const { code, applyCodeList, isReceived } = msg;
|
||||
|
||||
@@ -338,9 +341,9 @@ export class GuildHandler {
|
||||
|
||||
const applyList = await UserGuildApplyModel.getListByApplyCode(applyCodeList);
|
||||
|
||||
const guild = await GuildModel.findByCode(code, serverId);
|
||||
let roleIds = new Array<string>();
|
||||
if(isReceived) { // 同意申请,加入
|
||||
const guild = await GuildModel.findByCode(code, serverId);
|
||||
|
||||
for(let { roleId } of applyList) {
|
||||
const joinResult = await joinGuild(code, guild.lv, roleId, serverId);
|
||||
@@ -356,7 +359,7 @@ export class GuildHandler {
|
||||
}
|
||||
} else { // 拒绝申请,删除申请
|
||||
for(let { roleId } of applyList) {
|
||||
// TODO 发送邮件
|
||||
await sendMail(MAIL_TYPE.GUILD_APPLY_REFUSE, roleId, roleName, [guild.name]);
|
||||
}
|
||||
|
||||
await UserGuildApplyModel.deleteApplyByApplyCode(applyCodeList);
|
||||
@@ -494,7 +497,8 @@ export class GuildHandler {
|
||||
if(checkDetailResult) {
|
||||
select.push('auth', 'honourWeekly honourUpdateTime');
|
||||
}
|
||||
let list = await UserGuildModel.getListByGuild(code, select.join(' '));
|
||||
let list = await UserGuildModel.getListByGuild(code, select.join(' '), { auth: 1 });
|
||||
console.log('**', JSON.stringify(list))
|
||||
let result = list.map(cur => {
|
||||
let role = <RoleType>cur.role;
|
||||
delete role._id;
|
||||
@@ -581,6 +585,7 @@ export class GuildHandler {
|
||||
async kick(msg: { code: string, roleId: string }, session: BackendSession) {
|
||||
|
||||
const roleId = session.get('roleId');
|
||||
const roleName = session.get('roleName');
|
||||
const serverId = session.get('serverId');
|
||||
const { code, roleId: memberRoleId } = msg;
|
||||
|
||||
@@ -602,13 +607,12 @@ export class GuildHandler {
|
||||
const guild = await GuildModel.quit(code, memberRoleId, serverId);
|
||||
if(!guild) return resResult(STATUS.GUILD_KICK_ERROR);
|
||||
|
||||
// TODO 发送邮件,发送推送
|
||||
|
||||
message.memberQuit(code, roleId, guild);
|
||||
|
||||
// 添加动态
|
||||
const rec = await GuildRecModel.createGuildRec(roleId, code, GUILD_REC_TYPE.QUIT_GUILD, [role.roleName]);
|
||||
message.addRec(rec);
|
||||
await sendMail(MAIL_TYPE.GUILD_BE_KICK, memberRoleId, roleName, [guild.name]);
|
||||
|
||||
return resResult(STATUS.SUCCESS, { memberCnt: guild.memberCnt });
|
||||
}
|
||||
@@ -617,6 +621,8 @@ export class GuildHandler {
|
||||
async impeach(msg: { code: string, roleId: string }, session: BackendSession) {
|
||||
|
||||
const roleId = session.get('roleId');
|
||||
const roleName = session.get('roleName');
|
||||
const sid = session.get('sid');
|
||||
// const serverId = session.get('serverId');
|
||||
const { code, roleId: leaderRoleId } = msg;
|
||||
|
||||
@@ -638,6 +644,14 @@ export class GuildHandler {
|
||||
if (!topUserGuild) {
|
||||
return resResult(STATUS.GUILD_MEMBER_NOT_FOUND);
|
||||
}
|
||||
|
||||
// 检查元宝是否够
|
||||
const role = await RoleModel.findByRoleId(roleId);
|
||||
if(ARMY.ARMY_IMPEACH_COST > role.gold) {
|
||||
return resResult(STATUS.DAILY_REFRESH_GOLD_LACK);
|
||||
}
|
||||
await handleCost(roleId, sid, [getGoldObject(ARMY.ARMY_IMPEACH_COST)]);
|
||||
|
||||
const topUser = <RoleType>topUserGuild.role;
|
||||
// 交换
|
||||
|
||||
@@ -646,13 +660,15 @@ export class GuildHandler {
|
||||
await UserGuildModel.updateInfo(topUserGuild.roleId, { auth: GUILD_AUTH.LEADER }, 'auth'); // 最高功勋人升
|
||||
let managerCntInc = topUserGuild.auth == GUILD_AUTH.MANAGER ? -1 : 0; // 管理人数
|
||||
|
||||
const guild = await GuildModel.updateInfo(code, { leader: topUser._id }, { managerCnt: managerCntInc }, 'managerCnt'); // 如果有转让团长设置leader
|
||||
const guild = await GuildModel.updateInfo(code, { leader: topUser._id }, { managerCnt: managerCntInc }, 'managerCnt name'); // 如果有转让团长设置leader
|
||||
|
||||
// 添加动态
|
||||
const rec = await GuildRecModel.createGuildRec(roleId, code, GUILD_REC_TYPE.IMPEACH, [ oldRoleName, topUser.roleName]);
|
||||
message.addRec(rec);
|
||||
|
||||
message.changeLeader(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]);
|
||||
|
||||
const leader = { ...topUser, ce: reduceCe(topUser.ce) }
|
||||
return resResult(STATUS.SUCCESS, {
|
||||
@@ -692,7 +708,7 @@ export class GuildHandler {
|
||||
return resResult(STATUS.GUILD_STRUCTURE_LV_MAX);
|
||||
}
|
||||
const cost = getStructureConsume(id, curStructure.lv);
|
||||
const costResult = await costFund(code, cost, sid);
|
||||
const costResult = await GuildModel.costFund(code, cost);
|
||||
if(!costResult) {
|
||||
return resResult(STATUS.GUILD_FUND_NOT_ENOUGH);
|
||||
}
|
||||
@@ -746,13 +762,7 @@ export class GuildHandler {
|
||||
const { members } = guild;
|
||||
//下发邮件
|
||||
for(let roleId of members) {
|
||||
let mail = await MailModel.addMail({roleId, goods: [], sendName: roleName, mailId: 1, content: info});
|
||||
|
||||
let key = 'login_roleId_' + roleId;
|
||||
let sid = await getRedis(key);
|
||||
if (!!sid) {
|
||||
pinus.app.rpc.connector.connectorRemote.pushMessage.toServer(sid, roleId, 'onMailsAdd', [mail]);
|
||||
}
|
||||
await sendMail(MAIL_TYPE.SEND_MAIL, roleId, roleName, [info]);
|
||||
}
|
||||
|
||||
return resResult(STATUS.SUCCESS, { isSuccess: true });
|
||||
|
||||
Reference in New Issue
Block a user