聊天:最近聊天加入在线状态
This commit is contained in:
@@ -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 };
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
@@ -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',
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user