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