diff --git a/src/CloudGaming/Api/CloudGaming.Api/.versionDescribe b/src/CloudGaming/Api/CloudGaming.Api/.versionDescribe
index 7334cd5..0af2b22 100644
--- a/src/CloudGaming/Api/CloudGaming.Api/.versionDescribe
+++ b/src/CloudGaming/Api/CloudGaming.Api/.versionDescribe
@@ -1,4 +1,7 @@
-### 20241119
+### 20241126
+1. 增加玩游戏等接口
+
+### 20241119
1. 增加兑换码接口(测试兑换码:test)
2. 增加首页排行榜接口
3. 增加游玩历史接口
diff --git a/src/CloudGaming/Api/CloudGaming.Api/Controllers/PlayGameController.cs b/src/CloudGaming/Api/CloudGaming.Api/Controllers/PlayGameController.cs
index 8f17d02..1ca3893 100644
--- a/src/CloudGaming/Api/CloudGaming.Api/Controllers/PlayGameController.cs
+++ b/src/CloudGaming/Api/CloudGaming.Api/Controllers/PlayGameController.cs
@@ -1,53 +1,144 @@
using CloudGaming.Api.Base;
using CloudGaming.Code.Contract;
+using CloudGaming.Code.DataAccess;
using CloudGaming.Code.Game;
+using CloudGaming.DtoModel.Account.User;
+using CloudGaming.DtoModel.Game;
using CloudGaming.DtoModel.JY;
using CloudGaming.DtoModel.PlayGame;
+using CloudGaming.Model.DbSqlServer.Db_Phone;
using HuanMeng.DotNetCore.Base;
+using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Newtonsoft.Json;
-using Refit;
-namespace CloudGaming.Api.Controllers
+namespace CloudGaming.Api.Controllers;
+
+///
+/// 玩游戏接口
+///
+public class PlayGameController : CloudGamingControllerBase
{
-
- public class PlayGameController : CloudGamingControllerBase
+ private IJYApi JYApi;
+ public PlayGameController(IServiceProvider _serviceProvider, IJYApi jYApi) : base(_serviceProvider)
{
- private IJYApi JYApi;
- public PlayGameController(IServiceProvider _serviceProvider, IJYApi jYApi) : base(_serviceProvider)
- {
- JYApi = jYApi;
- }
+ JYApi = jYApi;
+ }
- ///
- /// 获取token接口
- ///
- ///
- ///
- [HttpPost]
- public async Task GetTokenAsync([FromBody] RequestBaseModel requestBaseModel)
- {
+ ///
+ /// 获取token接口
+ ///
+ ///
+ ///
+ [HttpPost]
+ [Authorize]
+ public async Task> GetTokenAsync([FromBody] RequestBaseModel requestBaseModel)
+ {
- PlayGameBLL playGameBLL = new PlayGameBLL(ServiceProvider, JYApi);
- return await playGameBLL.GetTokenAsync(requestBaseModel);
- }
+ PlayGameBLL playGameBLL = new PlayGameBLL(ServiceProvider, JYApi);
+ return await playGameBLL.GetTokenAsync(requestBaseModel);
+ }
- ///
- /// 开始游戏
- ///
- ///
- ///
- [HttpPost]
- public async Task> PlayGameAsync([FromBody] PlayGameRequest playGameRequest)
- {
- PlayGameBLL playGameBLL = new PlayGameBLL(ServiceProvider, JYApi);
- return await playGameBLL.PlayGameAsync(playGameRequest);
+ ///
+ /// 开始游戏
+ ///
+ ///
+ ///
+ [HttpPost]
+ [Authorize]
+ public async Task> PlayGameAsync([FromBody] PlayGameRequest playGameRequest)
+ {
+ PlayGameBLL playGameBLL = new PlayGameBLL(ServiceProvider, JYApi);
+ return await playGameBLL.PlayGameAsync(playGameRequest);
- }
+ }
+
+ ///
+ /// 游戏心跳
+ ///
+ ///
+ ///
+ [HttpPost]
+ [Authorize]
+ public async Task PlayGameHeartbeat([FromBody] GameRequest gameRequest)
+ {
+ PlayGameBLL playGameBLL = new PlayGameBLL(ServiceProvider, JYApi);
+ return await playGameBLL.PlayGameHeartbeat(gameRequest.GameId);
+
+ }
+
+
+
+ ///
+ /// 游戏排队
+ ///
+ ///
+ ///
+ [HttpPost]
+ [Authorize]
+ public async Task> PlayGameQueueAsync(GameRequest gameRequest)
+ {
+ PlayGameBLL playGameBLL = new PlayGameBLL(ServiceProvider, JYApi);
+ return await playGameBLL.PlayGameQueueAsync(gameRequest);
+ }
+
+ ///
+ /// 取消排队
+ ///
+ ///
+ ///
+ [HttpPost]
+ [Authorize]
+ public async Task> CancelQueueAsync(GameRequest gameRequest)
+ {
+ PlayGameBLL playGameBLL = new PlayGameBLL(ServiceProvider, JYApi);
+ return await playGameBLL.CancelQueueAsync(gameRequest);
+ }
+
+ ///
+ /// 切换视频等级
+ ///
+ ///
+ ///
+ [HttpPost]
+ [Authorize]
+ public async Task> DisplayGrade([FromBody] DisplayGradeRequest displayGradeRequest)
+ {
+
+ PlayGameBLL playGameBLL = new PlayGameBLL(ServiceProvider, JYApi);
+ return await playGameBLL.DisplayGrade(displayGradeRequest.DisplayGrade, displayGradeRequest.GameId);
+ }
+
+
+ ///
+ /// 获取可重连的会话列表
+ ///
+ ///
+ ///
+ [HttpPost]
+ [Authorize]
+ public async Task> GetMyScList([FromBody] RequestBaseModel requestBaseModel)
+ {
+ PlayGameBLL playGameBLL = new PlayGameBLL(ServiceProvider, JYApi);
+ return await playGameBLL.GetMyScList(requestBaseModel.Sn);
+
+ }
+
+ ///
+ /// 重连会话
+ ///
+ ///
+ ///
+ [HttpPost]
+ [Authorize]
+ public async Task> ReconPlayGame([FromBody] ReconPlayGameSettings reconPlayGameSettings)
+ {
+ PlayGameBLL playGameBLL = new PlayGameBLL(ServiceProvider, JYApi);
+ return await playGameBLL.ReconPlayGame(reconPlayGameSettings);
}
}
diff --git a/src/CloudGaming/Code/CloudGaming.Code/Account/UserCurrency/DiamondConsumeMoney.cs b/src/CloudGaming/Code/CloudGaming.Code/Account/UserCurrency/DiamondConsumeMoney.cs
index 3ae8747..16cdf5c 100644
--- a/src/CloudGaming/Code/CloudGaming.Code/Account/UserCurrency/DiamondConsumeMoney.cs
+++ b/src/CloudGaming/Code/CloudGaming.Code/Account/UserCurrency/DiamondConsumeMoney.cs
@@ -60,16 +60,12 @@ public class DiamondConsumeMoney(DAO dao, int userId, UserCurrencyType userCurre
return true;
}
-
///
///
///
- ///
- ///
- ///
///
///
- /// 余额不足
+ ///
public async Task AddUserCurrencyAsync(decimal money)
{
var currency = await dao.DaoUser.Context.T_User_Currency.Where(it => it.CurrencyType == (int)userCurrencyType && it.UserId == userId).FirstOrDefaultAsync();
diff --git a/src/CloudGaming/Code/CloudGaming.Code/AppExtend/JwtTokenManageExtension.cs b/src/CloudGaming/Code/CloudGaming.Code/AppExtend/JwtTokenManageExtension.cs
index ff1658d..9cc7f79 100644
--- a/src/CloudGaming/Code/CloudGaming.Code/AppExtend/JwtTokenManageExtension.cs
+++ b/src/CloudGaming/Code/CloudGaming.Code/AppExtend/JwtTokenManageExtension.cs
@@ -11,6 +11,7 @@ using Microsoft.IdentityModel.Tokens;
using System.Text.Json;
using CloudGaming.Code.ExceptionExtend;
using Microsoft.AspNetCore.Http;
+using SKIT.FlurlHttpClient.Wechat.TenpayV3.Models;
namespace CloudGaming.Code.AppExtend
{
@@ -129,7 +130,7 @@ namespace CloudGaming.Code.AppExtend
context.Fail(new LoginExpiredException(ResponseCode.LoginExpired, "用户在其它设备登录"));
return;
}
-
+
},
// 处理认证失败的事件
OnAuthenticationFailed = context =>
@@ -148,15 +149,19 @@ namespace CloudGaming.Code.AppExtend
//var result = JsonSerializer.Serialize(new { error = context.AuthenticateFailure.Message });
return context.Response.WriteAsync(str); // 写入响应
}
- context.Response.Clear(); // 清空现有响应内容
- context.Response.StatusCode = StatusCodes.Status200OK; // 设置状态码为403 Forbidden
- // 返回自定义的错误消息
- var result = new BaseResponse