From b28931ce0fcfbb964aa1207169e67ceeffce220d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E8=82=A5=E7=BE=8A?= <1048382248@qq.com> Date: Tue, 26 Aug 2025 17:22:55 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=20=E8=80=83=E8=AF=95?= =?UTF-8?q?=E5=AF=BC=E5=85=A5=E5=AD=A6=E7=94=9F=E6=88=90=E7=BB=A9=E6=8E=92?= =?UTF-8?q?=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/ExamClassInfoController.cs | 3 +- .../Controllers/StudentController.cs | 30 +++++++++++++++++-- .../Common/Expand/SqlSugarExpand.cs | 21 +++++-------- Learn.Archives.Core/Common/Repository.cs | 10 ++++--- 4 files changed, 44 insertions(+), 20 deletions(-) diff --git a/Learn.Archives.API/Controllers/ExamClassInfoController.cs b/Learn.Archives.API/Controllers/ExamClassInfoController.cs index 33632fe..3758d59 100644 --- a/Learn.Archives.API/Controllers/ExamClassInfoController.cs +++ b/Learn.Archives.API/Controllers/ExamClassInfoController.cs @@ -79,7 +79,6 @@ namespace Learn.Archives.API.Controllers if (dataList == null || dataList.Count() == 0) Oh.ModelError("导入失败:无有效数据"); - //todo //处理数据 var errorExcelInfo = new List(); var insertUserInfo = new List(); @@ -97,6 +96,8 @@ namespace Learn.Archives.API.Controllers if (school == null) Oh.ModelError($"导入失败:学校 [{schoolArr.Key}] 未找到!"); var gradeInfo = GradeHelper.GetStudentGradeBaseByGrade(schoolArr.First().Grade); if (gradeInfo == null) Oh.ModelError($"导入失败:学校 [{schoolArr.Key}] 年级[{schoolArr.First().Grade}]不符合规范!"); + if(exam.Level != GradeHelper.GetGrade(gradeInfo.GradeLevel,gradeInfo.GradeYear).ToEnum()) + Oh.ModelError($"导入失败:导入年级[{schoolArr.First().Grade}] 与 考试年级不匹配!"); //学校下的所属班级 var classArr = await db.Queryable().Where(c => c.SchoolId == school.Id && c.GradeLevel == gradeInfo.GradeLevel && diff --git a/Learn.Archives.API/Controllers/StudentController.cs b/Learn.Archives.API/Controllers/StudentController.cs index 27e62a9..1435f77 100644 --- a/Learn.Archives.API/Controllers/StudentController.cs +++ b/Learn.Archives.API/Controllers/StudentController.cs @@ -1,4 +1,5 @@ using Aliyun.OSS; +using Dm; using Learn.Archives.API.Controllers.Dto; using Learn.Archives.API.Expand; using Learn.Archives.Core.Common; @@ -138,9 +139,19 @@ namespace Learn.Archives.API.Controllers if (dataList == null || dataList.Count() == 0) Oh.ModelError("导入失败:无有效数据"); var insertInfo = new List(); + var impError = new List(); var userCenterImp = new List(); foreach (var s in dataList) { + + var ginfo = GradeHelper.GetStudentGradeBaseByGrade(s.Grade); + var gStr = GradeHelper.GetGrade(ginfo.GradeLevel, ginfo.GradeYear); + if (gStr.ToEnum() == null) //无效的传入年级 + { + s.ErrorMsg = "无效的年级 例如[初一/初2028] [年级范围应当是当前有效的就读年级]"; + impError.Add(s); + continue; + } userCenterImp.Add(new UserExcelExportData() { UserType = s.UserType, @@ -148,7 +159,7 @@ namespace Learn.Archives.API.Controllers Subject = s.Subject, ExamNo = s.ExamNo, School = s.School, - Grade = s.Grade, + Grade = gStr, Class = s.Class, ClassType = s.ClassType, Phone = s.Phone, @@ -157,6 +168,9 @@ namespace Learn.Archives.API.Controllers }); } + //如果有错误数据则返回excel + if (impError.Count() != 0) + return File(impError.ExportExcel(), "application/ms-excel", $"导入错误的老师{DateTime.Now.ToString("MMddHHmm")}.xlsx"); //调用 用户中心 导入接口 var importRes = await _userCenterService.CallAPI_ImportJsonData(_httpContextAccessor.HttpContext, userCenterImp); @@ -196,9 +210,18 @@ namespace Learn.Archives.API.Controllers if (dataList == null || dataList.Count() == 0) Oh.ModelError("导入失败:无有效数据"); var insertInfo = new List(); + var impError = new List(); var userCenterImp = new List(); foreach (var s in dataList) { + var ginfo = GradeHelper.GetStudentGradeBaseByGrade(s.Grade); + var gStr = GradeHelper.GetGrade(ginfo.GradeLevel, ginfo.GradeYear); + if (gStr.ToEnum() == null) //无效的传入年级 + { + s.ErrorMsg = "无效的年级 例如[初一/初2028] [年级范围应当是当前有效的就读年级]"; + impError.Add(s); + continue; + } insertInfo.Add(new Student() { AmountRelief = decimal.TryParse(s.AmountRelief,out decimal v)?v:0, @@ -217,7 +240,7 @@ namespace Learn.Archives.API.Controllers UserType = "学生", Account = s.Id.ToString(), School = s.School, - Grade = s.Grade, + Grade = gStr, Class = s.Class, ClassType = s.ClassType??ClassTypeEnum.云校班.ToString(), ExamNo = s.Id.ToString(), @@ -227,6 +250,9 @@ namespace Learn.Archives.API.Controllers }); } + //如果有错误数据则返回excel + if (impError.Count() != 0) + return File(impError.ExportExcel(), "application/ms-excel", $"导入错误学生{DateTime.Now.ToString("MMddHHmm")}.xlsx"); //调用 用户中心 导入接口 var importRes = await _userCenterService.CallAPI_ImportJsonData(_httpContextAccessor.HttpContext, userCenterImp); diff --git a/Learn.Archives.Core/Common/Expand/SqlSugarExpand.cs b/Learn.Archives.Core/Common/Expand/SqlSugarExpand.cs index 85b6696..a6eaa96 100644 --- a/Learn.Archives.Core/Common/Expand/SqlSugarExpand.cs +++ b/Learn.Archives.Core/Common/Expand/SqlSugarExpand.cs @@ -64,13 +64,13 @@ namespace Learn.Archives.Core.Common.Expand /// 配置 学校数据 sql过滤 默认true public static void SetDbAop(ISqlSugarClient db) { - if (db.Ado.CommandTimeOut == 61) - { - return; - } + //if (db.Ado.CommandTimeOut == 61) + //{ + // return; + //} var config = db.CurrentConnectionConfig; - // 设置超时时间 - db.Ado.CommandTimeOut = 61; + //设置超时时间 + //db.Ado.CommandTimeOut = 61; #if DEBUG // 打印SQL语句 db.Aop.OnLogExecuting = (sql, pars) => @@ -105,11 +105,6 @@ namespace Learn.Archives.Core.Common.Expand } }; - // 超管时排除各种过滤器 - //if (App.User?.FindFirst(ClaimEnum.Role)?.Value == "1") - //return; - // 配置用户机构(数据范围)过滤器 - //SetOrgEntityFilter(db); } @@ -161,13 +156,13 @@ namespace Learn.Archives.Core.Common.Expand if (!AppCommon.Config.DB.UpdateTable) { Console.WriteLine($"【1】初始化主库表 跳过...."); - //ShowSQL = true; + ShowSQL = true; return; } Console.WriteLine($"【1】初始化主库表 执行中...."); var entityTypes = AppCommon.DbMatserType; Console.WriteLine($"【1】数量{entityTypes.Count()} ...."); - if (!entityTypes.Any()) return; + if (!entityTypes.Any()) { ShowSQL = true; return; }; var i = 0; var totalCount = entityTypes.Count().ToString().Length; foreach (var t in entityTypes) diff --git a/Learn.Archives.Core/Common/Repository.cs b/Learn.Archives.Core/Common/Repository.cs index 586c91c..347a068 100644 --- a/Learn.Archives.Core/Common/Repository.cs +++ b/Learn.Archives.Core/Common/Repository.cs @@ -20,10 +20,12 @@ namespace Learn.Archives.Core.Common public void SwitchConnection() { var t = typeof(T); - if (AppCommon.DbMatserType.Contains(t)) - base.Context = DbScoped.SugarScope; - else if (AppCommon.UserCenterType.Contains(t)) - base.Context = DbScoped.SugarScope.GetConnectionScope(1001); + ISqlSugarClient d; + if (AppCommon.UserCenterType.Contains(t)) + d = DbScoped.SugarScope.GetConnectionScope(1001); + else + d = DbScoped.SugarScope; + base.Context = d; SqlSugarExpand.SetDbAop(base.Context); } }