diff --git a/src/CloudGaming/Api/CloudGaming.Api/Controllers/PlayGameController.cs b/src/CloudGaming/Api/CloudGaming.Api/Controllers/PlayGameController.cs
index 4e1db35..f05bfc2 100644
--- a/src/CloudGaming/Api/CloudGaming.Api/Controllers/PlayGameController.cs
+++ b/src/CloudGaming/Api/CloudGaming.Api/Controllers/PlayGameController.cs
@@ -135,7 +135,7 @@ public class PlayGameController : CloudGamingControllerBase
///
[HttpPost]
[Authorize]
- public async Task GetMyScListAsync([FromBody] RequestBaseModel requestBaseModel)
+ public async Task GetMyScListAsync([FromBody] RequestBaseModel requestBaseModel)
{
PlayGameBLL playGameBLL = new PlayGameBLL(ServiceProvider, JYApi);
return await playGameBLL.GetMyScList(requestBaseModel.Sn);
diff --git a/src/CloudGaming/Api/CloudGaming.ExtApi/Dockerfile b/src/CloudGaming/Api/CloudGaming.ExtApi/Dockerfile
index 782e2a1..9a479b6 100644
--- a/src/CloudGaming/Api/CloudGaming.ExtApi/Dockerfile
+++ b/src/CloudGaming/Api/CloudGaming.ExtApi/Dockerfile
@@ -2,6 +2,12 @@
# 此阶段用于在快速模式(默认为调试配置)下从 VS 运行时
FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base
+# 设置时区为北京时间
+RUN apt-get update && apt-get install -y tzdata && \
+ ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \
+ echo "Asia/Shanghai" > /etc/timezone && \
+ dpkg-reconfigure -f noninteractive tzdata && \
+ apt-get clean && rm -rf /var/lib/apt/lists/*
USER $APP_UID
WORKDIR /app
EXPOSE 80
diff --git a/src/CloudGaming/Api/CloudGaming.PayApi/Dockerfile b/src/CloudGaming/Api/CloudGaming.PayApi/Dockerfile
index 4c4faa6..6e3615f 100644
--- a/src/CloudGaming/Api/CloudGaming.PayApi/Dockerfile
+++ b/src/CloudGaming/Api/CloudGaming.PayApi/Dockerfile
@@ -2,6 +2,13 @@
# 此阶段用于在快速模式(默认为调试配置)下从 VS 运行时
FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base
+# 设置时区为北京时间
+RUN apt-get update && apt-get install -y tzdata && \
+ ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \
+ echo "Asia/Shanghai" > /etc/timezone && \
+ dpkg-reconfigure -f noninteractive tzdata && \
+ apt-get clean && rm -rf /var/lib/apt/lists/*
+
USER $APP_UID
WORKDIR /app
EXPOSE 80
diff --git a/src/CloudGaming/Code/CloudGaming.Code/Game/GameBLL.cs b/src/CloudGaming/Code/CloudGaming.Code/Game/GameBLL.cs
index 50119e3..a5e72e7 100644
--- a/src/CloudGaming/Code/CloudGaming.Code/Game/GameBLL.cs
+++ b/src/CloudGaming/Code/CloudGaming.Code/Game/GameBLL.cs
@@ -338,7 +338,7 @@ namespace CloudGaming.Code.Game
{
//计算用户排名,看看是否进入前50名
var userIndex = list.FindIndex(it => it.UserId == _UserId);
- userGamePlayTimeDto.PlayTime = $"{(userGame.PlayTime / 60).ToString("0.##")}小时";
+ userGamePlayTimeDto.PlayTime = $"{(userGame.PlayTime / 60.0).ToString("0.##")}小时";
if (userIndex > -1)
{
userGamePlayTimeDto.Ranking = userIndex + 1;
diff --git a/src/CloudGaming/Code/CloudGaming.Code/Game/PlayGameBLL.cs b/src/CloudGaming/Code/CloudGaming.Code/Game/PlayGameBLL.cs
index 92c4c04..13d2f53 100644
--- a/src/CloudGaming/Code/CloudGaming.Code/Game/PlayGameBLL.cs
+++ b/src/CloudGaming/Code/CloudGaming.Code/Game/PlayGameBLL.cs
@@ -253,10 +253,15 @@ public class PlayGameBLL : CloudGamingBase
var (issuccess, currlogId, diamId) = await this.UserPlayGameDiamondConsumeMoney(-gameDiamondNumHour, gameInfoCache.GameName, gameInfoCache.CurrencyLogId, gameInfoCache.DiamondListId, $"{diamondNumHour}/分钟");
if (!issuccess)
{
+ gameInfoCache.GameUserOperation.Add(new PlayGameUserOperation()
+ {
+ ActionId = (int)PlayGameStatus.用户扣款错误,
+ Content = $"扣除费用{gameDiamondNumHour},用户剩余金额{userInfo.Diamond};"
+ });
+ await gameInfoCache.SaveChangesAsync(this);
throw MessageBox.ErrorShow("扣款出现错误");
}
- //userInfo
- //var userPlayGameTime = await Dao.DaoPhone.Context.T_User_PlayGameTime.Where(it => it.UserId == userId).SumAsync(it => (int?)it.PlayTime);
+ gameInfoCache.SpendingDiamonds += gameDiamondNumHour;
userInfo.UserPlayGameTime += minutes;
await this.SaveUserInfoCacheChangesAsync();
gameInfoCache.CurrencyLogId = currlogId;
@@ -280,7 +285,8 @@ public class PlayGameBLL : CloudGamingBase
//重置一下用户钻石
playGameHeartbeatResponse.Diamond = userInfo.Diamond;
- gameInfoCache.PlayGameHeartbeat();
+
+ gameInfoCache.PlayGameHeartbeat($";累计扣除钻石*{gameInfoCache.SpendingDiamonds};当前游戏每分钟消耗钻石*{playGameHeartbeatResponse.GameConsumeDiamond}");
await gameInfoCache.SaveChangesAsync(this);
}
else
@@ -296,7 +302,7 @@ public class PlayGameBLL : CloudGamingBase
///
- /// 游戏结束
+ /// 用户主动结束游戏
///
///
///
@@ -319,9 +325,9 @@ public class PlayGameBLL : CloudGamingBase
PlayGameUserInfo gameInfoCache = await PlayGameExtend.GetPlayGameUserInfoOrNull(this, userInfo, gameInfo);
if (gameInfoCache == null)
{
- throw MessageBox.ErrorShow("未找到游戏信息");
+ return new BaseResponse(ResponseCode.Success, "游戏已结束", true);
}
- if (gameInfoCache.GameStatus != PlayGameStatus.游戏结束)
+ if (gameInfoCache.GameStatus != PlayGameStatus.用户主动结束游戏)
{
PlayGameCommonSetting playGameQueue = new PlayGameCommonSetting()
{
@@ -389,7 +395,7 @@ public class PlayGameBLL : CloudGamingBase
}
else
{
- gameInfoCache.PlayGameError(paidui);
+ gameInfoCache.PlayGameQueueError(paidui);
back = new BaseResponse(ResponseCode.Error, "排队出现错误", paidui.Data);
}
@@ -483,11 +489,13 @@ public class PlayGameBLL : CloudGamingBase
if (response.IsSuccess)
{
gameInfoCache.DisplayGrade = displayGrade;
-
+ gameInfoCache.UserSwitchDisplayGrade(displayGrade, response);
await gameInfoCache.SaveChangesAsync(this);
}
else
{
+ gameInfoCache.UserSwitchDisplayGradeError(displayGrade, response);
+ await gameInfoCache.SaveChangesAsync(this);
throw MessageBox.ErrorShow("切换失败");
}
return new BaseResponse