优化设置、取消管理员

This commit is contained in:
youngq 2024-08-12 09:56:54 +08:00
parent 46eafbea8a
commit 09fbfae8b4
3 changed files with 48 additions and 14 deletions

View File

@ -60,21 +60,32 @@ namespace WGShare.API.Controllers.Frontend
/// </summary> /// </summary>
/// <returns></returns> /// <returns></returns>
[HttpPost("manager")] [HttpPost("manager")]
public async Task SetRoomManager([FromQuery] string roomId, [FromQuery] string roomNum, [FromBody] string userId) public async Task SetRoomManager([FromBody] RoomManagerInputDTO inputDTO)
{ {
var user = RedisHelper.Instance.HGet<ChannelUserInfo>(RedisKeyConstant.SessionManage.GetChannelUserKey(TenantId, inputDTO.RoomNum), inputDTO.UserId);
if (user == null)
{
throw Oops.Oh("用户已不在房间内!");
}
var entities = new RoomManager var entities = new RoomManager
{ {
RoomId = roomId, RoomId = inputDTO.RoomId,
UserId = userId UserId = inputDTO.UserId
}; };
var user = RedisHelper.Instance.HGet<ChannelUserInfo>(RedisKeyConstant.SessionManage.GetChannelUserKey(TenantId, roomNum), userId);
user.IsRoomManager = true; user.IsRoomManager = true;
await _sqlSugar.Insertable(entities).ExecuteCommandAsync(); await _sqlSugar.Storageable(entities)
RedisHelper.Instance.HSet(RedisKeyConstant.SessionManage.GetChannelUserKey(TenantId, roomNum), userId, user); .SplitInsert(x => !x.Any())
.ToStorage().AsInsertable.ExecuteCommandAsync();
await _hubContext.Clients.Group(roomNum).ManagerRefresh(user); //await _sqlSugar.Insertable(entities).ExecuteCommandAsync();
RedisHelper.Instance.HSet(RedisKeyConstant.SessionManage.GetChannelUserKey(TenantId, inputDTO.RoomNum), inputDTO.UserId, user);
await _hubContext.Clients.Group(inputDTO.RoomNum).ManagerRefresh(user);
} }
/// <summary> /// <summary>
@ -82,17 +93,23 @@ namespace WGShare.API.Controllers.Frontend
/// </summary> /// </summary>
/// <returns></returns> /// <returns></returns>
[HttpDelete("manager")] [HttpDelete("manager")]
public async Task DelRoomManager([FromQuery] string roomId, [FromQuery] string roomNum, [FromBody] string userId) public async Task DelRoomManager([FromBody] RoomManagerInputDTO inputDTO)
{ {
var user = RedisHelper.Instance.HGet<ChannelUserInfo>(RedisKeyConstant.SessionManage.GetChannelUserKey(TenantId, inputDTO.RoomNum), inputDTO.UserId);
if (user == null)
{
throw Oops.Oh("用户已不在房间内!");
}
await _sqlSugar.Deleteable<RoomManager>() await _sqlSugar.Deleteable<RoomManager>()
.Where(x => x.RoomId == roomId && x.UserId == userId) .Where(x => x.RoomId == inputDTO.RoomId && x.UserId == inputDTO.UserId)
.ExecuteCommandAsync(); .ExecuteCommandAsync();
var user = RedisHelper.Instance.HGet<ChannelUserInfo>(RedisKeyConstant.SessionManage.GetChannelUserKey(TenantId, roomNum), userId);
user.IsRoomManager = false; user.IsRoomManager = false;
RedisHelper.Instance.HSet(RedisKeyConstant.SessionManage.GetChannelUserKey(TenantId, roomNum), userId, user); RedisHelper.Instance.HSet(RedisKeyConstant.SessionManage.GetChannelUserKey(TenantId, inputDTO.RoomNum), inputDTO.UserId, user);
await _hubContext.Clients.Group(roomNum).ManagerRefresh(user); await _hubContext.Clients.Group(inputDTO.RoomNum).ManagerRefresh(user);
} }
/// <summary> /// <summary>
@ -263,6 +280,7 @@ namespace WGShare.API.Controllers.Frontend
userInfo.EnableMicr = enableMicr; userInfo.EnableMicr = enableMicr;
RedisHelper.Instance.HSet(RedisKeyConstant.SessionManage.GetChannelUserKey(TenantId, roomNum), uid, userInfo); RedisHelper.Instance.HSet(RedisKeyConstant.SessionManage.GetChannelUserKey(TenantId, roomNum), uid, userInfo);
_logger.LogInformation($@"开闭麦克分,推送一次,roomNum:{roomNum},enableMicr:{enableMicr},uid:{uid}");
// 通知所有人该用户麦克风状态 // 通知所有人该用户麦克风状态
await _hubContext.Clients.Group(roomNum).OperMicr(userInfo); await _hubContext.Clients.Group(roomNum).OperMicr(userInfo);
} }

View File

@ -97,13 +97,13 @@
会议室接口 会议室接口
</summary> </summary>
</member> </member>
<member name="M:WGShare.API.Controllers.Frontend.RoomController.SetRoomManager(System.String,System.String,System.String)"> <member name="M:WGShare.API.Controllers.Frontend.RoomController.SetRoomManager(WGShare.Domain.DTOs.Room.RoomManagerInputDTO)">
<summary> <summary>
设置房间管理员 设置房间管理员
</summary> </summary>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:WGShare.API.Controllers.Frontend.RoomController.DelRoomManager(System.String,System.String,System.String)"> <member name="M:WGShare.API.Controllers.Frontend.RoomController.DelRoomManager(WGShare.Domain.DTOs.Room.RoomManagerInputDTO)">
<summary> <summary>
取消房间管理员 取消房间管理员
</summary> </summary>

View File

@ -0,0 +1,16 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection.Metadata.Ecma335;
using System.Text;
using System.Threading.Tasks;
namespace WGShare.Domain.DTOs.Room
{
public class RoomManagerInputDTO
{
public string RoomId { get; set; }
public string RoomNum { get; set; }
public string UserId { get; set; }
}
}