This commit is contained in:
parent
e29665cd90
commit
ac22e5097c
|
|
@ -108,7 +108,7 @@ namespace WGShare.API.Controllers
|
||||||
pipe.Del(RedisKeyConstant.Data.GetRefreshTokenKey(tokens.RefreshToken));
|
pipe.Del(RedisKeyConstant.Data.GetRefreshTokenKey(tokens.RefreshToken));
|
||||||
}
|
}
|
||||||
// 设置新的刷新token
|
// 设置新的刷新token
|
||||||
pipe.Set(RedisKeyConstant.Data.GetRefreshTokenKey(refreshToken), user, TimeSpan.FromDays(7).TotalSeconds.ToInt32());
|
pipe.Set(RedisKeyConstant.Data.GetRefreshTokenKey(refreshToken), user, TimeSpan.FromDays(360).TotalSeconds.ToInt32());
|
||||||
// 记录accessToken
|
// 记录accessToken
|
||||||
pipe.Set(RedisKeyConstant.Data.GetAccessTokenKey(user.Id), new AccessAndRefreshToken
|
pipe.Set(RedisKeyConstant.Data.GetAccessTokenKey(user.Id), new AccessAndRefreshToken
|
||||||
{
|
{
|
||||||
|
|
@ -177,7 +177,7 @@ namespace WGShare.API.Controllers
|
||||||
using (var pipe = RedisHelper.Instance.StartPipe())
|
using (var pipe = RedisHelper.Instance.StartPipe())
|
||||||
{
|
{
|
||||||
pipe.Del(RedisKeyConstant.Data.GetRefreshTokenKey(refreshToken));
|
pipe.Del(RedisKeyConstant.Data.GetRefreshTokenKey(refreshToken));
|
||||||
pipe.Set(RedisKeyConstant.Data.GetRefreshTokenKey(refreshTokenNew), user, TimeSpan.FromDays(7).TotalSeconds.ToInt32());
|
pipe.Set(RedisKeyConstant.Data.GetRefreshTokenKey(refreshTokenNew), user, TimeSpan.FromDays(360).TotalSeconds.ToInt32());
|
||||||
pipe.Set(RedisKeyConstant.Data.GetAccessTokenKey(user.Id), new AccessAndRefreshToken
|
pipe.Set(RedisKeyConstant.Data.GetAccessTokenKey(user.Id), new AccessAndRefreshToken
|
||||||
{
|
{
|
||||||
AccessToken = accessToken,
|
AccessToken = accessToken,
|
||||||
|
|
|
||||||
|
|
@ -8,12 +8,14 @@ using MiniExcelLibs;
|
||||||
using MiniExcelLibs.Attributes;
|
using MiniExcelLibs.Attributes;
|
||||||
using MiniExcelLibs.OpenXml;
|
using MiniExcelLibs.OpenXml;
|
||||||
using SqlSugar;
|
using SqlSugar;
|
||||||
|
using SqlSugar.Extensions;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Net.Http.Headers;
|
using System.Net.Http.Headers;
|
||||||
using System.Text.RegularExpressions;
|
using System.Text.RegularExpressions;
|
||||||
using WGShare.API.Controllers.Basic;
|
using WGShare.API.Controllers.Basic;
|
||||||
using WGShare.API.Helpers;
|
using WGShare.API.Helpers;
|
||||||
using WGShare.Domain.Constant;
|
using WGShare.Domain.Constant;
|
||||||
|
using WGShare.Domain.DTOs.Home;
|
||||||
using WGShare.Domain.DTOs.MiniProgram;
|
using WGShare.Domain.DTOs.MiniProgram;
|
||||||
using WGShare.Domain.DTOs.Room;
|
using WGShare.Domain.DTOs.Room;
|
||||||
using WGShare.Domain.Entities;
|
using WGShare.Domain.Entities;
|
||||||
|
|
@ -354,5 +356,20 @@ namespace WGShare.API.Controllers.Frontend
|
||||||
_logger.LogError("返回 ContentType 未命中");
|
_logger.LogError("返回 ContentType 未命中");
|
||||||
throw Oops.Oh("二维码生成失败");
|
throw Oops.Oh("二维码生成失败");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 反馈打分
|
||||||
|
/// </summary>
|
||||||
|
/// <returns></returns>
|
||||||
|
[HttpPost("feedback")]
|
||||||
|
public async Task FeedbackScoring([FromBody] FeedBackRequset requset)
|
||||||
|
{
|
||||||
|
var entity = requset.Adapt<FeedbackIssue>();
|
||||||
|
entity.UID = UId.ToInt64();
|
||||||
|
entity.Types = string.Join(",", requset.Types);
|
||||||
|
|
||||||
|
await _sqlSugar.Insertable(entity).ExecuteCommandAsync();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -104,17 +104,27 @@ namespace WGShare.API.Controllers.Frontend
|
||||||
var showUserId = RedisHelper.Instance.HGet(RedisKeyConstant.SessionManage.GetChannelShowUserKey(TenantId), inputDTO.RoomNum);
|
var showUserId = RedisHelper.Instance.HGet(RedisKeyConstant.SessionManage.GetChannelShowUserKey(TenantId), inputDTO.RoomNum);
|
||||||
if (showUserId == inputDTO.UserId || showUserId == user.ScreenShareId)
|
if (showUserId == inputDTO.UserId || showUserId == user.ScreenShareId)
|
||||||
{
|
{
|
||||||
|
if (UId == inputDTO.UserId)
|
||||||
//var users = RedisHelper.Instance.HVals<ChannelUserInfo>(RedisKeyConstant.SessionManage.GetChannelUserKey(TenantId, inputDTO.RoomNum));
|
{
|
||||||
//var showUser = users.FirstOrDefault(x => x.RoleId == ((int)RoleEnums.Admin).ToString() || x.IsRoomManager || x.RoleId == ((int)RoleEnums.RoomManager).ToString());
|
// 表示自己取消自己的发言权限
|
||||||
//if (showUser != null)
|
var users = RedisHelper.Instance.HVals<ChannelUserInfo>(RedisKeyConstant.SessionManage.GetChannelUserKey(TenantId, inputDTO.RoomNum));
|
||||||
//{
|
var showUser = users.FirstOrDefault(x => x.RoleId == ((int)RoleEnums.Admin).ToString() || x.IsRoomManager || x.RoleId == ((int)RoleEnums.RoomManager).ToString());
|
||||||
|
if (showUser != null)
|
||||||
// 取消显示用户,设置显示当前操作的管理员
|
{
|
||||||
RedisHelper.Instance.HSet(RedisKeyConstant.SessionManage.GetChannelShowUserKey(TenantId), inputDTO.RoomNum, UId);
|
RedisHelper.Instance.HSet(RedisKeyConstant.SessionManage.GetChannelShowUserKey(TenantId), inputDTO.RoomNum, showUser.UID);
|
||||||
await _hubContext.Clients.Group(inputDTO.RoomNum).ShowUser(UId, UserName, string.Empty, string.Empty);
|
await _hubContext.Clients.Group(inputDTO.RoomNum).ShowUser(showUser.UID, showUser.UserName, string.Empty, string.Empty);
|
||||||
//}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
RedisHelper.Instance.HSet(RedisKeyConstant.SessionManage.GetChannelShowUserKey(TenantId), inputDTO.RoomNum, 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// 取消显示用户,设置显示当前操作的管理员
|
||||||
|
RedisHelper.Instance.HSet(RedisKeyConstant.SessionManage.GetChannelShowUserKey(TenantId), inputDTO.RoomNum, UId);
|
||||||
|
await _hubContext.Clients.Group(inputDTO.RoomNum).ShowUser(UId, UserName, string.Empty, string.Empty);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
await _hubContext.Clients.Group(inputDTO.RoomNum).ManagerRefresh(user, UId);
|
await _hubContext.Clients.Group(inputDTO.RoomNum).ManagerRefresh(user, UId);
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
using WGShare.Domain.DTOs.User;
|
using SignalRSwaggerGen.Attributes;
|
||||||
|
using WGShare.Domain.DTOs.User;
|
||||||
using WGShare.Domain.Entities;
|
using WGShare.Domain.Entities;
|
||||||
|
|
||||||
namespace WGShare.API.Hubs
|
namespace WGShare.API.Hubs
|
||||||
|
|
@ -6,6 +7,7 @@ namespace WGShare.API.Hubs
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 客户端消息
|
/// 客户端消息
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
[SignalRHub]
|
||||||
public interface IMessageClient
|
public interface IMessageClient
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|
|
||||||
|
|
@ -99,7 +99,6 @@ namespace WGShare.API
|
||||||
options.SwaggerEndpoint($"/swagger/frontend/swagger.json", "前端");
|
options.SwaggerEndpoint($"/swagger/frontend/swagger.json", "前端");
|
||||||
options.SwaggerEndpoint($"/swagger/backend/swagger.json", "后端");
|
options.SwaggerEndpoint($"/swagger/backend/swagger.json", "后端");
|
||||||
options.SwaggerEndpoint($"/swagger/public/swagger.json", "公共接口");
|
options.SwaggerEndpoint($"/swagger/public/swagger.json", "公共接口");
|
||||||
|
|
||||||
});
|
});
|
||||||
app.UseCustomCors();
|
app.UseCustomCors();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -22,6 +22,7 @@ namespace WGShare.API.ServiceConfigs
|
||||||
{
|
{
|
||||||
services.AddSwaggerGen(w =>
|
services.AddSwaggerGen(w =>
|
||||||
{
|
{
|
||||||
|
w.AddSignalRSwaggerGen();
|
||||||
w.SwaggerDoc("frontend", new OpenApiInfo { Title = "前端", Version = "frontend" });
|
w.SwaggerDoc("frontend", new OpenApiInfo { Title = "前端", Version = "frontend" });
|
||||||
w.SwaggerDoc("backend", new OpenApiInfo { Title = "后端", Version = "backend" });
|
w.SwaggerDoc("backend", new OpenApiInfo { Title = "后端", Version = "backend" });
|
||||||
w.SwaggerDoc("public", new OpenApiInfo { Title = "公共接口", Version = "public" });
|
w.SwaggerDoc("public", new OpenApiInfo { Title = "公共接口", Version = "public" });
|
||||||
|
|
|
||||||
|
|
@ -15,6 +15,7 @@
|
||||||
<PackageReference Include="Hangfire.AspNetCore" Version="1.8.14" />
|
<PackageReference Include="Hangfire.AspNetCore" Version="1.8.14" />
|
||||||
<PackageReference Include="Hangfire.Core" Version="1.8.14" />
|
<PackageReference Include="Hangfire.Core" Version="1.8.14" />
|
||||||
<PackageReference Include="Hangfire.MemoryStorage" Version="1.8.1.1" />
|
<PackageReference Include="Hangfire.MemoryStorage" Version="1.8.1.1" />
|
||||||
|
<PackageReference Include="SignalRSwaggerGen" Version="4.7.0" />
|
||||||
<PackageReference Include="Swashbuckle.AspNetCore" Version="6.4.0" />
|
<PackageReference Include="Swashbuckle.AspNetCore" Version="6.4.0" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -156,6 +156,12 @@
|
||||||
<param name="roomNum"></param>
|
<param name="roomNum"></param>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="M:WGShare.API.Controllers.Frontend.HomeController.FeedbackScoring(WGShare.Domain.DTOs.Home.FeedBackRequset)">
|
||||||
|
<summary>
|
||||||
|
反馈打分
|
||||||
|
</summary>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
<member name="T:WGShare.API.Controllers.Frontend.RoomController">
|
<member name="T:WGShare.API.Controllers.Frontend.RoomController">
|
||||||
<summary>
|
<summary>
|
||||||
会议室接口
|
会议室接口
|
||||||
|
|
|
||||||
|
|
@ -36,12 +36,12 @@
|
||||||
"Issuer": "WGshareApi",
|
"Issuer": "WGshareApi",
|
||||||
"Audience": "WGshareClient",
|
"Audience": "WGshareClient",
|
||||||
// 过期 秒
|
// 过期 秒
|
||||||
"Expires": 86400
|
"Expires": 600000
|
||||||
},
|
},
|
||||||
"Agora": {
|
"Agora": {
|
||||||
"appId": "4a4f7be64fa1404ebda74784fe9ac381",
|
"appId": "4a4f7be64fa1404ebda74784fe9ac381",
|
||||||
"appSecret": "255e05d96c794251b282a0de84242355",
|
"appSecret": "255e05d96c794251b282a0de84242355",
|
||||||
"tokenExpireTimeInSecond": 7200,
|
"tokenExpireTimeInSecond": 300,
|
||||||
"apiPrefix": "https://api.sd-rtn.com/",
|
"apiPrefix": "https://api.sd-rtn.com/",
|
||||||
"clientId": "80cdc24f7dfa4497a37d98da95a3c4a4",
|
"clientId": "80cdc24f7dfa4497a37d98da95a3c4a4",
|
||||||
"clientSecret": "8323581d4d464114b1f324b26cc62e09",
|
"clientSecret": "8323581d4d464114b1f324b26cc62e09",
|
||||||
|
|
|
||||||
|
|
@ -13,8 +13,8 @@
|
||||||
"SecretKey": "apDbztyqjSNuvWnezhbdUxduhDidZbF897t2uTJs53RMdY9Cai7eexavBhka3HN6mcTe9oohjFg6bNffRRkcfMqnVKNBnmyPzkRgNopHGJAL7KMwkeZdZ7BaWnT57jCi11",
|
"SecretKey": "apDbztyqjSNuvWnezhbdUxduhDidZbF897t2uTJs53RMdY9Cai7eexavBhka3HN6mcTe9oohjFg6bNffRRkcfMqnVKNBnmyPzkRgNopHGJAL7KMwkeZdZ7BaWnT57jCi11",
|
||||||
"Issuer": "WGshareApi",
|
"Issuer": "WGshareApi",
|
||||||
"Audience": "WGshareClient",
|
"Audience": "WGshareClient",
|
||||||
// 过期 秒
|
// 过期 秒 360 天
|
||||||
"Expires": 86400
|
"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=rm-2vc20nd3d11g0oh6g.rwlb.cn-chengdu.rds.aliyuncs.com;Port=3306;Uid=marking;Pwd=poiuytPOIUYT098765)(*&^%;AllowZeroDateTime=True;ConvertZeroDateTime=True;",
|
||||||
|
|
@ -26,7 +26,7 @@
|
||||||
"Agora": {
|
"Agora": {
|
||||||
"appId": "dcfc466a6ecb4a1f972630065dfb1e75",
|
"appId": "dcfc466a6ecb4a1f972630065dfb1e75",
|
||||||
"appSecret": "fc77000e329b4be7a0e26fa789e20d00",
|
"appSecret": "fc77000e329b4be7a0e26fa789e20d00",
|
||||||
"tokenExpireTimeInSecond": 7200,
|
"tokenExpireTimeInSecond": 72000,
|
||||||
"apiPrefix": "https://api.sd-rtn.com/",
|
"apiPrefix": "https://api.sd-rtn.com/",
|
||||||
"clientId": "80cdc24f7dfa4497a37d98da95a3c4a4",
|
"clientId": "80cdc24f7dfa4497a37d98da95a3c4a4",
|
||||||
"clientSecret": "8323581d4d464114b1f324b26cc62e09",
|
"clientSecret": "8323581d4d464114b1f324b26cc62e09",
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,27 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using WGShare.Domain.Enums;
|
||||||
|
|
||||||
|
namespace WGShare.Domain.DTOs.Home
|
||||||
|
{
|
||||||
|
public class FeedBackRequset
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 分值
|
||||||
|
/// </summary>
|
||||||
|
public double Score { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 反馈内容
|
||||||
|
/// </summary>
|
||||||
|
public string OtherContent { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 反馈类型
|
||||||
|
/// </summary>
|
||||||
|
public List<int> Types { get; set; }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,52 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using SqlSugar;
|
||||||
|
using WGShare.Domain.Enums;
|
||||||
|
using Yitter.IdGenerator;
|
||||||
|
namespace WGShare.Domain.Entities
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 反馈问题表
|
||||||
|
///</summary>
|
||||||
|
[SugarTable("feedback_issue")]
|
||||||
|
public class FeedbackIssue
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
///
|
||||||
|
///</summary>
|
||||||
|
[SugarColumn(ColumnName = "id", IsPrimaryKey = true)]
|
||||||
|
public string Id { get; set; } = YitIdHelper.NextId().ToString();
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 创建时间
|
||||||
|
/// 默认值: CURRENT_TIMESTAMP
|
||||||
|
///</summary>
|
||||||
|
[SugarColumn(ColumnName = "create_time", IsOnlyIgnoreInsert = true, IsOnlyIgnoreUpdate = true)]
|
||||||
|
public DateTime CreateTime { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 用户id
|
||||||
|
///</summary>
|
||||||
|
[SugarColumn(ColumnName = "uid")]
|
||||||
|
public long UID { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 分值
|
||||||
|
///</summary>
|
||||||
|
[SugarColumn(ColumnName = "score")]
|
||||||
|
public double Score { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 反馈其他
|
||||||
|
///</summary>
|
||||||
|
[SugarColumn(ColumnName = "other_content")]
|
||||||
|
public string OtherContent { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 反馈其他
|
||||||
|
///</summary>
|
||||||
|
[SugarColumn(ColumnName = "types")]
|
||||||
|
public string Types { get; set; }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,48 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace WGShare.Domain.Enums
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 反馈问题枚举
|
||||||
|
/// </summary>
|
||||||
|
public enum FeedbackIssueEnums
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 其他
|
||||||
|
/// </summary>
|
||||||
|
Other = 1,
|
||||||
|
/// <summary>
|
||||||
|
/// 软件卡顿
|
||||||
|
/// </summary>
|
||||||
|
SoftwareLag = 2,
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 设计不合理
|
||||||
|
/// </summary>
|
||||||
|
UnreasonableDesign = 3,
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 功能太少
|
||||||
|
/// </summary>
|
||||||
|
TooLittleFeatures = 4,
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 通话不流畅
|
||||||
|
/// </summary>
|
||||||
|
CallIsNotSmooth = 5,
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 视频卡顿
|
||||||
|
/// </summary>
|
||||||
|
VideoLag = 6,
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 操作麻烦
|
||||||
|
/// </summary>
|
||||||
|
OperationTrouble
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue