瀏覽代碼

教研组代码提交、

CrazyIter_Bin 3 年之前
父節點
當前提交
5cb5733290

+ 7 - 6
TEAMModeBI/Controllers/BIHome/StudyStatisController.cs

@@ -1,4 +1,4 @@
-using Microsoft.AspNetCore.Mvc;
+using Microsoft.AspNetCore.Mvc;
 using System;
 using System;
 using System.Collections.Generic;
 using System.Collections.Generic;
 using System.Linq;
 using System.Linq;
@@ -173,9 +173,9 @@ namespace TEAMModeBI.Controllers.BIHome
                     {
                     {
                         classVideos.Add(item);
                         classVideos.Add(item);
                     }
                     }
-                    List<TchList> tchLists = new List<TchList>();
-                    await foreach (var item in client.GetContainer(Constant.TEAMModelOS, "School").GetItemQueryIterator<TchList>(queryText: $"select value(c) from c  ",
-                        requestOptions: new QueryRequestOptions() { PartitionKey = new PartitionKey($"TchList-{schoolitem.id}") }))
+                    List<GroupList> tchLists = new List<GroupList>();
+                    await foreach (var item in client.GetContainer(Constant.TEAMModelOS, "School").GetItemQueryIterator<GroupList>(queryText: $"select value(c) from c where c.type='research'  ",
+                        requestOptions: new QueryRequestOptions() { PartitionKey = new PartitionKey($"GroupList-{schoolitem.id}") }))
                     {
                     {
                         groups.Add(item.name);
                         groups.Add(item.name);
                         tchLists.Add(item);
                         tchLists.Add(item);
@@ -187,7 +187,8 @@ namespace TEAMModeBI.Controllers.BIHome
                         ids.Add("default");
                         ids.Add("default");
                     }
                     }
 
 
-                    (List<TmdInfo> tmdInfos, List<ClassListInfo> classInfos) = await TriggerStuActivity.GetTchList(client, _dingDing, ids, $"{schoolitem.id}");
+                    (List<RMember> tmdInfos, List<RGroupList> classInfos) = await GroupListService.GetStutmdidListids(client, _dingDing, ids, $"{school}");
+                    // (List<TmdInfo> tmdInfos, List<ClassListInfo> classInfos) = await TriggerStuActivity.GetTchList(client, _dingDing, ids, $"{school}");
                     //总人数
                     //总人数
                     int teacherCount1 = tmdInfos.Count;
                     int teacherCount1 = tmdInfos.Count;
 
 
@@ -440,7 +441,7 @@ namespace TEAMModeBI.Controllers.BIHome
                         {
                         {
                             ok50TimeCount += 1;
                             ok50TimeCount += 1;
                         }
                         }
-                        var classes = classInfos.Where(y => y.tmdInfos.Select(z => z.id).Contains(tmd.id)).ToList();
+                        var classes = classInfos.Where(y => y.members.Select(z => z.id).Contains(tmd.id)).ToList();
 
 
                         //表示有订阅,或者有线下活动参与的,或者有课堂实录视频上传的
                         //表示有订阅,或者有线下活动参与的,或者有课堂实录视频上传的
                         if (subs.Count > 0 || schoolScoreTime > 0 || isJoinVideo)
                         if (subs.Count > 0 || schoolScoreTime > 0 || isJoinVideo)

+ 3 - 1
TEAMModelFunction/TriggerExamLite.cs

@@ -70,7 +70,9 @@ namespace TEAMModelFunction
                             }
                             }
                             break;
                             break;
                         case "going":
                         case "going":
-                            (List<TmdInfo> tchList, _) = await TriggerStuActivity.GetTchList(client, _dingDing, lite.tchLists, lite.school);
+                            (List<RMember> tchList, List<RGroupList> classInfos) = await GroupListService.GetStutmdidListids(client, _dingDing, lite.tchLists, lite.school);
+                            // (List<TmdInfo> tmdInfos, List<ClassListInfo> classInfos) = await TriggerStuActivity.GetTchList(client, _dingDing, ids, $"{school}");
+                            //(List<TmdInfo> tchList, _) = await TriggerStuActivity.GetTchList(client, _dingDing, lite.tchLists, lite.school);
                             List<StuActivity> tchActivities = new List<StuActivity>();
                             List<StuActivity> tchActivities = new List<StuActivity>();
 
 
                             if (tchList.IsNotEmpty())
                             if (tchList.IsNotEmpty())

+ 3 - 2
TEAMModelFunction/TriggerHomework.cs

@@ -128,8 +128,9 @@ namespace TEAMModelFunction
                                     });
                                     });
                                 });
                                 });
                             }
                             }
-
-                            (List<TmdInfo> tchList, _) = await TriggerStuActivity.GetTchList(client, _dingDing, work.tchLists, work.school);
+                            (List<RMember> tchList, List<RGroupList> classInfos) = await GroupListService.GetStutmdidListids(client, _dingDing, work.tchLists, work.school);
+                            // (List<TmdInfo> tmdInfos, List<ClassListInfo> classInfos) = await TriggerStuActivity.GetTchList(client, _dingDing, ids, $"{school}");
+                           // (List<TmdInfo> tchList, _) = await TriggerStuActivity.GetTchList(client, _dingDing, work.tchLists, work.school);
                             if (tchList.IsNotEmpty())
                             if (tchList.IsNotEmpty())
                             {
                             {
                                 tchList.ForEach(x =>
                                 tchList.ForEach(x =>

+ 3 - 1
TEAMModelFunction/TriggerStudy.cs

@@ -70,7 +70,9 @@ namespace TEAMModelFunction
                             }
                             }
                             break;
                             break;
                         case "going":
                         case "going":
-                            (List<TmdInfo> tchList, _) = await TriggerStuActivity.GetTchList(client, _dingDing, study.tchLists, study.school);
+                            (List<RMember> tchList, List<RGroupList> classInfos) = await GroupListService.GetStutmdidListids(client, _dingDing, study.tchLists, study.school);
+                            // (List<TmdInfo> tmdInfos, List<ClassListInfo> classInfos) = await TriggerStuActivity.GetTchList(client, _dingDing, ids, $"{school}");
+                            //(List<TmdInfo> tchList, _) = await TriggerStuActivity.GetTchList(client, _dingDing, study.tchLists, study.school);
                             List<StuActivity> tchActivities = new List<StuActivity>();
                             List<StuActivity> tchActivities = new List<StuActivity>();
 
 
                             if (tchList.IsNotEmpty())
                             if (tchList.IsNotEmpty())

+ 3 - 2
TEAMModelFunction/TriggerSurvey.cs

@@ -137,8 +137,9 @@ namespace TEAMModelFunction
                                     });
                                     });
                                 });
                                 });
                             }
                             }
-
-                            (List<TmdInfo> tchList, _) = await TriggerStuActivity.GetTchList(client, _dingDing, survey.tchLists, survey.school);
+                            (List<RMember> tchList, List<RGroupList> classInfos) = await GroupListService.GetStutmdidListids(client, _dingDing, survey.tchLists, survey.school);
+                            // (List<TmdInfo> tmdInfos, List<ClassListInfo> classInfos) = await TriggerStuActivity.GetTchList(client, _dingDing, ids, $"{school}");
+                            //(List<TmdInfo> tchList, _) = await TriggerStuActivity.GetTchList(client, _dingDing, survey.tchLists, survey.school);
                             if (tchList.IsNotEmpty())
                             if (tchList.IsNotEmpty())
                             {
                             {
                                tchList.ForEach(x => {
                                tchList.ForEach(x => {

+ 3 - 2
TEAMModelFunction/TriggerVote.cs

@@ -144,8 +144,9 @@ namespace TEAMModelFunction
                                     });
                                     });
                                 });
                                 });
                             }
                             }
-                           
-                            (List<TmdInfo> tchList, _) = await TriggerStuActivity.GetTchList(client, _dingDing, vote.tchLists, vote.school);
+                            (List<RMember> tchList, List<RGroupList> classInfos) = await GroupListService.GetStutmdidListids(client, _dingDing, vote.tchLists, vote.school);
+                            // (List<TmdInfo> tmdInfos, List<ClassListInfo> classInfos) = await TriggerStuActivity.GetTchList(client, _dingDing, ids, $"{school}");
+                           // (List<TmdInfo> tchList, _) = await TriggerStuActivity.GetTchList(client, _dingDing, vote.tchLists, vote.school);
                             if (tchList.IsNotEmpty())
                             if (tchList.IsNotEmpty())
                             {
                             {
                                 tchList.ForEach(x => {
                                 tchList.ForEach(x => {

+ 9 - 7
TEAMModelOS.SDK/Models/Service/GroupListService.cs

@@ -276,13 +276,14 @@ namespace TEAMModelOS.SDK.Models
             }
             }
             return list;
             return list;
         }
         }
-        public static async Task<List<RGroupList>> GetStutmdidListids(CosmosClient client, DingDing _dingDing, List<string> classes, string school)
+        public static async Task<(List<RMember>, List<RGroupList> groups)> GetStutmdidListids(CosmosClient client, DingDing _dingDing, List<string> classes, string school)
         {
         {
+            List<RMember> members = new List<RMember>();
             List<RGroupList> groupLists = null;
             List<RGroupList> groupLists = null;
             if (classes.Count == 1 && classes.First().Equals("default") && !string.IsNullOrEmpty(school))
             if (classes.Count == 1 && classes.First().Equals("default") && !string.IsNullOrEmpty(school))
             {
             {
                 //默认的教研组
                 //默认的教研组
-                List<RMember> members = new List<RMember>();
+                members = new List<RMember>();
                 await foreach (var item in client.GetContainer(Constant.TEAMModelOS, "School").GetItemQueryIterator<TmdInfo>(queryText: $"SELECT  value(c) FROM c ", requestOptions: new QueryRequestOptions() { PartitionKey = new PartitionKey($"Teacher-{school}") }))
                 await foreach (var item in client.GetContainer(Constant.TEAMModelOS, "School").GetItemQueryIterator<TmdInfo>(queryText: $"SELECT  value(c) FROM c ", requestOptions: new QueryRequestOptions() { PartitionKey = new PartitionKey($"Teacher-{school}") }))
                 {
                 {
                     RMember member = new RMember
                     RMember member = new RMember
@@ -357,7 +358,8 @@ namespace TEAMModelOS.SDK.Models
                     var list = item.Value.GroupBy(x => x.type).Select(y => new { key = y.Key, list = y.ToList() });
                     var list = item.Value.GroupBy(x => x.type).Select(y => new { key = y.Key, list = y.ToList() });
                     foreach (var group in list)
                     foreach (var group in list)
                     {
                     {
-                        await GetGroupListMemberInfo(client, group.key, group.list, item.Key,_dingDing);
+                        (List<RGroupList> rgroups, List<RMember> rmembers)  =await GetGroupListMemberInfo(client, group.key, group.list, item.Key,_dingDing);
+                        members.AddRange(rmembers);
                     }
                     }
                 }
                 }
                 groupLists = groups.SelectMany(x => x.Value).ToList();
                 groupLists = groups.SelectMany(x => x.Value).ToList();
@@ -369,7 +371,7 @@ namespace TEAMModelOS.SDK.Models
                               requestOptions: new QueryRequestOptions() { PartitionKey = new Azure.Cosmos.PartitionKey($"Class-{school}") }))
                               requestOptions: new QueryRequestOptions() { PartitionKey = new Azure.Cosmos.PartitionKey($"Class-{school}") }))
                     {
                     {
                         ///行政班(学生搜寻classId动态返回)class
                         ///行政班(学生搜寻classId动态返回)class
-                        List<RMember> members = students.Where(x => x.classId.Equals(item.id)).Select(y => new RMember { id = y.id, code = school, name = y.name, type = 2, picture = y.picture, no = y.no }).ToList();
+                        List<RMember> smembers = students.Where(x => x.classId.Equals(item.id)).Select(y => new RMember { id = y.id, code = school, name = y.name, type = 2, picture = y.picture, no = y.no }).ToList();
                         RGroupList group = new RGroupList
                         RGroupList group = new RGroupList
                         {
                         {
                             id = item.id,
                             id = item.id,
@@ -380,14 +382,14 @@ namespace TEAMModelOS.SDK.Models
                             school = school,
                             school = school,
                             type = "class",
                             type = "class",
                             year = item.year,
                             year = item.year,
-                            members = members,
-                            scount = members.Count
+                            members = smembers,
+                            scount = smembers.Count
                         };
                         };
                         groupLists.Add(group);
                         groupLists.Add(group);
                     }
                     }
                 }
                 }
             }
             }
-            return groupLists;
+            return (members,groupLists);
         }
         }
 
 
         public static async Task<(List<RGroupList> groups, List<RMember> members)> GetGroupListMemberInfo(CosmosClient client, string type, List<RGroupList> groups, string groupTbname, DingDing _dingDing)
         public static async Task<(List<RGroupList> groups, List<RMember> members)> GetGroupListMemberInfo(CosmosClient client, string type, List<RGroupList> groups, string groupTbname, DingDing _dingDing)

+ 8 - 8
TEAMModelOS.SDK/Models/Service/TriggerStuActivity.cs

@@ -384,12 +384,12 @@ namespace TEAMModelOS.SDK
                     List<string> sqlList = new List<string>();
                     List<string> sqlList = new List<string>();
                     classes.ForEach(x => { sqlList.Add($" '{x}' "); });
                     classes.ForEach(x => { sqlList.Add($" '{x}' "); });
                     string sql = string.Join(" , ", sqlList);
                     string sql = string.Join(" , ", sqlList);
-                    List<TchList> tchLists = new List<TchList>();
+                    List<GroupList> tchLists = new List<GroupList>();
 
 
                     if (!string.IsNullOrEmpty(school))
                     if (!string.IsNullOrEmpty(school))
                     {
                     {
-                        await foreach (var item in client.GetContainer(Constant.TEAMModelOS, "School").GetItemQueryIterator<TchList>(queryText: $"select value(c) from c where c.id in ({sql})",
-                        requestOptions: new QueryRequestOptions() { PartitionKey = new Azure.Cosmos.PartitionKey($"TchList-{school}") }))
+                        await foreach (var item in client.GetContainer(Constant.TEAMModelOS, "School").GetItemQueryIterator<GroupList>(queryText: $"select value(c) from c where c.type='research'  and   c.id in ({sql})",
+                        requestOptions: new QueryRequestOptions() { PartitionKey = new Azure.Cosmos.PartitionKey($"GroupList-{school}") }))
                         {
                         {
                             tchLists.Add(item);
                             tchLists.Add(item);
                         }
                         }
@@ -398,9 +398,9 @@ namespace TEAMModelOS.SDK
                     foreach (var x in tchLists)
                     foreach (var x in tchLists)
                     {
                     {
 
 
-                        if (x.teachers.IsNotEmpty())
+                        if (x.members.IsNotEmpty())
                         {
                         {
-                            tmdids.AddRange(x.teachers);
+                            tmdids.AddRange(x.members.FindAll(y=>y.type==1).Select(x=>x.id));
                         }
                         }
                         classes.Remove(x.id);
                         classes.Remove(x.id);
                     }
                     }
@@ -421,10 +421,10 @@ namespace TEAMModelOS.SDK
                     }
                     }
                     tchLists.ForEach(x => {
                     tchLists.ForEach(x => {
                         ClassListInfo classListInfo = new ClassListInfo { id = x.id, name = x.name };
                         ClassListInfo classListInfo = new ClassListInfo { id = x.id, name = x.name };
-                        if (x.teachers.IsNotEmpty())
+                        if (x.members.IsNotEmpty())
                         {
                         {
-                            x.teachers.ForEach(y => {
-                                var tmdinfo = tmdinfos.Where(z => z.id.Equals(y)).FirstOrDefault();
+                            x.members.FindAll(t=>t.type==1).ForEach(y => {
+                                var tmdinfo = tmdinfos.Where(z => z.id.Equals(y.id)).FirstOrDefault();
                                 if (tmdinfo != null)
                                 if (tmdinfo != null)
                                 {
                                 {
                                     classListInfo.tmdInfos.Add(tmdinfo);
                                     classListInfo.tmdInfos.Add(tmdinfo);

+ 14 - 7
TEAMModelOS/Controllers/Common/AreaController.cs

@@ -438,13 +438,15 @@ namespace TEAMModelOS.Controllers
                     }
                     }
                 }
                 }
 
 
-                List<(List<TmdInfo> teac, Survey sur)> trSurveys = new List<(List<TmdInfo> teac, Survey sur)>();
-                List<(List<TmdInfo> teac, ExamLite examLite)> trExams = new List<(List<TmdInfo> teac, ExamLite examLite)>();
-                List<(List<TmdInfo> teac, Study stu)> moreInfo = new List<(List<TmdInfo> teac, Study stu)>();
-                List<(List<TmdInfo> teac, Homework tw)> works = new List<(List<TmdInfo> teac, Homework tw)>();
+                List<(List<RMember> teac, Survey sur)> trSurveys = new List<(List<RMember> teac, Survey sur)>();
+                List<(List<RMember> teac, ExamLite examLite)> trExams = new List<(List<RMember> teac, ExamLite examLite)>();
+                List<(List<RMember> teac, Study stu)> moreInfo = new List<(List<RMember> teac, Study stu)>();
+                List<(List<RMember> teac, Homework tw)> works = new List<(List<RMember> teac, Homework tw)>();
                 foreach (Study study in studies)
                 foreach (Study study in studies)
                 {
                 {
-                    (List<TmdInfo> tchList, _) = await TriggerStuActivity.GetTchList(client, _dingDing, study.tchLists, study.school);
+                    (List<RMember> tchList, List<RGroupList> classInfos) = await GroupListService.GetStutmdidListids(client, _dingDing, study.tchLists, study.school);
+                    // (List<TmdInfo> tmdInfos, List<ClassListInfo> classInfos) = await TriggerStuActivity.GetTchList(client, _dingDing, ids, $"{school}");
+                    //(List<TmdInfo> tchList, _) = await TriggerStuActivity.GetTchList(client, _dingDing, study.tchLists, study.school);
                     if (!string.IsNullOrEmpty(study.surveyId))
                     if (!string.IsNullOrEmpty(study.surveyId))
                     {
                     {
 
 
@@ -585,7 +587,9 @@ namespace TEAMModelOS.Controllers
                                 {
                                 {
                                     JsonElement account = accounts.Current;
                                     JsonElement account = accounts.Current;
                                     List<string> tcs = account.GetProperty("tchLists").ToObject<List<string>>();
                                     List<string> tcs = account.GetProperty("tchLists").ToObject<List<string>>();
-                                    (List<TmdInfo> tchList, _) = await TriggerStuActivity.GetTchList(client, _dingDing, tcs, code);
+                                    (List<RMember> tchList, List<RGroupList> classInfos) = await GroupListService.GetStutmdidListids(client, _dingDing, tcs, code);
+                                    // (List<TmdInfo> tmdInfos, List<ClassListInfo> classInfos) = await TriggerStuActivity.GetTchList(client, _dingDing, ids, $"{school}");
+                                    //(List<TmdInfo> tchList, _) = await TriggerStuActivity.GetTchList(client, _dingDing, tcs, code);
                                     recordUrl.Add((code,name, account.GetProperty("recordUrl").GetString(), tchList.Count));
                                     recordUrl.Add((code,name, account.GetProperty("recordUrl").GetString(), tchList.Count));
                                 }
                                 }
                             }
                             }
@@ -674,7 +678,10 @@ namespace TEAMModelOS.Controllers
                                 {
                                 {
                                     JsonElement account = accounts.Current;
                                     JsonElement account = accounts.Current;
                                     List<string> tcs = account.GetProperty("tchLists").ToObject<List<string>>();
                                     List<string> tcs = account.GetProperty("tchLists").ToObject<List<string>>();
-                                    (List<TmdInfo> tchList, _) = await TriggerStuActivity.GetTchList(client, _dingDing, tcs, code);
+                                    (List<RMember> tchList, List<RGroupList> classInfos) = await GroupListService.GetStutmdidListids(client, _dingDing, tcs, code);
+                                    // (List<TmdInfo> tmdInfos, List<ClassListInfo> classInfos) = await TriggerStuActivity.GetTchList(client, _dingDing, ids, $"{school}");
+                                    //(List<TmdInfo> tchList, _) = await TriggerStuActivity.GetTchList(client, _dingDing, tcs, code);
+
                                     recordUrl.Add((code, name,account.GetProperty("recordUrl").GetString(), tchList.Count));
                                     recordUrl.Add((code, name,account.GetProperty("recordUrl").GetString(), tchList.Count));
                                 }
                                 }
                             }
                             }

+ 3 - 1
TEAMModelOS/Controllers/Common/ExamLiteController.cs

@@ -243,7 +243,9 @@ namespace TEAMModelOS.Controllers.Common
                 ExamLite examLite = await client.GetContainer(Constant.TEAMModelOS, "Common").ReadItemAsync<ExamLite>(id.GetString(), new PartitionKey($"ExamLite-{code}"));
                 ExamLite examLite = await client.GetContainer(Constant.TEAMModelOS, "Common").ReadItemAsync<ExamLite>(id.GetString(), new PartitionKey($"ExamLite-{code}"));
                 if (examLite != null)
                 if (examLite != null)
                 {
                 {
-                    (List<TmdInfo> tchList, _) = await TriggerStuActivity.GetTchList(client, _dingDing, examLite.tchLists, examLite.school);
+                    (List<RMember> tchList, List<RGroupList> classInfos) = await GroupListService.GetStutmdidListids(client, _dingDing, examLite.tchLists, examLite.school);
+                    // (List<TmdInfo> tmdInfos, List<ClassListInfo> classInfos) = await TriggerStuActivity.GetTchList(client, _dingDing, ids, $"{school}");
+                   // (List<TmdInfo> tchList, _) = await TriggerStuActivity.GetTchList(client, _dingDing, examLite.tchLists, examLite.school);
                     return Ok(new { examLite, teachers = tchList.Select(t => t.id).ToList(), status = 200 });
                     return Ok(new { examLite, teachers = tchList.Select(t => t.id).ToList(), status = 200 });
                 }
                 }
                 else
                 else

+ 4 - 2
TEAMModelOS/Controllers/Common/HomeworkController.cs

@@ -465,13 +465,15 @@ namespace TEAMModelOS.Controllers.Learn
                             List<ClassListInfo> classInfos = new List<ClassListInfo>();
                             List<ClassListInfo> classInfos = new List<ClassListInfo>();
                             if ($"{_targetType}".Equals("research", StringComparison.OrdinalIgnoreCase))
                             if ($"{_targetType}".Equals("research", StringComparison.OrdinalIgnoreCase))
                             {
                             {
-                                (List<TmdInfo> tmdinfos,  List<ClassListInfo> classInfo) = await TriggerStuActivity.GetTchList(client, _dingDing, listIds, $"{homework.school}");
+                                (List<RMember> tmdinfos, List<RGroupList> classInfo) = await GroupListService.GetStutmdidListids(client, _dingDing, listIds, homework.school);
+                                // (List<TmdInfo> tmdInfos, List<ClassListInfo> classInfos) = await TriggerStuActivity.GetTchList(client, _dingDing, ids, $"{school}");
+                                //(List<TmdInfo> tmdinfos,  List<ClassListInfo> classInfo) = await TriggerStuActivity.GetTchList(client, _dingDing, listIds, $"{homework.school}");
 
 
                                 if (tmdinfos.IsNotEmpty())
                                 if (tmdinfos.IsNotEmpty())
                                 {
                                 {
                                    
                                    
                                     tmdinfos.ForEach(x => {
                                     tmdinfos.ForEach(x => {
-                                        var clases= classInfo.Where(y => y.tmdInfos.Select(z => z.id).Contains(x.id)).ToList() ;
+                                        var clases= classInfo.Where(y => y.members.Select(z => z.id).Contains(x.id)).ToList() ;
                                         typeUsers.Add(new TypeUser() { userid = x.id, userType = "tmdid", username = x.name, classes = clases.Select(x=>new TypeUserClass{id= x.id,name=x.name}).ToList() });
                                         typeUsers.Add(new TypeUser() { userid = x.id, userType = "tmdid", username = x.name, classes = clases.Select(x=>new TypeUserClass{id= x.id,name=x.name}).ToList() });
                                     });
                                     });
                                 }
                                 }

+ 3 - 1
TEAMModelOS/Controllers/Common/StudyController.cs

@@ -349,7 +349,9 @@ namespace TEAMModelOS.Controllers.Common
                 Study study = await client.GetContainer(Constant.TEAMModelOS, "Common").ReadItemAsync<Study>(id.GetString(), new PartitionKey($"Study-{code}"));
                 Study study = await client.GetContainer(Constant.TEAMModelOS, "Common").ReadItemAsync<Study>(id.GetString(), new PartitionKey($"Study-{code}"));
                 if (study != null)
                 if (study != null)
                 {
                 {
-                    (List<TmdInfo> tchList, _) = await TriggerStuActivity.GetTchList(client, _dingDing, study.tchLists, study.school);
+                    (List<RMember> tchList, List<RGroupList> classInfo) = await GroupListService.GetStutmdidListids(client, _dingDing, study.tchLists, study.school);
+                    // (List<TmdInfo> tmdInfos, List<ClassListInfo> classInfos) = await TriggerStuActivity.GetTchList(client, _dingDing, ids, $"{school}");
+                    //(List<TmdInfo> tchList, _) = await TriggerStuActivity.GetTchList(client, _dingDing, study.tchLists, study.school);
                     return Ok(new { study, teachers = tchList.Select(t => t.id).ToList(), status = 200 });
                     return Ok(new { study, teachers = tchList.Select(t => t.id).ToList(), status = 200 });
                 }
                 }
                 else
                 else

+ 14 - 10
TEAMModelOS/Controllers/Research/AbilityStatisticsController.cs

@@ -711,9 +711,9 @@ namespace TEAMModelOS.Controllers.Research
                 //    teachers.Add(item);
                 //    teachers.Add(item);
                 //}
                 //}
 
 
-                List<TchList> tchLists = new List<TchList>();
-                await foreach (var item in client.GetContainer("TEAMModelOS", "School").GetItemQueryIterator<TchList>(queryText: $"SELECT value(c) FROM c  ",
-                    requestOptions: new QueryRequestOptions() { PartitionKey = new PartitionKey($"TchList-{_school}") }))
+                List<GroupList> tchLists = new List<GroupList>();
+                await foreach (var item in client.GetContainer("TEAMModelOS", "School").GetItemQueryIterator<GroupList>(queryText: $"SELECT value(c) FROM c where c.type='research' ",
+                    requestOptions: new QueryRequestOptions() { PartitionKey = new PartitionKey($"GroupList-{_school}") }))
                 {
                 {
                     groups.Add(item.name);
                     groups.Add(item.name);
                     groupDict[item.name] = item.id;
                     groupDict[item.name] = item.id;
@@ -724,11 +724,13 @@ namespace TEAMModelOS.Controllers.Research
                 {
                 {
                     ids.Add("default");
                     ids.Add("default");
                 }
                 }
-                (List<TmdInfo> tmdInfos, List<ClassListInfo> classInfos) = await TriggerStuActivity.GetTchList(client, _dingDing, ids, $"{_school}");
+                (List<RMember> tmdInfos, List<RGroupList> classInfos) = await GroupListService.GetStutmdidListids(client, _dingDing, ids, $"{_school}");
+                // (List<TmdInfo> tmdInfos, List<ClassListInfo> classInfos) = await TriggerStuActivity.GetTchList(client, _dingDing, ids, $"{school}");
+                //(List<TmdInfo> tmdInfos, List<ClassListInfo> classInfos) = await TriggerStuActivity.GetTchList(client, _dingDing, ids, $"{_school}");
                 List<GroupMember> teachers = new List<GroupMember>();
                 List<GroupMember> teachers = new List<GroupMember>();
                 foreach (var classInfo in classInfos)
                 foreach (var classInfo in classInfos)
                 {
                 {
-                    foreach (var tmdinfo in classInfo.tmdInfos)
+                    foreach (var tmdinfo in classInfo.members)
                     {
                     {
                         teachers.Add(new GroupMember { groupId = classInfo.id, groupName = classInfo.name, tmdid = tmdinfo.id, tmdname = tmdinfo.name, picture = tmdinfo.picture });
                         teachers.Add(new GroupMember { groupId = classInfo.id, groupName = classInfo.name, tmdid = tmdinfo.id, tmdname = tmdinfo.name, picture = tmdinfo.picture });
                     }
                     }
@@ -1272,9 +1274,9 @@ namespace TEAMModelOS.Controllers.Research
                 //    teachers.Add(item);
                 //    teachers.Add(item);
                 //}
                 //}
 
 
-                List<TchList> tchLists = new List<TchList>();
-                await foreach (var item in client.GetContainer("TEAMModelOS", "School").GetItemQueryIterator<TchList>(queryText: $"SELECT value(c) FROM c  ",
-                    requestOptions: new QueryRequestOptions() { PartitionKey = new PartitionKey($"TchList-{_school}") }))
+                List<GroupList> tchLists = new List<GroupList>();
+                await foreach (var item in client.GetContainer("TEAMModelOS", "School").GetItemQueryIterator<GroupList>(queryText: $"SELECT value(c) FROM c where  c.type='research' ",
+                    requestOptions: new QueryRequestOptions() { PartitionKey = new PartitionKey($"GroupList-{_school}") }))
                 {
                 {
                     tchLists.Add(item);
                     tchLists.Add(item);
                 }
                 }
@@ -1283,11 +1285,13 @@ namespace TEAMModelOS.Controllers.Research
                 {
                 {
                     ids.Add("default");
                     ids.Add("default");
                 }
                 }
-                (List<TmdInfo> tmdInfos, List<ClassListInfo> classInfos) = await TriggerStuActivity.GetTchList(client, _dingDing, ids, $"{_school}");
+                (List<RMember> tmdInfos, List<RGroupList> classInfos) = await GroupListService.GetStutmdidListids(client, _dingDing, ids, $"{_school}");
+                // (List<TmdInfo> tmdInfos, List<ClassListInfo> classInfos) = await TriggerStuActivity.GetTchList(client, _dingDing, ids, $"{school}");
+                //(List<TmdInfo> tmdInfos, List<ClassListInfo> classInfos) = await TriggerStuActivity.GetTchList(client, _dingDing, ids, $"{_school}");
                 List<GroupMember> teachers = new List<GroupMember>();
                 List<GroupMember> teachers = new List<GroupMember>();
                 foreach (var classInfo in classInfos)
                 foreach (var classInfo in classInfos)
                 {
                 {
-                    foreach (var tmdinfo in classInfo.tmdInfos)
+                    foreach (var tmdinfo in classInfo.members)
                     {
                     {
                         teachers.Add(new GroupMember { groupId = classInfo.id, groupName = classInfo.name, tmdid = tmdinfo.id, tmdname = tmdinfo.name, picture = tmdinfo.picture });
                         teachers.Add(new GroupMember { groupId = classInfo.id, groupName = classInfo.name, tmdid = tmdinfo.id, tmdname = tmdinfo.name, picture = tmdinfo.picture });
                     }
                     }

+ 15 - 11
TEAMModelOS/Controllers/Research/ClassVideoController.cs

@@ -60,9 +60,9 @@ namespace TEAMModelOS.Controllers.Research
                 //    }
                 //    }
                 //    teachers.Add(item);
                 //    teachers.Add(item);
                 //}
                 //}
-                List<TchList> tchLists = new List<TchList>();
-                await foreach (var item in client.GetContainer("TEAMModelOS", "School").GetItemQueryIterator<TchList>(queryText: $"SELECT value(c) FROM c  join A1 in c.teachers where A1='{_tmdid}'",
-                    requestOptions: new QueryRequestOptions() { PartitionKey = new PartitionKey($"TchList-{_school}") }))
+                List<GroupList> tchLists = new List<GroupList>();
+                await foreach (var item in client.GetContainer("TEAMModelOS", "School").GetItemQueryIterator<GroupList>(queryText: $"SELECT value(c) FROM c  join A1 in c.teachers where c.type='research' and  A1='{_tmdid}'",
+                    requestOptions: new QueryRequestOptions() { PartitionKey = new PartitionKey($"GroupList-{_school}") }))
                 {
                 {
                     tchLists.Add(item);
                     tchLists.Add(item);
                 }
                 }
@@ -71,13 +71,15 @@ namespace TEAMModelOS.Controllers.Research
                 {
                 {
                     ids.Add("default");
                     ids.Add("default");
                 }
                 }
-                (List<TmdInfo> tmdInfos, List<ClassListInfo> classInfos) = await TriggerStuActivity.GetTchList(client, _dingDing, ids, $"{_school}");
+                (List<RMember> tmdInfos, List<RGroupList> classInfos) = await GroupListService.GetStutmdidListids(client, _dingDing, ids, $"{_school}");
+                // (List<TmdInfo> tmdInfos, List<ClassListInfo> classInfos) = await TriggerStuActivity.GetTchList(client, _dingDing, ids, $"{school}");
+                //(List<TmdInfo> tmdInfos, List<ClassListInfo> classInfos) = await TriggerStuActivity.GetTchList(client, _dingDing, ids, $"{_school}");
                 if (classInfos.IsNotEmpty())
                 if (classInfos.IsNotEmpty())
                 {
                 {
                     List<dynamic> groupMembers = new List<dynamic>();
                     List<dynamic> groupMembers = new List<dynamic>();
                     foreach (var classinfo in classInfos)
                     foreach (var classinfo in classInfos)
                     {
                     {
-                        foreach (var t in classinfo.tmdInfos)
+                        foreach (var t in classinfo.members)
                         {
                         {
                             //排除自己
                             //排除自己
                             if (t.id.Equals($"{_tmdid}")) { continue; }
                             if (t.id.Equals($"{_tmdid}")) { continue; }
@@ -193,9 +195,9 @@ namespace TEAMModelOS.Controllers.Research
                 //{
                 //{
                 //    teachers.Add(item);
                 //    teachers.Add(item);
                 //}
                 //}
-                List<TchList> tchLists = new List<TchList>();
-                await foreach (var item in client.GetContainer("TEAMModelOS", "School").GetItemQueryIterator<TchList>(queryText: $"SELECT value(c) FROM c",
-                    requestOptions: new QueryRequestOptions() { PartitionKey = new PartitionKey($"TchList-{_school}") }))
+                List<GroupList> tchLists = new List<GroupList>();
+                await foreach (var item in client.GetContainer("TEAMModelOS", "School").GetItemQueryIterator<GroupList>(queryText: $"SELECT value(c) FROM c where  c.type='research' ",
+                    requestOptions: new QueryRequestOptions() { PartitionKey = new PartitionKey($"GroupList-{_school}") }))
                 {
                 {
                     tchLists.Add(item);
                     tchLists.Add(item);
                 }
                 }
@@ -203,16 +205,18 @@ namespace TEAMModelOS.Controllers.Research
                 if (!ids.IsNotEmpty()) {
                 if (!ids.IsNotEmpty()) {
                     ids.Add("default");
                     ids.Add("default");
                 }
                 }
-                (List<TmdInfo> tmdInfos,List<ClassListInfo> classInfos )  =  await   TriggerStuActivity.GetTchList(client, _dingDing, ids, $"{_school}");
+                (List<RMember> tmdInfos, List<RGroupList> classInfos) = await GroupListService.GetStutmdidListids(client, _dingDing, ids, $"{_school}");
+                // (List<TmdInfo> tmdInfos, List<ClassListInfo> classInfos) = await TriggerStuActivity.GetTchList(client, _dingDing, ids, $"{school}");
+                //(List<TmdInfo> tmdInfos,List<ClassListInfo> classInfos )  =  await   TriggerStuActivity.GetTchList(client, _dingDing, ids, $"{_school}");
                 List<dynamic> classVideos = new();
                 List<dynamic> classVideos = new();
                 string code = $"ClassVideo-{_school}";
                 string code = $"ClassVideo-{_school}";
                 foreach (var listInfo in classInfos) {
                 foreach (var listInfo in classInfos) {
                     try
                     try
                     {
                     {
                         await foreach (var item in _azureCosmos.GetCosmosClient().GetContainer("TEAMModelOS", "Teacher")
                         await foreach (var item in _azureCosmos.GetCosmosClient().GetContainer("TEAMModelOS", "Teacher")
-                            .GetItemQueryIterator<ClassVideo>(queryText: $"select value(c) from c where c.id in ({string.Join(",", listInfo.tmdInfos.Select(o => $"'{o.id}'"))})", requestOptions: new QueryRequestOptions() { PartitionKey = new PartitionKey(code) }))
+                            .GetItemQueryIterator<ClassVideo>(queryText: $"select value(c) from c where c.id in ({string.Join(",", listInfo.members.Select(o => $"'{o.id}'"))})", requestOptions: new QueryRequestOptions() { PartitionKey = new PartitionKey(code) }))
                         {
                         {
-                            TmdInfo info= listInfo.tmdInfos.Find(x => x.id.Equals(item.id));
+                            RMember info= listInfo.members.Find(x => x.id.Equals(item.id));
                             if (info != null) {
                             if (info != null) {
                                 dynamic t = new { id=info.id,name=info.name, picture=info.picture, groupId= listInfo.id, groupName=listInfo.name };
                                 dynamic t = new { id=info.id,name=info.name, picture=info.picture, groupId= listInfo.id, groupName=listInfo.name };
                                 foreach (var vids in item.files)
                                 foreach (var vids in item.files)

+ 14 - 11
TEAMModelOS/Controllers/Research/ResearchStatisticsController.cs

@@ -204,9 +204,9 @@ namespace TEAMModelOS.Controllers.Research
                 {
                 {
                     classVideos.Add(item);
                     classVideos.Add(item);
                 }
                 }
-                List<TchList> tchLists = new List<TchList>();
-                await foreach (var item in client.GetContainer("TEAMModelOS", "School").GetItemQueryIterator<TchList>(queryText: $"SELECT value(c) FROM c  ",
-                    requestOptions: new QueryRequestOptions() { PartitionKey = new PartitionKey($"TchList-{school.id}") }))
+                List<GroupList> tchLists = new List<GroupList>();
+                await foreach (var item in client.GetContainer("TEAMModelOS", "School").GetItemQueryIterator<GroupList>(queryText: $"SELECT value(c) FROM c where c.type='research'  ",
+                    requestOptions: new QueryRequestOptions() { PartitionKey = new PartitionKey($"GroupList-{school.id}") }))
                 {
                 {
                     groups.Add(item.name);
                     groups.Add(item.name);
                     
                     
@@ -217,7 +217,9 @@ namespace TEAMModelOS.Controllers.Research
                 {
                 {
                     ids.Add("default");
                     ids.Add("default");
                 }
                 }
-                (List<TmdInfo> tmdInfos, List<ClassListInfo> classInfos) = await TriggerStuActivity.GetTchList(client, _dingDing, ids, $"{school.id}");
+                (List<RMember> tmdInfos, List<RGroupList> classInfos) = await GroupListService.GetStutmdidListids(client, _dingDing, ids, $"{school.id}");
+                // (List<TmdInfo> tmdInfos, List<ClassListInfo> classInfos) = await TriggerStuActivity.GetTchList(client, _dingDing, ids, $"{school}");
+                //(List<TmdInfo> tmdInfos, List<ClassListInfo> classInfos) = await TriggerStuActivity.GetTchList(client, _dingDing, ids, $"{school.id}");
                 //总人数
                 //总人数
                 int teacherCount = tmdInfos.Count;
                 int teacherCount = tmdInfos.Count;
                 //参与人数
                 //参与人数
@@ -510,7 +512,7 @@ namespace TEAMModelOS.Controllers.Research
                     {
                     {
                         ok50TimeCount += 1;
                         ok50TimeCount += 1;
                     }
                     }
-                    var classes = classInfos.Where(y => y.tmdInfos.Select(z => z.id).Contains(tmd.id)).ToList();
+                    var classes = classInfos.Where(y => y.members.Select(z => z.id).Contains(tmd.id)).ToList();
 
 
                     //表示有订阅,或者有线下活动参与的,或者有课堂实录视频上传的
                     //表示有订阅,或者有线下活动参与的,或者有课堂实录视频上传的
                     if (subs.Count > 0 || schoolScoreTime > 0 || isJoinVideo)
                     if (subs.Count > 0 || schoolScoreTime > 0 || isJoinVideo)
@@ -707,9 +709,9 @@ namespace TEAMModelOS.Controllers.Research
                 }
                 }
 
 
                 List<SchoolGroup> groups = new List<SchoolGroup>();
                 List<SchoolGroup> groups = new List<SchoolGroup>();
-                List<TchList> tchLists = new List<TchList>();
-                await foreach (var item in client.GetContainer("TEAMModelOS", "School").GetItemQueryIterator<TchList>(queryText: $"SELECT value(c) FROM c  ",
-                    requestOptions: new QueryRequestOptions() { PartitionKey = new PartitionKey($"TchList-{school}") }))
+                List<GroupList> tchLists = new List<GroupList>();
+                await foreach (var item in client.GetContainer("TEAMModelOS", "School").GetItemQueryIterator<GroupList>(queryText: $"SELECT value(c) FROM c where  c.type='research'",
+                    requestOptions: new QueryRequestOptions() { PartitionKey = new PartitionKey($"GroupList-{school}") }))
                 {
                 {
                     groups.Add(new SchoolGroup { groupId=item.id,groupName=item.name});
                     groups.Add(new SchoolGroup { groupId=item.id,groupName=item.name});
                     tchLists.Add(item);
                     tchLists.Add(item);
@@ -760,7 +762,8 @@ namespace TEAMModelOS.Controllers.Research
                 {
                 {
                     ids.Add("default");
                     ids.Add("default");
                 }
                 }
-                (List<TmdInfo> tmdInfos, List<ClassListInfo> classInfos) = await TriggerStuActivity.GetTchList(client, _dingDing, ids, $"{school}");
+                (List<RMember> tmdInfos, List<RGroupList> classInfos)= await  GroupListService.GetStutmdidListids(client, _dingDing, ids, $"{school}");
+               // (List<TmdInfo> tmdInfos, List<ClassListInfo> classInfos) = await TriggerStuActivity.GetTchList(client, _dingDing, ids, $"{school}");
                 if (groups.IsEmpty()) {
                 if (groups.IsEmpty()) {
                     groups.Add(new SchoolGroup { groupId = "default", groupName = "default" });
                     groups.Add(new SchoolGroup { groupId = "default", groupName = "default" });
                 }
                 }
@@ -797,7 +800,7 @@ namespace TEAMModelOS.Controllers.Research
                     }
                     }
                     var list= classInfos.Find(y => y.id.Equals(x.groupId));
                     var list= classInfos.Find(y => y.id.Equals(x.groupId));
                     if (list != null) {
                     if (list != null) {
-                        x.onlineCount = list.tmdInfos.Count;
+                        x.onlineCount = list.members.Count;
                     }
                     }
                 });
                 });
 
 
@@ -1076,7 +1079,7 @@ namespace TEAMModelOS.Controllers.Research
                     {
                     {
                         ok50TimeCount += 1;
                         ok50TimeCount += 1;
                     }
                     }
-                    var classes = classInfos.Where(y => y.tmdInfos.Select(z => z.id).Contains(tmd.id)).ToList();
+                    var classes = classInfos.Where(y => y.members.Select(z => z.id).Contains(tmd.id)).ToList();
 
 
                     //表示有订阅,或者有线下活动参与的,或者有课堂实录视频上传的
                     //表示有订阅,或者有线下活动参与的,或者有课堂实录视频上传的
                     if (subs.Count > 0 || schoolScoreTime > 0 || isJoinVideo)
                     if (subs.Count > 0 || schoolScoreTime > 0 || isJoinVideo)

+ 3 - 3
TEAMModelOS/Controllers/School/GroupListController.cs

@@ -350,8 +350,8 @@ namespace TEAMModelOS.Controllers
             if (!json.TryGetProperty("ids", out JsonElement ids)) return BadRequest();
             if (!json.TryGetProperty("ids", out JsonElement ids)) return BadRequest();
             json.TryGetProperty("schoolId", out JsonElement schoolId);
             json.TryGetProperty("schoolId", out JsonElement schoolId);
             List<string> listids = ids.ToObject<List<string>>();
             List<string> listids = ids.ToObject<List<string>>();
-            List<RGroupList> groups = await GroupListService.GetStutmdidListids(client, _dingDing, listids, $"{schoolId}");
-            return Ok(new { groups });
+            (List < RMember > members,List < RGroupList > groups) = await GroupListService.GetStutmdidListids(client, _dingDing, listids, $"{schoolId}");
+            return Ok(new { groups, members });
         }
         }
         /// <summary>
         /// <summary>
         /// 获取名单和成员信息。
         /// 获取名单和成员信息。
@@ -582,7 +582,7 @@ namespace TEAMModelOS.Controllers
 
 
         //删除名单
         //删除名单
         [ProducesDefaultResponseType]
         [ProducesDefaultResponseType]
-        [AuthToken(Roles = "Teacher,Admin")]
+        [AuthToken(Roles = "teacher,admin")]
         [HttpPost("delete-grouplist")]
         [HttpPost("delete-grouplist")]
         public async Task<IActionResult> DeleteGroupList(JsonElement json)
         public async Task<IActionResult> DeleteGroupList(JsonElement json)
         {
         {