完善平台报名数据上传功能

This commit is contained in:
马梓彭 2026-10-30 15:34:12 +08:00
parent f4e5db3f52
commit 74311db71a
2 changed files with 24 additions and 3 deletions

View File

@ -3,6 +3,7 @@ using System.Text;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using YD_Event.Application.CitizenSports.Dtos;
using YD_Event.Core.Options;
@ -309,8 +310,7 @@ public sealed class CitizenSportsPlatformService : ITransient
try
{
return JsonConvert.DeserializeObject<CitizenSportsPlatformResponse<T>>(responseText)
?? throw new JsonException("响应为空");
return DeserializePlatformResponse<T>(responseText);
}
catch (JsonException exception)
{
@ -319,6 +319,27 @@ public sealed class CitizenSportsPlatformService : ITransient
}
}
internal static CitizenSportsPlatformResponse<T> DeserializePlatformResponse<T>(string responseText)
{
var envelope = JsonConvert.DeserializeObject<CitizenSportsPlatformResponse<JToken>>(responseText)
?? throw new JsonException("响应为空");
T? data = default;
if (envelope.Data?.Type == JTokenType.Object)
data = envelope.Data.ToObject<T>();
else if (envelope.IsSuccess && envelope.Data?.Type is not (null or JTokenType.Null))
throw new JsonException("成功响应的 data 不是对象");
return new CitizenSportsPlatformResponse<T>
{
Code = envelope.Code,
Status = envelope.Status,
Message = envelope.Message,
Msg = envelope.Msg,
Data = data,
SystemTime = envelope.SystemTime
};
}
private CitizenSportsPlatformOptions GetValidatedOptions()
{
var options = _optionsMonitor.CurrentValue;

View File

@ -150,7 +150,7 @@ internal sealed class CitizenSportsPlayer
[JsonProperty("playerPhone", NullValueHandling = NullValueHandling.Ignore)]
public string? PlayerPhone { get; set; }
[JsonProperty("playerBirth", NullValueHandling = NullValueHandling.Ignore)]
[JsonProperty("playerBirthday", NullValueHandling = NullValueHandling.Ignore)]
public string? PlayerBirth { get; set; }
[JsonProperty("groupName", NullValueHandling = NullValueHandling.Ignore)]