CrazyIter_Bin преди 4 години
родител
ревизия
f7aa313da9

+ 7 - 7
TEAMModelFunction/ActivityHttpTrigger.cs

@@ -69,7 +69,7 @@ namespace TEAMModelFunction
                     {
                         if (!string.IsNullOrEmpty(sc.stulist))
                         {
-                            (List<string> tmdids, List<Students> studentss) = await TriggerStuActivity.GetStuList(client, new List<string>() { sc.stulist }, course.school);
+                            (List<string> tmdids, List<Students> studentss) = await TriggerStuActivity.GetStuList(client, _dingDing, new List<string>() { sc.stulist }, course.school);
                             foreach (var addStu in studentss)
                             {
                                 var stuCourse = new StuCourse
@@ -147,7 +147,7 @@ namespace TEAMModelFunction
                     {
                         sub.Add(subject.id);
                     }
-                    (List<string> tmdids, List<Students> studentss) = await TriggerStuActivity.GetStuList(client, info.classes, info.school);
+                    (List<string> tmdids, List<Students> studentss) = await TriggerStuActivity.GetStuList(client, _dingDing, info.classes, info.school);
                     List<StuActivity> stuActivities = new List<StuActivity>();
                     List<StuActivity> tmdActivities = new List<StuActivity>();
                     if (tmdids.IsNotEmpty())
@@ -195,7 +195,7 @@ namespace TEAMModelFunction
                             });
                         });
                     }
-                    await TriggerStuActivity.SaveStuActivity(client, stuActivities, tmdActivities);
+                    await TriggerStuActivity.SaveStuActivity(client, _dingDing, stuActivities, tmdActivities);
                 }
             }
             return new OkObjectResult(new { });
@@ -241,7 +241,7 @@ namespace TEAMModelFunction
                         continue;
                     }
                    
-                    (List<string> tmdids, List<Students> studentss) = await TriggerStuActivity.GetStuList(client, info.classes, info.school);
+                    (List<string> tmdids, List<Students> studentss) = await TriggerStuActivity.GetStuList(client, _dingDing, info.classes, info.school);
                     List<StuActivity> stuActivities = new List<StuActivity>();
                     List<StuActivity> tmdActivities = new List<StuActivity>();
                     if (tmdids.IsNotEmpty())
@@ -289,7 +289,7 @@ namespace TEAMModelFunction
                             });
                         });
                     }
-                    await TriggerStuActivity.SaveStuActivity(client, stuActivities, tmdActivities);
+                    await TriggerStuActivity.SaveStuActivity(client, _dingDing, stuActivities, tmdActivities);
                 }
             }
             return new OkObjectResult(new { });
@@ -333,7 +333,7 @@ namespace TEAMModelFunction
                     {
                         continue;
                     }
-                    (List<string> tmdids, List<Students> studentss) = await TriggerStuActivity.GetStuList(client, info.classes, info.school);
+                    (List<string> tmdids, List<Students> studentss) = await TriggerStuActivity.GetStuList(client, _dingDing, info.classes, info.school);
                     List<StuActivity> stuActivities = new List<StuActivity>();
                     List<StuActivity> tmdActivities = new List<StuActivity>();
                     if (tmdids.IsNotEmpty())
@@ -378,7 +378,7 @@ namespace TEAMModelFunction
                             });
                         });
                     }
-                    await TriggerStuActivity.SaveStuActivity(client, stuActivities, tmdActivities);
+                    await TriggerStuActivity.SaveStuActivity(client, _dingDing, stuActivities, tmdActivities);
                 }
             }
             return new OkObjectResult(new { });

+ 2 - 2
TEAMModelFunction/CourseServiceBus.cs

@@ -42,9 +42,9 @@ namespace TEAMModelFunction
                     return;
                 }
                 //根据新增名单获取 新增的学生id 及timdid
-                (List<string> addTmdids, List<Students> addStudents) = await TriggerStuActivity.GetStuList(client, courseChange.addList, courseChange.school);
+                (List<string> addTmdids, List<Students> addStudents) = await TriggerStuActivity.GetStuList(client, _dingDing, courseChange.addList, courseChange.school);
                 //根据删除名单获取 新增的学生id 及timdid
-                (List<string> delTmdids, List<Students> delStudents) = await TriggerStuActivity.GetStuList(client, courseChange.delList, courseChange.school);
+                (List<string> delTmdids, List<Students> delStudents) = await TriggerStuActivity.GetStuList(client, _dingDing, courseChange.delList, courseChange.school);
                 foreach (var addStu in addStudents)
                 {
                     var course = new StuCourse

+ 2 - 2
TEAMModelFunction/TriggerExam.cs

@@ -90,7 +90,7 @@ namespace TEAMModelFunction
                     }
                     break;
                 case "going":
-                    (List<string> tmdids, List<Students> studentss) = await TriggerStuActivity.GetStuList(client, info.classes, info.school);
+                    (List<string> tmdids, List<Students> studentss) = await TriggerStuActivity.GetStuList(client, _dingDing, info.classes, info.school);
                     List<StuActivity> stuActivities = new List<StuActivity>();
                     List<StuActivity> tmdActivities = new List<StuActivity>();
                     if (tmdids.IsNotEmpty())
@@ -140,7 +140,7 @@ namespace TEAMModelFunction
                             });
                         });
                     }
-                    await TriggerStuActivity.SaveStuActivity(client, stuActivities, tmdActivities);
+                    await TriggerStuActivity.SaveStuActivity(client, _dingDing, stuActivities, tmdActivities);
                     //向学生或醍摩豆账号发起通知
                     #region
                     Notice notice = new Notice()

+ 69 - 58
TEAMModelFunction/TriggerStuActivity.cs

@@ -18,78 +18,89 @@ namespace TEAMModelFunction
     public class TriggerStuActivity
     {
 
-        public static async Task<string> SaveStuActivity(CosmosClient client,List<StuActivity> stuActivities,List<StuActivity> tmdActivities) {
-            if (stuActivities.IsNotEmpty())
-            {
-                foreach (var x in stuActivities)
+        public static async Task<string> SaveStuActivity(CosmosClient client, DingDing _dingDing, List<StuActivity> stuActivities,List<StuActivity> tmdActivities) {
+            try {
+                if (stuActivities.IsNotEmpty())
                 {
-                    await client.GetContainer("TEAMModelOS", "Student").UpsertItemAsync(x, new PartitionKey(x.code));
+                    foreach (var x in stuActivities)
+                    {
+                        await client.GetContainer("TEAMModelOS", "Student").UpsertItemAsync(x, new PartitionKey(x.code));
+                    }
                 }
-            }
-            if (tmdActivities.IsNotEmpty())
-            {
-                foreach (var x in tmdActivities)
+                if (tmdActivities.IsNotEmpty())
                 {
-                    await client.GetContainer("TEAMModelOS", "Teacher").UpsertItemAsync(x, new PartitionKey(x.code));
+                    foreach (var x in tmdActivities)
+                    {
+                        await client.GetContainer("TEAMModelOS", "Teacher").UpsertItemAsync(x, new PartitionKey(x.code));
+                    }
                 }
+            } catch (Exception ex) {
+                await _dingDing.SendBotMsg($"OS,TriggerStuActivity-SaveStuActivity\n{ex.Message}\n{ex.StackTrace}", GroupNames.醍摩豆服務運維群組);
             }
             return ""; 
         }
-         
-        public  static async Task<(List<string> tmdids,List<Students> studentss)> GetStuList(  CosmosClient client, List<string> classes,string  school) {
-            List<string> tmdids = new List<string>();
-            List<Students> studentss = new List<Students>();
-            if (!classes.IsNotEmpty()) { return (tmdids, studentss); }
-            List<string> sqlList = new List<string>();
-            classes.ForEach(x => { sqlList.Add($" '{x}' "); });
-            string sql = string.Join(" , ", sqlList);
-            List<StuList> schList = new List<StuList>();
-            List<Student> students = new List<Student>();
-            if (!string.IsNullOrEmpty(school)) {
-                await foreach (var item in client.GetContainer("TEAMModelOS", "School").GetItemQueryIterator<StuList>(queryText: $"select value(c) from c where c.id in ({sql})",
-                requestOptions: new QueryRequestOptions() { PartitionKey = new Azure.Cosmos.PartitionKey($"StuList-{school}") }))
-                {
-                    schList.Add(item);
-                }
+
+        public static async Task<(List<string> tmdids, List<Students> studentss)> GetStuList(CosmosClient client, DingDing _dingDing, List<string> classes, string school) {
+            try {
+                List<string> tmdids = new List<string>();
+                List<Students> studentss = new List<Students>();
+                if (!classes.IsNotEmpty()) { return (tmdids, studentss); }
+                List<string> sqlList = new List<string>();
+                classes.ForEach(x => { sqlList.Add($" '{x}' "); });
+                string sql = string.Join(" , ", sqlList);
+                List<StuList> schList = new List<StuList>();
+                List<Student> students = new List<Student>();
+                if (!string.IsNullOrEmpty(school)) {
+                    await foreach (var item in client.GetContainer("TEAMModelOS", "School").GetItemQueryIterator<StuList>(queryText: $"select value(c) from c where c.id in ({sql})",
+                    requestOptions: new QueryRequestOptions() { PartitionKey = new Azure.Cosmos.PartitionKey($"StuList-{school}") }))
+                    {
+                        schList.Add(item);
+                    }
 
 
-                await foreach (var item in client.GetContainer("TEAMModelOS", "Student").GetItemQueryIterator<Student>(queryText: $"select value(c) from c where c.classId in ({sql})",
-                    requestOptions: new QueryRequestOptions() { PartitionKey = new Azure.Cosmos.PartitionKey($"Base-{school}") }))
+                    await foreach (var item in client.GetContainer("TEAMModelOS", "Student").GetItemQueryIterator<Student>(queryText: $"select value(c) from c where c.classId in ({sql})",
+                        requestOptions: new QueryRequestOptions() { PartitionKey = new Azure.Cosmos.PartitionKey($"Base-{school}") }))
+                    {
+                        students.Add(item);
+                    }
+                }
+                List<StuList> tchLists = new List<StuList>();
+                await foreach (var item in client.GetContainer("TEAMModelOS", "Teacher").GetItemQueryIterator<StuList>(queryText: $"select value(c) from c where c.id in ({sql})",
+                    requestOptions: new QueryRequestOptions() { PartitionKey = new Azure.Cosmos.PartitionKey($"StuList") }))
                 {
-                    students.Add(item);
+                    tchLists.Add(item);
                 }
+
+                schList.ForEach(x => {
+                    if (x.students.IsNotEmpty())
+                    {
+                        studentss.AddRange(x.students);
+                    }
+                    if (x.tmids.IsNotEmpty())
+                    {
+                        tmdids.AddRange(x.tmids);
+                    }
+                });
+                tchLists.ForEach(x =>
+                {
+                    if (x.students.IsNotEmpty()) {
+                        studentss.AddRange(x.students);
+                    }
+                    if (x.tmids.IsNotEmpty())
+                    {
+                        tmdids.AddRange(x.tmids);
+                    }
+                });
+                students.ForEach(x => {
+                    studentss.Add(new Students { id = x.id, code = x.code, schoolId = x.schoolId });
+                });
+                return (tmdids, studentss);
             }
-            List<StuList> tchLists = new List<StuList>();
-            await foreach (var item in client.GetContainer("TEAMModelOS", "Teacher").GetItemQueryIterator<StuList>(queryText: $"select value(c) from c where c.id in ({sql})",
-                requestOptions: new QueryRequestOptions() { PartitionKey = new Azure.Cosmos.PartitionKey($"StuList") }))
+            catch (Exception ex)
             {
-                tchLists.Add(item);
+                await _dingDing.SendBotMsg($"OS,TriggerStuActivity-SaveStuActivity\n{ex.Message}\n{ex.StackTrace}", GroupNames.醍摩豆服務運維群組);
             }
-          
-            schList.ForEach(x => { 
-                if (x.students.IsNotEmpty()) 
-                { 
-                    studentss.AddRange(x.students);
-                }
-                if (x.tmids.IsNotEmpty())
-                {
-                    tmdids.AddRange(x.tmids);
-                }
-            });
-            tchLists.ForEach(x => 
-            {
-                if (x.students.IsNotEmpty()) { 
-                    studentss.AddRange(x.students);
-                }
-                if (x.tmids.IsNotEmpty())
-                {
-                    tmdids.AddRange(x.tmids);
-                }
-            });
-            students.ForEach(x => {
-                studentss.Add(new Students { id = x.id, code = x.code,schoolId=x.schoolId });
-            });
-            return (tmdids,studentss);
+            return (null, null);
         }
     }
 }

+ 2 - 2
TEAMModelFunction/TriggerSurvey.cs

@@ -70,7 +70,7 @@ namespace TEAMModelFunction
                         }
                         break;
                     case "going":
-                        (List<string> tmdids,List<Students> students) =   await TriggerStuActivity. GetStuList(client, survey.classes, survey.school);
+                        (List<string> tmdids,List<Students> students) =   await TriggerStuActivity. GetStuList(client, _dingDing, survey.classes, survey.school);
 #if DEBUG
                         await _dingDing.SendBotMsg($"问卷调查{tdata.id}写入学生表作为活动列表!", GroupNames.成都开发測試群組);
 #endif
@@ -118,7 +118,7 @@ namespace TEAMModelFunction
                                 });
                             });
                         }
-                        await TriggerStuActivity.SaveStuActivity(client, stuActivities, tmdActivities);
+                        await TriggerStuActivity.SaveStuActivity(client, _dingDing, stuActivities, tmdActivities);
                         //向学生或醍摩豆账号发起通知
                         #region
                         Notice notice = new Notice()

+ 2 - 2
TEAMModelFunction/TriggerVote.cs

@@ -73,7 +73,7 @@ namespace TEAMModelFunction
                         break;
                     case "going":
                         
-                        (List<string> tmdids, List<Students> students) = await TriggerStuActivity.GetStuList(client, vote.classes, vote.school);
+                        (List<string> tmdids, List<Students> students) = await TriggerStuActivity.GetStuList(client, _dingDing, vote.classes, vote.school);
                         List<string> tmds = vote.tmdids.IsNotEmpty() ? vote.tmdids : new List<string>() ;
                         if (tmdids.IsNotEmpty()) {
                             tmds.AddRange(tmdids);
@@ -124,7 +124,7 @@ namespace TEAMModelFunction
                                 });
                             });
                         }
-                        await TriggerStuActivity.SaveStuActivity(client, stuActivities, tmdActivities);
+                        await TriggerStuActivity.SaveStuActivity(client, _dingDing, stuActivities, tmdActivities);
                         //向学生或醍摩豆账号发起通知
                         #region
                         Notice notice = new Notice()