✨优化强退功能新增批量强退在线用户
This commit is contained in:
parent
24c9ceefde
commit
b67c59710b
@ -37,11 +37,12 @@ namespace ZR.Admin.WebApi.Controllers.monitor
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 强退
|
||||
/// 单条强退
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpDelete("lock")]
|
||||
[Log(Title = "强退", BusinessType = BusinessType.FORCE)]
|
||||
[ActionPermissionFilter(Permission = "monitor:online:forceLogout")]
|
||||
public async Task<IActionResult> Lock([FromBody] LockUserDto dto)
|
||||
{
|
||||
if (dto == null) { return ToResponse(ResultCode.PARAM_ERROR); }
|
||||
@ -53,5 +54,21 @@ namespace ZR.Admin.WebApi.Controllers.monitor
|
||||
CacheService.SetLockUser(dto.ClientId + dto.Name, expirTime, dto.Time);
|
||||
return SUCCESS(new { expirTime });
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 批量强退
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpDelete("batchlock")]
|
||||
[Log(Title = "强退", BusinessType = BusinessType.FORCE)]
|
||||
[ActionPermissionFilter(Permission = "monitor:online:batchLogout")]
|
||||
public async Task<IActionResult> BatchLock([FromBody] LockUserDto dto)
|
||||
{
|
||||
if (dto == null) { return ToResponse(ResultCode.PARAM_ERROR); }
|
||||
|
||||
await HubContext.Clients.All.SendAsync(HubsConstant.LockUser, new { dto.Reason, dto.Time });
|
||||
|
||||
return SUCCESS(1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -37,16 +37,18 @@ namespace ZR.Admin.WebApi.Hubs
|
||||
/// <returns></returns>
|
||||
public override Task OnConnectedAsync()
|
||||
{
|
||||
var name = HttpContextExtension.GetName(App.HttpContext);
|
||||
var ip = HttpContextExtension.GetClientUserIp(App.HttpContext);
|
||||
var context = App.HttpContext;
|
||||
var name = HttpContextExtension.GetName(context);
|
||||
var ip = HttpContextExtension.GetClientUserIp(context);
|
||||
var ip_info = IpTool.Search(ip);
|
||||
|
||||
ClientInfo clientInfo = HttpContextExtension.GetClientInfo(App.HttpContext);
|
||||
ClientInfo clientInfo = HttpContextExtension.GetClientInfo(context);
|
||||
string device = clientInfo.ToString();
|
||||
string qs = HttpContextExtension.GetQueryString(App.HttpContext);
|
||||
string from = HttpUtility.ParseQueryString(qs).Get("from") ?? "web";
|
||||
string qs = HttpContextExtension.GetQueryString(context);
|
||||
var query = HttpUtility.ParseQueryString(qs);
|
||||
string from = query.Get("from") ?? "web";
|
||||
string clientId = query.Get("clientId");
|
||||
|
||||
long userid = HttpContextExtension.GetUId(App.HttpContext);
|
||||
long userid = HttpContextExtension.GetUId(context);
|
||||
string uuid = device + userid + ip;
|
||||
var user = onlineClients.Any(u => u.ConnnectionId == Context.ConnectionId);
|
||||
var user2 = onlineClients.Any(u => u.Uuid == uuid);
|
||||
@ -58,7 +60,8 @@ namespace ZR.Admin.WebApi.Hubs
|
||||
{
|
||||
Location = ip_info.City,
|
||||
Uuid = uuid,
|
||||
Platform = from
|
||||
Platform = from,
|
||||
ClientId = clientId ?? Context.ConnectionId
|
||||
};
|
||||
onlineClients.Add(onlineUser);
|
||||
Log.WriteLine(msg: $"{DateTime.Now}:{name},{Context.ConnectionId}连接服务端success,当前已连接{onlineClients.Count}个");
|
||||
|
||||
@ -50,6 +50,10 @@
|
||||
/// </summary>
|
||||
public int ClientNum { get; set; }
|
||||
/// <summary>
|
||||
/// 客户端id
|
||||
/// </summary>
|
||||
public string ClientId { get; set; }
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
public OnlineUsers()
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user