排行榜:团长信息
This commit is contained in:
@@ -263,7 +263,7 @@ export class AuctionHandler {
|
||||
const userGuild = await UserGuildModel.createUserGuild(guild.code, role, true);
|
||||
if (!userGuild) return resResult(STATUS.GUILD_CREATE_ERROR);
|
||||
|
||||
await RoleModel.joinGuild(roleId, guild.code, guild.name);
|
||||
await RoleModel.joinGuild(roleId, guild.code, guild.name, true);
|
||||
await UserGuildApplyModel.deleteApply(roleId); // 删除玩家所有对其他公会的申请
|
||||
guildCode = guild.code;
|
||||
session.set('guildCode', guildCode);
|
||||
|
||||
@@ -78,7 +78,7 @@ export class GuildHandler {
|
||||
const userGuild = await UserGuildModel.createUserGuild(guild.code, role, true);
|
||||
if (!userGuild) return resResult(STATUS.GUILD_CREATE_ERROR);
|
||||
|
||||
await RoleModel.joinGuild(roleId, guild.code, guild.name);
|
||||
await RoleModel.joinGuild(roleId, guild.code, guild.name, true);
|
||||
await UserGuildApplyModel.deleteApply(roleId); // 删除玩家所有对其他公会的申请
|
||||
|
||||
// 加入排行
|
||||
@@ -231,6 +231,8 @@ export class GuildHandler {
|
||||
let myUserGuild = await UserGuildModel.updateInfo(roleId, { auth: GUILD_AUTH.MEMBER, job: GUILD_JOB.SHIBING }, {}); // 自己降权限
|
||||
setUserGuildSession(session, myUserGuild);
|
||||
await updateUserInfo(REDIS_KEY.GUILD_INFO, code, [{ field: 'leader', value: new GuildLeader(role) }]);
|
||||
await RoleModel.updateRoleInfo(memberRoleId, { isGuildLeader: true });
|
||||
await RoleModel.updateRoleInfo(roleId, { isGuildLeader: false });
|
||||
}
|
||||
|
||||
guild = await GuildModel.updateInfo(code, updateObject, { managerCnt: managerCntInc }, 'managerCnt code name'); // 如果有转让团长设置leader
|
||||
@@ -704,6 +706,8 @@ export class GuildHandler {
|
||||
await sendMailByContent(MAIL_TYPE.GUILD_BE_SET_LEADER, topUser.roleId, { sendName: roleName, params: [guild.name] });
|
||||
|
||||
await updateUserInfo(REDIS_KEY.GUILD_INFO, code, [{ field: 'leader', value: new GuildLeader(topUser) }]);
|
||||
await RoleModel.updateRoleInfo(leaderRoleId, { isGuildLeader: false });
|
||||
await RoleModel.updateRoleInfo(topUser.roleId, { isGuildLeader: true });
|
||||
reportTAEvent(roleId, TA_EVENT.GUILD_MASTER_CHANGE, { way: GUILD_MASTER_CHANGE_WAY.IMPEACH, change_id_after: topUser.roleId }, ip)
|
||||
|
||||
let isOnline = await isRoleOnline(topUser.roleId);
|
||||
|
||||
@@ -27,6 +27,7 @@ import { checkFilterWords, reportTAEvent, treatRoleName } from '../../../service
|
||||
import { createHeroes } from '../../../services/role/createHero';
|
||||
import { calculateCeWithHero, calculateCeWithRole } from '../../../services/playerCeService';
|
||||
import { sendMessageToUserWithSuc } from '../../../services/pushService';
|
||||
import { GuildLeader } from '../../../domain/rank';
|
||||
|
||||
export default function (app: Application) {
|
||||
new HandlerService(app, {});
|
||||
@@ -353,6 +354,7 @@ export class RoleHandler {
|
||||
async setHead(msg: { id: number }, session: BackendSession) {
|
||||
let { id } = msg;
|
||||
let roleId = session.get('roleId');
|
||||
let guildCode = session.get('guildCode');
|
||||
let role = await RoleModel.findByRoleId(roleId, ROLE_SELECT.GET_HEADS);
|
||||
if (!role) return resResult(STATUS.ROLE_NOT_FOUND);
|
||||
|
||||
@@ -370,6 +372,9 @@ export class RoleHandler {
|
||||
|
||||
role = await RoleModel.updateRoleInfo(roleId, { heads });
|
||||
await updateUserInfo(REDIS_KEY.USER_INFO, roleId, [{ field: 'head', value: id }]);
|
||||
if(role.isGuildLeader) {
|
||||
await updateUserInfo(REDIS_KEY.GUILD_INFO, guildCode, [{ field: 'leader', value: new GuildLeader(role) }]);
|
||||
}
|
||||
|
||||
return resResult(STATUS.SUCCESS, { heads: role.heads, head: role.head });
|
||||
}
|
||||
@@ -378,6 +383,7 @@ export class RoleHandler {
|
||||
async setFrame(msg: { id: number }, session: BackendSession) {
|
||||
let { id } = msg;
|
||||
let roleId = session.get('roleId');
|
||||
let guildCode = session.get('guildCode');
|
||||
let role = await RoleModel.findByRoleId(roleId, ROLE_SELECT.GET_HEADS);
|
||||
if (!role) return resResult(STATUS.ROLE_NOT_FOUND);
|
||||
|
||||
@@ -395,6 +401,9 @@ export class RoleHandler {
|
||||
|
||||
role = await RoleModel.updateRoleInfo(roleId, { frames });
|
||||
await updateUserInfo(REDIS_KEY.USER_INFO, roleId, [{ field: 'frame', value: id }]);
|
||||
if(role.isGuildLeader) {
|
||||
await updateUserInfo(REDIS_KEY.GUILD_INFO, guildCode, [{ field: 'leader', value: new GuildLeader(role) }]);
|
||||
}
|
||||
|
||||
return resResult(STATUS.SUCCESS, { frames: role.frames, frame: role.frame });
|
||||
}
|
||||
@@ -403,6 +412,7 @@ export class RoleHandler {
|
||||
async setSpine(msg: { id: number }, session: BackendSession) {
|
||||
let { id } = msg;
|
||||
let roleId = session.get('roleId');
|
||||
let guildCode = session.get('guildCode');
|
||||
let role = await RoleModel.findByRoleId(roleId, ROLE_SELECT.GET_HEADS);
|
||||
if (!role) return resResult(STATUS.ROLE_NOT_FOUND);
|
||||
|
||||
@@ -420,6 +430,9 @@ export class RoleHandler {
|
||||
|
||||
role = await RoleModel.updateRoleInfo(roleId, { spines });
|
||||
await updateUserInfo(REDIS_KEY.USER_INFO, roleId, [{ field: 'spine', value: id }]);
|
||||
if(role.isGuildLeader) {
|
||||
await updateUserInfo(REDIS_KEY.GUILD_INFO, guildCode, [{ field: 'leader', value: new GuildLeader(role) }]);
|
||||
}
|
||||
|
||||
return resResult(STATUS.SUCCESS, { spines: role.spines, spine: role.spine });
|
||||
}
|
||||
@@ -429,6 +442,7 @@ export class RoleHandler {
|
||||
let { roleName } = msg;
|
||||
let roleId = session.get('roleId');
|
||||
let serverId = session.get('serverId');
|
||||
let guildCode = session.get('guildCode');
|
||||
let sid = session.get('sid');
|
||||
if(!roleName) return resResult(STATUS.WRONG_PARMS);
|
||||
|
||||
@@ -446,6 +460,9 @@ export class RoleHandler {
|
||||
session.set('roleName', role.roleName);
|
||||
session.push('roleName', () => { });
|
||||
await updateUserInfo(REDIS_KEY.USER_INFO, roleId, [{ field: 'roleName', value: roleName }]);
|
||||
if(role.isGuildLeader) {
|
||||
await updateUserInfo(REDIS_KEY.GUILD_INFO, guildCode, [{ field: 'leader', value: new GuildLeader(role) }]);
|
||||
}
|
||||
|
||||
return resResult(STATUS.SUCCESS, { roleName: role.roleName, renameCnt: role.renameCnt });
|
||||
}
|
||||
|
||||
@@ -91,7 +91,7 @@ export async function joinGuild(code: string, guildName: string, lv: number, rol
|
||||
let res: any = await lockData(serverId, DATA_NAME.JOIN_GUILD, code);// 加锁
|
||||
if (!!res.err) return { status: -1, resResult: resResult(STATUS.REDLOCK_ERR) };
|
||||
|
||||
const result = await RoleModel.joinGuild(roleId, code, guildName);
|
||||
const result = await RoleModel.joinGuild(roleId, code, guildName, false);
|
||||
if (!result) {
|
||||
res.releaseCallback();//解锁
|
||||
return { status: -1, resResult: resResult(STATUS.GUILD_HAS_JOIN) };
|
||||
|
||||
@@ -12,7 +12,7 @@ import { checkTask } from './task/taskService';
|
||||
import { RScriptRecordModel } from '../db/RScriptRecord';
|
||||
import { setAp } from './actionPointService';
|
||||
import { resResult } from '../pubUtils/util';
|
||||
import { LineupParam } from '../domain/rank';
|
||||
import { GuildLeader, LineupParam } from '../domain/rank';
|
||||
import { WarStar } from '../domain/dbGeneral';
|
||||
import { uniq } from 'underscore';
|
||||
import { checkPopUpCondition } from './activity/popUpShopService';
|
||||
@@ -41,6 +41,9 @@ export async function roleLevelup(type: KING_EXP_RATIO_TYPE, roleId: string, kin
|
||||
if (newLv > lv) { // 升级
|
||||
// await switchOnFunc(roleId, FUNC_OPT_TYPE.LEVEL_UP, newLv, session);
|
||||
await updateUserInfo(REDIS_KEY.USER_INFO, roleId, [{ field: 'lv', value: newLv }]);
|
||||
if(role.isGuildLeader) {
|
||||
await updateUserInfo(REDIS_KEY.GUILD_INFO, role.guildCode, [{ field: 'leader', value: new GuildLeader(role) }]);
|
||||
}
|
||||
|
||||
let r = new Rank(REDIS_KEY.USER_LV, { serverId: role.serverId });
|
||||
await r.setRankWithRoleInfo(roleId, newLv, Date.now(), role);
|
||||
|
||||
@@ -20,6 +20,7 @@ import { SurveyRecModel } from "../db/SurveyRec";
|
||||
import { SurveyModel } from "../db/Survery";
|
||||
import { pushGuildInfoUpdate } from "./guildService";
|
||||
import { sendMessageToUserWithSuc } from "./pushService";
|
||||
import { GuildLeader } from "../domain/rank";
|
||||
|
||||
// 检查私聊是否合法
|
||||
|
||||
@@ -113,6 +114,9 @@ export async function treatRoleName(roleId: string, isDebug?: boolean) {
|
||||
await RoleModel.updateRoleInfo(roleId, { roleName: newName, sdkMark: false });
|
||||
// 通知处理
|
||||
await updateUserInfo(REDIS_KEY.USER_INFO, roleId, [{ field: 'roleName', value: newName }]); // redis缓存
|
||||
if(role.isGuildLeader) {
|
||||
await updateUserInfo(REDIS_KEY.GUILD_INFO, role.guildCode, [{ field: 'leader', value: new GuildLeader(role) }]);
|
||||
}
|
||||
const { sid } = await getRoleOnlineInfo(roleId);
|
||||
if(!!sid) {
|
||||
await pinus.app.rpc.connector.connectorRemote.setOtherUserSession.toServer(sid,[{ roleId, roleName: newName }]); // 改session
|
||||
|
||||
@@ -12,7 +12,7 @@ export enum ROLE_SELECT {
|
||||
GET_ROLE_ID = 'roleId roleName lv head frame spine heads frames spines ce title friendCnt serverId userInfo.serverType',
|
||||
GET_MY_SERVER = 'lv serverId userInfo.serverType',
|
||||
COM_BATTLE = 'lv head frame spine heads frames spines topLineupCe',
|
||||
GET_HEADS = 'heads head frames frame spines spine',
|
||||
GET_HEADS = 'heads head frames frame spines spine isGuildLeader roleId roleName lv ce title',
|
||||
// 排行榜基础数据
|
||||
RANK = 'roleId roleName lv vLv head frame spine heads frames spines title guildName ce topLineup towerLv towerUpTime topLineupCe heroNum updatedAt heroNumUpdatedAt dungeonWarId dungeonUpdatedAt dungeonHeroes mainWarId mainUpdatedAt mainEliteWarId mainEliteUpdatedAt showLineup hasGuild',
|
||||
};
|
||||
|
||||
@@ -264,6 +264,8 @@ export default class Role extends BaseModel {
|
||||
guildCode: string; // 加入的军团code
|
||||
@prop({ required: true, default: "" })
|
||||
guildName: string; // 加入的军团名
|
||||
@prop({ required: true, default: false })
|
||||
isGuildLeader: boolean; // 是否是团长
|
||||
|
||||
// 好友
|
||||
@prop({ required: true, default: 0 })
|
||||
@@ -582,8 +584,8 @@ export default class Role extends BaseModel {
|
||||
}
|
||||
|
||||
// 记录加入公会
|
||||
public static async joinGuild(roleId: string, guildCode: string, guildName: string) {
|
||||
const result = await RoleModel.findOneAndUpdate({ roleId, hasGuild: false }, { hasGuild: true, guildCode, guildName }, { new: true }).lean();
|
||||
public static async joinGuild(roleId: string, guildCode: string, guildName: string, isGuildLeader: boolean) {
|
||||
const result = await RoleModel.findOneAndUpdate({ roleId, hasGuild: false }, { $set: { hasGuild: true, guildCode, guildName, isGuildLeader } }, { new: true }).lean();
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user