Compare commits

..

2 Commits

Author SHA1 Message Date
youngq 806d585717 1 2025-02-19 11:20:21 +08:00
youngq ebfd8b9fb7 优化有人入会通知内容
新增记录用户版本接口
2025-02-17 18:20:06 +08:00
10 changed files with 141 additions and 6 deletions

View File

@ -115,11 +115,11 @@
"DockerConfig": {
"Prot": "5192:5192",
"AspNetCoreEnv": "",
"LastEnvName": "marking001",
"LastEnvName": "29dev",
"RemoveDaysFromPublished": "10",
"WorkDir": "",
"Volume": "",
"Other": "--name wgshare-api -e ASPNETCORE_ENVIRONMENT=Production -e TZ=Asia/Shanghai",
"Other": "--name wgshare-api -e ASPNETCORE_ENVIRONMENT=Development -e TZ=Asia/Shanghai",
"EnvPairList": [
{
"EnvName": "29dev",

View File

@ -167,7 +167,16 @@ namespace WGShare.API.Controllers.Frontend
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);
}
}

View File

@ -371,5 +371,17 @@ namespace WGShare.API.Controllers.Frontend
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();
}
}
}

View File

@ -172,5 +172,12 @@ namespace WGShare.API.Hubs
/// </summary>
/// <returns></returns>
Task SetSpeaker(RoomManagerInputDTO inputDTO);
/// <summary>
/// 客户端接收到消息
/// </summary>
/// <param name="contentString"></param>
/// <returns></returns>
Task ReceivedOperation(string contentString);
}
}

View File

@ -269,6 +269,18 @@ namespace WGShare.API.Hubs
await Clients.Group(roomNum).Operation(type);
}
/// <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>

View File

@ -162,6 +162,12 @@
</summary>
<returns></returns>
</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">
<summary>
会议室接口

View File

@ -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; }
}
}

View File

@ -68,5 +68,12 @@ namespace WGShare.Domain.Entities
///</summary>
[SugarColumn(ColumnName = "allow_anonymous")]
public bool AllowAnonymous { get; set; } = true;
/// <summary>
/// 租户名称
/// </summary>
[SugarColumn(IsIgnore = true)]
public string TenantName { get; set; }
}
}

View File

@ -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; }
}
}

View File

@ -1,5 +1,6 @@
using System.Net.Http.Json;
using WGShare.Domain.DTOs.AgoraCallback;
using WGShare.Domain.Entities;
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;
@ -69,7 +70,7 @@ namespace WGShare.Domain.FriendlyException
markdown = new
{
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}"
},
}));
}