From 39ce239956fae830a65eafb3fc45f962757c00ed Mon Sep 17 00:00:00 2001
From: tanglong <842690096@qq.com>
Date: Mon, 19 Jan 2026 17:48:03 +0800
Subject: [PATCH] zuoye tongbu
---
WeChatApplet/Services/Impl/HomeWorkService.cs | 50 +++++++++++++------
.../Services/Impl/JingShiTiJiaoService.cs | 1 +
.../SmartSportsEntitys/S_HomeWorkStudents.cs | 4 +-
3 files changed, 39 insertions(+), 16 deletions(-)
diff --git a/WeChatApplet/Services/Impl/HomeWorkService.cs b/WeChatApplet/Services/Impl/HomeWorkService.cs
index 20150b4..8136aaf 100644
--- a/WeChatApplet/Services/Impl/HomeWorkService.cs
+++ b/WeChatApplet/Services/Impl/HomeWorkService.cs
@@ -124,23 +124,42 @@ namespace YD_WeChatApplet.Api.Services.Impl
foreach (var homeWork in homeWorkEntities)
{
- var dto = new SportsDataPushDto
+ if (homeWork.HomeWorkStudents == null || homeWork.HomeWorkStudents.Count == 0)
{
- StudentNo = UserLoginContext.Current.UserNo,
- SportsItem = AppSettings.JingShiTiJiao.SportsItem,
- SportsDate = homeWork.StartTime.ToString("yyyy-MM-dd"),
- SportsService = AppSettings.JingShiTiJiao.Channel,
- SportsScene = "addhomework",
- SportsDetail = JsonConvert.SerializeObject(
- homeWork,
- new JsonSerializerSettings
- {
- ReferenceLoopHandling = ReferenceLoopHandling.Ignore
- }
- )
- };
+ _logger.LogWarning($"作业[{homeWork.Id}] 未关联学生");
+ continue;
+ }
- pushList.Add(dto);
+ foreach (var student in homeWork.HomeWorkStudents)
+ {
+ var dto = new SportsDataPushDto
+ {
+ // 👉 每个学生一条
+ StudentNo = student.StudentNo,
+
+ SportsItem = AppSettings.JingShiTiJiao.SportsItem,
+ SportsDate = homeWork.StartTime.ToString("yyyy-MM-dd"),
+ SportsService = AppSettings.JingShiTiJiao.Channel,
+ SportsScene = "addhomework",
+
+ // 👉 只序列化当前作业 + 当前学生
+ SportsDetail = JsonConvert.SerializeObject(
+ student,
+ new JsonSerializerSettings
+ {
+ ReferenceLoopHandling = ReferenceLoopHandling.Ignore
+ }
+ )
+ };
+
+ pushList.Add(dto);
+ }
+ }
+
+ if (pushList.Count == 0)
+ {
+ _logger.LogWarning("作业同步任务中,没有可推送的数据");
+ return;
}
var res = await _jingShiTiJiaoService.PushSportsData(pushList);
@@ -160,6 +179,7 @@ namespace YD_WeChatApplet.Api.Services.Impl
_logger.LogError(ex, "作业数据上传失败");
}
});
+
}
///
diff --git a/WeChatApplet/Services/Impl/JingShiTiJiaoService.cs b/WeChatApplet/Services/Impl/JingShiTiJiaoService.cs
index a9fc10a..92bd682 100644
--- a/WeChatApplet/Services/Impl/JingShiTiJiaoService.cs
+++ b/WeChatApplet/Services/Impl/JingShiTiJiaoService.cs
@@ -78,6 +78,7 @@ namespace YD_WeChatApplet.Api.Services.Impl
}
///
+ ///
/// 根据班级编号获取学生列表
///
///
diff --git a/WeChatApplet/SmartSportsEntitys/S_HomeWorkStudents.cs b/WeChatApplet/SmartSportsEntitys/S_HomeWorkStudents.cs
index 1c025cb..04c73ad 100644
--- a/WeChatApplet/SmartSportsEntitys/S_HomeWorkStudents.cs
+++ b/WeChatApplet/SmartSportsEntitys/S_HomeWorkStudents.cs
@@ -1,4 +1,5 @@
using Microsoft.EntityFrameworkCore;
+using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
@@ -12,7 +13,7 @@ namespace YD_WeChatApplet.Api.SmartSportsEntitys
/// 作业学生表
///
[Table("S_HomeWorkStudents")]
- public class S_HomeWorkStudents
+ public class S_HomeWorkStudents
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
@@ -100,6 +101,7 @@ namespace YD_WeChatApplet.Api.SmartSportsEntitys
///
/// 导航属性
///
+ [JsonIgnore]
public S_HomeWork HomeWork { get; set; }
}
}