CrazyIter_Bin 1 vuosi sitten
vanhempi
commit
70bae2465b

+ 3 - 3
TEAMModelBI/TEAMModelBI.csproj

@@ -65,9 +65,9 @@
 		<SpaRoot>ClientApp\</SpaRoot>
 		<DefaultItemExcludes>$(DefaultItemExcludes);$(SpaRoot)node_modules\**</DefaultItemExcludes>
 		<UserSecretsId>078b5d89-7d90-4f6a-88fc-7d96025990a8</UserSecretsId>
-		<Version>1.2308.2</Version>
-		<AssemblyVersion>1.2308.2.1</AssemblyVersion>
-		<FileVersion>1.2308.2.1</FileVersion>
+		<Version>5.2308.9</Version>
+		<AssemblyVersion>5.2308.9.1</AssemblyVersion>
+		<FileVersion>5.2308.9.1</FileVersion>
 		<Description>TEAMModelBI(BI)</Description>
 		<PackageReleaseNotes>BI版本说明版本切换标记2022000908</PackageReleaseNotes>
 		<PackageId>TEAMModelBI</PackageId>

+ 3 - 3
TEAMModelOS.FunctionV4/TEAMModelOS.FunctionV4.csproj

@@ -5,9 +5,9 @@
 		<OutputType>Exe</OutputType>
 		<_FunctionsSkipCleanOutput>true</_FunctionsSkipCleanOutput>
 		<SignAssembly>true</SignAssembly>
-		<Version>5.2308.2</Version>
-		<AssemblyVersion>5.2308.2.1</AssemblyVersion>
-		<FileVersion>5.2308.2.1</FileVersion>
+		<Version>5.2308.9</Version>
+		<AssemblyVersion>5.2308.9.1</AssemblyVersion>
+		<FileVersion>5.2308.9.1</FileVersion>
 		<PackageId>TEAMModelOS.FunctionV4</PackageId>
 		<Authors>teammodel</Authors>
 		<Company>醍摩豆(成都)信息技术有限公司</Company>

+ 106 - 62
TEAMModelOS/Controllers/Both/CourseBaseController.cs

@@ -1688,7 +1688,6 @@ namespace TEAMModelOS.Controllers.Both
                 if ($"{scope}".Equals(Constant.ScopeStudent))
                 {
                     memberType = 2;
-                    // Student student = await client.GetContainer(Constant.TEAMModelOS, "Student").ReadItemAsync<Student>(userid, new PartitionKey($"Base-{school}"));
                 }
                 if ($"{scope}".Equals(Constant.ScopeTmdUser))
                 {
@@ -1700,18 +1699,16 @@ namespace TEAMModelOS.Controllers.Both
                 }
                 List<GroupListGrp> groups = await GroupListService.GetMemberInGroupList(_coreAPIHttpService, client, _dingDing, userid, memberType, school, new List<string> { "class", "teach" });
                 if (groups.IsNotEmpty()) {
+                    List<string> groupIds = groups.Select(x => x.id).ToList();
                     switch (true)
                     {
                         //学生应参与的课程
                         case bool when $"{grant_type}".Equals("attend", StringComparison.OrdinalIgnoreCase):
-                            string sql = $"SELECT distinct value c FROM c  join b in c.schedules where c.pk='CourseTask' and b.groupId in() ";
-                            List<KeyValuePair<string, CourseTask>> schoolTeacherTask = new List<KeyValuePair<string, CourseTask>>();
-                            List<KeyValuePair<string, CourseTask>> schoolAssistantTask = new List<KeyValuePair<string, CourseTask>>();
-
-                            List<KeyValuePair<string, CourseTask>> privateTeacherTask = new List<KeyValuePair<string, CourseTask>>();
-                            List<KeyValuePair<string, CourseTask>> privateAssistantTask = new List<KeyValuePair<string, CourseTask>>();
-                            List<CourseDto> schoolCourses = new List<CourseDto>();
-                            List<CourseDto> teahcerCourses = new List<CourseDto>();
+                            string sql = $"SELECT distinct value c FROM c  join b in c.schedules where c.pk='CourseTask' and b.groupId in({string.Join(",", groups.Select(x=>$"'{x.id}'"))}) ";
+                            List<KeyValuePair<string, CourseTask>> schoolGroupTask = new List<KeyValuePair<string, CourseTask>>();
+                            List<KeyValuePair<string, CourseTask>> privateGroupTask = new List<KeyValuePair<string, CourseTask>>();
+                            List<CourseStudentDto> schoolCourses = new List<CourseStudentDto>();
+                            List<CourseStudentDto> teahcerCourses = new List<CourseStudentDto>();
                             if (!string.IsNullOrWhiteSpace(school))
                             {
                                 School schoolBase = await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.School).ReadItemAsync<School>(school, new PartitionKey("Base"));
@@ -1732,7 +1729,16 @@ namespace TEAMModelOS.Controllers.Both
                                 var resultSchool = await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.School).GetList<CourseTask>(sql, $"CourseTask-{school}");
                                 if (resultSchool.list.IsNotEmpty())
                                 {
-
+                                    resultSchool.list.ForEach(x => {
+                                        var schedulesGroup = x.schedules.Where(z => !string.IsNullOrWhiteSpace(z.groupId)   &&groupIds.Contains(z.groupId));
+                                        if (schedulesGroup.Any())
+                                        {
+                                            courseIds.Add(x.courseId);
+                                            CourseTask courseTask = x.ToJsonString().ToObject<CourseTask>();
+                                            courseTask.schedules=schedulesGroup.ToList();
+                                            schoolGroupTask.Add(new KeyValuePair<string, CourseTask>(x.courseId, courseTask));
+                                        }
+                                    });
                                 }
                                 if (courseIds.Any())
                                 {
@@ -1743,17 +1749,12 @@ namespace TEAMModelOS.Controllers.Both
                                         foreach (var item in result.list)
                                         {
                                             List<CourseTaskDto> courseTaskDtos = new List<CourseTaskDto>();
-                                            var teacher = schoolTeacherTask.Where(x => x.Key.Equals(item.id)).Select(z => new CourseTaskDto { courseTask=z.Value, type="teacher" });
-                                            if (teacher.Any())
+                                            var group = schoolGroupTask.Where(x => x.Key.Equals(item.id)).Select(z => z.Value);
+                                            if (group.Any())
                                             {
-                                                courseTaskDtos.AddRange(teacher.ToList());
+                                                schoolCourses.Add(new CourseStudentDto { courseBase=item, courseTasks=group.ToList() });
                                             }
-                                            var assistant = schoolAssistantTask.Where(x => x.Key.Equals(item.id)).Select(z => new CourseTaskDto { courseTask=z.Value, type="assistant" });
-                                            if (assistant.Any())
-                                            {
-                                                courseTaskDtos.AddRange(assistant.ToList());
-                                            }
-                                            schoolCourses.Add(new CourseDto { courseBase=item, courseTasks=courseTaskDtos });
+                                           
                                         }
                                     }
                                 }
@@ -1762,10 +1763,39 @@ namespace TEAMModelOS.Controllers.Both
                             if (resultTeacher.list.IsNotEmpty())
                             {
                                 HashSet<string> courseIds = new HashSet<string>();
+                                resultTeacher.list.ForEach(x => {
+                                    var schedulesGroup = x.schedules.Where(z => !string.IsNullOrWhiteSpace(z.groupId)  &&groupIds.Contains(z.groupId));
+                                    if (schedulesGroup.Any())
+                                    {
+                                        courseIds.Add(x.courseId);
+                                        CourseTask courseTask = x.ToJsonString().ToObject<CourseTask>();
+                                        courseTask.schedules=schedulesGroup.ToList();
+                                        privateGroupTask.Add(new KeyValuePair<string, CourseTask>(x.courseId, courseTask));
+                                    }
+                                  
+                                });
+                                if (courseIds.Any())
+                                {
+                                    string sqlCourse = $"select value c from c where c.id in ({string.Join(",", courseIds.Select(b => $"'{b}'"))})";
+                                    var result = await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.School).GetList<CourseBase>(sqlCourse, $"CourseBase");
+                                    if (result.list.IsNotEmpty())
+                                    {
+                                        foreach (var item in result.list)
 
+                                        {
+                                            List<CourseTaskDto> courseTaskDtos = new List<CourseTaskDto>();
+                                            var group  = privateGroupTask.Where(x => x.Key.Equals(item.id)).Select(z => z.Value);
+                                            if (group.Any())
+                                            {
+                                                teahcerCourses.Add(new CourseStudentDto { courseBase=item, courseTasks=group.ToList() });
+                                            }
+                                          
+                                           
+                                        }
+                                    }
+                                }
                             }
                             return Ok(new { teahcerCourses, schoolCourses });
-
                     }
                 }
             }
@@ -1864,58 +1894,67 @@ namespace TEAMModelOS.Controllers.Both
                                 }
                             }
                         }
-                        var resultTeacher = await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.Teacher).GetList<CourseTask>(sql, $"CourseTask");
-                        if (resultTeacher.list.IsNotEmpty()){
+                        {
                             HashSet<string> courseIds = new HashSet<string>();
-                            resultTeacher.list.ForEach(x => {
-                                var schedulesTeacher = x.schedules.Where(z => !string.IsNullOrWhiteSpace(z.teacherId)  &&  z.teacherId.Equals(tmdid));
-                                if (schedulesTeacher.Any())
-                                {
-                                    courseIds.Add(x.courseId);
-                                    CourseTask courseTask = x.ToJsonString().ToObject<CourseTask>();
-                                    courseTask.schedules=schedulesTeacher.ToList();
-                                    privateTeacherTask.Add(new KeyValuePair<string,CourseTask >(x.courseId, courseTask));
-                                }
-                                var schedulesAssistant = x.schedules.Where(z => z.assistants.Contains(tmdid));
-                                if (schedulesAssistant.Any())
-                                {
-                                    courseIds.Add(x.courseId);
-                                    CourseTask courseTask = x.ToJsonString().ToObject<CourseTask>();
-                                    courseTask.schedules=schedulesTeacher.ToList();
-                                    privateAssistantTask.Add(new KeyValuePair<string,CourseTask >(x.courseId, courseTask));
-                                }
-                            });
-                            if (courseIds.Any())
+                            string sqlCoursePrivate = "select value c.id from c ";
+                            var resultCourseBasePrivate = await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.Teacher).GetList<string>(sqlCoursePrivate, $"CourseBase-{tmdid}");
+                            if (resultCourseBasePrivate.list.IsNotEmpty())
+                            {
+                                courseIds=new HashSet<string>(resultCourseBasePrivate.list);
+                            }
+                            var resultTeacher = await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.Teacher).GetList<CourseTask>(sql, $"CourseTask");
+                            if (resultTeacher.list.IsNotEmpty())
                             {
-                                string sqlCourse = $"select value c from c where c.id in ({string.Join(",", courseIds.Select(b => $"'{b}'"))})";
-                                var result = await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.School).GetList<CourseBase>(sqlCourse, $"CourseBase");
-                                if (result.list.IsNotEmpty())
-                                {
-                                    foreach (var item in result.list)
 
+                                resultTeacher.list.ForEach(x => {
+                                    var schedulesTeacher = x.schedules.Where(z => !string.IsNullOrWhiteSpace(z.teacherId)  &&  z.teacherId.Equals(tmdid));
+                                    if (schedulesTeacher.Any())
                                     {
-                                        List<CourseTaskDto> courseTaskDtos = new List<CourseTaskDto>();
-                                        var teacher = privateTeacherTask.Where(x => x.Key.Equals(item.id)).Select(z => new CourseTaskDto { courseTask=z.Value, type="teacher" });
-                                        if (teacher.Any())
-                                        {
-                                            courseTaskDtos.AddRange(teacher.ToList());
-                                        }
-                                        var assistant = privateAssistantTask.Where(x => x.Key.Equals(item.id)).Select(z => new CourseTaskDto {   courseTask=z.Value, type="assistant" });
-                                        if (assistant.Any())
+                                        courseIds.Add(x.courseId);
+                                        CourseTask courseTask = x.ToJsonString().ToObject<CourseTask>();
+                                        courseTask.schedules=schedulesTeacher.ToList();
+                                        privateTeacherTask.Add(new KeyValuePair<string, CourseTask>(x.courseId, courseTask));
+                                    }
+                                    var schedulesAssistant = x.schedules.Where(z => z.assistants.Contains(tmdid));
+                                    if (schedulesAssistant.Any())
+                                    {
+                                        courseIds.Add(x.courseId);
+                                        CourseTask courseTask = x.ToJsonString().ToObject<CourseTask>();
+                                        courseTask.schedules=schedulesTeacher.ToList();
+                                        privateAssistantTask.Add(new KeyValuePair<string, CourseTask>(x.courseId, courseTask));
+                                    }
+                                });
+                                if (courseIds.Any())
+                                {
+                                    string sqlCourse = $"select value c from c where c.id in ({string.Join(",", courseIds.Select(b => $"'{b}'"))})";
+                                    var result = await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.School).GetList<CourseBase>(sqlCourse, $"CourseBase");
+                                    if (result.list.IsNotEmpty())
+                                    {
+                                        foreach (var item in result.list)
+
                                         {
-                                            courseTaskDtos.AddRange(assistant.ToList());
+                                            List<CourseTaskDto> courseTaskDtos = new List<CourseTaskDto>();
+                                            var teacher = privateTeacherTask.Where(x => x.Key.Equals(item.id)).Select(z => new CourseTaskDto { courseTask=z.Value, type="teacher" });
+                                            if (teacher.Any())
+                                            {
+                                                courseTaskDtos.AddRange(teacher.ToList());
+                                            }
+                                            var assistant = privateAssistantTask.Where(x => x.Key.Equals(item.id)).Select(z => new CourseTaskDto { courseTask=z.Value, type="assistant" });
+                                            if (assistant.Any())
+                                            {
+                                                courseTaskDtos.AddRange(assistant.ToList());
+                                            }
+                                            teahcerCourses.Add(new CourseDto { courseBase=item, courseTasks=courseTaskDtos });
                                         }
-                                        teahcerCourses.Add(new CourseDto { courseBase=item, courseTasks=courseTaskDtos });
                                     }
                                 }
                             }
+                            //个人,
+                            //学校,
+                            //助教,学校。
+                            //助教,个人。
+                            return Ok(new { teahcerCourses, schoolCourses });
                         }
-                        //个人,
-                        //学校,
-                        //助教,学校。
-                        //助教,个人。
-                        return Ok(new { teahcerCourses , schoolCourses});
-                        
                 }
             }
             catch (Exception ex)
@@ -1926,7 +1965,12 @@ namespace TEAMModelOS.Controllers.Both
             return Ok();
         }
     }
+    public class CourseStudentDto
+    {
+        public CourseBase courseBase { get; set; }
+        public List<CourseTask> courseTasks { get; set; }
 
+    }
     public class CourseDto { 
         public CourseBase courseBase { get; set; }
         public List<CourseTaskDto> courseTasks { get; set; }

+ 1 - 1
TEAMModelOS/appsettings.Development.json

@@ -18,7 +18,7 @@
     "IdTokenSalt": "8263692E2213497BB55E74792B7900B4",
     "HttpTrigger": "https://teammodelosfunction-test.chinacloudsites.cn/api/",
     //"HttpTrigger": "http://localhost:7071/api/"
-    "Version": "5.2308.2.1"
+    "Version": "5.2308.9.1"
   },
   "Azure": {
    // 测试站数据库

+ 1 - 1
TEAMModelOS/appsettings.json

@@ -18,7 +18,7 @@
     "Exp": 86400,
     "IdTokenSalt": "8263692E2213497BB55E74792B7900B4",
     "HttpTrigger": "https://teammodelosfunction.chinacloudsites.cn/api/",
-    "Version": "5.2308.2.1"
+    "Version": "5.2308.9.1"
   },
   "Azure": {
     "Storage": {