Compare commits
9 Commits
| Author | SHA1 | Date |
|---|---|---|
|
|
c65e6673e0 | |
|
|
d66fec6b66 | |
|
|
7c31c67f9d | |
|
|
c33c06176b | |
|
|
505dd42294 | |
|
|
7a75025880 | |
|
|
484ab104ab | |
|
|
806d585717 | |
|
|
ebfd8b9fb7 |
|
|
@ -31,6 +31,16 @@
|
||||||
"DockerFireUrl": "",
|
"DockerFireUrl": "",
|
||||||
"WindowsServiceFireUrl": null,
|
"WindowsServiceFireUrl": null,
|
||||||
"LinuxServiceFireUrl": null
|
"LinuxServiceFireUrl": null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"UserName": "marking",
|
||||||
|
"Pwd": "CE09921E2AD09E56095579DF1F7C614B",
|
||||||
|
"Host": "47.109.193.53:10022",
|
||||||
|
"NickName": "meeting",
|
||||||
|
"IIsFireUrl": null,
|
||||||
|
"DockerFireUrl": "",
|
||||||
|
"WindowsServiceFireUrl": null,
|
||||||
|
"LinuxServiceFireUrl": null
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"IgnoreList": [],
|
"IgnoreList": [],
|
||||||
|
|
|
||||||
|
|
@ -51,6 +51,27 @@ namespace WGShare.API.Controllers
|
||||||
return await _sqlSugar.Queryable<User>().AnyAsync(x => x.IsDelete == false && x.Account == account && x.IsAnonymous == false);
|
return await _sqlSugar.Queryable<User>().AnyAsync(x => x.IsDelete == false && x.Account == account && x.IsAnonymous == false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 检查用户是否在线
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="account"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
[HttpGet("check-online"), AllowAnonymous]
|
||||||
|
public async Task<bool> CheckUserOnline([FromQuery] string account)
|
||||||
|
{
|
||||||
|
var user = await _sqlSugar.Queryable<User>().FirstAsync(x => x.IsDelete == false && x.Account == account && x.IsAnonymous == false);
|
||||||
|
if (user == null)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
var connectId = RedisHelper.Instance.HGet(RedisKeyConstant.SessionManage.GetOnlineUserKey(user.TenantId), user.Id);
|
||||||
|
if (!string.IsNullOrWhiteSpace(connectId))
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 正常账号登录
|
/// 正常账号登录
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
|
||||||
|
|
@ -165,9 +165,18 @@ namespace WGShare.API.Controllers.Frontend
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(existsChannel.TryAdd(eventBody.payload.channelName, 0))
|
if (existsChannel.TryAdd(eventBody.payload.channelName, 0))
|
||||||
{
|
{
|
||||||
ExceptionNotice.JoinAsync(eventBody);
|
var roomInfo = await _sqlSugarClient.Queryable<Room>()
|
||||||
|
.LeftJoin<Tenant>((r, t) => r.TenantId == t.Id)
|
||||||
|
.Where((r, t) => r.RoomNum == eventBody.payload.channelName)
|
||||||
|
.Select((r, t) => new Room
|
||||||
|
{
|
||||||
|
Id = r.Id.SelectAll(),
|
||||||
|
TenantName = t.TenantName
|
||||||
|
})
|
||||||
|
.FirstAsync();
|
||||||
|
ExceptionNotice.JoinAsync(eventBody, roomInfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -371,5 +371,17 @@ namespace WGShare.API.Controllers.Frontend
|
||||||
await _sqlSugar.Insertable(entity).ExecuteCommandAsync();
|
await _sqlSugar.Insertable(entity).ExecuteCommandAsync();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 记录用户当前用户版本
|
||||||
|
/// </summary>
|
||||||
|
/// <returns></returns>
|
||||||
|
[HttpPost("ver-log")]
|
||||||
|
public async Task RecordVersionLog([FromBody] UserVersionLogDto userVersionLog)
|
||||||
|
{
|
||||||
|
var uvl = userVersionLog.Adapt<UserVersionLog>();
|
||||||
|
uvl.UserId = UId.ToInt64();
|
||||||
|
await _sqlSugar.Insertable(uvl).ExecuteCommandAsync();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -342,7 +342,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}");
|
//_logger.LogInformation($@"开闭麦克分,推送一次,roomNum:{roomNum},enableMicr:{enableMicr},uid:{uid}");
|
||||||
// 通知所有人该用户麦克风状态
|
// 通知所有人该用户麦克风状态
|
||||||
await _hubContext.Clients.Group(roomNum).OperMicr(userInfo, UId);
|
await _hubContext.Clients.Group(roomNum).OperMicr(userInfo, UId);
|
||||||
}
|
}
|
||||||
|
|
@ -414,7 +414,8 @@ namespace WGShare.API.Controllers.Frontend
|
||||||
|
|
||||||
if (RedisHelper.Instance.HGet(RedisKeyConstant.SessionManage.GetChannelShowUserKey(TenantId), roomNum) == uid)
|
if (RedisHelper.Instance.HGet(RedisKeyConstant.SessionManage.GetChannelShowUserKey(TenantId), roomNum) == uid)
|
||||||
{
|
{
|
||||||
// 如果已经是全员观看他了,则不做处理
|
// 如果已经是全员观看他了, 直接通知其他房间用户
|
||||||
|
await _hubContext.Clients.Group(roomNum).ShowUser(uid, uname, UId, UserName);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// 设置房间全员观看用户
|
// 设置房间全员观看用户
|
||||||
|
|
@ -627,7 +628,13 @@ namespace WGShare.API.Controllers.Frontend
|
||||||
|
|
||||||
if (connectionIds.Any())
|
if (connectionIds.Any())
|
||||||
{
|
{
|
||||||
await _hubContext.Clients.Clients(connectionIds).ApplyToSpeak(UId, UserName);
|
var userInfo = RedisHelper.Instance.HGet<ChannelUserInfo>(RedisKeyConstant.SessionManage.GetChannelUserKey(TenantId, roomNum), UId);
|
||||||
|
var userName = UserName;
|
||||||
|
if (userInfo != null)
|
||||||
|
{
|
||||||
|
userName = userInfo.UserName;
|
||||||
|
}
|
||||||
|
await _hubContext.Clients.Clients(connectionIds).ApplyToSpeak(UId, userName);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -675,6 +682,25 @@ namespace WGShare.API.Controllers.Frontend
|
||||||
await _hubContext.Clients.Group(roomNum).ShowUser(UId, UserName, string.Empty, string.Empty);
|
await _hubContext.Clients.Group(roomNum).ShowUser(UId, UserName, string.Empty, string.Empty);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 共享人取消共享屏幕
|
||||||
|
/// </summary>
|
||||||
|
/// <returns></returns>
|
||||||
|
[HttpPost("stop-shared-screen")]
|
||||||
|
public async Task StopedSharedScreen([FromQuery] string roomNum)
|
||||||
|
{
|
||||||
|
if (RedisHelper.Instance.HGet(RedisKeyConstant.SessionManage.GetChannelShowUserKey(TenantId), roomNum) != ScreenShareId)
|
||||||
|
{
|
||||||
|
// 不是共享屏幕的人,不做处理
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 设置新的共享屏幕
|
||||||
|
RedisHelper.Instance.HSet(RedisKeyConstant.SessionManage.GetChannelShowUserKey(TenantId), roomNum, UId);
|
||||||
|
|
||||||
|
await _hubContext.Clients.Group(roomNum).StopedSharedScreen(ScreenShareId);
|
||||||
|
}
|
||||||
|
|
||||||
#region 文件分享
|
#region 文件分享
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 分享上传文件
|
/// 分享上传文件
|
||||||
|
|
|
||||||
|
|
@ -47,7 +47,7 @@ namespace WGShare.API.Hubs
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="type"></param>
|
/// <param name="type"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
Task Operation(int type);
|
Task Operation(string contentString);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 更新视图
|
/// 更新视图
|
||||||
|
|
@ -61,6 +61,12 @@ namespace WGShare.API.Hubs
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
Task ShowUser(string uid, string uname, string operUid, string operUserName);
|
Task ShowUser(string uid, string uname, string operUid, string operUserName);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 共享人取消共享屏幕
|
||||||
|
/// </summary>
|
||||||
|
/// <returns></returns>
|
||||||
|
Task StopedSharedScreen(string ScreenShareId);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 用户加入频道回调
|
/// 用户加入频道回调
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
@ -172,5 +178,12 @@ namespace WGShare.API.Hubs
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
Task SetSpeaker(RoomManagerInputDTO inputDTO);
|
Task SetSpeaker(RoomManagerInputDTO inputDTO);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 客户端接收到消息
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="contentString"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
Task ReceivedOperation(string contentString);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -85,9 +85,6 @@ namespace WGShare.API.Hubs
|
||||||
_logger.LogInformation($@"{DateTime.Now} account:{account} 退出以下频道:{string.Join(',', roomNum)}");
|
_logger.LogInformation($@"{DateTime.Now} account:{account} 退出以下频道:{string.Join(',', roomNum)}");
|
||||||
if (!string.IsNullOrEmpty(roomNum))
|
if (!string.IsNullOrEmpty(roomNum))
|
||||||
{
|
{
|
||||||
// 所有房间移除该用户
|
|
||||||
pipe.HDel(RedisKeyConstant.SessionManage.GetChannelUserKey(tenant, roomNum), uid);
|
|
||||||
|
|
||||||
// 判断是否全员看他,是则移除
|
// 判断是否全员看他,是则移除
|
||||||
var script = $@"local value = redis.call('HGET', KEYS[1], ARGV[1])
|
var script = $@"local value = redis.call('HGET', KEYS[1], ARGV[1])
|
||||||
if value == ARGV[2] or value == ARGV[3] then
|
if value == ARGV[2] or value == ARGV[3] then
|
||||||
|
|
@ -95,6 +92,9 @@ namespace WGShare.API.Hubs
|
||||||
else return -1 end";
|
else return -1 end";
|
||||||
// 执行 eval 命令
|
// 执行 eval 命令
|
||||||
pipe.Eval(script, [RedisKeyConstant.SessionManage.GetChannelShowUserKey(tenant)], roomNum, uid, ssid);
|
pipe.Eval(script, [RedisKeyConstant.SessionManage.GetChannelShowUserKey(tenant)], roomNum, uid, ssid);
|
||||||
|
|
||||||
|
// 房间移除该用户
|
||||||
|
pipe.HDel(RedisKeyConstant.SessionManage.GetChannelUserKey(tenant, roomNum), uid);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 删除用户在线状态
|
// 删除用户在线状态
|
||||||
|
|
@ -103,7 +103,24 @@ namespace WGShare.API.Hubs
|
||||||
// 删除用户已加入频道信息
|
// 删除用户已加入频道信息
|
||||||
pipe.Del(RedisKeyConstant.SessionManage.GetUserJoinChannelKey(uid));
|
pipe.Del(RedisKeyConstant.SessionManage.GetUserJoinChannelKey(uid));
|
||||||
|
|
||||||
pipe.EndPipe();
|
var result = pipe.EndPipe();
|
||||||
|
|
||||||
|
if (!result.IsNullOrEmpty() && result[0].ObjToInt() != -1)
|
||||||
|
{
|
||||||
|
// 如果离开的是全员看ta,则重新设置管理员为全员看ta
|
||||||
|
var users = RedisHelper.Instance.HVals<ChannelUserInfo>(RedisKeyConstant.SessionManage.GetChannelUserKey(tenant, roomNum));
|
||||||
|
var showUsers = users.Where(x => x.RoleId == ((int)RoleEnums.Admin).ToString() || x.IsRoomManager || x.RoleId == ((int)RoleEnums.RoomManager).ToString()).ToList();
|
||||||
|
if (!showUsers.IsNullOrEmpty())
|
||||||
|
{
|
||||||
|
var showUser = showUsers.FirstOrDefault(x => x.EnableCamera == true);
|
||||||
|
if (showUser == null)
|
||||||
|
{
|
||||||
|
showUser = showUsers.FirstOrDefault();
|
||||||
|
}
|
||||||
|
// 通知全员看ta
|
||||||
|
await Clients.Group(roomNum).ShowUser(showUser.UID, showUser.UserName, string.Empty, string.Empty);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!string.IsNullOrEmpty(roomNum))
|
if (!string.IsNullOrEmpty(roomNum))
|
||||||
|
|
@ -226,10 +243,16 @@ namespace WGShare.API.Hubs
|
||||||
var result = pipe.EndPipe();
|
var result = pipe.EndPipe();
|
||||||
if (!result.IsNullOrEmpty() && result[0].ObjToInt() != -1)
|
if (!result.IsNullOrEmpty() && result[0].ObjToInt() != -1)
|
||||||
{
|
{
|
||||||
|
// 如果离开的是全员看ta,则重新设置管理员为全员看ta
|
||||||
var users = RedisHelper.Instance.HVals<ChannelUserInfo>(RedisKeyConstant.SessionManage.GetChannelUserKey(tenant, roomNum));
|
var users = RedisHelper.Instance.HVals<ChannelUserInfo>(RedisKeyConstant.SessionManage.GetChannelUserKey(tenant, roomNum));
|
||||||
var showUser = users.FirstOrDefault(x => x.RoleId == ((int)RoleEnums.Admin).ToString() || x.IsRoomManager || x.RoleId == ((int)RoleEnums.RoomManager).ToString());
|
var showUsers = users.Where(x => x.RoleId == ((int)RoleEnums.Admin).ToString() || x.IsRoomManager || x.RoleId == ((int)RoleEnums.RoomManager).ToString()).ToList();
|
||||||
if (showUser != null)
|
if (!showUsers.IsNullOrEmpty())
|
||||||
{
|
{
|
||||||
|
var showUser = showUsers.FirstOrDefault(x => x.EnableCamera == true);
|
||||||
|
if (showUser == null)
|
||||||
|
{
|
||||||
|
showUser = showUsers.FirstOrDefault();
|
||||||
|
}
|
||||||
// 通知全员看ta
|
// 通知全员看ta
|
||||||
await Clients.Group(roomNum).ShowUser(showUser.UID, showUser.UserName, string.Empty, string.Empty);
|
await Clients.Group(roomNum).ShowUser(showUser.UID, showUser.UserName, string.Empty, string.Empty);
|
||||||
}
|
}
|
||||||
|
|
@ -251,12 +274,18 @@ namespace WGShare.API.Hubs
|
||||||
{
|
{
|
||||||
var uname = Context.User?.Claims.FirstOrDefault(x => x.Type == "uname")?.Value;
|
var uname = Context.User?.Claims.FirstOrDefault(x => x.Type == "uname")?.Value;
|
||||||
var uid = Context.User?.Claims.FirstOrDefault(x => x.Type == ClaimTypes.NameIdentifier)?.Value;
|
var uid = Context.User?.Claims.FirstOrDefault(x => x.Type == ClaimTypes.NameIdentifier)?.Value;
|
||||||
|
var tenant = Context.Items["tenant"].ToString();
|
||||||
|
|
||||||
_logger.LogInformation($" {DateTime.Now}发送消息 uname:" + uname);
|
_logger.LogInformation($" {DateTime.Now} 发送消息 uname:{uname} roomNum:{rooNum} msg:{msg}");
|
||||||
_logger.LogInformation($" {DateTime.Now}发送消息 roomNum:" + rooNum);
|
|
||||||
_logger.LogInformation($" {DateTime.Now}发送消息 msg:" + msg);
|
|
||||||
|
|
||||||
await Clients.OthersInGroup(rooNum).ReceiveMessage(uid, uname, msg, DateTime.Now.GetTotalMilliseconds()); //await Clients.GroupExcept(rooNum, Context.ConnectionId).ReceiveMessage(uid, uname, msg);
|
var userInfo = RedisHelper.Instance.HGet<ChannelUserInfo>(RedisKeyConstant.SessionManage.GetChannelUserKey(tenant, rooNum), uid);
|
||||||
|
var userName = uname;
|
||||||
|
if (userInfo != null)
|
||||||
|
{
|
||||||
|
userName = userInfo.UserName;
|
||||||
|
}
|
||||||
|
|
||||||
|
await Clients.OthersInGroup(rooNum).ReceiveMessage(uid, userName, msg, DateTime.Now.GetTotalMilliseconds()); //await Clients.GroupExcept(rooNum, Context.ConnectionId).ReceiveMessage(uid, uname, msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|
@ -264,9 +293,21 @@ namespace WGShare.API.Hubs
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
[HubMethodName("sendOper")]
|
[HubMethodName("sendOper")]
|
||||||
public async Task SendOperation(string roomNum, int type)
|
public async Task SendOperation(string roomNum, string contentString)
|
||||||
{
|
{
|
||||||
await Clients.Group(roomNum).Operation(type);
|
await Clients.Group(roomNum).Operation(contentString);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 发送客户端指令到指定用户
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="uid"></param>
|
||||||
|
/// <param name="contentString"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
[HubMethodName("sendOper2User")]
|
||||||
|
public async Task SendOperationToUser(string uid, string contentString)
|
||||||
|
{
|
||||||
|
await Clients.User(uid).ReceivedOperation(contentString);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|
|
||||||
|
|
@ -11,6 +11,13 @@
|
||||||
<param name="account"></param>
|
<param name="account"></param>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="M:WGShare.API.Controllers.AuthController.CheckUserOnline(System.String)">
|
||||||
|
<summary>
|
||||||
|
检查用户是否在线
|
||||||
|
</summary>
|
||||||
|
<param name="account"></param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
<member name="M:WGShare.API.Controllers.AuthController.Login(WGShare.Domain.DTOs.Login.UserLoginDTO)">
|
<member name="M:WGShare.API.Controllers.AuthController.Login(WGShare.Domain.DTOs.Login.UserLoginDTO)">
|
||||||
<summary>
|
<summary>
|
||||||
正常账号登录
|
正常账号登录
|
||||||
|
|
@ -162,6 +169,12 @@
|
||||||
</summary>
|
</summary>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="M:WGShare.API.Controllers.Frontend.HomeController.RecordVersionLog(WGShare.Domain.DTOs.Home.UserVersionLogDto)">
|
||||||
|
<summary>
|
||||||
|
记录用户当前用户版本
|
||||||
|
</summary>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
<member name="T:WGShare.API.Controllers.Frontend.RoomController">
|
<member name="T:WGShare.API.Controllers.Frontend.RoomController">
|
||||||
<summary>
|
<summary>
|
||||||
会议室接口
|
会议室接口
|
||||||
|
|
@ -298,6 +311,12 @@
|
||||||
</summary>
|
</summary>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="M:WGShare.API.Controllers.Frontend.RoomController.StopedSharedScreen(System.String)">
|
||||||
|
<summary>
|
||||||
|
共享人取消共享屏幕
|
||||||
|
</summary>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
<member name="M:WGShare.API.Controllers.Frontend.RoomController.AddFile(WGShare.Domain.DTOs.File.ShareFileInputDTO)">
|
<member name="M:WGShare.API.Controllers.Frontend.RoomController.AddFile(WGShare.Domain.DTOs.File.ShareFileInputDTO)">
|
||||||
<summary>
|
<summary>
|
||||||
分享上传文件
|
分享上传文件
|
||||||
|
|
@ -600,7 +619,7 @@
|
||||||
</summary>
|
</summary>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</member>
|
||||||
<member name="M:WGShare.API.Hubs.IMessageClient.Operation(System.Int32)">
|
<member name="M:WGShare.API.Hubs.IMessageClient.Operation(System.String)">
|
||||||
<summary>
|
<summary>
|
||||||
客户端操作
|
客户端操作
|
||||||
</summary>
|
</summary>
|
||||||
|
|
@ -619,6 +638,12 @@
|
||||||
</summary>
|
</summary>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="M:WGShare.API.Hubs.IMessageClient.StopedSharedScreen(System.String)">
|
||||||
|
<summary>
|
||||||
|
共享人取消共享屏幕
|
||||||
|
</summary>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
<member name="M:WGShare.API.Hubs.IMessageClient.UserJoined(WGShare.Domain.Entities.ChannelUserInfo)">
|
<member name="M:WGShare.API.Hubs.IMessageClient.UserJoined(WGShare.Domain.Entities.ChannelUserInfo)">
|
||||||
<summary>
|
<summary>
|
||||||
用户加入频道回调
|
用户加入频道回调
|
||||||
|
|
@ -731,6 +756,13 @@
|
||||||
</summary>
|
</summary>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="M:WGShare.API.Hubs.IMessageClient.ReceivedOperation(System.String)">
|
||||||
|
<summary>
|
||||||
|
客户端接收到消息
|
||||||
|
</summary>
|
||||||
|
<param name="contentString"></param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
<member name="M:WGShare.API.Hubs.SessionManageHub.JoinChannel(System.String,System.Boolean,System.Boolean,System.Boolean)">
|
<member name="M:WGShare.API.Hubs.SessionManageHub.JoinChannel(System.String,System.Boolean,System.Boolean,System.Boolean)">
|
||||||
<summary>
|
<summary>
|
||||||
加入频道
|
加入频道
|
||||||
|
|
@ -752,12 +784,20 @@
|
||||||
<param name="rooNum"></param>
|
<param name="rooNum"></param>
|
||||||
<param name="msg"></param>
|
<param name="msg"></param>
|
||||||
</member>
|
</member>
|
||||||
<member name="M:WGShare.API.Hubs.SessionManageHub.SendOperation(System.String,System.Int32)">
|
<member name="M:WGShare.API.Hubs.SessionManageHub.SendOperation(System.String,System.String)">
|
||||||
<summary>
|
<summary>
|
||||||
发送客户端指令
|
发送客户端指令
|
||||||
</summary>
|
</summary>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="M:WGShare.API.Hubs.SessionManageHub.SendOperationToUser(System.String,System.String)">
|
||||||
|
<summary>
|
||||||
|
发送客户端指令到指定用户
|
||||||
|
</summary>
|
||||||
|
<param name="uid"></param>
|
||||||
|
<param name="contentString"></param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
<member name="M:WGShare.API.Hubs.SessionManageHub.GetDriversList(System.String)">
|
<member name="M:WGShare.API.Hubs.SessionManageHub.GetDriversList(System.String)">
|
||||||
<summary>
|
<summary>
|
||||||
获取设备列表
|
获取设备列表
|
||||||
|
|
|
||||||
|
|
@ -41,7 +41,7 @@
|
||||||
"Agora": {
|
"Agora": {
|
||||||
"appId": "4a4f7be64fa1404ebda74784fe9ac381",
|
"appId": "4a4f7be64fa1404ebda74784fe9ac381",
|
||||||
"appSecret": "255e05d96c794251b282a0de84242355",
|
"appSecret": "255e05d96c794251b282a0de84242355",
|
||||||
"tokenExpireTimeInSecond": 300,
|
"tokenExpireTimeInSecond": 86400,
|
||||||
"apiPrefix": "https://api.sd-rtn.com/",
|
"apiPrefix": "https://api.sd-rtn.com/",
|
||||||
"clientId": "80cdc24f7dfa4497a37d98da95a3c4a4",
|
"clientId": "80cdc24f7dfa4497a37d98da95a3c4a4",
|
||||||
"clientSecret": "8323581d4d464114b1f324b26cc62e09",
|
"clientSecret": "8323581d4d464114b1f324b26cc62e09",
|
||||||
|
|
|
||||||
|
|
@ -17,11 +17,11 @@
|
||||||
"Expires": 31104000
|
"Expires": 31104000
|
||||||
},
|
},
|
||||||
"ConnectionStrings": {
|
"ConnectionStrings": {
|
||||||
"metting": "Database=metting;Server=rm-2vc20nd3d11g0oh6g.rwlb.cn-chengdu.rds.aliyuncs.com;Port=3306;Uid=marking;Pwd=poiuytPOIUYT098765)(*&^%;AllowZeroDateTime=True;ConvertZeroDateTime=True;",
|
"metting": "Database=metting;Server=rds-external.23544.com;Port=3306;Uid=marking;Pwd=poiuytPOIUYT098765)(*&^%;AllowZeroDateTime=True;ConvertZeroDateTime=True;",
|
||||||
"usercenter": "Database=usercenter;Server=rm-2vc20nd3d11g0oh6g.rwlb.cn-chengdu.rds.aliyuncs.com;Port=3306;Uid=marking;Pwd=poiuytPOIUYT098765)(*&^%;AllowZeroDateTime=True;ConvertZeroDateTime=True;"
|
"usercenter": "Database=usercenter;Server=rds-external.23544.com;Port=3306;Uid=marking;Pwd=poiuytPOIUYT098765)(*&^%;AllowZeroDateTime=True;ConvertZeroDateTime=True;"
|
||||||
},
|
},
|
||||||
"Redis": {
|
"Redis": {
|
||||||
"master": "172.29.33.83:16379,password=poiuyt)(*&^%,defaultDatabase=6,prefix=wgshare:"
|
"master": "redis-internal.23544.com:16379,password=poiuyt)(*&^%,defaultDatabase=6,prefix=wgshare:"
|
||||||
},
|
},
|
||||||
"Agora": {
|
"Agora": {
|
||||||
"appId": "dcfc466a6ecb4a1f972630065dfb1e75",
|
"appId": "dcfc466a6ecb4a1f972630065dfb1e75",
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,29 @@
|
||||||
|
using SqlSugar;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using Yitter.IdGenerator;
|
||||||
|
|
||||||
|
namespace WGShare.Domain.DTOs.Home
|
||||||
|
{
|
||||||
|
public class UserVersionLogDto
|
||||||
|
{
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 使用版本
|
||||||
|
///</summary>
|
||||||
|
public string Version { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 平台类型 1:PC 2:微信小程序
|
||||||
|
///</summary>
|
||||||
|
public int PlatformType { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 房间号
|
||||||
|
///</summary>
|
||||||
|
public string RoomNum { get; set; }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -68,5 +68,12 @@ namespace WGShare.Domain.Entities
|
||||||
///</summary>
|
///</summary>
|
||||||
[SugarColumn(ColumnName = "allow_anonymous")]
|
[SugarColumn(ColumnName = "allow_anonymous")]
|
||||||
public bool AllowAnonymous { get; set; } = true;
|
public bool AllowAnonymous { get; set; } = true;
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 租户名称
|
||||||
|
/// </summary>
|
||||||
|
[SugarColumn(IsIgnore = true)]
|
||||||
|
public string TenantName { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,52 @@
|
||||||
|
using SqlSugar;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Security.Principal;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using Yitter.IdGenerator;
|
||||||
|
|
||||||
|
namespace WGShare.Domain.Entities
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 用户版本记录表
|
||||||
|
/// </summary>
|
||||||
|
[SugarTable("user_version_log")]
|
||||||
|
public class UserVersionLog
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
///
|
||||||
|
///</summary>
|
||||||
|
[SugarColumn(ColumnName = "id", IsPrimaryKey = true, IsIdentity = true)]
|
||||||
|
public string Id { get; set; } = YitIdHelper.NextId().ToString();
|
||||||
|
/// <summary>
|
||||||
|
/// 用户Id
|
||||||
|
///</summary>
|
||||||
|
[SugarColumn(ColumnName = "user_id")]
|
||||||
|
public long UserId { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 使用版本
|
||||||
|
///</summary>
|
||||||
|
[SugarColumn(ColumnName = "version")]
|
||||||
|
public string Version { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 平台类型
|
||||||
|
///</summary>
|
||||||
|
[SugarColumn(ColumnName = "platform_type")]
|
||||||
|
public int PlatformType { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 房间号
|
||||||
|
///</summary>
|
||||||
|
[SugarColumn(ColumnName = "room_num")]
|
||||||
|
public string RoomNum { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 进房时间
|
||||||
|
///</summary>
|
||||||
|
[SugarColumn(ColumnName = "join_time", IsOnlyIgnoreInsert = true, IsOnlyIgnoreUpdate = true)]
|
||||||
|
public DateTime JoinTime { get; set; }
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
using System.Net.Http.Json;
|
using System.Net.Http.Json;
|
||||||
using WGShare.Domain.DTOs.AgoraCallback;
|
using WGShare.Domain.DTOs.AgoraCallback;
|
||||||
|
using WGShare.Domain.Entities;
|
||||||
|
|
||||||
namespace WGShare.Domain.FriendlyException
|
namespace WGShare.Domain.FriendlyException
|
||||||
{
|
{
|
||||||
|
|
@ -41,7 +42,7 @@ namespace WGShare.Domain.FriendlyException
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static async Task JoinAsync(EventBody eventBody)
|
public static async Task JoinAsync(EventBody eventBody, Room roomInfo)
|
||||||
{
|
{
|
||||||
// 获取当前的日期
|
// 获取当前的日期
|
||||||
DateTime today = DateTime.Today;
|
DateTime today = DateTime.Today;
|
||||||
|
|
@ -69,7 +70,7 @@ namespace WGShare.Domain.FriendlyException
|
||||||
markdown = new
|
markdown = new
|
||||||
{
|
{
|
||||||
title = "有人入会通知",
|
title = "有人入会通知",
|
||||||
text = $"有人进入会议室了,会议号:{eventBody.payload.channelName},点击查看:https://analytics-lab.agora.io/analytics/call/search?projectId=0tOpVUrmf&fromTs={startTimestamp}&toTs={endTimestamp}"
|
text = $"有人进入会议室了,学校:{roomInfo.TenantName},会议室名称:{roomInfo.RoomName},会议号:{eventBody.payload.channelName}. \r\n 点击查看:https://analytics-lab.agora.io/analytics/call/search?projectId=0tOpVUrmf&fromTs={startTimestamp}&toTs={endTimestamp}"
|
||||||
},
|
},
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue