diff --git a/game-server/app/services/connectorService.ts b/game-server/app/services/connectorService.ts index edd09030b..b79c55907 100644 --- a/game-server/app/services/connectorService.ts +++ b/game-server/app/services/connectorService.ts @@ -86,7 +86,7 @@ export async function pushData(hasInit: boolean, role: RoleType, session: Fronte for(let { type, init, refresh, guild } of modules) { if(!hasInit && !init) continue; if(pushType == 'refresh' && !refresh) continue; - if(guildData.hasGuild && !guild) continue; + if(!guildData.hasGuild && !guild) continue; let data = await getModuleData(type, { role, session }, guildData); if (data) { diff --git a/game-server/app/services/redisService.ts b/game-server/app/services/redisService.ts index 2191f7e5e..e6359b620 100644 --- a/game-server/app/services/redisService.ts +++ b/game-server/app/services/redisService.ts @@ -85,6 +85,7 @@ export async function initActivitiesRank(serverId: number, activityGroupId: numb let r = new Rank(redisKey, { serverId, activityId: data.activityId }); r.setIsInit(true); for (let rank of ranks) { + console.log('##### rank', rank); if(r.infoKey == REDIS_KEY.USER_INFO) { await r.setRankWithRoleInfo(rank.roleId, rank.score, rank.time||0, rank.role); } else if(r.infoKey == REDIS_KEY.GUILD_INFO) { diff --git a/shared/db/ActivityTimeLimitRank.ts b/shared/db/ActivityTimeLimitRank.ts index 1561f14bd..9439b26a5 100644 --- a/shared/db/ActivityTimeLimitRank.ts +++ b/shared/db/ActivityTimeLimitRank.ts @@ -18,13 +18,13 @@ export default class Activity_Time_Limit_Rank extends BaseModel { @prop({ required: false }) guildCode: string; // 军团 - @prop({ ref: 'Guild', type: mongoose.Schema.Types.ObjectId }) + @prop({ ref: () => Guild, type: mongoose.Schema.Types.ObjectId }) guild: Ref; @prop({ required: false }) roleId: string; // 军团 - @prop({ ref: 'Role', type: mongoose.Schema.Types.ObjectId }) + @prop({ ref: () => Role, type: mongoose.Schema.Types.ObjectId }) role: Ref; @prop({ required: true }) @@ -54,9 +54,16 @@ export default class Activity_Time_Limit_Rank extends BaseModel { public static async getRank(serverId: number, activityId: number) { let rec: ActivityTimeLimitRankModelType[] = await ActivityTimeLimitRankModel.find({ serverId, activityId }) - .populate('role').populate('guild') - .populate('leader', { roleId: 1, roleName: 1, head: 1, frame: 1, spine: 1, lv: 1, quitTime: 1, ce: 1, title: 1, _id: 0 }, 'Role') - .sort({ score: -1, time: 1 }).lean(); + .populate('role') + .populate({ + path: 'guild', + select: 'code icon name lv memberCnt leader ceLimit', + model: 'Guild', + populate: { + path: 'leader', + model: 'Role' + } + }).sort({ score: -1, time: 1 }).lean({ getters: true, virtuals: true }); return rec; } } diff --git a/shared/db/Guild.ts b/shared/db/Guild.ts index b5242d1c8..740eb259f 100644 --- a/shared/db/Guild.ts +++ b/shared/db/Guild.ts @@ -1,5 +1,5 @@ import BaseModel from './BaseModel'; -import { index, getModelForClass, prop, DocumentType, Ref } from '@typegoose/typegoose'; +import { index, getModelForClass, prop, DocumentType, Ref, mongoose } from '@typegoose/typegoose'; import Role, { RoleType } from './Role'; import { GUILD_STRUCTURE, GUILD_STATUS, GUILD_PER_PAGE, GUILD_SELECT, REDIS_KEY, SHOP_REFRESH_TYPE } from '../consts'; import { getZeroPoint, getZeroPointD, nowSeconds } from '../pubUtils/timeUtil'; @@ -41,7 +41,7 @@ export default class Guild extends BaseModel { @prop({ required: true, default: 0 }) managerCnt: number; - @prop({ required: true }) + @prop({ required: true, ref: () => Role, type: mongoose.Schema.Types.ObjectId }) leader: Ref; @prop({ required: true, default: true })