Inital working refactor
This commit is contained in:
parent
6f177ee2ff
commit
7f6462d088
@ -27,7 +27,6 @@ public class BaidController : BaseController<BaidController>
|
|||||||
}
|
}
|
||||||
|
|
||||||
response = Mappers.BaidResponseMapper.Map3906WithPostProcess(commonResponse);
|
response = Mappers.BaidResponseMapper.Map3906WithPostProcess(commonResponse);
|
||||||
response.Result = 1;
|
|
||||||
response.PlayerType = 0;
|
response.PlayerType = 0;
|
||||||
response.IsDispAchievementTypeSet = true;
|
response.IsDispAchievementTypeSet = true;
|
||||||
response.IsDispSouuchiOn = true;
|
response.IsDispSouuchiOn = true;
|
||||||
@ -58,7 +57,6 @@ public class BaidController : BaseController<BaidController>
|
|||||||
}
|
}
|
||||||
|
|
||||||
response = Mappers.BaidResponseMapper.Map3209WithPostProcess(commonResponse);
|
response = Mappers.BaidResponseMapper.Map3209WithPostProcess(commonResponse);
|
||||||
response.Result = 1;
|
|
||||||
response.PlayerType = 0;
|
response.PlayerType = 0;
|
||||||
response.IsDispAchievementTypeSet = true;
|
response.IsDispAchievementTypeSet = true;
|
||||||
response.IsDispSouuchiOn = true;
|
response.IsDispSouuchiOn = true;
|
||||||
|
@ -5,13 +5,6 @@ namespace TaikoLocalServer.Controllers.Game;
|
|||||||
[ApiController]
|
[ApiController]
|
||||||
public class GetAiDataController : BaseController<GetAiDataController>
|
public class GetAiDataController : BaseController<GetAiDataController>
|
||||||
{
|
{
|
||||||
private readonly IUserDatumService userDatumService;
|
|
||||||
|
|
||||||
public GetAiDataController(IUserDatumService userDatumService)
|
|
||||||
{
|
|
||||||
this.userDatumService = userDatumService;
|
|
||||||
}
|
|
||||||
|
|
||||||
[HttpPost("/v12r08_ww/chassis/getaidata_6x30b9nr.php")]
|
[HttpPost("/v12r08_ww/chassis/getaidata_6x30b9nr.php")]
|
||||||
[Produces("application/protobuf")]
|
[Produces("application/protobuf")]
|
||||||
public async Task<IActionResult> GetAiData([FromBody] GetAiDataRequest request)
|
public async Task<IActionResult> GetAiData([FromBody] GetAiDataRequest request)
|
||||||
@ -20,7 +13,6 @@ public class GetAiDataController : BaseController<GetAiDataController>
|
|||||||
|
|
||||||
var commonResponse = await Mediator.Send(new GetAiDataQuery(request.Baid));
|
var commonResponse = await Mediator.Send(new GetAiDataQuery(request.Baid));
|
||||||
var response = Mappers.AiDataResponseMapper.MapTo3906(commonResponse);
|
var response = Mappers.AiDataResponseMapper.MapTo3906(commonResponse);
|
||||||
response.Result = 1;
|
|
||||||
return Ok(response);
|
return Ok(response);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -32,7 +24,6 @@ public class GetAiDataController : BaseController<GetAiDataController>
|
|||||||
|
|
||||||
var commonResponse = await Mediator.Send(new GetAiDataQuery((uint)request.Baid));
|
var commonResponse = await Mediator.Send(new GetAiDataQuery((uint)request.Baid));
|
||||||
var response = Mappers.AiDataResponseMapper.MapTo3209(commonResponse);
|
var response = Mappers.AiDataResponseMapper.MapTo3209(commonResponse);
|
||||||
response.Result = 1;
|
|
||||||
return Ok(response);
|
return Ok(response);
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -6,13 +6,6 @@ namespace TaikoLocalServer.Controllers.Game;
|
|||||||
[ApiController]
|
[ApiController]
|
||||||
public class GetAiScoreController : BaseController<GetAiScoreController>
|
public class GetAiScoreController : BaseController<GetAiScoreController>
|
||||||
{
|
{
|
||||||
private readonly IAiDatumService aiDatumService;
|
|
||||||
|
|
||||||
public GetAiScoreController(IAiDatumService aiDatumService)
|
|
||||||
{
|
|
||||||
this.aiDatumService = aiDatumService;
|
|
||||||
}
|
|
||||||
|
|
||||||
[HttpPost("/v12r08_ww/chassis/getaiscore_lp38po4w.php")]
|
[HttpPost("/v12r08_ww/chassis/getaiscore_lp38po4w.php")]
|
||||||
[Produces("application/protobuf")]
|
[Produces("application/protobuf")]
|
||||||
public async Task<IActionResult> GetAiScore([FromBody] GetAiScoreRequest request)
|
public async Task<IActionResult> GetAiScore([FromBody] GetAiScoreRequest request)
|
||||||
@ -21,7 +14,6 @@ public class GetAiScoreController : BaseController<GetAiScoreController>
|
|||||||
|
|
||||||
var commonResponse = await Mediator.Send(new GetAiScoreQuery(request.Baid, request.SongNo, request.Level));
|
var commonResponse = await Mediator.Send(new GetAiScoreQuery(request.Baid, request.SongNo, request.Level));
|
||||||
var response = AiScoreMappers.MapTo3906(commonResponse);
|
var response = AiScoreMappers.MapTo3906(commonResponse);
|
||||||
response.Result = 1;
|
|
||||||
|
|
||||||
return Ok(response);
|
return Ok(response);
|
||||||
}
|
}
|
||||||
@ -35,7 +27,6 @@ public class GetAiScoreController : BaseController<GetAiScoreController>
|
|||||||
var commonResponse =
|
var commonResponse =
|
||||||
await Mediator.Send(new GetAiScoreQuery((uint)request.Baid, request.SongNo, request.Level));
|
await Mediator.Send(new GetAiScoreQuery((uint)request.Baid, request.SongNo, request.Level));
|
||||||
var response = AiScoreMappers.MapTo3209(commonResponse);
|
var response = AiScoreMappers.MapTo3209(commonResponse);
|
||||||
response.Result = 1;
|
|
||||||
|
|
||||||
return Ok(response);
|
return Ok(response);
|
||||||
}
|
}
|
||||||
|
@ -20,6 +20,7 @@ public class BaidQueryHandler(
|
|||||||
logger.LogInformation("New user with access code {AccessCode}", request.AccessCode);
|
logger.LogInformation("New user with access code {AccessCode}", request.AccessCode);
|
||||||
return new CommonBaidResponse
|
return new CommonBaidResponse
|
||||||
{
|
{
|
||||||
|
Result = 1,
|
||||||
IsNewUser = true,
|
IsNewUser = true,
|
||||||
Baid = context.Cards.Any() ? context.Cards.AsEnumerable().Max(c => c.Baid) + 1 : 1
|
Baid = context.Cards.Any() ? context.Cards.AsEnumerable().Max(c => c.Baid) + 1 : 1
|
||||||
};
|
};
|
||||||
@ -108,6 +109,7 @@ public class BaidQueryHandler(
|
|||||||
|
|
||||||
return new CommonBaidResponse
|
return new CommonBaidResponse
|
||||||
{
|
{
|
||||||
|
Result = 1,
|
||||||
IsNewUser = false,
|
IsNewUser = false,
|
||||||
Baid = baid,
|
Baid = baid,
|
||||||
MyDonName = userData.MyDonName,
|
MyDonName = userData.MyDonName,
|
||||||
|
@ -25,6 +25,7 @@ public class GetAiDataQueryHandler : IRequestHandler<GetAiDataQuery, CommonAiDat
|
|||||||
user.ThrowIfNull($"User with baid {request.Baid} does not exist!");
|
user.ThrowIfNull($"User with baid {request.Baid} does not exist!");
|
||||||
var response = new CommonAiDataResponse
|
var response = new CommonAiDataResponse
|
||||||
{
|
{
|
||||||
|
Result = 1,
|
||||||
TotalWinnings = (uint)user.AiWinCount,
|
TotalWinnings = (uint)user.AiWinCount,
|
||||||
InputMedian = "1",
|
InputMedian = "1",
|
||||||
InputVariance = "0"
|
InputVariance = "0"
|
||||||
|
@ -7,18 +7,9 @@ namespace TaikoLocalServer.Handlers;
|
|||||||
|
|
||||||
public record GetAiScoreQuery(uint Baid, uint SongId, uint Level) : IRequest<CommonAiScoreResponse>;
|
public record GetAiScoreQuery(uint Baid, uint SongId, uint Level) : IRequest<CommonAiScoreResponse>;
|
||||||
|
|
||||||
public class GetAiScoreQueryHandler : IRequestHandler<GetAiScoreQuery, CommonAiScoreResponse>
|
public class GetAiScoreQueryHandler(TaikoDbContext context, ILogger<GetAiScoreQueryHandler> logger)
|
||||||
|
: IRequestHandler<GetAiScoreQuery, CommonAiScoreResponse>
|
||||||
{
|
{
|
||||||
private readonly TaikoDbContext context;
|
|
||||||
|
|
||||||
private readonly ILogger<GetAiScoreQueryHandler> logger;
|
|
||||||
|
|
||||||
public GetAiScoreQueryHandler(TaikoDbContext context, ILogger<GetAiScoreQueryHandler> logger)
|
|
||||||
{
|
|
||||||
this.context = context;
|
|
||||||
this.logger = logger;
|
|
||||||
}
|
|
||||||
|
|
||||||
public async Task<CommonAiScoreResponse> Handle(GetAiScoreQuery request, CancellationToken cancellationToken)
|
public async Task<CommonAiScoreResponse> Handle(GetAiScoreQuery request, CancellationToken cancellationToken)
|
||||||
{
|
{
|
||||||
var difficulty = (Difficulty)request.Level;
|
var difficulty = (Difficulty)request.Level;
|
||||||
@ -29,6 +20,14 @@ public class GetAiScoreQueryHandler : IRequestHandler<GetAiScoreQuery, CommonAiS
|
|||||||
datum.Difficulty == difficulty)
|
datum.Difficulty == difficulty)
|
||||||
.Include(datum => datum.AiSectionScoreData)
|
.Include(datum => datum.AiSectionScoreData)
|
||||||
.FirstOrDefaultAsync(cancellationToken);
|
.FirstOrDefaultAsync(cancellationToken);
|
||||||
return aiData is null ? new CommonAiScoreResponse() : AiScoreMappers.MapToCommonAiScoreResponse(aiData);
|
if (aiData is null)
|
||||||
|
{
|
||||||
|
return new CommonAiScoreResponse
|
||||||
|
{
|
||||||
|
Result = 1
|
||||||
|
};
|
||||||
|
}
|
||||||
|
aiData.AiSectionScoreData.Sort((a, b) => a.SectionIndex.CompareTo(b.SectionIndex));
|
||||||
|
return AiScoreMappers.MapAsSuccess(aiData);
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -30,19 +30,26 @@ public class GetSelfBestQueryHandler(IGameDataService gameDataService, TaikoDbCo
|
|||||||
(datum.Difficulty == Difficulty.UraOni && requestDifficulty == Difficulty.Oni)))
|
(datum.Difficulty == Difficulty.UraOni && requestDifficulty == Difficulty.Oni)))
|
||||||
.OrderBy(datum => datum.SongId)
|
.OrderBy(datum => datum.SongId)
|
||||||
.ToListAsync(cancellationToken);
|
.ToListAsync(cancellationToken);
|
||||||
|
var selfBestList = selfbestScores.ConvertAll(datum => new CommonSelfBestResponse.SelfBestData
|
||||||
|
{
|
||||||
|
SongNo = datum.SongId,
|
||||||
|
SelfBestScore = datum.BestScore,
|
||||||
|
UraBestScore = datum.Difficulty == Difficulty.UraOni ? datum.BestScore : 0,
|
||||||
|
SelfBestScoreRate = datum.BestRate,
|
||||||
|
UraBestScoreRate = datum.Difficulty == Difficulty.UraOni ? datum.BestRate : 0
|
||||||
|
});
|
||||||
|
// For songs that don't have a score, add them to the response with 0s
|
||||||
|
var missingSongs = requestSet.Except(selfBestList.Select(datum => datum.SongNo));
|
||||||
|
selfBestList.AddRange(missingSongs.Select(songNo => new CommonSelfBestResponse.SelfBestData
|
||||||
|
{
|
||||||
|
SongNo = songNo
|
||||||
|
}));
|
||||||
|
|
||||||
var response = new CommonSelfBestResponse
|
var response = new CommonSelfBestResponse
|
||||||
{
|
{
|
||||||
Result = 1,
|
Result = 1,
|
||||||
Level = request.Difficulty,
|
Level = request.Difficulty,
|
||||||
ArySelfbestScores = selfbestScores.ConvertAll(datum => new CommonSelfBestResponse.SelfBestData
|
ArySelfbestScores = selfBestList
|
||||||
{
|
|
||||||
SongNo = datum.SongId,
|
|
||||||
SelfBestScore = datum.BestScore,
|
|
||||||
UraBestScore = datum.Difficulty == Difficulty.UraOni ? datum.BestScore : 0,
|
|
||||||
SelfBestScoreRate = datum.BestRate,
|
|
||||||
UraBestScoreRate = datum.Difficulty == Difficulty.UraOni ? datum.BestRate : 0
|
|
||||||
})
|
|
||||||
};
|
};
|
||||||
|
|
||||||
return response;
|
return response;
|
||||||
|
@ -54,6 +54,8 @@ public class UpdatePlayResultCommandHandler(TaikoDbContext context, ILogger<Upda
|
|||||||
UpdateDanPlayData(danPlayData, playResultData);
|
UpdateDanPlayData(danPlayData, playResultData);
|
||||||
context.DanScoreData.Update(danPlayData);
|
context.DanScoreData.Update(danPlayData);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
await context.SaveChangesAsync(cancellationToken);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -10,6 +10,13 @@ public static partial class AiScoreMappers
|
|||||||
[MapProperty(nameof(AiScoreDatum.AiSectionScoreData), nameof(CommonAiScoreResponse.AryBestSectionDatas))]
|
[MapProperty(nameof(AiScoreDatum.AiSectionScoreData), nameof(CommonAiScoreResponse.AryBestSectionDatas))]
|
||||||
public static partial CommonAiScoreResponse MapToCommonAiScoreResponse(AiScoreDatum datum);
|
public static partial CommonAiScoreResponse MapToCommonAiScoreResponse(AiScoreDatum datum);
|
||||||
|
|
||||||
|
public static CommonAiScoreResponse MapAsSuccess(AiScoreDatum datum)
|
||||||
|
{
|
||||||
|
var response= MapToCommonAiScoreResponse(datum);
|
||||||
|
response.Result = 1;
|
||||||
|
return response;
|
||||||
|
}
|
||||||
|
|
||||||
public static partial GetAiScoreResponse MapTo3906(CommonAiScoreResponse response);
|
public static partial GetAiScoreResponse MapTo3906(CommonAiScoreResponse response);
|
||||||
|
|
||||||
public static partial Models.v3209.GetAiScoreResponse MapTo3209(CommonAiScoreResponse response);
|
public static partial Models.v3209.GetAiScoreResponse MapTo3209(CommonAiScoreResponse response);
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
public class CommonAiDataResponse
|
public class CommonAiDataResponse
|
||||||
{
|
{
|
||||||
|
public uint Result { get; set; }
|
||||||
public uint TotalWinnings { get; set; }
|
public uint TotalWinnings { get; set; }
|
||||||
public string InputMedian { get; set; } = "1";
|
public string InputMedian { get; set; } = "1";
|
||||||
public string InputVariance { get; set; } = "0";
|
public string InputVariance { get; set; } = "0";
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
public class CommonAiScoreResponse
|
public class CommonAiScoreResponse
|
||||||
{
|
{
|
||||||
|
public uint Result { get; set; }
|
||||||
public List<CommonAiBestSectionData> AryBestSectionDatas { get; set; } = new();
|
public List<CommonAiBestSectionData> AryBestSectionDatas { get; set; } = new();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
public class CommonBaidResponse
|
public class CommonBaidResponse
|
||||||
{
|
{
|
||||||
|
public uint Result { get; set; }
|
||||||
public bool IsNewUser { get; set; }
|
public bool IsNewUser { get; set; }
|
||||||
public uint Baid { get; set; }
|
public uint Baid { get; set; }
|
||||||
public string MyDonName { get; set; } = string.Empty;
|
public string MyDonName { get; set; } = string.Empty;
|
||||||
|
Loading…
Reference in New Issue
Block a user