修复批量导入用户bug

新增声网回调(未完成)
This commit is contained in:
youngq 2024-09-13 16:34:26 +08:00
parent b7c667fcbd
commit d4935029a0
8 changed files with 177 additions and 3 deletions

View File

@ -115,11 +115,11 @@
"DockerConfig": { "DockerConfig": {
"Prot": "5192:5192", "Prot": "5192:5192",
"AspNetCoreEnv": "", "AspNetCoreEnv": "",
"LastEnvName": "marking001", "LastEnvName": "29dev",
"RemoveDaysFromPublished": "10", "RemoveDaysFromPublished": "10",
"WorkDir": "", "WorkDir": "",
"Volume": "", "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": [ "EnvPairList": [
{ {
"EnvName": "29dev", "EnvName": "29dev",

View File

@ -0,0 +1,41 @@
using AgoraIO.Media;
using AgoraIO.Rtm;
using Mapster;
using Masuit.Tools;
using Microsoft.AspNetCore.Mvc;
using SqlSugar;
using System.Net.Http;
using WGShare.API.Controllers.Basic;
using WGShare.API.Helpers;
using WGShare.Domain.AgoraApiResult;
using WGShare.Domain.Constant;
using WGShare.Domain.DTOs.Room;
using WGShare.Domain.Entities;
using WGShare.Domain.FriendlyException;
using WGShare.Domain.GeneralModel;
using Yitter.IdGenerator;
namespace WGShare.API.Controllers.Frontend
{
/// <summary>
/// Agora接口
/// </summary>
[ApiExplorerSettings(GroupName = "frontend")]
[Route("agora-cb")]
public class AgoraCallbackController : BasicController
{
private readonly ILogger<AgoraCallbackController> _logger;
public AgoraCallbackController(
ILogger<AgoraCallbackController> logger)
{
this._logger = logger;
}
[HttpPost("event")]
public async Task<string> Event()
{
return string.Empty;
}
}
}

View File

@ -115,5 +115,14 @@ namespace WGShare.API.Controllers.Frontend
privilegeExpiredTs); privilegeExpiredTs);
} }
/// <summary>
/// 获取Agora配置
/// </summary>
/// <returns></returns>
[HttpGet("agora-conf")]
public string GetAgoraConfig()
{
return _configuration["Agora:appId"].ToString();
}
} }
} }

View File

@ -151,6 +151,7 @@ namespace WGShare.API.Controllers.Frontend
using var stream = file.OpenReadStream(); using var stream = file.OpenReadStream();
var rows = stream.Query<UserExcelInputDto>().ToList(); var rows = stream.Query<UserExcelInputDto>().ToList();
rows.RemoveAll(x => x == null || string.IsNullOrWhiteSpace(x.Account));
if (rows.IsNullOrEmpty()) if (rows.IsNullOrEmpty())
{ {
throw Oops.Oh("无有效数据,请检查文件数据!"); throw Oops.Oh("无有效数据,请检查文件数据!");

View File

@ -61,6 +61,11 @@
<param name="file"></param> <param name="file"></param>
<returns></returns> <returns></returns>
</member> </member>
<member name="T:WGShare.API.Controllers.Frontend.AgoraCallbackController">
<summary>
Agora接口
</summary>
</member>
<member name="T:WGShare.API.Controllers.Frontend.HomeController"> <member name="T:WGShare.API.Controllers.Frontend.HomeController">
<summary> <summary>
首页接口 首页接口
@ -86,6 +91,12 @@
</summary> </summary>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:WGShare.API.Controllers.Frontend.HomeController.GetAgoraConfig">
<summary>
获取Agora配置
</summary>
<returns></returns>
</member>
<member name="T:WGShare.API.Controllers.Frontend.RoomController"> <member name="T:WGShare.API.Controllers.Frontend.RoomController">
<summary> <summary>
会议室接口 会议室接口

View File

@ -7,7 +7,7 @@
"Console": { "Console": {
"LogLevel": { "LogLevel": {
"Default": "Information", "Default": "Information",
"Microsoft": "Warning", "Microsoft": "Warning"
} }
//"FormatterName": "CustomTimePrefixingFormatter", //"FormatterName": "CustomTimePrefixingFormatter",
//"FormatterOptions": { //"FormatterOptions": {
@ -36,5 +36,13 @@
"Audience": "WGshareClient", "Audience": "WGshareClient",
// //
"Expires": 86400 "Expires": 86400
},
"Agora": {
"appId": "4a4f7be64fa1404ebda74784fe9ac381",
"appSecret": "255e05d96c794251b282a0de84242355",
"tokenExpireTimeInSecond": 7200,
"apiPrefix": "https://api.sd-rtn.com/",
"clientId": "80cdc24f7dfa4497a37d98da95a3c4a4",
"clientSecret": "8323581d4d464114b1f324b26cc62e09"
} }
} }

View File

@ -0,0 +1,50 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using WGShare.Domain.Enums;
namespace WGShare.Domain.DTOs.AgoraCallback
{
public class EventBody
{
/// <summary>
/// 通知 ID标识来自声网业务服务器的一次事件通知。
/// </summary>
public string noticeId { get; set; }
/// <summary>
/// 业务 ID。值为 1 表示实时通信业务。
/// </summary>
public int productId { get; set; }
/// <summary>
/// 通知的事件类型。详见频道事件类型。
/// </summary>
public EventType eventType { get; set; }
/// <summary>
/// 声网消息服务器向你的服务器发送事件通知的 Unix 时间戳 (ms)。通知重试时该值会更新。
/// </summary>
public int notifyMs { get; set; }
/// <summary>
/// 会话 ID。
/// </summary>
public string sid { get; set; }
/// <summary>
/// 通知事件的具体内容。payload 因 eventType 而异,详见频道事件类型。
/// </summary>
public string payload { get; set; }
}
public class AgoraCallbackPayload
{
/// <summary>
/// 频道名称
/// </summary>
public string channelName { get; set; }
}
}

View File

@ -0,0 +1,54 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace WGShare.Domain.Enums
{
/// <summary>
/// 声网频道事件类型
/// </summary>
public enum EventType
{
/// <summary>
/// 创建频道。
/// </summary>
channel_create = 101,
/// <summary>
/// 销毁频道。
/// </summary>
channel_destroy = 102,
/// <summary>
/// 直播场景下,主播加入频道
/// </summary>
broadcaster_join_channel = 103,
/// <summary>
/// 直播场景下,主播离开频道
/// </summary>
broadcaster_leave_channel = 104,
/// <summary>
/// 直播场景下,观众加入频道
/// </summary>
audience_join_channel = 105,
/// <summary>
/// 直播场景下,观众离开频道
/// </summary>
audience_leave_channel = 106,
/// <summary>
/// 观众将角色切换为主播
/// </summary>
client_role_change_to_broadcaster = 111,
/// <summary>
/// 主播将角色切换为观众。
/// </summary>
client_role_change__to_audience = 112
}
}