From 862ca1fbbc1c3c30a2482d90789c9f6e679f5004 Mon Sep 17 00:00:00 2001 From: luying Date: Wed, 10 May 2023 15:31:41 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9E=20fix(=E5=A5=BD=E5=8F=8B):=20?= =?UTF-8?q?=E6=8E=A8=E8=8D=90=E5=A5=BD=E5=8F=8B=E5=88=97=E8=A1=A8=E6=97=A0?= =?UTF-8?q?=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- game-server/app/servers/role/handler/friendHandler.ts | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/game-server/app/servers/role/handler/friendHandler.ts b/game-server/app/servers/role/handler/friendHandler.ts index 993ead981..e26fe67e7 100644 --- a/game-server/app/servers/role/handler/friendHandler.ts +++ b/game-server/app/servers/role/handler/friendHandler.ts @@ -1,7 +1,7 @@ import { Application, BackendSession, ChannelService, HandlerService, } from "pinus"; import { resResult, getRandEelm, getResStr, shouldRefresh, sortArrRandom, checkRoleIsRobot, getRobotSysType, makeRobotId, parseNumberList } from "../../../pubUtils/util"; import { STATUS, ROLE_SELECT, FRIEND_DROP_TYPE, FRIEND_RELATION_TYPE, POPULATE_TYPE, BLOCK_OPEATE, CONSUME_TYPE, ITID, HERO_SELECT, REDIS_KEY, MSG_SOURCE, MSG_TYPE, TASK_TYPE, ROBOT_SYS_TYPE, ITEM_CHANGE_REASON, PUSH_ROUTE } from "../../../consts"; -import Role, { RoleType } from "../../../db/Role"; +import Role, { RoleModel, RoleType } from "../../../db/Role"; import { getTimeFun, getZeroPointD } from "../../../pubUtils/timeUtil"; import { FriendApplyModel } from "../../../db/FriendApply"; import { FriendListParam, FriendRecommendParams, BlackListParam, FriendValueListParam, HeroDetailParam } from "../../../domain/roleField/friend"; @@ -52,12 +52,13 @@ export class FriendHandler { const { lv, serverId: myServerId } = await Role.findByRoleId(roleId, ROLE_SELECT.GET_MY_SERVER); let nums = parseNumberList(FRIEND.FRIEND_RECONMMEND_LEVEL); - let max = Math.max(...nums); - let allList = await Role.getRecommedList(lv - max, lv + max, day); + // let max = Math.max(...nums); + let recommendList = await RoleModel.find({ loginTime: { $gt: day }, hasInit: true }).limit(200).lean({ getters: true, virtuals: true }) + let allList: RoleType[] = [] let sortedNum = nums.sort((a, b) => a - b); for(let num of sortedNum) { - allList = allList.filter(cur => cur.lv >= lv - num && cur.lv <= lv + num); - if(allList.length > 0) break; + allList = recommendList.filter(cur => { return cur.lv >= lv - num && cur.lv <= lv + num }); + if(allList.length > FRIEND.FRIEND_RECONMMEND_NUM) break; } // 筛掉自己今天申请过的人