This commit is contained in:
youngq 2025-01-17 18:01:05 +08:00
parent e29665cd90
commit ac22e5097c
13 changed files with 185 additions and 22 deletions

View File

@ -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,

View File

@ -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("二维码生成失败");
}
/// <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();
}
}
}

View File

@ -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<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)
//{
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)
{
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);

View File

@ -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
/// <summary>
/// 客户端消息
/// </summary>
[SignalRHub]
public interface IMessageClient
{
/// <summary>

View File

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

View File

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

View File

@ -15,6 +15,7 @@
<PackageReference Include="Hangfire.AspNetCore" Version="1.8.14" />
<PackageReference Include="Hangfire.Core" Version="1.8.14" />
<PackageReference Include="Hangfire.MemoryStorage" Version="1.8.1.1" />
<PackageReference Include="SignalRSwaggerGen" Version="4.7.0" />
<PackageReference Include="Swashbuckle.AspNetCore" Version="6.4.0" />
</ItemGroup>

View File

@ -156,6 +156,12 @@
<param name="roomNum"></param>
<returns></returns>
</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">
<summary>
会议室接口

View File

@ -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",

View File

@ -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",

View File

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

View File

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

View File

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