diff --git a/WeChatApplet/Services/Impl/HomeWorkService.cs b/WeChatApplet/Services/Impl/HomeWorkService.cs index 8f6da2d..addcade 100644 --- a/WeChatApplet/Services/Impl/HomeWorkService.cs +++ b/WeChatApplet/Services/Impl/HomeWorkService.cs @@ -114,40 +114,52 @@ namespace YD_WeChatApplet.Api.Services.Impl { try { - var list = new List + if (homeWorkEntities == null || homeWorkEntities.Count == 0) { - new SportsDataPushDto + _logger.LogWarning("作业同步任务中,homeWorkEntities 为空"); + return; + } + + var pushList = new List(); + + foreach (var homeWork in homeWorkEntities) + { + var dto = new SportsDataPushDto { StudentNo = UserLoginContext.Current.UserNo, SportsItem = AppSettings.JingShiTiJiao.SportsItem, - SportsDate = DateTime.Parse(paramDto.StartTime).ToString("yyyy-MM-dd"), + SportsDate = homeWork.StartTime.ToString("yyyy-MM-dd"), SportsService = AppSettings.JingShiTiJiao.Channel, SportsScene = "addhomework", - SportsDetail = JsonConvert.SerializeObject(homeWorkEntities, new JsonSerializerSettings - { - ReferenceLoopHandling = ReferenceLoopHandling.Ignore - }) - } - }; + SportsDetail = JsonConvert.SerializeObject( + homeWork, + new JsonSerializerSettings + { + ReferenceLoopHandling = ReferenceLoopHandling.Ignore + } + ) + }; - var res = await _jingShiTiJiaoService.PushSportsData(list); + pushList.Add(dto); + } + + var res = await _jingShiTiJiaoService.PushSportsData(pushList); if (res) { - _logger.LogInformation($"数据同步成功,{JsonConvert.SerializeObject(list)}"); + _logger.LogInformation($"作业数据同步成功,共 {pushList.Count} 条"); } else { - _logger.LogError($"数据同步失败,{JsonConvert.SerializeObject(list)}"); + _logger.LogError($"作业数据同步失败,共 {pushList.Count} 条"); } } catch (Exception ex) { - // ❗ 只记录日志,绝不抛出 + // ❗ 只记录日志,绝不影响主流程 _logger.LogError(ex, "作业数据上传失败"); } }); - } /// diff --git a/WeChatApplet/Services/Impl/PatriarchService.cs b/WeChatApplet/Services/Impl/PatriarchService.cs index bc8d511..13fdd9f 100644 --- a/WeChatApplet/Services/Impl/PatriarchService.cs +++ b/WeChatApplet/Services/Impl/PatriarchService.cs @@ -52,12 +52,50 @@ namespace YD_WeChatApplet.Api.Services.Impl entity.UserId = UserLoginContext.Current.UserId; entity.UserName = UserLoginContext.Current.UserName; entity.CreateTime = DateTime.Now; + entity.StudentNo = UserLoginContext.Current.UserNo; if (dto.HomeWorkId == 0) { await _userContext.AddAsync(entity); await _userContext.SaveChangesAsync(); + _ = Task.Run(async () => + { + try + { + var list = new List + { + new SportsDataPushDto + { + StudentNo = entity.StudentNo, + SportsItem = AppSettings.JingShiTiJiao.SportsItem, + SportsDate = entity.CreateTime.ToString("yyyy-MM-dd"), + SportsService = AppSettings.JingShiTiJiao.Channel, + SportsScene = "freetraining", + SportsDetail = JsonConvert.SerializeObject(entity) + } + }; + + var res = await _jingShiTiJiaoService.PushSportsData(list); + + if (res) + { + _logger.LogInformation($"数据同步成功,{JsonConvert.SerializeObject(list)}"); + } + else + { + _logger.LogError($"数据同步失败,{JsonConvert.SerializeObject(list)}"); + } + } + catch (Exception ex) + { + // ❗ 只记录日志,绝不抛出 + _logger.LogError(ex, + "运动数据上传失败,StudentNo={StudentNo}, Id={Id}", + entity.StudentNo, + entity.Id); + } + }); return; }