From 213a26b9b1907b154abfa40ad5f27fb7a8ffe942 Mon Sep 17 00:00:00 2001 From: zpc Date: Fri, 29 Nov 2024 15:19:24 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=B8=B8=E6=88=8F=E5=BF=83?= =?UTF-8?q?=E8=B7=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Code/CloudGaming.Code/Game/PlayGameBLL.cs | 35 +++++++++++-------- .../CloudGaming.Code/Game/PlayGameExtend.cs | 2 +- 2 files changed, 21 insertions(+), 16 deletions(-) diff --git a/src/CloudGaming/Code/CloudGaming.Code/Game/PlayGameBLL.cs b/src/CloudGaming/Code/CloudGaming.Code/Game/PlayGameBLL.cs index 620c433..1e5b60f 100644 --- a/src/CloudGaming/Code/CloudGaming.Code/Game/PlayGameBLL.cs +++ b/src/CloudGaming/Code/CloudGaming.Code/Game/PlayGameBLL.cs @@ -222,11 +222,11 @@ public class PlayGameBLL : CloudGamingBase if (minutes >= 1) { var gameDiamondNumHour = (int)(diamondNumHour * minutes); - //当前游玩的扣费金额 - if (gameDiamondNumHour > 0) + //当前游玩的扣费金额,如果扣费金额不足1钻石,则等待下一次扣费 + if (gameDiamondNumHour >= 1) { //如果游玩余额大于用户可扣款的余额 - if (gameDiamondNumHour > userInfo.Diamond) + if (gameDiamondNumHour >= userInfo.Diamond) { //去数据库中在验证一下 //(int)userCurrency.GetUserCurrency(UserCurrencyType.钻石); @@ -256,30 +256,35 @@ public class PlayGameBLL : CloudGamingBase gameInfoCache.DiamondListId = diamId; //修改最后扣费时间 gameInfoCache.LastChargingAt = (gameInfoCache.LastChargingAt ?? gameInfoCache.CreateDateTime).AddMinutes(minutes); - gameInfoCache.PlayGameHeartbeat(); - await gameInfoCache.SaveChangesAsync(this); await Dao.DaoUser.Context.SaveChangesAsync(); - //用户剩余游玩时间 - if (userInfo.Diamond > 0) - { - var userPlayGameTime = (int)(userInfo.Diamond / diamondNumHour); - playGameHeartbeatResponse.UserPlayGameTime = userPlayGameTime; - } - - //重置一下用户钻石 - playGameHeartbeatResponse.Diamond = userInfo.Diamond; } - } + //用户剩余游玩时间 + if (userInfo.Diamond > 0) + { + var userPlayGameTime = (int)(userInfo.Diamond / diamondNumHour); + playGameHeartbeatResponse.UserPlayGameTime = userPlayGameTime; + } + else + { + playGameHeartbeatResponse.UserPlayGameTime = 0; + } + + //重置一下用户钻石 + playGameHeartbeatResponse.Diamond = userInfo.Diamond; + gameInfoCache.PlayGameHeartbeat(); + await gameInfoCache.SaveChangesAsync(this); } else { gameInfoCache.PlayGameHeartbeat($",游戏免费游玩"); await gameInfoCache.SaveChangesAsync(this); } + return playGameHeartbeatResponse; + } diff --git a/src/CloudGaming/Code/CloudGaming.Code/Game/PlayGameExtend.cs b/src/CloudGaming/Code/CloudGaming.Code/Game/PlayGameExtend.cs index 17c59e2..0949779 100644 --- a/src/CloudGaming/Code/CloudGaming.Code/Game/PlayGameExtend.cs +++ b/src/CloudGaming/Code/CloudGaming.Code/Game/PlayGameExtend.cs @@ -217,7 +217,7 @@ namespace CloudGaming.Code.Game playGameUserInfo.GameUserOperation.Add(new PlayGameUserOperation() { OperationDateTime = DateTime.Now, - Content = $"用户持续游戏中,累计游玩时间{(playGameUserInfo.PlayGameTotalSeconds / 60).ToString("0.##")}{desc};", + Content = $"用户持续游戏中,累计游玩时间{(playGameUserInfo.PlayGameTotalSeconds / 60).ToString("0.##")}分钟{desc};", }); return true; }