From 04572bca1df35e1901a6da2e30d1b1f9db978f03 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E8=82=A5=E7=BE=8A?= <1048382248@qq.com> Date: Thu, 4 Dec 2025 17:56:47 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=20=E8=80=83=E8=AF=95?= =?UTF-8?q?=E6=88=90=E7=BB=A9=E5=AF=BC=E5=85=A5=E6=97=B6=E4=B8=8D=E6=A0=A1?= =?UTF-8?q?=E9=AA=8C=E5=BE=97=E5=88=86=E7=B1=BB=E5=9E=8B=20=E4=BC=98?= =?UTF-8?q?=E5=8C=96=20=E6=89=80=E6=9C=89=E8=AF=B7=E6=B1=82=E6=93=8D?= =?UTF-8?q?=E4=BD=9C=E9=83=BD=E8=AE=B0=E5=BD=95=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/Dto/ExamClassInfoDto.cs | 20 +++++----- .../Controllers/ExamClassInfoController.cs | 40 +++++++++++++------ Learn.Archives.API/Expand/HttpFilter.cs | 6 +-- 3 files changed, 40 insertions(+), 26 deletions(-) diff --git a/Learn.Archives.API/Controllers/Dto/ExamClassInfoDto.cs b/Learn.Archives.API/Controllers/Dto/ExamClassInfoDto.cs index a18a342..ef40a07 100644 --- a/Learn.Archives.API/Controllers/Dto/ExamClassInfoDto.cs +++ b/Learn.Archives.API/Controllers/Dto/ExamClassInfoDto.cs @@ -65,61 +65,61 @@ namespace Learn.Archives.API.Controllers.Dto /// 语文 /// [ExcelColumnName("语文")] - public decimal 语文 { get; set; } + public string 语文 { get; set; } /// /// 数学 /// [ExcelColumnName("数学")] - public decimal 数学 { get; set; } + public string 数学 { get; set; } /// /// 英语 /// [ExcelColumnName("英语")] - public decimal 英语 { get; set; } + public string 英语 { get; set; } /// /// 物理 /// [ExcelColumnName("物理")] - public decimal 物理 { get; set; } + public string 物理 { get; set; } /// /// 化学 /// [ExcelColumnName("化学")] - public decimal 化学 { get; set; } + public string 化学 { get; set; } /// /// 生物 /// [ExcelColumnName("生物")] - public decimal 生物 { get; set; } + public string 生物 { get; set; } /// /// 政治 /// [ExcelColumnName("政治")] - public decimal 政治 { get; set; } + public string 政治 { get; set; } /// /// 历史 /// [ExcelColumnName("历史")] - public decimal 历史 { get; set; } + public string 历史 { get; set; } /// /// 地理 /// [ExcelColumnName("地理")] - public decimal 地理 { get; set; } + public string 地理 { get; set; } /// /// 赋分后总分 /// [ExcelColumnName("赋分后总分")] - public decimal 赋分后总分 { get; set; } + public string 赋分后总分 { get; set; } /// /// 总分资源校排名 diff --git a/Learn.Archives.API/Controllers/ExamClassInfoController.cs b/Learn.Archives.API/Controllers/ExamClassInfoController.cs index d87d527..1318266 100644 --- a/Learn.Archives.API/Controllers/ExamClassInfoController.cs +++ b/Learn.Archives.API/Controllers/ExamClassInfoController.cs @@ -130,6 +130,9 @@ namespace Learn.Archives.API.Controllers errorExcelInfo.Add(s); return null; } + var assignScore = decimal.TryParse(s.赋分后总分.Trim(), out decimal ass) + ? ass + : 0m; return new ExamUserInfo() { ExamId = exam.Id, @@ -143,7 +146,7 @@ namespace Learn.Archives.API.Controllers SchoolId = classInfo.SchoolId, Type = exam.Type, SubjectDic = sub, - AssignScore = s.赋分后总分, + AssignScore = assignScore, AssignRanking = s.资源校排名, }; }).ToList(); @@ -172,20 +175,20 @@ namespace Learn.Archives.API.Controllers { List resultList = new List() { new ImportExamInfo() { - School="例子学校[导入时候请删除]", + School="例子学校[导入时候请删除本行]", Class="测试班级", Grade="高2028", Student="学生姓名", - 语文=80.5m, - 化学=80.5m, - 数学=80m, - 历史 = 80m, - 地理 = 80m, - 政治 = 80m, - 物理 = 80m, - 生物 = 80m, - 英语 = 80.5m, - 赋分后总分=721.5m + 语文 = "得分 例: 80.5", + 化学 = "得分 例: 80.5", + 数学 = "得分 例: 80.5", + 历史 = "得分 例: 80.5", + 地理 = "得分 例: 80.5", + 政治 = "得分 例: 80.5", + 物理 = "得分 例: 80.5", + 生物 = "得分 例: 80.5", + 英语 = "得分 例: 80.5", + 赋分后总分="赋分后总分", } }; return File(resultList.ExportExcel(), "application/ms-excel", $"导入成绩模板{DateTime.Now.ToString("MMddHHmm")}.xlsx"); @@ -287,7 +290,7 @@ namespace Learn.Archives.API.Controllers [NonAction] private Dictionary? ImportExamInfoSubjectDic(ImportExamInfo info) { - return new Dictionary() + var c = new Dictionary() { { SubjectEnum.语文, info.语文}, { SubjectEnum.数学, info.数学}, @@ -299,6 +302,17 @@ namespace Learn.Archives.API.Controllers { SubjectEnum.历史, info.历史}, { SubjectEnum.地理, info.地理}, }; + var res = new Dictionary(); + foreach (var item in c) + { + if(string.IsNullOrWhiteSpace(item.Value)) + res.Add(item.Key, 0m); + else if (decimal.TryParse(item.Value.Trim(), out decimal r)) + res.Add(item.Key, r); + else + res.Add(item.Key, 0m); + } + return res; } [NonAction] private static decimal? SubjectScore(ExamUserInfo info, SubjectEnum? s) diff --git a/Learn.Archives.API/Expand/HttpFilter.cs b/Learn.Archives.API/Expand/HttpFilter.cs index 585faa4..4e0687d 100644 --- a/Learn.Archives.API/Expand/HttpFilter.cs +++ b/Learn.Archives.API/Expand/HttpFilter.cs @@ -152,8 +152,8 @@ namespace Learn.Archives.API.Expand { //特殊处理:ResultIgnore,不进行返回结果包装,原样输出 var endpoint = context.GetEndpoint(); - // 直接返回原始结果,不封装 - if (endpoint?.Metadata.GetMetadata() == null&& e is null) return; + // 所有数据不允许删除 + //if (endpoint?.Metadata.GetMetadata() == null&& e is null) return; string request = null; var logId = Yitter.IdGenerator.YitIdHelper.NextId(); @@ -204,7 +204,7 @@ namespace Learn.Archives.API.Expand Url = context.Request.Path + context.Request.QueryString, Method = context.Request.Method, Request = request, - IP = $"{userInfo.Scope} {context.Connection?.RemoteIpAddress?.ToString()}", + IP = $"{userInfo.Scope} {userInfo.Name} {context.Connection?.RemoteIpAddress?.ToString()}", ResponseCode = result?.Code ?? -1, Response = (result != null ? JsonSerializer.Serialize(result) : null) , Authorization = context.Request.Headers.ContainsKey("Authorization")