CrazyIter_Bin 2 år sedan
förälder
incheckning
67699da3d3

+ 5 - 5
TEAMModelAPI/Controllers/Business/CourseController.cs

@@ -58,7 +58,7 @@ namespace TEAMModelAPI.Controllers
         }
         [ProducesDefaultResponseType]
         [HttpPost("get-course-list")]
-        [ApiToken(Auth = "1301", Name = "获取课程列表信息", RW = "R", Limit = false)]
+        [ApiToken(Auth = "1301", Name = "获取课程列表信息", RWN = "R", Limit = false)]
         public async Task<IActionResult> GetCourseList(JsonElement json)
         {
             var client = _azureCosmos.GetCosmosClient();
@@ -85,7 +85,7 @@ namespace TEAMModelAPI.Controllers
 
         [ProducesDefaultResponseType]
         [HttpPost("get-course-info")]
-        [ApiToken(Auth = "1302", Name = "课程详细信息", RW = "R", Limit = false)]
+        [ApiToken(Auth = "1302", Name = "课程详细信息", RWN = "R", Limit = false)]
         public async Task<IActionResult> GetCourseInfo(JsonElement json)
         {
             var (id, school) = HttpContext.GetApiTokenInfo();
@@ -111,7 +111,7 @@ namespace TEAMModelAPI.Controllers
         /// <returns></returns>
         [ProducesDefaultResponseType]
         [HttpPost("get-period-timetable")]
-        [ApiToken(Auth = "1303", Name = "试卷和评测的条件信息", RW = "R", Limit = false)]
+        [ApiToken(Auth = "1303", Name = "试卷和评测的条件信息", RWN = "R", Limit = false)]
         public async Task<IActionResult> GetPaperExamCondition(JsonElement json)
         {
             json.TryGetProperty("periodId", out JsonElement _periodId);
@@ -132,7 +132,7 @@ namespace TEAMModelAPI.Controllers
 
         [ProducesDefaultResponseType]
         [HttpPost("upsert-course-infos")]
-        [ApiToken(Auth = "1304", Name = "课程详细信息", RW = "W", Limit = false)]
+        [ApiToken(Auth = "1304", Name = "课程详细信息", RWN = "W", Limit = false)]
         public async Task<IActionResult> UpsertCourseInfo(CourseDtoImpt json)
         {
             var (id, school) = HttpContext.GetApiTokenInfo();
@@ -244,7 +244,7 @@ namespace TEAMModelAPI.Controllers
         
         [ProducesDefaultResponseType]
         [HttpPost("upsert-course-schedule")]
-        [ApiToken(Auth = "1305", Name = "更新课程的排课信息", RW = "W", Limit = false)]
+        [ApiToken(Auth = "1305", Name = "更新课程的排课信息", RWN = "W", Limit = false)]
         public async Task<IActionResult> UpsertCourseSchedule(ImportCourseDto json)
         {
             var (id, school) = HttpContext.GetApiTokenInfo();

+ 1 - 1
TEAMModelAPI/Controllers/Business/ExamController.cs

@@ -60,7 +60,7 @@ namespace TEAMModelAPI.Controllers
         /// <returns></returns>
         [ProducesDefaultResponseType]
         [HttpPost("get-paper-exam-condition")]
-        [ApiToken(Auth = "1101", Name = "试卷和评测的条件信息", RW = "R", Limit = false)]
+        [ApiToken(Auth = "1101", Name = "试卷和评测的条件信息", RWN = "R", Limit = false)]
         public async Task<IActionResult> GetPaperExamCondition(JsonElement json)
         {
             json.TryGetProperty("periodId", out JsonElement _periodId);

+ 8 - 8
TEAMModelAPI/Controllers/Business/GroupListController.cs

@@ -63,7 +63,7 @@ namespace TEAMModelAPI.Controllers
         /// <returns></returns>
         [ProducesDefaultResponseType]
         [HttpPost("get-group-list")]
-        [ApiToken(Auth = "1201", Name = "学校名单列表", RW = "R", Limit = false)]
+        [ApiToken(Auth = "1201", Name = "学校名单列表", RWN = "R", Limit = false)]
         public async Task<IActionResult> GetGroupList(JsonElement json)
         {
             var client = _azureCosmos.GetCosmosClient();
@@ -159,7 +159,7 @@ namespace TEAMModelAPI.Controllers
         }
         [ProducesDefaultResponseType]
         [HttpPost("get-group-members")]
-        [ApiToken(Auth = "1202", Name = "获取名单详细信息和成员信息", RW = "R", Limit = false)]
+        [ApiToken(Auth = "1202", Name = "获取名单详细信息和成员信息", RWN = "R", Limit = false)]
         public async Task<IActionResult> GetGroupMembers(JsonElement json)
         {
             var client = _azureCosmos.GetCosmosClient();
@@ -176,7 +176,7 @@ namespace TEAMModelAPI.Controllers
         /// <returns></returns>
         [ProducesDefaultResponseType]
         [HttpPost("import-class-members")]
-        [ApiToken(Auth = "1203", Name = "导入行政班学生", RW = "W", Limit = false)]
+        [ApiToken(Auth = "1203", Name = "导入行政班学生", RWN = "W", Limit = false)]
         public async Task<IActionResult> ImportClassMembers(JsonElement json)
         {
             var (id, school) = HttpContext.GetApiTokenInfo();
@@ -211,7 +211,7 @@ namespace TEAMModelAPI.Controllers
         /// <returns></returns>
         [ProducesDefaultResponseType]
         [HttpPost("update-class-members")]
-        [ApiToken(Auth = "1204", Name = "更新行政班学生", RW = "W", Limit = false)]
+        [ApiToken(Auth = "1204", Name = "更新行政班学生", RWN = "W", Limit = false)]
         public async Task<IActionResult> UpdateClassMembers(JsonElement json)
         {
             var (id, school) = HttpContext.GetApiTokenInfo();
@@ -248,7 +248,7 @@ namespace TEAMModelAPI.Controllers
         /// <returns></returns>
         [ProducesDefaultResponseType]
         [HttpPost("remove-class-members")]
-        [ApiToken(Auth = "1205", Name = "移除行政班学生", RW = "W", Limit = false)]
+        [ApiToken(Auth = "1205", Name = "移除行政班学生", RWN = "W", Limit = false)]
         public async Task<IActionResult> RemoveClassMembers(JsonElement json)
         {
             var (id, school) = HttpContext.GetApiTokenInfo();
@@ -290,7 +290,7 @@ namespace TEAMModelAPI.Controllers
         /// <returns></returns>
         [ProducesDefaultResponseType]
         [HttpPost("upsert-teach-groups")]
-        [ApiToken(Auth = "1206", Name = "创建或更新教学班", RW = "W", Limit = false)]
+        [ApiToken(Auth = "1206", Name = "创建或更新教学班", RWN = "W", Limit = false)]
         public async Task<IActionResult> UpsertTeachGroups(GroupListDtoImpt json) {
             var (_, school) = HttpContext.GetApiTokenInfo();
             var groupListsDto = json.groupLists;
@@ -378,7 +378,7 @@ namespace TEAMModelAPI.Controllers
         /// <returns></returns>
         [ProducesDefaultResponseType]
         [HttpPost("import-teach-members")]
-        [ApiToken(Auth = "1207", Name = "导入教学班学生", RW = "W", Limit = false)]
+        [ApiToken(Auth = "1207", Name = "导入教学班学生", RWN    = "W", Limit = false)]
         public async Task<IActionResult> ImportTeachMembers(MemberImpt json)
         {
             var (id, school) = HttpContext.GetApiTokenInfo();
@@ -447,7 +447,7 @@ namespace TEAMModelAPI.Controllers
         /// <returns></returns>
         [ProducesDefaultResponseType]
         [HttpPost("remove-teach-members")]
-        [ApiToken(Auth = "1208", Name = "移除教学班学生", RW = "W", Limit = false)]
+        [ApiToken(Auth = "1208", Name = "移除教学班学生", RWN = "W", Limit = false)]
         public async Task<IActionResult> RemoveTeachMembers(JsonElement json) {
             var (id, school) = HttpContext.GetApiTokenInfo();
             json.TryGetProperty("stuids", out JsonElement _stuids);

+ 3 - 3
TEAMModelAPI/Controllers/Business/RoomController.cs

@@ -57,7 +57,7 @@ namespace TEAMModelAPI.Controllers
         /// <returns></returns>
         [ProducesDefaultResponseType]
         [HttpPost("get-room-list")]
-        [ApiToken(Auth = "1401", Name = "获取物理教室列表", RW = "R", Limit = false)]
+        [ApiToken(Auth = "1401", Name = "获取物理教室列表", RWN= "R", Limit = false)]
         public async Task<IActionResult> GetRoomList(JsonElement json)
         {
             var client = _azureCosmos.GetCosmosClient();
@@ -88,7 +88,7 @@ namespace TEAMModelAPI.Controllers
         /// <returns></returns>
         [ProducesDefaultResponseType]
         [HttpPost("get-room-info")]
-        [ApiToken(Auth = "1402", Name = "获取物理教室详细信息", RW = "R", Limit = false)]
+        [ApiToken(Auth = "1402", Name = "获取物理教室详细信息", RWN= "R", Limit = false)]
         public async Task<IActionResult> GetRoomInfo(JsonElement json)
         {
             var (id, school) = HttpContext.GetApiTokenInfo();
@@ -120,7 +120,7 @@ namespace TEAMModelAPI.Controllers
         /// <returns></returns>
         [ProducesDefaultResponseType]
         [HttpPost("upsert-room-infos")]
-        [ApiToken(Auth = "1403", Name = "创建或更新教学班", RW = "W", Limit = false)]
+        [ApiToken(Auth = "1403", Name = "创建或更新教学班", RWN= "W", Limit = false)]
         public async Task<IActionResult> UpsertRoomInfo(RoomsDto json)
         {
             var (id, school) = HttpContext.GetApiTokenInfo();

+ 2 - 2
TEAMModelAPI/Controllers/Business/SchoolController.cs

@@ -59,7 +59,7 @@ namespace TEAMModelAPI.Controllers
         /// <returns></returns>
         [ProducesDefaultResponseType]
         [HttpPost("get-schools")]
-        [ApiToken(Auth = "1000", Name = "合作商获取可访问的学校列表", RW = "R", Limit = false)]
+        [ApiToken(Auth = "1000", Name = "合作商获取可访问的学校列表", RWN= "R", Limit = false)]
         public async Task<IActionResult> GetSchools() {
             var (id, _) = HttpContext.GetApiTokenInfo();
             var table = _azureStorage.GetCloudTableClient().GetTableReference("IESOpenApi");
@@ -73,7 +73,7 @@ namespace TEAMModelAPI.Controllers
         /// <returns></returns>
         [ProducesDefaultResponseType]
         [HttpPost("get-school-info")]
-        [ApiToken(Auth = "1001",Name = "学校基础信息", RW = "R", Limit =false)]
+        [ApiToken(Auth = "1001",Name = "学校基础信息", RWN= "R", Limit =false)]
         public async Task<IActionResult> GetSchoolInfo()
         {
             var (id, school) = HttpContext.GetApiTokenInfo();

+ 11 - 3
TEAMModelOS.FunctionV4/ServiceBus/ActiveTaskTopic.cs

@@ -1784,13 +1784,21 @@ namespace TEAMModelOS.FunctionV4.ServiceBus
                                                     int grade;
                                                     if (dis > 0)
                                                     {
-                                                        grade = (Year - year - 1) % Count.Value;
+                                                        if (Year - year > 0)
+                                                        {
+                                                            grade = (Year - year - 1) % Count.Value;
+                                                        }
+                                                        else
+                                                        {
+                                                            grade = Math.Abs((Year - year)) % Count.Value;
+                                                        }
+
                                                     }
                                                     else
                                                     {
-                                                        grade = (Year - year) % Count.Value;
+                                                        grade = Math.Abs((Year - year)) % Count.Value;
                                                     }
-                                                    grades.Add($"{grade}");
+
                                                 }
                                             }
                                         }

+ 0 - 6
TEAMModelOS.sln

@@ -13,8 +13,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TEAMModelOS", "TEAMModelOS\
 EndProject
 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TEAMModelBI", "TEAMModelBI\TEAMModelBI.csproj", "{54DC5894-D5BA-40AB-9226-FB801E04BA24}"
 EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TEAMModelAPI", "TEAMModelAPI\TEAMModelAPI.csproj", "{C8E1DCAE-BE26-49E8-A772-3A094FC510DE}"
-EndProject
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
 		Debug|Any CPU = Debug|Any CPU
@@ -41,10 +39,6 @@ Global
 		{54DC5894-D5BA-40AB-9226-FB801E04BA24}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{54DC5894-D5BA-40AB-9226-FB801E04BA24}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{54DC5894-D5BA-40AB-9226-FB801E04BA24}.Release|Any CPU.Build.0 = Release|Any CPU
-		{C8E1DCAE-BE26-49E8-A772-3A094FC510DE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{C8E1DCAE-BE26-49E8-A772-3A094FC510DE}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{C8E1DCAE-BE26-49E8-A772-3A094FC510DE}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{C8E1DCAE-BE26-49E8-A772-3A094FC510DE}.Release|Any CPU.Build.0 = Release|Any CPU
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
 		HideSolutionNode = FALSE

+ 1 - 1
TEAMModelOS/Controllers/School/ArtReviewController.cs

@@ -397,7 +397,7 @@ namespace TEAMModelOS.Controllers
                                     await client.GetContainer(Constant.TEAMModelOS, Constant.Student).ReplaceItemAsync(rs, rs.id, new PartitionKey(rs.code));
                                 }
                                 if (artResults.Any()) {
-                                    List<ArtStudentPdf> studentPdfs = await ArtService.GenArtPDF(artResults, $"{_artId}", $"{school}", head_lang, _azureCosmos, _environment, _coreAPIHttpService, _dingDing, _serviceBus, _configuration);
+                                    List<ArtStudentPdf> studentPdfs = await ArtService.GenArtPDF(artResults.Select(z=>z.studentId).ToList(), $"{_artId}", $"{school}", head_lang, _azureCosmos, _environment, _coreAPIHttpService, _dingDing, _serviceBus, _configuration);
                                 }
                                 return Ok(new { results = studentArtResults, status = 1 });
                             }

+ 85 - 0
TEAMModelOS/Controllers/XTest/FixLessonRecordController.cs

@@ -38,6 +38,7 @@ using DocumentFormat.OpenXml.Drawing.Diagrams;
 using TEAMModelOS.SDK.Models.Dtos;
 using DocumentFormat.OpenXml.Bibliography;
 using System.Formats.Asn1;
+using Microsoft.Azure.SignalR.Protocol;
 
 namespace TEAMModelOS.Controllers.XTest
 {
@@ -68,6 +69,90 @@ namespace TEAMModelOS.Controllers.XTest
             _coreAPIHttpService = coreAPIHttpService;
             _httpClient = httpClient;
         }
+
+
+
+        /// <summary>
+        ///
+        /// </summary>
+        /// <returns></returns>
+        [ProducesDefaultResponseType]
+        [HttpPost("test-lesson-grade")]
+        public async Task<IActionResult> TestLessonGrade(JsonElement json)
+        {
+            string school = json.GetProperty("school").GetString();
+            string periodId = json.GetProperty("periodId").GetString();
+            List<string> groupIds = json.GetProperty("groupIds").Deserialize<List<string>>();
+            var client = _azureCosmos.GetCosmosClient();
+            HashSet<string> grades = new HashSet<string>();
+            List<GroupListDto> groups = await GroupListService.GetGroupListByListids(client, _dingDing,groupIds, school);
+            List<GroupListDto> groupLists = groups?.FindAll(x => !string.IsNullOrEmpty(x.periodId) && x.year > 0 && !string.IsNullOrEmpty(x.school));
+            if (groupLists.IsNotEmpty() && !string.IsNullOrWhiteSpace(periodId))
+            {
+                try
+                {
+                    var gplist = groupLists.FindAll(x => groupIds.Contains(x.id));
+                    School schoolObj = await client.GetContainer(Constant.TEAMModelOS, "School").ReadItemAsync<School>(school, new PartitionKey("Base"));
+                    //年级算法
+                    var period = schoolObj.period.Find(x => x.id.Equals(periodId));
+                    int? Count = period?.grades?.Count;
+                    var date= DateTimeOffset.FromUnixTimeMilliseconds(1655434499405);
+                    if (Count.HasValue)
+                    {
+                        int Day = date.Day;
+                        int Month = date.Month;
+                        int Year = date.Year;
+                        int start = int.Parse($"{Year}0901");
+                        var se = period.semesters.Find(x => x.start == 1);
+                        if (se == null)
+                        {
+                            se = period.semesters.First();
+                        }
+                        if (se != null)
+                        {
+                            string sm = se.month >= 10 ? $"{se.month}" : $"0{se.month}";
+                            string sd = se.day >= 10 ? $"{se.day}" : $"0{se.day}";
+                            start = int.Parse($"{Year}{sm}{sd}");
+                        }
+                        int curr = int.Parse(date.ToString("yyyyMMdd"));
+                        //新学年开学时间大于当前时间,计算年级需要减1   20220901-20220408 > 0 则当前20220408是2021年入学的,
+                        //当前时间大于新学年开学时间,计算年级则不需要  20220901-20221203 < 1 则当前20221203是2022年入学的,
+                        //20230901-20230101 > 0 则当前20230101是2022年入学的,         
+                        int dis = start - curr;
+                        foreach (int year in gplist.Select(x => x.year))
+                        {
+                            int grade;
+                            if (dis > 0)
+                            {
+                                if (Year - year > 0)
+                                {
+                                    grade = (Year - year-1) % Count.Value;
+                                }
+                                else
+                                {
+                                    grade = Math.Abs((Year - year)) % Count.Value;
+                                }
+                                
+                            }
+                            else
+                            {
+                                grade = Math.Abs((Year - year)) % Count.Value;
+                            }
+                            grades.Add($"{grade}");
+                        }
+                    }
+                }
+                catch (CosmosException ex) when (ex.Status == 404)
+                {
+
+                }
+                catch (Exception ex)
+                {
+                    await _dingDing.SendBotMsg($"{Environment.GetEnvironmentVariable("Option:Location")}-处理课堂记录的-年级处理异常{ex.Message}\n{ex.StackTrace}\n\n{json.ToJsonString()}", GroupNames.醍摩豆服務運維群組);
+                }
+            }
+            return Ok(grades);
+        }
         /// <summary>
         ///
         /// </summary>