diff --git a/game-server/app/services/chatService.ts b/game-server/app/services/chatService.ts index 135631ff1..f51335d95 100644 --- a/game-server/app/services/chatService.ts +++ b/game-server/app/services/chatService.ts @@ -285,9 +285,9 @@ export async function recentPrivateChatInfos(roleId: string, roleName: string) { const roleInfos = await RoleModel.findRoleByField('roleId', recentPrivateChats.map(chat => { return chat.targetRoleId })); const chatInfos = recentPrivateChats.map( chat => { - for (let { roleId: targetRoleId, quitTime, roleName: targetRoleName, title, guildName, head, frame, spine, lv } of roleInfos) { + for (let { roleId: targetRoleId, quitTime, loginTime, roleName: targetRoleName, title, guildName, head, frame, spine, lv } of roleInfos) { if (targetRoleId === chat.targetRoleId) { - return { ...chat, quitTime, targetRoleName, title, guildName, head, frame, spine, lv }; + return { ...chat, quitTime, targetRoleName, title, guildName, head, frame, spine, lv, isOnline: quitTime === loginTime }; } } }); diff --git a/shared/consts/constModules/selectConst.ts b/shared/consts/constModules/selectConst.ts index 7eab613d7..6fcca3252 100644 --- a/shared/consts/constModules/selectConst.ts +++ b/shared/consts/constModules/selectConst.ts @@ -3,7 +3,7 @@ export enum ROLE_SELECT { // 初始登录数据 ENTRY = 'serverId userInfo.uid userInfo.tel userInfo.serverType ce topLineup topLineupCe teraphs roleId roleName tili lv exp gold coin vLv title hasGuild funcs eventStatus heads head frames frame spines spine guildCode frdCnt showLineup', // 玩家列表显示基础数据 - SHOW_SIMPLE = 'roleId roleName ce head frame spine lv title job quitTime vLv guildName serverId userInfo.serverType', + SHOW_SIMPLE = 'roleId roleName ce head frame spine lv title job quitTime loginTime vLv guildName serverId userInfo.serverType', // 显示申请需要的信息 SHOW_FRIEND_APPLY_LIST = 'roleId roleName ce head frame spine lv title job quitTime vLv guildName friendCnt recFrdApplyCnt serverId userInfo.serverType', HANDLE_APPLY = 'roleId friendCnt lv', diff --git a/shared/db/Role.ts b/shared/db/Role.ts index 03b787678..85e3af906 100644 --- a/shared/db/Role.ts +++ b/shared/db/Role.ts @@ -270,7 +270,8 @@ export default class Role extends BaseModel { } public static async findByUid(uid: number, serverId: number, select?: string, getters = false) { - const role: RoleType = await RoleModel.findOneAndUpdate({ 'userInfo.uid': uid, serverId }, { loginTime: nowSeconds(), quitTime: nowSeconds() }, { new: true }).select(select).lean({ getters, virtuals: true }); + const curSec = nowSeconds(); + const role: RoleType = await RoleModel.findOneAndUpdate({ 'userInfo.uid': uid, serverId }, { loginTime: curSec, quitTime: curSec }, { new: true }).select(select).lean({ getters, virtuals: true }); return role; }