diff --git a/WGShare.API/Controllers/AuthController.cs b/WGShare.API/Controllers/AuthController.cs
index 3f81065..25df117 100644
--- a/WGShare.API/Controllers/AuthController.cs
+++ b/WGShare.API/Controllers/AuthController.cs
@@ -108,7 +108,7 @@ namespace WGShare.API.Controllers
pipe.Del(RedisKeyConstant.Data.GetRefreshTokenKey(tokens.RefreshToken));
}
// 设置新的刷新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
pipe.Set(RedisKeyConstant.Data.GetAccessTokenKey(user.Id), new AccessAndRefreshToken
{
@@ -177,7 +177,7 @@ namespace WGShare.API.Controllers
using (var pipe = RedisHelper.Instance.StartPipe())
{
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
{
AccessToken = accessToken,
diff --git a/WGShare.API/Controllers/Frontend/HomeController.cs b/WGShare.API/Controllers/Frontend/HomeController.cs
index bcf1736..715355b 100644
--- a/WGShare.API/Controllers/Frontend/HomeController.cs
+++ b/WGShare.API/Controllers/Frontend/HomeController.cs
@@ -8,12 +8,14 @@ using MiniExcelLibs;
using MiniExcelLibs.Attributes;
using MiniExcelLibs.OpenXml;
using SqlSugar;
+using SqlSugar.Extensions;
using System.IO;
using System.Net.Http.Headers;
using System.Text.RegularExpressions;
using WGShare.API.Controllers.Basic;
using WGShare.API.Helpers;
using WGShare.Domain.Constant;
+using WGShare.Domain.DTOs.Home;
using WGShare.Domain.DTOs.MiniProgram;
using WGShare.Domain.DTOs.Room;
using WGShare.Domain.Entities;
@@ -354,5 +356,20 @@ namespace WGShare.API.Controllers.Frontend
_logger.LogError("返回 ContentType 未命中");
throw Oops.Oh("二维码生成失败");
}
+
+ ///
+ /// 反馈打分
+ ///
+ ///
+ [HttpPost("feedback")]
+ public async Task FeedbackScoring([FromBody] FeedBackRequset requset)
+ {
+ var entity = requset.Adapt();
+ entity.UID = UId.ToInt64();
+ entity.Types = string.Join(",", requset.Types);
+
+ await _sqlSugar.Insertable(entity).ExecuteCommandAsync();
+ }
+
}
}
diff --git a/WGShare.API/Controllers/Frontend/RoomController.cs b/WGShare.API/Controllers/Frontend/RoomController.cs
index e604326..ac3b409 100644
--- a/WGShare.API/Controllers/Frontend/RoomController.cs
+++ b/WGShare.API/Controllers/Frontend/RoomController.cs
@@ -104,17 +104,27 @@ namespace WGShare.API.Controllers.Frontend
var showUserId = RedisHelper.Instance.HGet(RedisKeyConstant.SessionManage.GetChannelShowUserKey(TenantId), inputDTO.RoomNum);
if (showUserId == inputDTO.UserId || showUserId == user.ScreenShareId)
{
-
- //var users = RedisHelper.Instance.HVals(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);
- await _hubContext.Clients.Group(inputDTO.RoomNum).ShowUser(UId, UserName, string.Empty, string.Empty);
- //}
-
+ if (UId == inputDTO.UserId)
+ {
+ // 表示自己取消自己的发言权限
+ var users = RedisHelper.Instance.HVals(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, showUser.UID);
+ 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);
@@ -220,7 +230,7 @@ namespace WGShare.API.Controllers.Frontend
}
return true;
}
-
+
}
///
diff --git a/WGShare.API/Hubs/IMessageClient.cs b/WGShare.API/Hubs/IMessageClient.cs
index 9dbc21e..506bb40 100644
--- a/WGShare.API/Hubs/IMessageClient.cs
+++ b/WGShare.API/Hubs/IMessageClient.cs
@@ -1,4 +1,5 @@
-using WGShare.Domain.DTOs.User;
+using SignalRSwaggerGen.Attributes;
+using WGShare.Domain.DTOs.User;
using WGShare.Domain.Entities;
namespace WGShare.API.Hubs
@@ -6,6 +7,7 @@ namespace WGShare.API.Hubs
///
/// 客户端消息
///
+ [SignalRHub]
public interface IMessageClient
{
///
diff --git a/WGShare.API/Program.cs b/WGShare.API/Program.cs
index 21adf8f..a10a9c0 100644
--- a/WGShare.API/Program.cs
+++ b/WGShare.API/Program.cs
@@ -59,7 +59,7 @@ namespace WGShare.API
});
// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle
builder.Services.AddEndpointsApiExplorer();
- builder.Services.AddSwagger();
+ builder.Services.AddSwagger();
builder.Services.AddSignalR();
builder.Services.AddHttpClient();
builder.Services.ConfigureHangfire();
@@ -99,7 +99,6 @@ namespace WGShare.API
options.SwaggerEndpoint($"/swagger/frontend/swagger.json", "ǰ");
options.SwaggerEndpoint($"/swagger/backend/swagger.json", "");
options.SwaggerEndpoint($"/swagger/public/swagger.json", "ӿ");
-
});
app.UseCustomCors();
}
diff --git a/WGShare.API/ServiceConfigs/SwaggerServiceExtensions.cs b/WGShare.API/ServiceConfigs/SwaggerServiceExtensions.cs
index 356c089..7474d11 100644
--- a/WGShare.API/ServiceConfigs/SwaggerServiceExtensions.cs
+++ b/WGShare.API/ServiceConfigs/SwaggerServiceExtensions.cs
@@ -22,6 +22,7 @@ namespace WGShare.API.ServiceConfigs
{
services.AddSwaggerGen(w =>
{
+ w.AddSignalRSwaggerGen();
w.SwaggerDoc("frontend", new OpenApiInfo { Title = "前端", Version = "frontend" });
w.SwaggerDoc("backend", new OpenApiInfo { Title = "后端", Version = "backend" });
w.SwaggerDoc("public", new OpenApiInfo { Title = "公共接口", Version = "public" });
diff --git a/WGShare.API/WGShare.API.csproj b/WGShare.API/WGShare.API.csproj
index e1639d3..872b42a 100644
--- a/WGShare.API/WGShare.API.csproj
+++ b/WGShare.API/WGShare.API.csproj
@@ -15,6 +15,7 @@
+
diff --git a/WGShare.API/WGShare.API.xml b/WGShare.API/WGShare.API.xml
index e801979..797888f 100644
--- a/WGShare.API/WGShare.API.xml
+++ b/WGShare.API/WGShare.API.xml
@@ -156,6 +156,12 @@
+
+
+ 反馈打分
+
+
+
会议室接口
diff --git a/WGShare.API/appsettings.Development.json b/WGShare.API/appsettings.Development.json
index 697dbbe..2fed05d 100644
--- a/WGShare.API/appsettings.Development.json
+++ b/WGShare.API/appsettings.Development.json
@@ -36,12 +36,12 @@
"Issuer": "WGshareApi",
"Audience": "WGshareClient",
// 过期 秒
- "Expires": 86400
+ "Expires": 600000
},
"Agora": {
"appId": "4a4f7be64fa1404ebda74784fe9ac381",
"appSecret": "255e05d96c794251b282a0de84242355",
- "tokenExpireTimeInSecond": 7200,
+ "tokenExpireTimeInSecond": 300,
"apiPrefix": "https://api.sd-rtn.com/",
"clientId": "80cdc24f7dfa4497a37d98da95a3c4a4",
"clientSecret": "8323581d4d464114b1f324b26cc62e09",
diff --git a/WGShare.API/appsettings.json b/WGShare.API/appsettings.json
index c3af738..35e6949 100644
--- a/WGShare.API/appsettings.json
+++ b/WGShare.API/appsettings.json
@@ -13,8 +13,8 @@
"SecretKey": "apDbztyqjSNuvWnezhbdUxduhDidZbF897t2uTJs53RMdY9Cai7eexavBhka3HN6mcTe9oohjFg6bNffRRkcfMqnVKNBnmyPzkRgNopHGJAL7KMwkeZdZ7BaWnT57jCi11",
"Issuer": "WGshareApi",
"Audience": "WGshareClient",
- // 过期 秒
- "Expires": 86400
+ // 过期 秒 360 天
+ "Expires": 31104000
},
"ConnectionStrings": {
"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": {
"appId": "dcfc466a6ecb4a1f972630065dfb1e75",
"appSecret": "fc77000e329b4be7a0e26fa789e20d00",
- "tokenExpireTimeInSecond": 7200,
+ "tokenExpireTimeInSecond": 72000,
"apiPrefix": "https://api.sd-rtn.com/",
"clientId": "80cdc24f7dfa4497a37d98da95a3c4a4",
"clientSecret": "8323581d4d464114b1f324b26cc62e09",
diff --git a/WGShare.Domain/DTOs/Home/FeedBackRequset.cs b/WGShare.Domain/DTOs/Home/FeedBackRequset.cs
new file mode 100644
index 0000000..a97ea82
--- /dev/null
+++ b/WGShare.Domain/DTOs/Home/FeedBackRequset.cs
@@ -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
+ {
+ ///
+ /// 分值
+ ///
+ public double Score { get; set; }
+
+ ///
+ /// 反馈内容
+ ///
+ public string OtherContent { get; set; }
+
+ ///
+ /// 反馈类型
+ ///
+ public List Types { get; set; }
+ }
+}
diff --git a/WGShare.Domain/Entities/FeedbackIssue.cs b/WGShare.Domain/Entities/FeedbackIssue.cs
new file mode 100644
index 0000000..c429f7b
--- /dev/null
+++ b/WGShare.Domain/Entities/FeedbackIssue.cs
@@ -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
+{
+ ///
+ /// 反馈问题表
+ ///
+ [SugarTable("feedback_issue")]
+ public class FeedbackIssue
+ {
+ ///
+ ///
+ ///
+ [SugarColumn(ColumnName = "id", IsPrimaryKey = true)]
+ public string Id { get; set; } = YitIdHelper.NextId().ToString();
+
+ ///
+ /// 创建时间
+ /// 默认值: CURRENT_TIMESTAMP
+ ///
+ [SugarColumn(ColumnName = "create_time", IsOnlyIgnoreInsert = true, IsOnlyIgnoreUpdate = true)]
+ public DateTime CreateTime { get; set; }
+
+ ///
+ /// 用户id
+ ///
+ [SugarColumn(ColumnName = "uid")]
+ public long UID { get; set; }
+
+ ///
+ /// 分值
+ ///
+ [SugarColumn(ColumnName = "score")]
+ public double Score { get; set; }
+
+ ///
+ /// 反馈其他
+ ///
+ [SugarColumn(ColumnName = "other_content")]
+ public string OtherContent { get; set; }
+
+ ///
+ /// 反馈其他
+ ///
+ [SugarColumn(ColumnName = "types")]
+ public string Types { get; set; }
+ }
+}
diff --git a/WGShare.Domain/Enums/FeedbackIssueEnums.cs b/WGShare.Domain/Enums/FeedbackIssueEnums.cs
new file mode 100644
index 0000000..da261f3
--- /dev/null
+++ b/WGShare.Domain/Enums/FeedbackIssueEnums.cs
@@ -0,0 +1,48 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace WGShare.Domain.Enums
+{
+ ///
+ /// 反馈问题枚举
+ ///
+ public enum FeedbackIssueEnums
+ {
+ ///
+ /// 其他
+ ///
+ Other = 1,
+ ///
+ /// 软件卡顿
+ ///
+ SoftwareLag = 2,
+
+ ///
+ /// 设计不合理
+ ///
+ UnreasonableDesign = 3,
+
+ ///
+ /// 功能太少
+ ///
+ TooLittleFeatures = 4,
+
+ ///
+ /// 通话不流畅
+ ///
+ CallIsNotSmooth = 5,
+
+ ///
+ /// 视频卡顿
+ ///
+ VideoLag = 6,
+
+ ///
+ /// 操作麻烦
+ ///
+ OperationTrouble
+ }
+}