diff --git a/src/modules/admin/ZhonTai.Admin/Core/Extensions/ImExtensions.cs b/src/modules/admin/ZhonTai.Admin/Core/Extensions/ImExtensions.cs index 73f23a53..120ed480 100644 --- a/src/modules/admin/ZhonTai.Admin/Core/Extensions/ImExtensions.cs +++ b/src/modules/admin/ZhonTai.Admin/Core/Extensions/ImExtensions.cs @@ -1,8 +1,5 @@ using Microsoft.Extensions.DependencyInjection; -using System; using ZhonTai.Admin.Core.Configs; -using ZhonTai.Admin.Tools.Cache; -using ZhonTai.Common.Helpers; namespace ZhonTai.Admin.Core.Extensions; @@ -24,17 +21,17 @@ public static void AddIm(this IServiceCollection services) ImHelper.Instance.OnSend += (s, e) => { - Console.WriteLine($"ImClient.SendMessage(server={e.Server},data={JsonHelper.Serialize(e.Message)})"); + //Console.WriteLine($"ImClient.SendMessage(server={e.Server},data={JsonHelper.Serialize(e.Message)})"); }; ImHelper.EventBus( t => { - Console.WriteLine(t.clientId + "上线了"); + //Console.WriteLine(t.clientId + "上线了"); }, t => { - Console.WriteLine(t.clientId + "下线了"); + //Console.WriteLine(t.clientId + "下线了"); } ); } diff --git a/src/modules/admin/ZhonTai.Admin/Services/User/Dto/UserGetPageOutput.cs b/src/modules/admin/ZhonTai.Admin/Services/User/Dto/UserGetPageOutput.cs index 0c5cec69..95a3a38d 100644 --- a/src/modules/admin/ZhonTai.Admin/Services/User/Dto/UserGetPageOutput.cs +++ b/src/modules/admin/ZhonTai.Admin/Services/User/Dto/UserGetPageOutput.cs @@ -56,6 +56,11 @@ public class UserGetPageOutput /// public bool Enabled { get; set; } + /// + /// 在线 + /// + public bool Online { get; set; } + /// /// 创建时间 /// diff --git a/src/modules/admin/ZhonTai.Admin/Services/User/UserService.cs b/src/modules/admin/ZhonTai.Admin/Services/User/UserService.cs index 7f42ca53..dcc95a0a 100644 --- a/src/modules/admin/ZhonTai.Admin/Services/User/UserService.cs +++ b/src/modules/admin/ZhonTai.Admin/Services/User/UserService.cs @@ -51,6 +51,7 @@ namespace ZhonTai.Admin.Services.User; public partial class UserService : BaseService, IUserService, IDynamicApi { private readonly AppConfig _appConfig; + private readonly ImConfig _imConfig; private readonly UserHelper _userHelper; private readonly AdminLocalizer _adminLocalizer; private readonly IUserRepository _userRep; @@ -70,6 +71,7 @@ public partial class UserService : BaseService, IUserService, IDynamicApi public UserService( IOptions appConfig, + IOptions imConfig, UserHelper userHelper, AdminLocalizer adminLocalizer, IUserRepository userRep, @@ -88,6 +90,7 @@ Lazy permissionRep ) { _appConfig = appConfig.Value; + _imConfig = imConfig.Value; _userHelper = userHelper; _adminLocalizer = adminLocalizer; _userRep = userRep; @@ -180,9 +183,24 @@ public async Task> GetPageAsync(PageInput>(list); + + if (_imConfig.Enable) + { + var clientIdList = ImHelper.GetClientListByOnline(); + + foreach (var user in userList) + { + if (clientIdList.Contains(user.Id)) + { + user.Online = true; + } + } + } + var data = new PageOutput() { - List = Mapper.Map>(list), + List = userList, Total = total }; diff --git a/src/modules/admin/ZhonTai.Admin/Services/WebSocket/WebSocketService.cs b/src/modules/admin/ZhonTai.Admin/Services/WebSocket/WebSocketService.cs index 530c3805..44bc91b9 100644 --- a/src/modules/admin/ZhonTai.Admin/Services/WebSocket/WebSocketService.cs +++ b/src/modules/admin/ZhonTai.Admin/Services/WebSocket/WebSocketService.cs @@ -29,6 +29,7 @@ public WebSocketService(IOptions imConfig) /// /// 获取websocket分区 /// + [Login] [HttpPost] public object PreConnect(WebSocketPreConnectInput input) { diff --git a/ui/zhontai.ui.admin.vue3/src/api/admin/data-contracts.ts b/ui/zhontai.ui.admin.vue3/src/api/admin/data-contracts.ts index 3bbea145..c035837c 100644 --- a/ui/zhontai.ui.admin.vue3/src/api/admin/data-contracts.ts +++ b/ui/zhontai.ui.admin.vue3/src/api/admin/data-contracts.ts @@ -5291,6 +5291,8 @@ export interface UserGetPageOutput { isManager?: boolean /** 启用 */ enabled?: boolean + /** 在线 */ + online?: boolean /** * 创建时间 * @format date-time diff --git a/ui/zhontai.ui.admin.vue3/src/views/admin/user/index.vue b/ui/zhontai.ui.admin.vue3/src/views/admin/user/index.vue index c420bacd..63afabb8 100644 --- a/ui/zhontai.ui.admin.vue3/src/views/admin/user/index.vue +++ b/ui/zhontai.ui.admin.vue3/src/views/admin/user/index.vue @@ -22,7 +22,12 @@ - + + +