修改游戏心跳

This commit is contained in:
zpc 2024-11-29 15:19:24 +08:00
parent 9bf8636ecd
commit 213a26b9b1
2 changed files with 21 additions and 16 deletions

View File

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

View File

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