This commit is contained in:
Putoo
2026-07-16 18:07:00 +08:00
parent 00c2758df2
commit 7c7ac2991a
3 changed files with 17 additions and 5 deletions

View File

@@ -4,6 +4,7 @@ public interface IGameMagicService
{
Task UpdateUserMagicTime(string userId,int areaId);
Task UpdateUserMagicEndTime(string userId, bool isWin);
Task<bool> IsHaveWin(int areaId, string time);
Task<bool> CheckInMagic(string userId);
Task HandleMagicData();
}

View File

@@ -35,6 +35,13 @@ public class GameMagicService(ISqlSugarClient DbClient, IRedisCache redis) : IGa
.ExecuteCommandAsync();
}
public async Task<bool> IsHaveWin(int areaId, string time)
{
var db = DbClient.AsTenant().GetConnectionWithAttr<game_magic>();
return await db.Queryable<game_magic>().Where(it => it.areaId == areaId && it.time == time && it.isWin == 1)
.AnyAsync();
}
public async Task<bool> CheckInMagic(string userId)
{
var db = DbClient.AsTenant().GetConnectionWithAttr<game_magic>();
@@ -83,11 +90,12 @@ public class GameMagicService(ISqlSugarClient DbClient, IRedisCache redis) : IGa
var users = await mapService.GetMapUserByAll(GameConfig.GameMagicMapId, area.areaId, 1, []);
if (users.Count > 0)
{
bool isHaveWin = await IsHaveWin(area.areaId, time);
for (int i = 1; i <= users.Count; i++)
{
string userId = users[i - 1].userId;
bool isWin = false;
if (i == users.Count)
if (i == users.Count && isHaveWin == false)
{
isWin = true;
}

View File

@@ -715,20 +715,23 @@ public class MapController : ControllerBase
if (code == nameof(MapEnum.NpcEventCode.Magic_Event)) //魔城
{
var magicService = App.GetService<IGameMagicService>();
bool isWin = false;
if (TimeAssist.GetHourNum > 221000)
{
var onMapUser = await _mapService.GetMapUser(GameConfig.GameMagicMapId, areaId, 1, [userId], 1);
if (onMapUser.Count == 0)
{
isWin = true;
string time = TimeAssist.GetDateTimeYMDString(0);
if (await magicService.IsHaveWin(areaId, time)==false)
{
isWin = true;
}
}
}
var magicService = App.GetService<IGameMagicService>();
await magicService.UpdateUserMagicEndTime(userId, isWin);
await _mapService.UpdateUserOnMap(onMap, GameConfig.GameMagicInMapId);//设置地图
await _mapService.UpdateUserOnMap(onMap, GameConfig.GameMagicInMapId); //设置地图
return PoAction.Ok(0, "魔城成功退出!");
}