CrazyIter_Bin 1 år sedan
förälder
incheckning
67e2462bf5

+ 5 - 5
TEAMModelOS.SDK/Context/Attributes/Filter/ApiTokenAttribute.cs

@@ -115,7 +115,7 @@ namespace TEAMModelOS.Filter
                 _azureCosmos = azureCosmos;
                 _azureCosmos = azureCosmos;
                 _dingDing= dingDing;
                 _dingDing= dingDing;
             }
             }
-            public async void OnResourceExecuting(ResourceExecutingContext context)
+            public   void OnResourceExecuting(ResourceExecutingContext context)
             {
             {
                 var path = "";
                 var path = "";
                 var authtoken = context.HttpContext.GetXAuth("ApiToken");
                 var authtoken = context.HttpContext.GetXAuth("ApiToken");
@@ -251,16 +251,16 @@ namespace TEAMModelOS.Filter
                                                     //}
                                                     //}
                                                     //else
                                                     //else
                                                     bizVisit.apis.Add(new APIInfo() { name = $"{path}", upDate = udate });//记录加一下
                                                     bizVisit.apis.Add(new APIInfo() { name = $"{path}", upDate = udate });//记录加一下
-                                                    var resBiz = await _azureCosmos.GetCosmosClient().GetContainer("TEAMModelOS", "Normal").ReplaceItemAsync<BizVisitCnt>(bizVisit, id, new Azure.Cosmos.PartitionKey("BizVisit"));
+                                                       _azureCosmos.GetCosmosClient().GetContainer("TEAMModelOS", "Normal").ReplaceItemAsync<BizVisitCnt>(bizVisit, id, new Azure.Cosmos.PartitionKey("BizVisit"));
                                                 }
                                                 }
                                                 else
                                                 else
                                                 {
                                                 {
                                                     BizVisitCnt bizVisit = new() { id = id, visit = 1, apis = new List<APIInfo>() { new APIInfo() { name = $"{path}", upDate = udate } } };
                                                     BizVisitCnt bizVisit = new() { id = id, visit = 1, apis = new List<APIInfo>() { new APIInfo() { name = $"{path}", upDate = udate } } };
-                                                    var resBiz = await _azureCosmos.GetCosmosClient().GetContainer("TEAMModelOS", "Normal").CreateItemAsync<BizVisitCnt>(bizVisit, new Azure.Cosmos.PartitionKey("BizVisit"));
+                                                  _azureCosmos.GetCosmosClient().GetContainer("TEAMModelOS", "Normal").CreateItemAsync<BizVisitCnt>(bizVisit, new Azure.Cosmos.PartitionKey("BizVisit"));
                                                 }
                                                 }
                                                 //访问次数记录 结束
                                                 //访问次数记录 结束
 
 
-                                                var response = await _azureCosmos.GetCosmosClient().GetContainer("TEAMModelOS", "Normal").ReadItemStreamAsync(id, new Azure.Cosmos.PartitionKey("BizConfig"));
+                                                var response =    _azureCosmos.GetCosmosClient().GetContainer("TEAMModelOS", "Normal").ReadItemStreamAsync(id, new Azure.Cosmos.PartitionKey("BizConfig")).Result;
                                                 if (response.Status == 200)
                                                 if (response.Status == 200)
                                                 {
                                                 {
                                                     BizConfig bizConfig = JsonDocument.Parse(response.Content).Deserialize<BizConfig>();
                                                     BizConfig bizConfig = JsonDocument.Parse(response.Content).Deserialize<BizConfig>();
@@ -349,7 +349,7 @@ namespace TEAMModelOS.Filter
                     }
                     }
                 }
                 }
                 catch (Exception ex) {
                 catch (Exception ex) {
-                    await   _dingDing.SendBotMsg($"开放平台鉴权失败 ,系统错误 {_option.Location},{ex.Message}\n{ex.StackTrace}\n{path}\n{scope}\n{XAuthSchool}\n{authtoken}", GroupNames.成都开发測試群組);
+                    _=   _dingDing.SendBotMsg($"开放平台鉴权失败 ,系统错误 {_option.Location},{ex.Message}\n{ex.StackTrace}\n{path}\n{scope}\n{XAuthSchool}\n{authtoken}", GroupNames.成都开发測試群組);
                 }
                 }
             }
             }
 
 

+ 1 - 0
TEAMModelOS.SDK/Models/Cosmos/Common/ExamClassResult.cs

@@ -70,6 +70,7 @@ namespace TEAMModelOS.SDK.Models
         public string name { get; set; }
         public string name { get; set; }
         public string periodId { get; set; }
         public string periodId { get; set; }
         public int year { get; set; }
         public int year { get; set; }
+        public string no { get; set; }
         //public string from { get; set; }
         //public string from { get; set; }
         //public string code { get; set; }
         //public string code { get; set; }
     }
     }

+ 1 - 0
TEAMModelOS.SDK/Models/Cosmos/School/SchoolSetting.cs

@@ -51,6 +51,7 @@ namespace TEAMModelOS.SDK.Models
         public string labour { get; set; } = "sum";
         public string labour { get; set; } = "sum";
         public string intelligence { get; set; } = "avg";
         public string intelligence { get; set; } = "avg";
         public string virtue { get; set; } = "sum";
         public string virtue { get; set; } = "sum";
+        public string lesson { get; set; } = "sum";
         public List<ReviewLevel> reviewLevel { get; set; } = new List<ReviewLevel>() { 
         public List<ReviewLevel> reviewLevel { get; set; } = new List<ReviewLevel>() { 
             new ReviewLevel { code="A", value = new List<double> { 85,100 } },
             new ReviewLevel { code="A", value = new List<double> { 85,100 } },
             new ReviewLevel { code="B", value = new List<double> { 75,85 } },
             new ReviewLevel { code="B", value = new List<double> { 75,85 } },

+ 13 - 15
TEAMModelOS/Controllers/Both/CourseBaseController.cs

@@ -924,7 +924,7 @@ namespace TEAMModelOS.Controllers.Both
                                 courseBases.Add(item);
                                 courseBases.Add(item);
                             }
                             }
                             HashSet<CourseCheckImport> courseInvalidImports = new HashSet<CourseCheckImport>();
                             HashSet<CourseCheckImport> courseInvalidImports = new HashSet<CourseCheckImport>();
-                            var nameInvalidImports = courseCheckImports.ExceptBy(courseBases.Select(x => x.name),z=>z.name);
+                            var nameInvalidImports = courseCheckImports.Where(z=>! courseBases.Select(x => x.name).Contains(z.name));
                             //保留课程名称存在的排课信息
                             //保留课程名称存在的排课信息
                             if (nameInvalidImports != null && nameInvalidImports.Any())
                             if (nameInvalidImports != null && nameInvalidImports.Any())
                             {
                             {
@@ -937,10 +937,10 @@ namespace TEAMModelOS.Controllers.Both
                             }
                             }
                             //2.检查导入的醍摩豆教师ID是否有效
                             //2.检查导入的醍摩豆教师ID是否有效
                             StringBuilder sqlTmdid = new StringBuilder(" select  c.id,c.name ,c.code ,c.picture from c ");
                             StringBuilder sqlTmdid = new StringBuilder(" select  c.id,c.name ,c.code ,c.picture from c ");
-                            sqlTmdid.Append($" where c.id in({string.Join(",", courseCheckImports.Select(z => $"'{z.tmdid}'"))})    ");
+                            //sqlTmdid.Append($" where c.id in({string.Join(",", courseCheckImports.Select(z => $"'{z.tmdid}'"))})    ");
                             List<IdNameCode> teachers = new List<IdNameCode>();
                             List<IdNameCode> teachers = new List<IdNameCode>();
-                            await foreach (var item in _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.Teacher)
-                            .GetItemQueryIterator<IdNameCode>(queryText: sqlTmdid.ToString(), requestOptions: new QueryRequestOptions { PartitionKey = new PartitionKey("Base") }))
+                            await foreach (var item in _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.School)
+                            .GetItemQueryIterator<IdNameCode>(queryText: sqlTmdid.ToString(), requestOptions: new QueryRequestOptions { PartitionKey = new PartitionKey($"Teacher-{school}") }))
                             {
                             {
                                 teachers.Add(item);
                                 teachers.Add(item);
                             }
                             }
@@ -1205,18 +1205,16 @@ namespace TEAMModelOS.Controllers.Both
                                 //检查助教是否存在
                                 //检查助教是否存在
                                 string[] assistants = null;
                                 string[] assistants = null;
                                 if (!string.IsNullOrWhiteSpace(item.assistants)) {
                                 if (!string.IsNullOrWhiteSpace(item.assistants)) {
-                                    Regex.Split(item.assistants, "\\.|\\.|\\、|\\:|\\:|\\,|\\,|\\;|\\;");
-                                }
-                                var invalidAssistants = assistants.Except(teachers.Select(x => x.id));
-                                if (invalidAssistants != null && invalidAssistants.Any())
-                                {
-                                    item.invalidCode = 21;
-                                    item.invalidMsg = $"{string.Join(",", invalidAssistants)}";
-                                    courseInvalidImports.Add(item);
-                                    continue;
+                                    assistants = Regex.Split(item.assistants, "\\.|\\.|\\、|\\:|\\:|\\,|\\,|\\;|\\;");
+                                    var invalidAssistants = assistants.Except(teachers.Select(x => x.id));
+                                    if (invalidAssistants != null && invalidAssistants.Any())
+                                    {
+                                        item.invalidCode = 21;
+                                        item.invalidMsg = $"{string.Join(",", invalidAssistants)}";
+                                        courseInvalidImports.Add(item);
+                                        continue;
+                                    }
                                 }
                                 }
-
-
                                 Room room = rooms.Find(z =>!string.IsNullOrWhiteSpace(item.roomNo) &&  z.no.Equals(item.roomNo));
                                 Room room = rooms.Find(z =>!string.IsNullOrWhiteSpace(item.roomNo) &&  z.no.Equals(item.roomNo));
                                 string roomId= room?.id;
                                 string roomId= room?.id;
                                 string teacherId = teachers.Find(z => z.id.Equals(item.tmdid))?.id;
                                 string teacherId = teachers.Find(z => z.id.Equals(item.tmdid))?.id;

+ 1 - 1
TEAMModelOS/Controllers/Both/GroupListController.cs

@@ -322,7 +322,7 @@ namespace TEAMModelOS.Controllers
                     }
                     }
                     if (types.IsEmpty() || types.Contains("class"))
                     if (types.IsEmpty() || types.Contains("class"))
                     {
                     {
-                        StringBuilder classsql = new StringBuilder($"SELECT c.id,c.name,c.periodId ,c.year  FROM c where  ( c.graduate = 0 or  IS_DEFINED(c.graduate) = false )");
+                        StringBuilder classsql = new StringBuilder($"SELECT c.id,c.name,c.periodId ,c.year,c.no  FROM c where  ( c.graduate = 0 or  IS_DEFINED(c.graduate) = false )");
                         if (!string.IsNullOrEmpty($"{periodId}"))
                         if (!string.IsNullOrEmpty($"{periodId}"))
                         {
                         {
                             classsql.Append($" and  c.periodId='{periodId}' ");
                             classsql.Append($" and  c.periodId='{periodId}' ");

+ 159 - 0
TEAMModelOS/Controllers/Student/OverallEducationController.cs

@@ -182,9 +182,168 @@ namespace TEAMModelOS.Controllers
                 dataCount = overallEducations.Count();
                 dataCount = overallEducations.Count();
                 //pr计算  100 - (100 * (index + 1) - 50) / stuCount;  index  整体排名  stuCount 总人数
                 //pr计算  100 - (100 * (index + 1) - 50) / stuCount;  index  整体排名  stuCount 总人数
             }
             }
+            double basic_Score = 60;
+            if (schoolSetting?.overallEducationSetting?.overallEducationInit!=null && schoolSetting?.overallEducationSetting?.overallEducationInit >= 0) {
+                basic_Score = schoolSetting.overallEducationSetting.overallEducationInit;
+            }
+            var hasData_labour = grade_overallEducations.Where(x => x.labour.Count > 0);
+            double max_labour = 0;
+            double min_labour = 0;
+            if (schoolSetting.overallEducationSetting.labour.Equals("avg"))
+            {
+                var data = hasData_labour.Select(x => new { score = x.labour.Average(x => x.sumScore) , studentId=x.studentId});
+                max_labour = data.Max(z => z.score);
+                min_labour = data.Min(z => z.score);
+
+            }
+            else if (schoolSetting.overallEducationSetting.labour.Equals("newest"))
+            {
+                var data = hasData_labour.Select(x => new { score= x.labour.OrderByDescending(y => y.examDate).First().sumScore , studentId=x.studentId});
+                max_labour = data.Max(z => z.score);
+                min_labour = data.Min(z => z.score);
+            }
+            else if (schoolSetting.overallEducationSetting.labour.Equals("sum"))
+            {
+                var data = hasData_labour.Select(x => new { score = x.labour.Sum(x => x.sumScore) , studentId = x.studentId });
+                max_labour = data.Max(z => z.score);
+                min_labour = data.Min(z => z.score);
+            }
+            var hasData_virtue = grade_overallEducations.Where(x => x.virtue.Count > 0);
+            double max_virtue = 0;
+            double min_virtue = 0;
+
+            if (schoolSetting.overallEducationSetting.virtue.Equals("avg"))
+            {
+                var data = hasData_virtue.Select(x =>new { score = x.virtue.Average(x => x.sumScore), studentId = x.studentId });
+                max_virtue = data.Max(z => z.score);
+                min_virtue = data.Min(z => z.score);
+            }
+            else if (schoolSetting.overallEducationSetting.virtue.Equals("newest"))
+            {
+                var data = hasData_virtue.Select(x => new { score= x.virtue.OrderByDescending(y => y.examDate).First().sumScore, studentId = x.studentId });
+                max_virtue = data.Max(z => z.score);
+                min_virtue = data.Min(z => z.score);
+            }
+            else if (schoolSetting.overallEducationSetting.virtue.Equals("sum"))
+            {
+                var data = hasData_virtue.Select(x => x.virtue.Sum(x => x.sumScore));
+                //max_virtue = data.Max(z => z.score);
+                //min_virtue = data.Min(z => z.score);
+            }
+            var hasData_lesson = grade_overallEducations.Where(x => x.lessonScore.Count > 0);
+            double max_lesson_gscore = 0;
+            double max_lesson_pscore = 0;
+            double max_lesson_tscore = 0;
+
+            double min_lesson_gscore = 0;
+            double min_lesson_pscore = 0;
+            double min_lesson_tscore = 0;
+            //if (schoolSetting.overallEducationSetting.lesson.Equals("avg"))
+            //{
+            //    var gdata = hasData_lesson.Select(x => x.lessonScore.Average(x => x.gscore));
+            //    max_lesson_gscore = gdata.Max(z => z.score);
+            //    min_lesson_gscore = gdata.Min(z => z.score);
+            //    var pdata = hasData_lesson.Select(x => x.lessonScore.Average(x => x.pscore));
+            //    max_lesson_pscore = pdata.Max(z => z.score);
+            //    min_lesson_pscore = pdata.Min(z => z.score);
+            //    var tdata = hasData_lesson.Select(x => x.lessonScore.Average(x => x.tscore));
+            //    max_lesson_tscore = tdata.Max(z => z.score);
+            //    min_lesson_tscore = tdata.Min(z => z.score);
+            //}
+            //else if (schoolSetting.overallEducationSetting.lesson.Equals("newest"))
+            //{
+            //    var gdata = hasData_lesson.Select(x => x.lessonScore.OrderByDescending(y => y.time).First().gscore);
+            //    max_lesson_gscore = gdata.Max(z => z.score);
+            //    min_lesson_gscore = gdata.Min(z => z.score);
+            //    var pdata = hasData_lesson.Select(x => x.lessonScore.OrderByDescending(y => y.time).First().pscore);
+            //    max_lesson_pscore = pdata.Max(z => z.score);
+            //    min_lesson_pscore = pdata.Min(z => z.score);
+            //    var tdata = hasData_lesson.Select(x => x.lessonScore.OrderByDescending(y => y.time).First().tscore);
+            //    max_lesson_tscore = tdata.Max(z => z.score);
+            //    min_lesson_tscore = tdata.Min(z => z.score);
+            //}
+            //else if (schoolSetting.overallEducationSetting.art.Equals("sum"))
+            //{
+            //    var gdata = hasData_lesson.Select(x => x.lessonScore.Sum(x => x.gscore));
+            //    max_lesson_gscore = gdata.Max(z => z.score);
+            //    min_lesson_gscore = gdata.Min(z => z.score);
+            //    var pdata = hasData_lesson.Select(x => x.lessonScore.Sum(x => x.pscore));
+            //    max_lesson_pscore = pdata.Max(z => z.score);
+            //    min_lesson_pscore = pdata.Min(z => z.score);
+            //    var tdata = hasData_lesson.Select(x => x.lessonScore.Sum(x => x.tscore));
+            //    max_lesson_tscore = tdata.Max(z => z.score);
+            //    min_lesson_tscore = tdata.Min(z => z.score);
+            //}
+            foreach (var item in overallEducations) {
+                //体育
+                if (schoolSetting.overallEducationSetting.sports.Equals("avg"))
+                {
 
 
+                }
+                else if (schoolSetting.overallEducationSetting.sports.Equals("newest"))
+                {
+
+                }
+                else if (schoolSetting.overallEducationSetting.sports.Equals("sum"))
+                {
+
+                }
+                //智育
+                if (schoolSetting.overallEducationSetting.intelligence.Equals("avg"))
+                {
+
+                }
+                else if (schoolSetting.overallEducationSetting.intelligence.Equals("newest"))
+                {
+
+                }
+                else if (schoolSetting.overallEducationSetting.intelligence.Equals("sum"))
+                {
+                }
+                //艺术
+                if (schoolSetting.overallEducationSetting.art.Equals("avg"))
+                {
+
+                }
+                else if (schoolSetting.overallEducationSetting.art.Equals("newest"))
+                {
+                }
+                else if (schoolSetting.overallEducationSetting.art.Equals("sum"))
+                {
+
+                }
+            }
+
+
+
+
+
+
+
+
+
+
+
+
+           
+           
             return Ok();
             return Ok();
         }
         }
+        //排名指数计算=( 当前值分数- 298) / (9992 - 298) * (99 - 60) + 60
+        //将每个人的积分转化为60-100
+        //排名 = (积分 - 最低积分) / (最高积分 - 最低积分) * (最大排名 - 最小排名) + 最小排名
+        public class DimensionScore
+        {
+            public string classId { get; set; }
+            public string student { get; set; }
+            public double score { get; set; }
+            public double sports { get; set; }
+            public double art { get; set; }
+            public double labour { get; set; }
+            public double intelligence { get; set; }
+            public double virtue { get; set; }
+            public double lesson { get; set; }
+        }
 
 
         /*
         /*