diff --git a/Learn.Archives.API/Controllers/Dto/ExamClassInfoDto.cs b/Learn.Archives.API/Controllers/Dto/ExamClassInfoDto.cs
index 8745436..a6b065e 100644
--- a/Learn.Archives.API/Controllers/Dto/ExamClassInfoDto.cs
+++ b/Learn.Archives.API/Controllers/Dto/ExamClassInfoDto.cs
@@ -17,7 +17,7 @@ namespace Learn.Archives.API.Controllers.Dto
///
/// 导入的错误结果
///
- public class ImportExamInfoError: ImportExamInfo
+ public class ImportExamInfoError : ImportExamInfo
{
///
/// 学校
@@ -25,10 +25,10 @@ namespace Learn.Archives.API.Controllers.Dto
[ExcelColumnName("错误信息")]
public string? Error { get; set; }
}
- ///
- /// 导入考试成绩
- ///
- public class ImportExamInfo
+ ///
+ /// 导入考试成绩
+ ///
+ public class ImportExamInfo
{
///
/// 学校
@@ -117,6 +117,12 @@ namespace Learn.Archives.API.Controllers.Dto
///
[ExcelColumnName("赋分后总分")]
public decimal 赋分后总分 { get; set; }
+
+ ///
+ /// 总分资源校排名
+ ///
+ [ExcelColumn(Name="赋分总分资源校排名",Width =20)]
+ public int 资源校排名 { get; set; }
}
public class RestartEntryDto
diff --git a/Learn.Archives.API/Controllers/ExamClassInfoController.cs b/Learn.Archives.API/Controllers/ExamClassInfoController.cs
index ed75abf..b74a5d7 100644
--- a/Learn.Archives.API/Controllers/ExamClassInfoController.cs
+++ b/Learn.Archives.API/Controllers/ExamClassInfoController.cs
@@ -7,11 +7,13 @@ using Learn.Archives.Core.Model.Dto;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using MiniExcelLibs;
+using System.Buffers.Text;
using System.Diagnostics;
using System.Security.Claims;
using UserCenter.Model;
using UserCenter.Model.Common;
using UserCenter.Model.Enum;
+using static System.Net.Mime.MediaTypeNames;
namespace Learn.Archives.API.Controllers
{
@@ -79,19 +81,24 @@ namespace Learn.Archives.API.Controllers
if (dataList == null || dataList.Count() == 0)
Oh.ModelError("导入失败:无有效数据");
- //todo
//处理数据
var errorExcelInfo = new List();
var insertUserInfo = new List();
var insertClassInfo = new List();
+ var oldUidAr = await examUserInfoService.AsQueryable()
+ .Where(s => s.ExamId == exam.Id)
+ .Select(s=>s.UserId)
+ .ToArrayAsync();
+ var oldUidHash = oldUidAr.ToHashSet();
var db = schoolService.Context;
- SqlSugarExpand.SetDbAop(db);
foreach (var schoolArr in dataList.GroupBy(s => s.School))
{
var school = await schoolService.GetFirstAsync(s => s.Name == schoolArr.Key);
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.GradeLevel != gradeInfo.GradeLevel || exam.GradeYear != gradeInfo.GradeYear)
+ Oh.ModelError($"导入失败:导入年级[{schoolArr.First().Grade}] 与 考试年级不匹配!");
//学校下的所属班级
var classArr = await db.Queryable().Where(c => c.SchoolId == school.Id &&
c.GradeLevel == gradeInfo.GradeLevel &&
@@ -135,6 +142,12 @@ namespace Learn.Archives.API.Controllers
return null;
}
var uid = userDic[name];
+ if(oldUidHash!=null &&oldUidHash.Contains((long)uid))
+ {
+ s.Error = "此学生已经在考试中已经录入过成绩";
+ errorExcelInfo.Add(s);
+ return null;
+ }
return new ExamUserInfo()
{
ExamId = exam.Id,
@@ -149,13 +162,50 @@ namespace Learn.Archives.API.Controllers
Type = exam.Type,
SubjectDic = sub,
AssignScore = s.赋分后总分,
- AssignRanking = 0,
+ AssignRanking = s.资源校排名,
};
}).ToList();
insertUserInfo.AddRange(userList);
-
insertUserInfo = insertUserInfo.Where(s => s != null).ToList();
- foreach (var classUserArr in insertUserInfo.GroupBy(s => s.ClassId))
+ };
+
+ if (errorExcelInfo.Count != 0)
+ return File(errorExcelInfo.ExportExcel(), "application/ms-excel", $"错误考试信息{DateTime.Now.ToString("MMddHHmm")}.xlsx");
+
+ //写入数据库
+ await examUserInfoService.AsInsertable(insertUserInfo).ExecuteCommandAsync();
+
+ await CalculatingTestResults(exam,examUserInfoService,schoolService);
+
+ return Ok();
+ }
+
+ ///
+ /// 计算考试成绩
+ ///
+ ///
+ ///
+ ///
+ ///
+ [NonAction]
+ public static async Task CalculatingTestResults(Exam exam, Repository eUService, Repository sService)
+ {
+ var userInfoArr = await eUService.AsQueryable()
+ .Where(s => s.ExamId == exam.Id)
+ .ToArrayAsync();
+
+ var insertTotalClassInfo = new List();
+ var db = sService.Context;
+ foreach (var schoolArr in userInfoArr.GroupBy(s => s.SchoolId))
+ {
+
+ var insertClassInfo = new List();
+ var school = await sService.GetFirstAsync(s => s.Id == schoolArr.Key);
+ var classArr = await db.Queryable().Where(c => c.SchoolId == school.Id &&
+ c.GradeLevel == exam.GradeLevel &&
+ c.GraduationYear == exam.GradeYear && !c.DeleteState).ToArrayAsync();
+
+ foreach (var classUserArr in userInfoArr.GroupBy(s => s.ClassId))
{
var classInfo = classArr.First(s => s.Id == classUserArr.Key);
var eCInfo = new ExamClassInfo()
@@ -170,9 +220,8 @@ namespace Learn.Archives.API.Controllers
GradeYear = classInfo.GraduationYear,
PeopleCount = classUserArr.Count(),
MinScore = int.MaxValue,
- EntryPersonId = userInfo.Id,
+ MaxScore = -99,
BaseSchoolScore = exam.BaseSchoolScore,
- EntryPerson = userInfo.Name,
TestPaperType = exam.TestPaperType,
Type = exam.Type,
Average1 = exam.BaseSchoolScore,
@@ -183,12 +232,12 @@ namespace Learn.Archives.API.Controllers
{
var v = eUserInfo.AssignScore;
//上线人数
- if (v>=exam.ScoreLine)
- eCInfo.OnLineCount ++;
+ if (v >= exam.ScoreLine)
+ eCInfo.OnLineCount++;
//最大小分
if (v < eCInfo.MinScore)
eCInfo.MinScore = v;
- else if(v > eCInfo.MaxScore)
+ if (v > eCInfo.MaxScore)
eCInfo.MaxScore = v;
avgTotal += v;//追加得分
}
@@ -196,22 +245,14 @@ namespace Learn.Archives.API.Controllers
eCInfo.Average = avgTotal / eCInfo.PeopleCount;
//计算上线率
eCInfo.OnLineRate = (decimal)eCInfo.OnLineCount / (decimal)eCInfo.PeopleCount;
- //处理学生班级排名
- var i = 0;
- foreach (var item in classUserArr.OrderByDescending(s => s.AssignScore)
- .GroupBy(s => s.AssignScore))
- {
- foreach (var u in item)
- u.AssignRanking =++ i;
- }
}
- };
-
+ insertTotalClassInfo.AddRange(insertClassInfo);
+ }
{ //计算年级上线率排名
var i = 0;
- foreach (var item in insertClassInfo.OrderByDescending(s => s.OnLineRate)
+ foreach (var item in insertTotalClassInfo.OrderByDescending(s => s.OnLineRate)
.GroupBy(s => s.OnLineRate))
{
foreach (var u in item)
@@ -220,33 +261,28 @@ namespace Learn.Archives.API.Controllers
//计算年级平均分排名
i = 0;
- foreach (var item in insertClassInfo.OrderByDescending(s => s.Average)
+ foreach (var item in insertTotalClassInfo.OrderByDescending(s => s.Average)
.GroupBy(s => s.Average))
{
foreach (var u in item)
u.AverageRank = ++i;
}
}
- if (errorExcelInfo.Count != 0)
- return File(errorExcelInfo.ExportExcel(), "application/ms-excel", $"错误考试信息{DateTime.Now.ToString("MMddHHmm")}.xlsx");
-
//写入数据库
- var baseDB = baseService.Context;
+ var baseDB = eUService.Context;
baseDB.Ado.BeginTran();
try
{
- await baseDB.Insertable(insertUserInfo).ExecuteCommandAsync();
- await baseDB.Insertable(insertClassInfo).ExecuteCommandAsync();
+ await baseDB.Deleteable().Where(s=>s.ExamId==exam.Id).ExecuteCommandAsync();
+ await baseDB.Insertable(insertTotalClassInfo).ExecuteCommandAsync();
baseDB.Ado.CommitTran();
-
}
catch (Exception ex)
{
- baseDB.Ado.RollbackTran();
+ baseDB.Ado.RollbackTran();
Oh.ModelError($"导入失败:写入数据时候出现了异常 [{ex.Message}] !");
}
- return Ok();
}
///
diff --git a/Learn.Archives.API/Controllers/ExamController.cs b/Learn.Archives.API/Controllers/ExamController.cs
index fa86d17..1b8d7d8 100644
--- a/Learn.Archives.API/Controllers/ExamController.cs
+++ b/Learn.Archives.API/Controllers/ExamController.cs
@@ -3,11 +3,13 @@ using Learn.Archives.API.Controllers.Dto;
using Learn.Archives.API.Expand;
using Learn.Archives.Core.Common;
using Learn.Archives.Core.Model;
+using Learn.Archives.Core.Model.Dto;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using System.Diagnostics;
using System.Security.Claims;
using UserCenter.Model;
+using UserCenter.Model.Common;
namespace Learn.Archives.API.Controllers
{
@@ -17,17 +19,59 @@ namespace Learn.Archives.API.Controllers
public class ExamController : BackController
{
readonly Repository baseService;
+ readonly Repository schoolService;
readonly Repository examClassInfoService;
readonly Repository examUserInfoService;
readonly LiveUserInfo userInfo;
- public ExamController(Repository baseService, LiveUserInfo userInfo, Repository examClassInfoService, Repository examUserInfoService) : base(baseService)
+ public ExamController(Repository baseService, LiveUserInfo userInfo,
+ Repository examClassInfoService, Repository examUserInfoService,
+ Repository schoolService) : base(baseService)
{
this.baseService = baseService;
this.userInfo = userInfo;
this.examClassInfoService = examClassInfoService;
this.examUserInfoService = examUserInfoService;
+ this.schoolService = schoolService;
}
+ public override Task PageList([FromBody] QueryRequestBase model)
+ {
+ var c = model.Conditions.FirstOrDefault(s => s.FieldName == "Grade");
+ if (c != null)
+ {
+ var gInfo = GradeHelper.GetStudentGradeBaseByGrade(c.FieldValue);
+ if (gInfo != null)
+ {
+ model.Conditions = model.Conditions.Where(s => s != c).ToList();
+ model.Conditions.Add(new SqlSugar.ConditionalModel()
+ {
+ FieldName = "GradeLevel",
+ FieldValue = gInfo.GradeLevel,
+ });
+ model.Conditions.Add(new SqlSugar.ConditionalModel()
+ {
+ FieldName = "GradeYear",
+ FieldValue = gInfo.GradeYear.ToString(),
+ CSharpTypeName = "int"
+ });
+ }
+ }
+ return base.PageList(model);
+ }
+ public override async Task Edit([FromBody] Exam model)
+ {
+
+ if (!string.IsNullOrEmpty(model._grade))
+ {
+ var g = GradeHelper.GetStudentGradeBaseByGrade(model._grade);
+ model.GradeLevel = g.GradeLevel;
+ model.GradeYear = g.GradeYear;
+ }
+ var res =await base.Edit(model);
+ if (res)
+ await ExamClassInfoController.CalculatingTestResults(model, examUserInfoService, schoolService);
+ return res ;
+ }
public override async Task Del([FromBody] params long[] ids)
{
if (ids.Length > 1)
diff --git a/Learn.Archives.API/Controllers/ExamUserInfoController.cs b/Learn.Archives.API/Controllers/ExamUserInfoController.cs
index d113338..8b0754e 100644
--- a/Learn.Archives.API/Controllers/ExamUserInfoController.cs
+++ b/Learn.Archives.API/Controllers/ExamUserInfoController.cs
@@ -2,11 +2,13 @@
using Learn.Archives.API.Expand;
using Learn.Archives.Core.Common;
using Learn.Archives.Core.Model;
+using Learn.Archives.Core.Model.Dto;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using System.Diagnostics;
using System.Security.Claims;
using UserCenter.Model;
+using UserCenter.Model.Common;
namespace Learn.Archives.API.Controllers
{
@@ -22,5 +24,29 @@ namespace Learn.Archives.API.Controllers
this.baseService = baseService;
this.userInfo = userInfo;
}
+ public override Task PageList([FromBody] QueryRequestBase model)
+ {
+ var c = model.Conditions.FirstOrDefault(s => s.FieldName == "Grade");
+ if (c != null)
+ {
+ var gInfo = GradeHelper.GetStudentGradeBaseByGrade(c.FieldValue);
+ if (gInfo != null)
+ {
+ model.Conditions = model.Conditions.Where(s => s != c).ToList();
+ model.Conditions.Add(new SqlSugar.ConditionalModel()
+ {
+ FieldName = "GradeLevel",
+ FieldValue = gInfo.GradeLevel,
+ });
+ model.Conditions.Add(new SqlSugar.ConditionalModel()
+ {
+ FieldName = "GradeYear",
+ FieldValue = gInfo.GradeYear.ToString(),
+ CSharpTypeName = "int"
+ });
+ }
+ }
+ return base.PageList(model);
+ }
}
}
diff --git a/Learn.Archives.API/Controllers/SchoolBusinessController.cs b/Learn.Archives.API/Controllers/SchoolBusinessController.cs
index d043afb..d0a8791 100644
--- a/Learn.Archives.API/Controllers/SchoolBusinessController.cs
+++ b/Learn.Archives.API/Controllers/SchoolBusinessController.cs
@@ -165,6 +165,12 @@ namespace Learn.Archives.API.Controllers
var adminArr = await adminService.AsQueryable()
.Where(s => adminNameArr.Contains(s.Name))
.Select(s => s.Name).ToArrayAsync();
+ if (adminArr == null || adminArr.Length!= adminNameArr.Length)
+ {
+ imp.Error = $"赴校人员未能完全识别成功";
+ errorExcelInfo.Add(imp);
+ continue;
+ }
var qStr = new Dictionary()
{
{FeedbackQuestionTypeEnum.学校领导班子,(imp.Q学校领导班子,imp.P学校领导班子) },
@@ -255,8 +261,6 @@ namespace Learn.Archives.API.Controllers
};
business.SolutionEnd = business.SolutionRecord.EndRecordTime != null;
insertInfo.Add(business);
-
-
};
if (errorExcelInfo.Count != 0)
return File(errorExcelInfo.ExportExcel(), "application/ms-excel"
@@ -292,7 +296,22 @@ namespace Learn.Archives.API.Controllers
//todo完善数据转换
- var resultList = new List() { new SchoolBusinessImport() { } };
+ var resultList = new List() { new SchoolBusinessImport()
+ {
+ School="必填 与系统对应",
+ Grade="必填 : 初一/高一/初2025",
+ IsDiscussion="是/否",
+ IsClassMeeting="是/否",
+ Remark="选填 备注",
+ ClassMeeting ="选填 开展班会情况",
+ Discussion ="选填 开展会谈情况",
+ Solution="选填 需求/方案的描述",
+ Users="必填: 例 用户1,用户2 与系统中用户名称对应",
+ Record="选填 格式[时间:记录内容;] \r\n 例 2025年9月11日:执行了第一次沟通;\r\n2025年9月12日:执行了第二次沟通,沟通非常顺畅;",
+ EndRecord="选填 格式 [时间:记录内容]\r\n 例 2025年9月13日:已经顺利落地了解决方案",
+ Q学校领导班子="例子: 问题1:问题内容;问题2:问题内容2;",
+ P学校领导班子="例子: 问题1:问题解决方法;问题2:问题解决方法2;",
+ } };
return File(resultList.ExportExcel(), "application/ms-excel", "导入赴校信息模板.xlsx");
}
diff --git a/Learn.Archives.API/Controllers/StudentController.cs b/Learn.Archives.API/Controllers/StudentController.cs
index 60a9b1f..c3f6dad 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;
@@ -97,8 +98,8 @@ namespace Learn.Archives.API.Controllers
if (!exDataDic.ContainsKey(item.Id)) continue;
var ex = exDataDic[item.Id].First();
item.Status = ex.Status;
- item.ExitTime = ex.ExitTime?.ToString("yyyy-MM-dd")??string.Empty;
- item.JoinTime = ex.JoinTime?.ToString("yyyy-MM-dd") ?? string.Empty;
+ item.ExitTime = ex.ExitTime==null? string.Empty : ex.ExitTime?.ToString("yyyy-MM-dd");
+ item.JoinTime = ex.JoinTime == null ? string.Empty : ex.JoinTime?.ToString("yyyy-MM-dd");
item.AmountRelief = ex.AmountRelief;
item.ReliefApplication = ex.ReliefApplication;
@@ -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,11 +168,14 @@ 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);
//处理数据
- var errorExcelInfo = importRes.ErrorExcelExport.Select(s => s.Adapt());
+ var errorExcelInfo = importRes.ErrorExcelExport.Select(s => s.Adapt());
//如果有错误数据则返回excel
if (errorExcelInfo.Count() != 0)
return File(errorExcelInfo.ExportExcel(), "application/ms-excel", $"导入错误的老师{DateTime.Now.ToString("MMddHHmm")}.xlsx");
@@ -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,
@@ -210,13 +233,14 @@ namespace Learn.Archives.API.Controllers
ReliefApplication=s.ReliefApplication?.Contains("已申请")??false,
ReliefSubTime = s.ReliefSubTime,
ReliefType =s.ReliefType,
+ StudentType =s.StudentType.ToEnum(),
});
userCenterImp.Add(new UserExcelExportData()
{
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(),
@@ -226,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);
@@ -269,8 +296,9 @@ namespace Learn.Archives.API.Controllers
ClassType = "必填:可选值\r\n[云校班 海豚智学班 蓝鲸智库班 中职班 其他 雅思班 点阵笔班级 移动校园班级 智学班 ...]",
Status = "选填 可选值\r\n[就读,退出]",
AmountRelief ="选填: 为0则视为 '未申请减免'",
- ReliefType ="选填: 1.建卡贫困户\r\n2.低保户\r\n3.教师子女 \r\n4.孤儿\r\n5.艺体生\r\n6.残疾学生\r\n7.领导特殊承诺减免\r\n8.领导同意的特殊贫困减免",
+ ReliefType ="选填: 建卡贫困户\r\n低保户\r\n教师子女 \r\n孤儿\r\n艺体生\r\n残疾学生\r\n领导特殊承诺减免\r\n领导同意的特殊贫困减免",
ReliefApplication ="选填: [已申请, 未申请]",
+ StudentType = "选填: 可选值:\r\n复读生\r\n艺术生\r\n春招生\r\n领导承诺批准全免\r\n资源班\r\n国际班\r\n合同制收费学校\r\n渠道商家属\r\n新开班但领导承诺第一学期不收费",
Phone="选填",
Remark="选填",
} };
diff --git a/Learn.Archives.API/appsettings.Production.json b/Learn.Archives.API/appsettings.Production.json
index cd2dc43..2deaa53 100644
--- a/Learn.Archives.API/appsettings.Production.json
+++ b/Learn.Archives.API/appsettings.Production.json
@@ -6,11 +6,11 @@
}
},
"Redis": {
- "ConnectionString": "redis-external.23544.com:16379,password=poiuyt)(*&^%,defaultDatabase=3"
+ "ConnectionString": "r-2vc07uq6kgm580hxeu.redis.cn-chengdu.rds.aliyuncs.com:6379,password=r-2vc07uq6kgm580hxeu:JyFQa8MeZ4ndxVbdhUc6,defaultDatabase=3"
},
"DB": {
- //"ConnectionString": "AllowLoadLocalInfile=true;Server=10.255.255.3;Port=3306;Database=learn.videoanalysis;User ID=marking;Password=qwe123!@#;CharSet=utf8mb4;pooling=true;SslMode=None",
- "ConnectionString": "AllowLoadLocalInfile=true;Server=rm-2vc20nd3d11g0oh6g2o.rwlb.cn-chengdu.rds.aliyuncs.com;User ID=marking;Password=poiuytPOIUYT098765)(*&^%;Port=3306;Database=learn.videoanalysis;CharSet=utf8mb4;pooling=true;SslMode=None",
+ "ConnectionString": "AllowLoadLocalInfile=true;Server=rm-2vc20nd3d11g0oh6g2o.rwlb.cn-chengdu.rds.aliyuncs.com;User ID=marking;Password=poiuytPOIUYT098765)(*&^%;Port=3306;Database=learn.archives;CharSet=utf8mb4;pooling=true;SslMode=None",
+
"SqlType": "MySql",
"UpdateTable": false
},
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);
}
}
diff --git a/Learn.Archives.Core/Model/Dto/SchoolBusinessDto.cs b/Learn.Archives.Core/Model/Dto/SchoolBusinessDto.cs
index aecc8d9..374f7fc 100644
--- a/Learn.Archives.Core/Model/Dto/SchoolBusinessDto.cs
+++ b/Learn.Archives.Core/Model/Dto/SchoolBusinessDto.cs
@@ -50,6 +50,10 @@ namespace Learn.Archives.Core.Model.Dto
/// 执行时间
///
public DateTime? ExecutionTime { get; set; }
+ ///
+ /// 操作人 [后台自动赋值提交人名称]
+ ///
+ public string? Operator { get; set; }
public string? ExecutionTimeStr => ExecutionTime?.ToString("yyyy-MM-dd");
diff --git a/Learn.Archives.Core/Model/Dto/UserCenterServiceDto.cs b/Learn.Archives.Core/Model/Dto/UserCenterServiceDto.cs
index 9f85394..8cbf78c 100644
--- a/Learn.Archives.Core/Model/Dto/UserCenterServiceDto.cs
+++ b/Learn.Archives.Core/Model/Dto/UserCenterServiceDto.cs
@@ -162,6 +162,12 @@ namespace Learn.Archives.Core.Model.Dto
+
+ ///
+ /// 学生类型
+ ///
+ [ExcelColumn(Name = "学生类型", Width = 20)]
+ public string StudentType { get; set; }
///
/// 学生状态[就读/退出]
///
diff --git a/Learn.Archives.Core/Model/Enum/StudentTypeEnum.cs b/Learn.Archives.Core/Model/Enum/StudentTypeEnum.cs
new file mode 100644
index 0000000..5796f7b
--- /dev/null
+++ b/Learn.Archives.Core/Model/Enum/StudentTypeEnum.cs
@@ -0,0 +1,24 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Learn.Archives.Core.Model.Enum
+{
+ ///
+ /// 学生类型
+ ///
+ public enum StudentTypeEnum
+ {
+ 复读生 = 1,
+ 艺术生 = 10,
+ 春招生 = 20,
+ 领导承诺批准全免 = 30,
+ 资源班 = 40,
+ 国际班 = 50,
+ 合同制收费学校 = 60,
+ 渠道商家属 = 70,
+ 新开班但领导承诺第一学期不收费 = 80,
+ }
+}
diff --git a/Learn.Archives.Core/Model/Exam.cs b/Learn.Archives.Core/Model/Exam.cs
index 8aa2725..58f9fbb 100644
--- a/Learn.Archives.Core/Model/Exam.cs
+++ b/Learn.Archives.Core/Model/Exam.cs
@@ -5,6 +5,7 @@ using System.ComponentModel.DataAnnotations;
using System.Net;
using System.Text.Json;
using UserCenter.Model;
+using UserCenter.Model.Common;
using UserCenter.Model.Enum;
using UserCenter.Model.Interface;
@@ -24,8 +25,27 @@ namespace Learn.Archives.Core.Model
///
/// 年级
///
- [SugarColumn(Length = 12)]
- public GradeEnum Level { get; set; }
+ [SugarColumn(Length = 2)]
+ public string? GradeLevel { get; set; }
+ ///
+ /// 毕业届
+ ///
+ [SugarColumn(Length = 2)]
+ public int GradeYear { get; set; }
+
+ ///
+ /// dto 处理的grade
+ ///
+ public string? _grade;
+ ///
+ /// 年级
+ ///
+ [SugarColumn(IsIgnore = true)]
+ public string Grade
+ {
+ get => GradeHelper.GetGrade(GradeLevel, GradeYear);
+ set => _grade = value;
+ }
///
/// 试卷类型
///
diff --git a/Learn.Archives.Core/Model/ExamClassInfo.cs b/Learn.Archives.Core/Model/ExamClassInfo.cs
index 1f2a9bf..4223d4c 100644
--- a/Learn.Archives.Core/Model/ExamClassInfo.cs
+++ b/Learn.Archives.Core/Model/ExamClassInfo.cs
@@ -61,6 +61,7 @@ namespace Learn.Archives.Core.Model
[SugarColumn(IsIgnore = true)]
public string Grade => GradeHelper.GetGrade(GradeLevel, GradeYear);
+
///
/// 年级
///
@@ -119,15 +120,6 @@ namespace Learn.Archives.Core.Model
public decimal BaseSchoolScore { get; set; }
- ///
- /// 录入人Id
- ///
- public long EntryPersonId { get; set; }
- ///
- /// 录入人名称
- ///
- public string EntryPerson { get; set; } = string.Empty;
-
///
/// 创建时间
///
diff --git a/Learn.Archives.Core/Model/Student.cs b/Learn.Archives.Core/Model/Student.cs
index 81c5618..67900ac 100644
--- a/Learn.Archives.Core/Model/Student.cs
+++ b/Learn.Archives.Core/Model/Student.cs
@@ -36,6 +36,12 @@ namespace Learn.Archives.Core.Model
///
[SugarColumn(IsNullable = true, Length = 20)]
public string? ReliefType { get; set; }
+
+ ///
+ /// 学生类型
+ ///
+ [SugarColumn(IsNullable = true)]
+ public StudentTypeEnum? StudentType { get; set; }
///
/// 减免申请时间
///
@@ -58,13 +64,13 @@ namespace Learn.Archives.Core.Model
/// 退出时间
///
[SugarColumn(IsNullable = true)]
- public DateTime? ExitTime { get; set; } = DateTime.Now;
+ public DateTime? ExitTime { get; set; }
///
/// 退出时间
///
[SugarColumn(IsNullable = true)]
- public DateTime? JoinTime { get; set; } = DateTime.Now;
+ public DateTime? JoinTime { get; set; }
///
/// 创建时间