CrazyIter_Bin 3 年之前
父節點
當前提交
8f362d0cf9
共有 31 個文件被更改,包括 135 次插入99 次删除
  1. 4 2
      TEAMModelAPI/Controllers/School/SchoolController.cs
  2. 1 1
      TEAMModelBI/Controllers/DingDingStruc/DDStructController.cs
  3. 1 0
      TEAMModelBI/Controllers/LoginController.cs
  4. 1 0
      TEAMModelBI/Startup.cs
  5. 12 8
      TEAMModelOS.FunctionV4/CosmosDB/CommonTrigger.cs
  6. 3 2
      TEAMModelOS.FunctionV4/CosmosDB/TriggerCorrect.cs
  7. 6 6
      TEAMModelOS.FunctionV4/CosmosDB/TriggerExam.cs
  8. 4 3
      TEAMModelOS.FunctionV4/CosmosDB/TriggerExamLite.cs
  9. 4 4
      TEAMModelOS.FunctionV4/CosmosDB/TriggerHomework.cs
  10. 4 3
      TEAMModelOS.FunctionV4/CosmosDB/TriggerStudy.cs
  11. 4 4
      TEAMModelOS.FunctionV4/CosmosDB/TriggerSurvey.cs
  12. 4 4
      TEAMModelOS.FunctionV4/CosmosDB/TriggerVote.cs
  13. 1 0
      TEAMModelOS.FunctionV4/Program.cs
  14. 7 5
      TEAMModelOS.FunctionV4/ServiceBus/ActiveTaskTopic.cs
  15. 1 1
      TEAMModelOS.SDK/DI/CoreAPI/CoreAPIHttpService.cs
  16. 5 5
      TEAMModelOS.SDK/Models/Service/ActivityService.cs
  17. 6 5
      TEAMModelOS.SDK/Models/Service/GroupListService.cs
  18. 7 6
      TEAMModelOS.SDK/Models/Service/StatisticsService.cs
  19. 4 2
      TEAMModelOS/Controllers/Analysis/ClassAnalysisController.cs
  20. 6 5
      TEAMModelOS/Controllers/Both/GroupListController.cs
  21. 5 3
      TEAMModelOS/Controllers/Client/HiScanController.cs
  22. 6 4
      TEAMModelOS/Controllers/Common/AreaController.cs
  23. 5 2
      TEAMModelOS/Controllers/Common/CommonController.cs
  24. 5 4
      TEAMModelOS/Controllers/Common/ExamController.cs
  25. 4 2
      TEAMModelOS/Controllers/Common/ExamLiteController.cs
  26. 4 3
      TEAMModelOS/Controllers/Common/HomeworkController.cs
  27. 3 2
      TEAMModelOS/Controllers/Common/StudyController.cs
  28. 6 4
      TEAMModelOS/Controllers/Normal/AbilityStatisticsController.cs
  29. 6 4
      TEAMModelOS/Controllers/Normal/AbilitySubController.cs
  30. 5 4
      TEAMModelOS/Controllers/Teacher/ClassVideoController.cs
  31. 1 1
      TEAMModelOS/Controllers/Teacher/InitController.cs

+ 4 - 2
TEAMModelAPI/Controllers/School/SchoolController.cs

@@ -24,6 +24,7 @@ using Microsoft.Extensions.Configuration;
 using TEAMModelOS.Filter;
 using Microsoft.AspNetCore.Authorization;
 using HTEXLib.COMM.Helpers;
+using TEAMModelOS.SDK.Models.Service;
 
 namespace TEAMModelAPI.Controllers
 {
@@ -39,7 +40,8 @@ namespace TEAMModelAPI.Controllers
         private readonly DingDing _dingDing;
         private readonly Option _option;
         private readonly IConfiguration _configuration;
-        public SchoolController(AzureCosmosFactory azureCosmos, AzureStorageFactory azureStorage, AzureRedisFactory azureRedis, DingDing dingDing, IOptionsSnapshot<Option> option, IConfiguration configuration)
+        private readonly CoreAPIHttpService _coreAPIHttpService;
+        public SchoolController(CoreAPIHttpService coreAPIHttpService, AzureCosmosFactory azureCosmos, AzureStorageFactory azureStorage, AzureRedisFactory azureRedis, DingDing dingDing, IOptionsSnapshot<Option> option, IConfiguration configuration)
         {
             _azureCosmos = azureCosmos;
             _azureStorage = azureStorage;
@@ -249,7 +251,7 @@ namespace TEAMModelAPI.Controllers
             if (!json.TryGetProperty("ids", out JsonElement ids)) return BadRequest();
             var (id, school) = HttpContext.GetApiTokenInfo();
             List<string> listids = ids.ToObject<List<string>>();
-            (List<RMember> members, List<RGroupList> groups) = await GroupListService.GetStutmdidListids(client, _dingDing, listids, $"{school}");
+            (List<RMember> members, List<RGroupList> groups) = await GroupListService.GetStutmdidListids(_coreAPIHttpService, client, _dingDing, listids, $"{school}");
             return Ok(new { groups = groups.Select(x => new { x.name, x.no, x.periodId, x.school, x.type, x.year, x.tcount, x.scount, x.leader, x.members, x.id }), members });
         }
        

+ 1 - 1
TEAMModelBI/Controllers/DingDingStruc/DDStructController.cs

@@ -19,7 +19,7 @@ using TEAMModelOS.SDK.Models;
 using TEAMModelBI.Controllers.BISchool;
 using TEAMModelOS.SDK.Models.Cosmos.BI;
 using Microsoft.Azure.Cosmos.Table;
-
+using TEAMModelOS.SDK;
 
 namespace TEAMModelBI.Controllers.DingDingStruc
 {

+ 1 - 0
TEAMModelBI/Controllers/LoginController.cs

@@ -31,6 +31,7 @@ using Azure.Storage.Sas;
 using System.Net.Http.Json;
 using TEAMModelBI.Filter;
 using TEAMModelBI.Models.Extension;
+using TEAMModelOS.SDK;
 //using static DingTalk.Api.Response.OapiV2UserGetResponse;
 
 namespace TEAMModelBI.Controllers

+ 1 - 0
TEAMModelBI/Startup.cs

@@ -16,6 +16,7 @@ using System.IdentityModel.Tokens.Jwt;
 using System.Linq;
 using System.Threading.Tasks;
 using TEAMModelOS.Models;
+using TEAMModelOS.SDK;
 using TEAMModelOS.SDK.DI;
 using TEAMModelOS.SDK.Extension;
 using TEAMModelOS.SDK.Filter;

+ 12 - 8
TEAMModelOS.FunctionV4/CosmosDB/CommonTrigger.cs

@@ -7,8 +7,10 @@ using System.Linq;
 using System.Text;
 using System.Text.Json;
 using System.Threading.Tasks;
+using TEAMModelOS.SDK;
 using TEAMModelOS.SDK.DI;
 using TEAMModelOS.SDK.Extension;
+using TEAMModelOS.SDK.Models.Service;
 
 namespace TEAMModelOS.FunctionV4
 {
@@ -20,7 +22,8 @@ namespace TEAMModelOS.FunctionV4
         private readonly DingDing _dingDing;
         private readonly AzureRedisFactory _azureRedis;
         private IConfiguration _configuration { get; set; }
-        public CommonTrigger(AzureCosmosFactory azureCosmos, AzureServiceBusFactory azureServiceBus, AzureStorageFactory azureStorage, DingDing dingDing, AzureRedisFactory azureRedis
+        private readonly CoreAPIHttpService _coreAPIHttpService;
+        public CommonTrigger(CoreAPIHttpService coreAPIHttpService, AzureCosmosFactory azureCosmos, AzureServiceBusFactory azureServiceBus, AzureStorageFactory azureStorage, DingDing dingDing, AzureRedisFactory azureRedis
           , IConfiguration configuration
           )
         {
@@ -30,6 +33,7 @@ namespace TEAMModelOS.FunctionV4
             _dingDing = dingDing;
             _azureRedis = azureRedis;
             _configuration = configuration;
+            _coreAPIHttpService=coreAPIHttpService;
         }
         [Function("Common")]
         public async Task Common([CosmosDBTriggerAttribute(
@@ -69,25 +73,25 @@ namespace TEAMModelOS.FunctionV4
                                 switch (data.pk)
                                 {
                                     case "Exam":
-                                        await TriggerExam.Trigger(_azureCosmos, _serviceBus, _azureStorage, _dingDing, client, element, data);
+                                        await TriggerExam.Trigger(_coreAPIHttpService,_azureCosmos, _serviceBus, _azureStorage, _dingDing, client, element, data);
                                         break;
                                     case "Vote":
-                                        await TriggerVote.Trigger(_serviceBus, _azureStorage, _dingDing, client, element, data, _azureRedis, _configuration);
+                                        await TriggerVote.Trigger(_coreAPIHttpService, _serviceBus, _azureStorage, _dingDing, client, element, data, _azureRedis, _configuration);
                                         break;
                                     case "Survey":
-                                        await TriggerSurvey.Trigger(_serviceBus, _azureStorage, _dingDing, client, element, data, _azureRedis, _configuration);
+                                        await TriggerSurvey.Trigger(_coreAPIHttpService, _serviceBus, _azureStorage, _dingDing, client, element, data, _azureRedis, _configuration);
                                         break;
                                     case "Correct":
-                                        await TriggerCorrect.Trigger(_serviceBus, _azureStorage, _dingDing, client, element, data, _azureRedis);
+                                        await TriggerCorrect.Trigger(_coreAPIHttpService, _serviceBus, _azureStorage, _dingDing, client, element, data, _azureRedis);
                                         break;
                                     case "ExamLite":
-                                        await TriggerExamLite.Trigger(_serviceBus, _azureStorage, _dingDing, client, element, data, _azureRedis, _configuration);
+                                        await TriggerExamLite.Trigger(_coreAPIHttpService, _serviceBus, _azureStorage, _dingDing, client, element, data, _azureRedis, _configuration);
                                         break;
                                     case "Study":
-                                        await TriggerStudy.Trigger(_serviceBus, _azureStorage, _dingDing, client, element, data, _azureRedis, _configuration);
+                                        await TriggerStudy.Trigger(_coreAPIHttpService, _serviceBus, _azureStorage, _dingDing, client, element, data, _azureRedis, _configuration);
                                         break;
                                     case "Homework":
-                                        await TriggerHomework.Trigger(_serviceBus, _azureStorage, _dingDing, client, element, data, _azureRedis, _configuration);
+                                        await TriggerHomework.Trigger(_coreAPIHttpService, _serviceBus, _azureStorage, _dingDing, client, element, data, _azureRedis, _configuration);
                                         break;
 
                                 }

+ 3 - 2
TEAMModelOS.FunctionV4/CosmosDB/TriggerCorrect.cs

@@ -15,17 +15,18 @@ using TEAMModelOS.SDK.Models.Table;
 using HTEXLib.COMM.Helpers;
 using Azure;
 
+
 namespace TEAMModelOS.FunctionV4
 {
     public static class TriggerCorrect
     {
-        public static async Task Trigger(AzureServiceBusFactory _serviceBus, AzureStorageFactory _azureStorage, DingDing _dingDing,
+        public static async Task Trigger(CoreAPIHttpService _coreAPIHttpService, AzureServiceBusFactory _serviceBus, AzureStorageFactory _azureStorage, DingDing _dingDing,
            CosmosClient client, JsonElement input, TriggerData tdata, AzureRedisFactory _azureRedis)
         {
             if ((tdata.status != null && tdata.status.Value == 404) || tdata.ttl > 0)
             {
                 ActivityList data = input.ToObject<ActivityList>();
-                await ActivityService.DeleteActivity(client, _dingDing, data);
+                await ActivityService.DeleteActivity(_coreAPIHttpService, client, _dingDing, data);
                 return;
             }
             var adid = tdata.id;

+ 6 - 6
TEAMModelOS.FunctionV4/CosmosDB/TriggerExam.cs

@@ -18,7 +18,7 @@ namespace TEAMModelOS.FunctionV4
 {
     public class TriggerExam
     {
-        public static async Task Trigger(AzureCosmosFactory _azureCosmos, AzureServiceBusFactory _serviceBus, AzureStorageFactory _azureStorage, DingDing _dingDing,
+        public static async Task Trigger(CoreAPIHttpService _coreAPIHttpService, AzureCosmosFactory _azureCosmos, AzureServiceBusFactory _serviceBus, AzureStorageFactory _azureStorage, DingDing _dingDing,
             CosmosClient client, JsonElement input, TriggerData data)
         {
             
@@ -29,7 +29,7 @@ namespace TEAMModelOS.FunctionV4
                 if ((data.status != null && data.status.Value == 404) || data.ttl > 0)
                 {
                     ActivityList activity = input.ToObject<ActivityList>();
-                    await ActivityService.DeleteActivity(client, _dingDing, activity);
+                    await ActivityService.DeleteActivity(_coreAPIHttpService, client, _dingDing, activity);
                     return;
                 }
                 ExamInfo info = await client.GetContainer(Constant.TEAMModelOS, "Common").ReadItemAsync<ExamInfo>(data.id, new Azure.Cosmos.PartitionKey($"{data.code}"));
@@ -106,7 +106,7 @@ namespace TEAMModelOS.FunctionV4
                             try
                             {
                                 //处理活动中间件
-                                (List<string> classes, List<RGroupList> members) = await Activity(info, client, _dingDing, sub);
+                                (List<string> classes, List<RGroupList> members) = await Activity(_coreAPIHttpService, info, client, _dingDing, sub);
                                 //向学生或醍摩豆账号发起通知
                                 #region
                                 //Notice notice = new Notice()
@@ -344,7 +344,7 @@ namespace TEAMModelOS.FunctionV4
                                 }                               
                                 //处理活动中间件
                                 if (info.source.Equals("1")) {
-                                    await Activity(info, client, _dingDing, sub);
+                                    await Activity(_coreAPIHttpService, info, client, _dingDing, sub);
                                 }                                
                                 foreach (ExamSubject subject in info.subjects)
                                 {
@@ -549,7 +549,7 @@ namespace TEAMModelOS.FunctionV4
                 await _dingDing.SendBotMsg($"{Environment.GetEnvironmentVariable("Option:Location")}-{info.id}-评测作答记录结算异常{ex.Message}\n{ex.StackTrace}", GroupNames.成都开发測試群組);
             }
         }
-        public static async Task<(List<string> classes,List<RGroupList> members)> Activity(ExamInfo info, CosmosClient client, DingDing _dingDing, List<string> sub) {
+        public static async Task<(List<string> classes,List<RGroupList> members)> Activity(CoreAPIHttpService _coreAPIHttpService, ExamInfo info, CosmosClient client, DingDing _dingDing, List<string> sub) {
             List<(string pId, List<string> gid)> ps = new List<(string pId, List<string> gid)>();
             if (info.groupLists.Count > 0)
             {
@@ -563,7 +563,7 @@ namespace TEAMModelOS.FunctionV4
                 }
             }
             List<string> classes = ExamService.getClasses(info.classes, info.stuLists);
-            (List<RMember> tchList, List<RGroupList> classLists) = await GroupListService.GetStutmdidListids(client, _dingDing, classes, info.school, ps);
+            (List<RMember> tchList, List<RGroupList> classLists) = await GroupListService.GetStutmdidListids(_coreAPIHttpService, client, _dingDing, classes, info.school, ps);
             var addStudentsCls = tchList.FindAll(x => x.type == 2);
             var addTmdidsCls = tchList.FindAll(x => x.type == 1);
             List<StuActivity> stuActivities = new List<StuActivity>();

+ 4 - 3
TEAMModelOS.FunctionV4/CosmosDB/TriggerExamLite.cs

@@ -14,12 +14,13 @@ using TEAMModelOS.SDK.DI;
 using TEAMModelOS.SDK.Extension;
 using TEAMModelOS.SDK.Models;
 using TEAMModelOS.SDK.Models.Cosmos.Common;
+using TEAMModelOS.SDK.Models.Service;
 
 namespace TEAMModelOS.FunctionV4
 {
     public static class TriggerExamLite
     {
-        public static async Task Trigger(AzureServiceBusFactory _serviceBus, AzureStorageFactory _azureStorage, DingDing _dingDing,
+        public static async Task Trigger (CoreAPIHttpService _coreAPIHttpService, AzureServiceBusFactory _serviceBus, AzureStorageFactory _azureStorage, DingDing _dingDing,
                     CosmosClient client, JsonElement input, TriggerData tdata, AzureRedisFactory _azureRedis, IConfiguration _configuration)
         {
             try
@@ -27,7 +28,7 @@ namespace TEAMModelOS.FunctionV4
                 if ((tdata.status != null && tdata.status.Value == 404) || tdata.ttl > 0)
                 {
                     ActivityList data = input.ToObject<ActivityList>();
-                    await ActivityService.DeleteActivity(client, _dingDing, data);
+                    await ActivityService.DeleteActivity(_coreAPIHttpService, client, _dingDing, data);
                     return;
                 }
                 var adid = tdata.id;
@@ -88,7 +89,7 @@ namespace TEAMModelOS.FunctionV4
                                     }
                                 }
                             }
-                            (List<RMember> tchList, List<RGroupList> classInfos) = await GroupListService.GetStutmdidListids(client, _dingDing, lite.tchLists, lite.school, ps);
+                            (List<RMember> tchList, List<RGroupList> classInfos) = await GroupListService.GetStutmdidListids(_coreAPIHttpService, client, _dingDing, lite.tchLists, lite.school, ps);
                             List<StuActivity> tchActivities = new List<StuActivity>();
                             (string standard, List<string> tmdids, string school, List<string> update, int statistics)  list =    (null,null, null, new List<string> { StatisticsService.TeacherExamLite }, 0)  ;
                             if (tchList.IsNotEmpty())

+ 4 - 4
TEAMModelOS.FunctionV4/CosmosDB/TriggerHomework.cs

@@ -20,7 +20,7 @@ namespace TEAMModelOS.FunctionV4
 {
     public static class TriggerHomework
     {
-        public static async Task Trigger(AzureServiceBusFactory _serviceBus, AzureStorageFactory _azureStorage, DingDing _dingDing,
+        public static async Task Trigger(CoreAPIHttpService _coreAPIHttpService,AzureServiceBusFactory _serviceBus, AzureStorageFactory _azureStorage, DingDing _dingDing,
                     CosmosClient client, JsonElement input, TriggerData tdata, AzureRedisFactory _azureRedis, IConfiguration _configuration)
         {
             try
@@ -28,7 +28,7 @@ namespace TEAMModelOS.FunctionV4
                 if ((tdata.status != null && tdata.status.Value == 404) || tdata.ttl > 0)
                 {
                     ActivityList data = input.ToObject<ActivityList>();
-                    await ActivityService.DeleteActivity(client, _dingDing, data);
+                    await ActivityService.DeleteActivity(_coreAPIHttpService, client, _dingDing, data);
                     return;
                 }
                 var adid = tdata.id;
@@ -90,7 +90,7 @@ namespace TEAMModelOS.FunctionV4
                                 }
                             }
                             List<string> classes = ExamService.getClasses(work.classes, work.stuLists);
-                            (List<RMember> tmdids, List<RGroupList> classLists) = await GroupListService.GetStutmdidListids(client, _dingDing, classes, work.school, ps);
+                            (List<RMember> tmdids, List<RGroupList> classLists) = await GroupListService.GetStutmdidListids(_coreAPIHttpService, client, _dingDing, classes, work.school, ps);
                             var addStudentsCls = tmdids.FindAll(x => x.type == 2);
                             var addTmdidsCls = tmdids.FindAll(x => x.type == 1);
                             List<StuActivity> stuActivities = new List<StuActivity>();
@@ -166,7 +166,7 @@ namespace TEAMModelOS.FunctionV4
                                     });
                                 });
                             }
-                            (List<RMember> tchList, List<RGroupList> classInfos) = await GroupListService.GetStutmdidListids(client, _dingDing, work.tchLists, work.school,ps);
+                            (List<RMember> tchList, List<RGroupList> classInfos) = await GroupListService.GetStutmdidListids(_coreAPIHttpService, client, _dingDing, work.tchLists, work.school,ps);
                             (string standard, List<string> tmdids, string school, List<string> update, int statistics) list = (null, null, null, new List<string> { StatisticsService.OfflineRecord }, 0);
                             if (tchList.IsNotEmpty())
                             {

+ 4 - 3
TEAMModelOS.FunctionV4/CosmosDB/TriggerStudy.cs

@@ -14,12 +14,13 @@ using TEAMModelOS.SDK.DI;
 using TEAMModelOS.SDK.Extension;
 using TEAMModelOS.SDK.Models;
 using TEAMModelOS.SDK.Models.Cosmos.Common;
+using TEAMModelOS.SDK.Models.Service;
 
 namespace TEAMModelOS.FunctionV4
 {
     public static class TriggerStudy
     {
-        public static async Task Trigger(AzureServiceBusFactory _serviceBus, AzureStorageFactory _azureStorage, DingDing _dingDing,
+        public static async Task Trigger(CoreAPIHttpService _coreAPIHttpService, AzureServiceBusFactory _serviceBus, AzureStorageFactory _azureStorage, DingDing _dingDing,
                     CosmosClient client, JsonElement input, TriggerData tdata, AzureRedisFactory _azureRedis, IConfiguration _configuration)
         {
             try
@@ -27,7 +28,7 @@ namespace TEAMModelOS.FunctionV4
                 if ((tdata.status != null && tdata.status.Value == 404) || tdata.ttl > 0 || tdata.publish == 1)
                 {
                     ActivityList data = input.ToObject<ActivityList>();
-                    await ActivityService.DeleteActivity(client, _dingDing, data);
+                    await ActivityService.DeleteActivity(_coreAPIHttpService, client, _dingDing, data);
                     return;
                 }
                 var adid = tdata.id;
@@ -89,7 +90,7 @@ namespace TEAMModelOS.FunctionV4
                                         }
                                     }
                                 }
-                                (List<RMember> tchList, List<RGroupList> classInfos) = await GroupListService.GetStutmdidListids(client, _dingDing, study.tchLists, study.school, ps);
+                                (List<RMember> tchList, List<RGroupList> classInfos) = await GroupListService.GetStutmdidListids(_coreAPIHttpService, client, _dingDing, study.tchLists, study.school, ps);
                                 List<StuActivity> tchActivities = new List<StuActivity>();
                                 (string standard, List<string> tmdids, string school, List<string> update, int statistics) list = (null, null, null, new List<string> { StatisticsService.OfflineRecord }, 0);
                                 if (tchList.IsNotEmpty())

+ 4 - 4
TEAMModelOS.FunctionV4/CosmosDB/TriggerSurvey.cs

@@ -26,7 +26,7 @@ namespace TEAMModelOS.FunctionV4
 {
     public class TriggerSurvey
     {
-        public static async Task Trigger(AzureServiceBusFactory _serviceBus, AzureStorageFactory _azureStorage, DingDing _dingDing,
+        public static async Task Trigger(CoreAPIHttpService _coreAPIHttpService,AzureServiceBusFactory _serviceBus, AzureStorageFactory _azureStorage, DingDing _dingDing,
                CosmosClient client, JsonElement input, TriggerData tdata, AzureRedisFactory _azureRedis, IConfiguration _configuration)
         {
             try
@@ -34,7 +34,7 @@ namespace TEAMModelOS.FunctionV4
                 if ((tdata.status != null && tdata.status.Value == 404) || tdata.ttl > 0)
                 {
                     ActivityList data = input.ToObject<ActivityList>();
-                    await ActivityService.DeleteActivity(client, _dingDing, data);
+                    await ActivityService.DeleteActivity(_coreAPIHttpService, client, _dingDing, data);
                     _azureRedis.GetRedisClient(8).KeyDelete($"Survey:Record:{tdata.id}");
                     _azureRedis.GetRedisClient(8).KeyDelete($"Survey:Submit:{tdata.id}");
                     return;
@@ -97,7 +97,7 @@ namespace TEAMModelOS.FunctionV4
                                 }
                             }
                             List<string> classes = ExamService.getClasses(survey.classes, survey.stuLists);
-                            (List<RMember> tmdIds, List<RGroupList> classLists) = await GroupListService.GetStutmdidListids(client, _dingDing, classes, survey.school);
+                            (List<RMember> tmdIds, List<RGroupList> classLists) = await GroupListService.GetStutmdidListids(_coreAPIHttpService, client, _dingDing, classes, survey.school);
                             var addStudentsCls = tmdIds.FindAll(x => x.type == 2);
                             var addTmdidsCls = tmdIds.FindAll(x => x.type == 1);
 #if DEBUG
@@ -176,7 +176,7 @@ namespace TEAMModelOS.FunctionV4
                                     }); 
                                 });
                             }
-                            (List<RMember> tchList, List<RGroupList> classInfos) = await GroupListService.GetStutmdidListids(client, _dingDing, survey.tchLists, survey.school, ps);
+                            (List<RMember> tchList, List<RGroupList> classInfos) = await GroupListService.GetStutmdidListids(_coreAPIHttpService, client, _dingDing, survey.tchLists, survey.school, ps);
                             (string standard, List<string> tmdids, string school, List<string> update, int statistics) list = (null, null, null, new List<string> { StatisticsService.TeacherSurvey }, 0);
                             if (tchList.IsNotEmpty())
                             {

+ 4 - 4
TEAMModelOS.FunctionV4/CosmosDB/TriggerVote.cs

@@ -23,7 +23,7 @@ namespace TEAMModelOS.FunctionV4
     public static class TriggerVote
     {
 
-        public static async Task Trigger(AzureServiceBusFactory _serviceBus, AzureStorageFactory _azureStorage, DingDing _dingDing,
+        public static async Task Trigger(CoreAPIHttpService _coreAPIHttpService, AzureServiceBusFactory _serviceBus, AzureStorageFactory _azureStorage, DingDing _dingDing,
             CosmosClient client, JsonElement input, TriggerData tdata, AzureRedisFactory _azureRedis, IConfiguration _configuration)
         {
             try
@@ -31,7 +31,7 @@ namespace TEAMModelOS.FunctionV4
                 if ((tdata.status != null && tdata.status.Value == 404) || tdata.ttl > 0)
                 {
                     ActivityList data = input.ToObject<ActivityList>();
-                    await ActivityService. DeleteActivity(client, _dingDing, data);
+                    await ActivityService. DeleteActivity(_coreAPIHttpService, client, _dingDing, data);
                     _azureRedis.GetRedisClient(8).KeyDelete($"Vote:Record:{tdata.id}");
                     _azureRedis.GetRedisClient(8).KeyDelete($"Vote:Count:{tdata.id}");
                     return;
@@ -95,7 +95,7 @@ namespace TEAMModelOS.FunctionV4
                                 }
                             }
                             List<string> classes = ExamService.getClasses(vote.classes, vote.stuLists);
-                            (List<RMember> tmdIds, List<RGroupList> classLists) = await GroupListService.GetStutmdidListids(client, _dingDing, classes, vote.school, ps);
+                            (List<RMember> tmdIds, List<RGroupList> classLists) = await GroupListService.GetStutmdidListids(_coreAPIHttpService, client, _dingDing, classes, vote.school, ps);
                             var addStudentsCls = tmdIds.FindAll(x => x.type == 2);
                             var addTmdidsCls = tmdIds.FindAll(x => x.type == 1);
                             //await _dingDing.SendBotMsg($"{Environment.GetEnvironmentVariable("Option:Location")}投票活动" +
@@ -181,7 +181,7 @@ namespace TEAMModelOS.FunctionV4
                                     });
                                 });
                             }
-                            (List<RMember> tchList, List<RGroupList> classInfos) = await GroupListService.GetStutmdidListids(client, _dingDing, vote.tchLists, vote.school, ps);
+                            (List<RMember> tchList, List<RGroupList> classInfos) = await GroupListService.GetStutmdidListids(_coreAPIHttpService, client, _dingDing, vote.tchLists, vote.school, ps);
                             (string standard, List<string> tmdids, string school, List<string> update, int statistics) list = (null, null, null, new List<string> { StatisticsService.TeacherVote }, 0);
                             if (tchList.IsNotEmpty())
                             {

+ 1 - 0
TEAMModelOS.FunctionV4/Program.cs

@@ -36,6 +36,7 @@ namespace TEAMModelOS.FunctionV4
                services.AddHttpClient<DingDing>();
                services.AddHttpClient<ThirdApisService>();
                services.AddHttpClient<NotificationService>();
+               services.AddHttpClient<CoreAPIHttpService>();
                services.AddAzureCosmos(context.Configuration.GetSection("Azure:Cosmos:ConnectionString").Get<string>());
                services.AddAzureServiceBus(context.Configuration.GetSection("Azure:ServiceBus:ConnectionString").Get<string>());
                services.AddAzureStorage(context.Configuration.GetSection("Azure:Storage:ConnectionString").Get<string>());

+ 7 - 5
TEAMModelOS.FunctionV4/ServiceBus/ActiveTaskTopic.cs

@@ -36,8 +36,9 @@ namespace TEAMModelOS.FunctionV4.ServiceBus
         private readonly AzureServiceBusFactory _serviceBus;
         private readonly Option _option;
         private readonly NotificationService _notificationService;
+        private readonly CoreAPIHttpService _coreAPIHttpService;
         private readonly IConfiguration _configuration;
-        public ActiveTaskTopic(AzureCosmosFactory azureCosmos, DingDing dingDing, AzureStorageFactory azureStorage, AzureRedisFactory azureRedis, AzureServiceBusFactory serviceBus, IOptionsSnapshot<Option> option, NotificationService notificationService, IConfiguration configuration)
+        public ActiveTaskTopic(CoreAPIHttpService  coreAPIHttpService,AzureCosmosFactory azureCosmos, DingDing dingDing, AzureStorageFactory azureStorage, AzureRedisFactory azureRedis, AzureServiceBusFactory serviceBus, IOptionsSnapshot<Option> option, NotificationService notificationService, IConfiguration configuration)
         {
             _azureCosmos = azureCosmos;
             _dingDing = dingDing;
@@ -47,6 +48,7 @@ namespace TEAMModelOS.FunctionV4.ServiceBus
             _option = option?.Value;
             _notificationService = notificationService;
             _configuration = configuration;
+            _coreAPIHttpService = coreAPIHttpService;
         }
         [Function("Exam")]
         public async Task ExamFunc([ServiceBusTrigger("%Azure:ServiceBus:ActiveTask%", "exam", Connection = "Azure:ServiceBus:ConnectionString")] string msg)
@@ -1107,7 +1109,7 @@ namespace TEAMModelOS.FunctionV4.ServiceBus
                 }
                 foreach (var cls in courseChange.addClass)
                 {
-                    (List<RMember> tchList, List<RGroupList> classLists) = await GroupListService.GetStutmdidListids(client, _dingDing, new List<string> { cls }, courseChange.school);
+                    (List<RMember> tchList, List<RGroupList> classLists) = await GroupListService.GetStutmdidListids(_coreAPIHttpService, client, _dingDing, new List<string> { cls }, courseChange.school);
                     var addStudentsCls = tchList.FindAll(x => x.type == 2);
                     var addTmdidsCls = tchList.FindAll(x => x.type == 1);
                     foreach (var stu in addStudentsCls)
@@ -1189,7 +1191,7 @@ namespace TEAMModelOS.FunctionV4.ServiceBus
 
                 foreach (var list in courseChange.addList)
                 {
-                    (List<RMember> tchList, List<RGroupList> classLists) = await GroupListService.GetStutmdidListids(client, _dingDing, new List<string> { list }, courseChange.school);
+                    (List<RMember> tchList, List<RGroupList> classLists) = await GroupListService.GetStutmdidListids(_coreAPIHttpService, client, _dingDing, new List<string> { list }, courseChange.school);
                     var addStudentsCls = tchList.FindAll(x => x.type == 2);
                     var addTmdidsCls = tchList.FindAll(x => x.type == 1);
                     foreach (var stu in addStudentsCls)
@@ -1271,7 +1273,7 @@ namespace TEAMModelOS.FunctionV4.ServiceBus
 
                 foreach (var delCls in courseChange.delClass)
                 {
-                    (List<RMember> tchList, List<RGroupList> classLists) = await GroupListService.GetStutmdidListids(client, _dingDing, new List<string> { delCls }, courseChange.school);
+                    (List<RMember> tchList, List<RGroupList> classLists) = await GroupListService.GetStutmdidListids(_coreAPIHttpService, client, _dingDing, new List<string> { delCls }, courseChange.school);
                     var delStudentsCls = tchList.FindAll(x => x.type == 2);
                     var delTmdidsCls = tchList.FindAll(x => x.type == 1);
                     foreach (var stu in delStudentsCls)
@@ -1331,7 +1333,7 @@ namespace TEAMModelOS.FunctionV4.ServiceBus
                 }
                 foreach (var delList in courseChange.delList)
                 {
-                    (List<RMember> tchList, List<RGroupList> classLists) = await GroupListService.GetStutmdidListids(client, _dingDing, new List<string> { delList }, courseChange.school);
+                    (List<RMember> tchList, List<RGroupList> classLists) = await GroupListService.GetStutmdidListids(_coreAPIHttpService, client, _dingDing, new List<string> { delList }, courseChange.school);
                     var delStudentsCls = tchList.FindAll(x => x.type == 2);
                     var delTmdidsCls = tchList.FindAll(x => x.type == 1);
                     foreach (var stu in delStudentsCls)

+ 1 - 1
TEAMModelOS.SDK/DI/CoreAPI/CoreAPIHttpService.cs

@@ -10,7 +10,7 @@ using System.Threading.Tasks;
 using TEAMModelOS.SDK.Extension;
 
 
-namespace TEAMModelOS.SDK.Models.Service
+namespace TEAMModelOS.SDK
 {
     public class CoreAPIHttpService
     {

+ 5 - 5
TEAMModelOS.SDK/Models/Service/ActivityService.cs

@@ -301,7 +301,7 @@ namespace TEAMModelOS.SDK
             }
             return "";
         }
-        public static async Task RefreshStuActivity(CosmosClient client, DingDing _dingDing, string id, string code)
+        public static async Task RefreshStuActivity(CoreAPIHttpService _coreAPIHttpService ,CosmosClient client, DingDing _dingDing, string id, string code)
         {
             MQActivity activity = null;
             try
@@ -318,7 +318,7 @@ namespace TEAMModelOS.SDK
             {
                 List<Task<ItemResponse<StuActivity>>> tasks = new List<Task<ItemResponse<StuActivity>>>();
                 List<string> classes = ExamService.getClasses(activity.classes, activity.stuLists);
-                (List<RMember> tmdIds, List<RGroupList> classLists) = await GroupListService.GetStutmdidListids(client, _dingDing, classes, activity.school);
+                (List<RMember> tmdIds, List<RGroupList> classLists) = await GroupListService.GetStutmdidListids(_coreAPIHttpService, client, _dingDing, classes, activity.school);
                 var students = tmdIds.FindAll(x => x.type == 2);
                 var tmdids = tmdIds.FindAll(x => x.type == 1);
                 if (tmdids.IsNotEmpty())
@@ -379,7 +379,7 @@ namespace TEAMModelOS.SDK
             }
         }
 
-        public static async Task DeleteActivity(CosmosClient client, DingDing _dingDing, ActivityList activityList) {
+        public static async Task DeleteActivity(CoreAPIHttpService _coreAPIHttpService, CosmosClient client, DingDing _dingDing, ActivityList activityList) {
             List<(string pId, List<string> gid)> ps = new List<(string pId, List<string> gid)>();
             if (activityList.groupLists.Count > 0)
             {
@@ -393,7 +393,7 @@ namespace TEAMModelOS.SDK
                 }
             }
             List<string> classes = ExamService.getClasses(activityList.classes, activityList.stuLists);
-            (List<RMember> tmdIds, List<RGroupList> classLists) = await GroupListService.GetStutmdidListids(client, _dingDing, classes, activityList.school, ps);
+            (List<RMember> tmdIds, List<RGroupList> classLists) = await GroupListService.GetStutmdidListids(_coreAPIHttpService, client, _dingDing, classes, activityList.school, ps);
             var addStudentsCls = tmdIds.FindAll(x => x.type == 2);
             var addTmdidsCls = tmdIds.FindAll(x => x.type == 1);
             List<string> tmds = new List<string>();
@@ -426,7 +426,7 @@ namespace TEAMModelOS.SDK
                     });
                 });
             }
-            (List<RMember> tchList, List<RGroupList> classInfos) = await GroupListService.GetStutmdidListids(client, _dingDing, activityList.tchLists, activityList.school, ps);
+            (List<RMember> tchList, List<RGroupList> classInfos) = await GroupListService.GetStutmdidListids(_coreAPIHttpService, client, _dingDing, activityList.tchLists, activityList.school, ps);
             (string standard, List<string> tmdids, string school, List<string> update, int statistics) list = (null, null, null, new List<string> { StatisticsService.TeacherVote }, 0);
             if (tchList.IsNotEmpty())
             {

+ 6 - 5
TEAMModelOS.SDK/Models/Service/GroupListService.cs

@@ -402,7 +402,7 @@ namespace TEAMModelOS.SDK
             }
             return groupLists;
         }
-        public static async Task<(List<RMember>, List<RGroupList> groups)> GetStutmdidListids(CosmosClient client, DingDing _dingDing, List<string> classes, string school, List<(string, List<string>)> groupids = null)
+        public static async Task<(List<RMember>, List<RGroupList> groups)> GetStutmdidListids(CoreAPIHttpService _coreAPIHttpService,CosmosClient client, DingDing _dingDing, List<string> classes, string school, List<(string, List<string>)> groupids = null)
         {
             List<RMember> members = new List<RMember>();
             List<RGroupList> groupLists = new List<RGroupList>();
@@ -523,7 +523,7 @@ namespace TEAMModelOS.SDK
                     var list = item.Value.GroupBy(x => x.type).Select(y => new { key = y.Key, list = y.ToList() });
                     foreach (var group in list)
                     {
-                        (List<RGroupList> rgroups, List<RMember> rmembers)  =await GetGroupListMemberInfo(client, group.key, group.list, item.Key,_dingDing,school);
+                        (List<RGroupList> rgroups, List<RMember> rmembers)  =await GetGroupListMemberInfo(_coreAPIHttpService, client, group.key, group.list, item.Key,_dingDing,school);
                         members.AddRange(rmembers);
                     }
                 }
@@ -598,7 +598,7 @@ namespace TEAMModelOS.SDK
                 return (members, groupLists);
             }
         }
-        public static async Task< List<RGroupList>  > GetGroupListMemberByType(CosmosClient client,string type, List<string> scopes, string school, DingDing _dingDing)
+        public static async Task< List<RGroupList>  > GetGroupListMemberByType(CoreAPIHttpService _coreAPIHttpService,CosmosClient client,string type, List<string> scopes, string school, DingDing _dingDing)
         {
             StringBuilder sql = new StringBuilder($"SELECT distinct value(c) FROM c where c.type='{type}'");
             
@@ -630,13 +630,13 @@ namespace TEAMModelOS.SDK
                 var list = item.Value.GroupBy(x => x.type).Select(y => new { key = y.Key, list = y.ToList() });
                 foreach (var group in list)
                 {
-                    (List<RGroupList> rgroups, List<RMember> rmembers) = await GetGroupListMemberInfo(client, group.key, group.list, item.Key, _dingDing,school);
+                    (List<RGroupList> rgroups, List<RMember> rmembers) = await GetGroupListMemberInfo(_coreAPIHttpService, client, group.key, group.list, item.Key, _dingDing,school);
                 }
             }
             var  lists= groups.SelectMany(x => x.Value).ToList() ;
             return lists;
         }
-        public static async Task<(List<RGroupList> groups, List<RMember> members)> GetGroupListMemberInfo(CosmosClient client, string type, List<RGroupList> groups, string groupTbname, DingDing _dingDing, string school)
+        public static async Task<(List<RGroupList> groups, List<RMember> members)> GetGroupListMemberInfo(CoreAPIHttpService _coreAPIHttpService,CosmosClient client, string type, List<RGroupList> groups, string groupTbname, DingDing _dingDing, string school)
         {
 
             try {
@@ -705,6 +705,7 @@ namespace TEAMModelOS.SDK
                         });
                     }
                     else {
+
                         //处理研修名单,如果是学校老师的,则需要检查SchoolTeacher
                         //处理 学校教研组,学校管理人员,学校任课教师,学校研修名单。
                         if (!string.IsNullOrEmpty(school) && ($"{type}".Equals("yxtrain") || $"{type}".Equals("research") || $"{type}".Equals("manage") || $"{type}".Equals("subject")))

+ 7 - 6
TEAMModelOS.SDK/Models/Service/StatisticsService.cs

@@ -11,6 +11,7 @@ using System.Threading.Tasks;
 using TEAMModelOS.SDK.DI;
 using TEAMModelOS.SDK.Extension;
 using TEAMModelOS.SDK.Models;
+using TEAMModelOS.SDK.Models.Service;
 
 namespace TEAMModelOS.SDK
 {
@@ -164,7 +165,7 @@ namespace TEAMModelOS.SDK
                 school = await client.GetContainer(Constant.TEAMModelOS, "School").ReadItemAsync<School>(schoolId, new PartitionKey("Base"));
             }
         }
-        public static async Task<List<(List<TeacherTrain> trains, List<RGroupList> yxtrain)>> StatisticsArea(AreaSetting setting, Area area, CosmosClient client, DingDing _dingDing, HashSet<string> updates)
+        public static async Task<List<(List<TeacherTrain> trains, List<RGroupList> yxtrain)>> StatisticsArea(CoreAPIHttpService _coreAPIHttpService, AreaSetting setting, Area area, CosmosClient client, DingDing _dingDing, HashSet<string> updates)
         {
             List<(List<TeacherTrain> trains, List<RGroupList> yxtrain)> teacherTrains = new List<(List<TeacherTrain> trains, List<RGroupList> yxtrain)>();
             List<School> schools = new List<School>();
@@ -173,22 +174,22 @@ namespace TEAMModelOS.SDK
             {
                 schools.Add(item);
             }
-            await foreach ((List<TeacherTrain> trains, List<RGroupList> yxtrain) tarain in GetStatisticsSchool(schools, setting, area, client, _dingDing, updates))
+            await foreach ((List<TeacherTrain> trains, List<RGroupList> yxtrain) tarain in GetStatisticsSchool(_coreAPIHttpService, schools, setting, area, client, _dingDing, updates))
             {
                 teacherTrains.Add(tarain);
             }
             return teacherTrains;
         }
-        private static async IAsyncEnumerable<(List<TeacherTrain> trains, List<RGroupList> yxtrain)> GetStatisticsSchool(List<School> schools, AreaSetting setting, Area area, CosmosClient client, DingDing _dingDing, HashSet<string> updates)
+        private static async IAsyncEnumerable<(List<TeacherTrain> trains, List<RGroupList> yxtrain)> GetStatisticsSchool(CoreAPIHttpService _coreAPIHttpService,List<School> schools, AreaSetting setting, Area area, CosmosClient client, DingDing _dingDing, HashSet<string> updates)
         {
             foreach (var school in schools)
             {
-                yield return await StatisticsSchool(school.id, setting, area, client, _dingDing, updates);
+                yield return await StatisticsSchool(  _coreAPIHttpService,school.id, setting, area, client, _dingDing, updates);
             }
         }
-        public static async Task<(List<TeacherTrain> trains, List<RGroupList> yxtrain)> StatisticsSchool(string school, AreaSetting setting, Area area, CosmosClient client, DingDing _dingDing, HashSet<string> updates)
+        public static async Task<(List<TeacherTrain> trains, List<RGroupList> yxtrain)> StatisticsSchool(CoreAPIHttpService _coreAPIHttpService,string school, AreaSetting setting, Area area, CosmosClient client, DingDing _dingDing, HashSet<string> updates)
         {
-            List<RGroupList> yxtrain = await GroupListService.GetGroupListMemberByType(client, "yxtrain", new List<string> { "school" }, $"{school}", _dingDing);
+            List<RGroupList> yxtrain = await GroupListService.GetGroupListMemberByType(_coreAPIHttpService, client, "yxtrain", new List<string> { "school" }, $"{school}", _dingDing);
             List<TeacherTrain> trains = new List<TeacherTrain>();
             var members = yxtrain.SelectMany(x => x.members).ToList();
             if (members.Count <= 0)

+ 4 - 2
TEAMModelOS/Controllers/Analysis/ClassAnalysisController.cs

@@ -33,7 +33,8 @@ namespace TEAMModelOS.Controllers.Analysis
         private readonly DingDing _dingDing;
         private readonly Option _option;
         private readonly AzureStorageFactory _azureStorage;
-        public ClassAnalysisController(AzureCosmosFactory azureCosmos, AzureServiceBusFactory serviceBus, SnowflakeId snowflakeId, DingDing dingDing,
+        private readonly CoreAPIHttpService _coreAPIHttpService;
+        public ClassAnalysisController(CoreAPIHttpService coreAPIHttpService, AzureCosmosFactory azureCosmos, AzureServiceBusFactory serviceBus, SnowflakeId snowflakeId, DingDing dingDing,
             IOptionsSnapshot<Option> option, AzureStorageFactory azureStorage)
         {
             _azureCosmos = azureCosmos;
@@ -42,6 +43,7 @@ namespace TEAMModelOS.Controllers.Analysis
             _dingDing = dingDing;
             _option = option?.Value;
             _azureStorage = azureStorage;
+            _coreAPIHttpService = coreAPIHttpService;
         }
         /// <param name="request"></param>
         /// <returns></returns>
@@ -100,7 +102,7 @@ namespace TEAMModelOS.Controllers.Analysis
                         groupIds.Add(item.name);
                     }
                     //var gs = sc.period.Where(s => s.id == pId.GetString()).Select(x => x.grades);
-                    (List<RMember> tchList, List<RGroupList> classLists) = await GroupListService.GetStutmdidListids(client, _dingDing, groupIds, code.GetString(), null);
+                    (List<RMember> tchList, List<RGroupList> classLists) = await GroupListService.GetStutmdidListids(_coreAPIHttpService, client, _dingDing, groupIds, code.GetString(), null);
                     var total = rc.Select(x => new { x.name, value = x.count });
                     var trend = tpc.Select(x => new { name = x.week, value = x.count });
                     var classify_group = groups.Select(x => new { name = classLists.Where(c => c.id == x.name).Select(y => y.name), value = x.count });

+ 6 - 5
TEAMModelOS/Controllers/Both/GroupListController.cs

@@ -38,10 +38,10 @@ namespace TEAMModelOS.Controllers
         private readonly AzureServiceBusFactory _serviceBus;
         private readonly AzureStorageFactory _azureStorage;
         private readonly NotificationService _notificationService;
-
+        private readonly CoreAPIHttpService _coreAPIHttpService;
         private const string SummarySql = " c.id,c.code,c.name,c.no,c.periodId,c.scope,c.school,c.creatorId,c.type,c.year,c.tcount,c.scount,c.leader ";
         public IConfiguration _configuration { get; set; }
-        public GroupListController(AzureCosmosFactory azureCosmos, DingDing dingDing, IOptionsSnapshot<Option> option, AzureServiceBusFactory serviceBus, AzureStorageFactory azureStorage, IConfiguration configuration, NotificationService notificationService)
+        public GroupListController(CoreAPIHttpService coreAPIHttpService,AzureCosmosFactory azureCosmos, DingDing dingDing, IOptionsSnapshot<Option> option, AzureServiceBusFactory serviceBus, AzureStorageFactory azureStorage, IConfiguration configuration, NotificationService notificationService)
         {
             _azureCosmos = azureCosmos;
             _dingDing = dingDing;
@@ -50,6 +50,7 @@ namespace TEAMModelOS.Controllers
             _configuration = configuration;
             _azureStorage = azureStorage; 
             _notificationService = notificationService;
+            _coreAPIHttpService = coreAPIHttpService;
         }
         //学生获取自己已经加入的名单和课程。
         [ProducesDefaultResponseType]
@@ -517,7 +518,7 @@ namespace TEAMModelOS.Controllers
             if (!json.TryGetProperty("ids", out JsonElement ids)) return BadRequest();
             json.TryGetProperty("schoolId", out JsonElement schoolId);
             List<string> listids = ids.ToObject<List<string>>();
-            (List < RMember > members,List < RGroupList > groups) = await GroupListService.GetStutmdidListids(client, _dingDing, listids, $"{schoolId}");
+            (List < RMember > members,List < RGroupList > groups) = await GroupListService.GetStutmdidListids(_coreAPIHttpService, client, _dingDing, listids, $"{schoolId}");
             return Ok(new { groups, members });
         }
         /// <summary>
@@ -584,7 +585,7 @@ namespace TEAMModelOS.Controllers
                 {
                     groups.Add(item);
                 }
-                (List<RGroupList> groupsData, List<RMember> members) = await GroupListService.GetGroupListMemberInfo(client, $"{type}", groups, tbname,_dingDing,$"{_schoolId}");
+                (List<RGroupList> groupsData, List<RMember> members) = await GroupListService.GetGroupListMemberInfo(_coreAPIHttpService, client, $"{type}", groups, tbname,_dingDing,$"{_schoolId}");
                 return Ok(new { groups = groupsData, members });
             }
             catch (CosmosException ex)
@@ -751,7 +752,7 @@ namespace TEAMModelOS.Controllers
                         return Ok(new { groupList });
                     }
                 }
-                (List<RGroupList> groupsData, List<RMember> members) = await GroupListService.GetGroupListMemberInfo(client, $"{groupList.type}", new List<RGroupList> { groupList }, tbname,_dingDing, $"{_code}");
+                (List<RGroupList> groupsData, List<RMember> members) = await GroupListService.GetGroupListMemberInfo(_coreAPIHttpService, client, $"{groupList.type}", new List<RGroupList> { groupList }, tbname,_dingDing, $"{_code}");
                 groupList = groupsData.FirstOrDefault();
             }
             catch (CosmosException ex)

+ 5 - 3
TEAMModelOS/Controllers/Client/HiScanController.cs

@@ -48,7 +48,8 @@ namespace TEAMModelOS.Controllers.Core
         private readonly Option _option;
         private readonly AzureStorageFactory _azureStorage;
         // private readonly ServerSentEventsService _sse;
-        public HiScanController(AzureCosmosFactory azureCosmos, AzureServiceBusFactory serviceBus, SnowflakeId snowflakeId, DingDing dingDing, IOptionsSnapshot<Option> option,
+        private readonly CoreAPIHttpService _coreAPIHttpService;
+        public HiScanController(CoreAPIHttpService coreAPIHttpService, AzureCosmosFactory azureCosmos, AzureServiceBusFactory serviceBus, SnowflakeId snowflakeId, DingDing dingDing, IOptionsSnapshot<Option> option,
            AzureRedisFactory azureRedis, AzureStorageFactory azureStorage//, ServerSentEventsService sse
                                                                          )
         {
@@ -58,6 +59,7 @@ namespace TEAMModelOS.Controllers.Core
             _dingDing = dingDing;
             _option = option?.Value;
             _azureRedis = azureRedis;
+            _coreAPIHttpService = coreAPIHttpService;
             _azureStorage = azureStorage;
             //_sse = sse;
         }
@@ -196,7 +198,7 @@ namespace TEAMModelOS.Controllers.Core
                         pexamRcds.AddRange(ppexamRcds);
                     }
                 }
-                (List<RMember> tmdIds, List<RGroupList> classInfo) = await GroupListService.GetStutmdidListids(client, _dingDing, classesSet.ToList(), $"{_schoolId}");
+                (List<RMember> tmdIds, List<RGroupList> classInfo) = await GroupListService.GetStutmdidListids(_coreAPIHttpService, client, _dingDing, classesSet.ToList(), $"{_schoolId}");
                 /*var addStudentsCls = tmdIds.FindAll(x => x.type == 2);
                 var addTmdidsCls = tmdIds.FindAll(x => x.type == 1);*/
                 List<SheetConfig> configsN = new List<SheetConfig>();
@@ -394,7 +396,7 @@ namespace TEAMModelOS.Controllers.Core
                     }
                 }
                 
-                (List<RMember> tmdIds, List<RGroupList> classInfo) = await GroupListService.GetStutmdidListids(client, _dingDing, classesSet.ToList(), $"{_schoolId}");
+                (List<RMember> tmdIds, List<RGroupList> classInfo) = await GroupListService.GetStutmdidListids(_coreAPIHttpService, client, _dingDing, classesSet.ToList(), $"{_schoolId}");
                 List<SheetConfig> configsN = new List<SheetConfig>();
                 if (examData.sheet != null) {
                     if (examData.sheet.scope.Equals("school"))

+ 6 - 4
TEAMModelOS/Controllers/Common/AreaController.cs

@@ -36,8 +36,9 @@ namespace TEAMModelOS.Controllers
         private readonly Option _option;
         private readonly AzureStorageFactory _azureStorage;
         private readonly AzureRedisFactory _azureRedis;
+        private readonly CoreAPIHttpService _coreAPIHttpService;
         public IConfiguration _configuration { get; set; }
-        public AreaController(AzureCosmosFactory azureCosmos, AzureServiceBusFactory serviceBus, SnowflakeId snowflakeId, DingDing dingDing,
+        public AreaController(CoreAPIHttpService coreAPIHttpService, AzureCosmosFactory azureCosmos, AzureServiceBusFactory serviceBus, SnowflakeId snowflakeId, DingDing dingDing,
             IOptionsSnapshot<Option> option, AzureStorageFactory azureStorage, AzureRedisFactory azureRedis, IConfiguration configuration)
         {
             _azureCosmos = azureCosmos;
@@ -48,6 +49,7 @@ namespace TEAMModelOS.Controllers
             _azureStorage = azureStorage;
             _azureRedis = azureRedis;
             _configuration = configuration;
+            _coreAPIHttpService = coreAPIHttpService;
         }
 
         /// <param name="request"></param>
@@ -451,7 +453,7 @@ namespace TEAMModelOS.Controllers
                 {
                     var sJson = await JsonDocument.ParseAsync(aresponse.ContentStream);
                     Study study = sJson.ToObject<Study>();
-                    (List<RMember> tchList, List<RGroupList> classInfos) = await GroupListService.GetStutmdidListids(client, _dingDing, study.tchLists, study.school);
+                    (List<RMember> tchList, List<RGroupList> classInfos) = await GroupListService.GetStutmdidListids(_coreAPIHttpService, client, _dingDing, study.tchLists, study.school);
                     teac = tchList;
                     var query = $"select value(c) from c where c.pId = '{id}'";
                     foreach ((string code, string name) in baseIds)
@@ -614,7 +616,7 @@ namespace TEAMModelOS.Controllers
                                 {
                                     JsonElement account = accounts.Current;
                                     List<string> tcs = account.GetProperty("tchLists").ToObject<List<string>>();
-                                    (List<RMember> tchList, List<RGroupList> classInfos) = await GroupListService.GetStutmdidListids(client, _dingDing, tcs, code);
+                                    (List<RMember> tchList, List<RGroupList> classInfos) = await GroupListService.GetStutmdidListids(_coreAPIHttpService, 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));
@@ -707,7 +709,7 @@ namespace TEAMModelOS.Controllers
                                 {
                                     JsonElement account = accounts.Current;
                                     List<string> tcs = account.GetProperty("tchLists").ToObject<List<string>>();
-                                    (List<RMember> tchList, List<RGroupList> classInfos) = await GroupListService.GetStutmdidListids(client, _dingDing, tcs, code);
+                                    (List<RMember> tchList, List<RGroupList> classInfos) = await GroupListService.GetStutmdidListids(_coreAPIHttpService, 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);
 

+ 5 - 2
TEAMModelOS/Controllers/Common/CommonController.cs

@@ -19,6 +19,7 @@ using TEAMModelOS.SDK.DI;
 using TEAMModelOS.SDK.Extension;
 using TEAMModelOS.SDK.Models;
 using TEAMModelOS.SDK.Models.Cosmos.Common;
+using TEAMModelOS.SDK.Models.Service;
 
 namespace TEAMModelOS.Controllers.Common
 {
@@ -35,7 +36,8 @@ namespace TEAMModelOS.Controllers.Common
         private readonly Option _option;
         private readonly AzureStorageFactory _azureStorage;
         private readonly IHttpClientFactory _clientFactory;
-        public CommonController(AzureCosmosFactory azureCosmos, AzureServiceBusFactory serviceBus, SnowflakeId snowflakeId, DingDing dingDing, IOptionsSnapshot<Option> option, AzureStorageFactory azureStorage, IHttpClientFactory clientFactory)
+        private readonly CoreAPIHttpService _coreAPIHttpService;
+        public CommonController(CoreAPIHttpService coreAPIHttpService, AzureCosmosFactory azureCosmos, AzureServiceBusFactory serviceBus, SnowflakeId snowflakeId, DingDing dingDing, IOptionsSnapshot<Option> option, AzureStorageFactory azureStorage, IHttpClientFactory clientFactory)
         {
             _azureCosmos = azureCosmos;
             _serviceBus = serviceBus;
@@ -44,6 +46,7 @@ namespace TEAMModelOS.Controllers.Common
             _option = option?.Value;
             _azureStorage = azureStorage;
             _clientFactory = clientFactory;
+            _coreAPIHttpService = coreAPIHttpService;
         }
 
        
@@ -160,7 +163,7 @@ namespace TEAMModelOS.Controllers.Common
                 await client.GetContainer(Constant.TEAMModelOS, "Common").ReplaceItemAsync<Dictionary<string, object>>(dy, dy["id"].ToString(), new Azure.Cosmos.PartitionKey(dy["code"].ToString()));
                 var httpClient = _clientFactory.CreateClient();
                 var content = new { id = $"{id}", code = $"{code}" };
-                await ActivityService.RefreshStuActivity(client, _dingDing, $"{id}", $"{code}");
+                await ActivityService.RefreshStuActivity(_coreAPIHttpService, client, _dingDing, $"{id}", $"{code}");
                 return Ok(new { code=200});
             }
             catch (Exception ex)

+ 5 - 4
TEAMModelOS/Controllers/Common/ExamController.cs

@@ -46,8 +46,8 @@ namespace TEAMModelOS.Controllers
         private readonly AzureRedisFactory _azureRedis;
         public IConfiguration _configuration { get; set; }
         private readonly NotificationService _notificationService;
-
-        public ExamController(AzureCosmosFactory azureCosmos, AzureServiceBusFactory serviceBus, SnowflakeId snowflakeId, DingDing dingDing,
+        private readonly CoreAPIHttpService _coreAPIHttpService;
+        public ExamController(CoreAPIHttpService coreAPIHttpService, AzureCosmosFactory azureCosmos, AzureServiceBusFactory serviceBus, SnowflakeId snowflakeId, DingDing dingDing,
             IOptionsSnapshot<Option> option, AzureStorageFactory azureStorage, AzureRedisFactory azureRedis, NotificationService notificationService, IConfiguration configuration)
         {
             _azureCosmos = azureCosmos;
@@ -58,7 +58,8 @@ namespace TEAMModelOS.Controllers
             _azureStorage = azureStorage;
             _azureRedis = azureRedis;
             _configuration = configuration;
-            _notificationService = notificationService;
+            _notificationService = notificationService; 
+            _coreAPIHttpService = coreAPIHttpService;
         }
 
         /// <summary>
@@ -120,7 +121,7 @@ namespace TEAMModelOS.Controllers
 
 
                 List<string> classes = ExamService.getClasses(request.classes, request.stuLists);
-                (List<RMember> tchList, List<RGroupList> classLists) = await GroupListService.GetStutmdidListids(client, _dingDing, classes, request.school, ps);
+                (List<RMember> tchList, List<RGroupList> classLists) = await GroupListService.GetStutmdidListids(_coreAPIHttpService, client, _dingDing, classes, request.school, ps);
                 request.stuCount = tchList.Count;
 
                 /*for (int i = 0; i < classes.Count; i++)

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

@@ -35,8 +35,9 @@ namespace TEAMModelOS.Controllers.Common
         private readonly Option _option;
         private readonly AzureStorageFactory _azureStorage;
         private readonly AzureRedisFactory _azureRedis;
+        private readonly CoreAPIHttpService _coreAPIHttpService;
         public IConfiguration _configuration { get; set; }
-        public ExamLiteController(AzureCosmosFactory azureCosmos, AzureServiceBusFactory serviceBus, SnowflakeId snowflakeId, DingDing dingDing,
+        public ExamLiteController(CoreAPIHttpService coreAPIHttpService, AzureCosmosFactory azureCosmos, AzureServiceBusFactory serviceBus, SnowflakeId snowflakeId, DingDing dingDing,
            IOptionsSnapshot<Option> option, AzureStorageFactory azureStorage, AzureRedisFactory azureRedis, IConfiguration configuration)
         {
             _azureCosmos = azureCosmos;
@@ -47,6 +48,7 @@ namespace TEAMModelOS.Controllers.Common
             _azureStorage = azureStorage;
             _azureRedis = azureRedis;
             _configuration = configuration;
+            _coreAPIHttpService = coreAPIHttpService;
         }
         /// <summary>
         /// 保存评测信息
@@ -263,7 +265,7 @@ namespace TEAMModelOS.Controllers.Common
                 ExamLite examLite = await client.GetContainer(Constant.TEAMModelOS, "Common").ReadItemAsync<ExamLite>(id.GetString(), new PartitionKey($"ExamLite-{code}"));
                 if (examLite != null)
                 {
-                    (List<RMember> tchList, List<RGroupList> classInfos) = await GroupListService.GetStutmdidListids(client, _dingDing, examLite.tchLists, examLite.school);
+                    (List<RMember> tchList, List<RGroupList> classInfos) = await GroupListService.GetStutmdidListids(_coreAPIHttpService, 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 });

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

@@ -48,8 +48,9 @@ namespace TEAMModelOS.Controllers.Learn
         private readonly Option _option;
         private readonly AzureStorageFactory _azureStorage;
         private readonly IHttpClientFactory _clientFactory;
+        private readonly CoreAPIHttpService _coreAPIHttpService;
         public IConfiguration _configuration { get; set; }
-        public HomeworkController(AzureCosmosFactory azureCosmos, AzureServiceBusFactory serviceBus, SnowflakeId snowflakeId, DingDing dingDing, IOptionsSnapshot<Option> option,
+        public HomeworkController(CoreAPIHttpService coreAPIHttpService, AzureCosmosFactory azureCosmos, AzureServiceBusFactory serviceBus, SnowflakeId snowflakeId, DingDing dingDing, IOptionsSnapshot<Option> option,
             AzureRedisFactory azureRedis, AzureStorageFactory azureStorage, IHttpClientFactory clientFactory, IConfiguration configuration)
         {
             _snowflakeId = snowflakeId;
@@ -473,7 +474,7 @@ namespace TEAMModelOS.Controllers.Learn
                             if (!request.TryGetProperty("listIds", out JsonElement _listIds)) return BadRequest();
                             List<string> listIds = _listIds.ToJsonString().ToObject<List<string>>();
                             List<TypeUser> typeUsers = new List<TypeUser>();
-                            (List<RMember> tmdinfos, List<RGroupList> classInfo) = await GroupListService.GetStutmdidListids(client, _dingDing, listIds, homework.school);
+                            (List<RMember> tmdinfos, List<RGroupList> classInfo) = await GroupListService.GetStutmdidListids(_coreAPIHttpService,client, _dingDing, listIds, homework.school);
                             var addStudentsCls = tmdinfos.FindAll(x => x.type == 2);
                             var addTmdidsCls = tmdinfos.FindAll(x => x.type == 1);
                             if ($"{_targetType}".Equals("research", StringComparison.OrdinalIgnoreCase) || $"{_targetType}".Equals("yxtrain", StringComparison.OrdinalIgnoreCase))
@@ -621,7 +622,7 @@ namespace TEAMModelOS.Controllers.Learn
                             bool falge = true;
                             if (homework.leaderSubmit == 1 && content.Exists(x => x.prime == true))
                             {
-                                List<RGroupList> yxtrain = await GroupListService.GetGroupListMemberByType(client, "yxtrain", new List<string> { "school" }, $"{school}", _dingDing);
+                                List<RGroupList> yxtrain = await GroupListService.GetGroupListMemberByType(_coreAPIHttpService,client, "yxtrain", new List<string> { "school" }, $"{school}", _dingDing);
                                 var members = yxtrain.SelectMany(x => x.members).ToList();
                                 var leader = members.Find(x => x.tag!=null && x.id.Equals(userid)  && x.tag.Equals("leader"));
                                 if (leader != null && !string.IsNullOrEmpty(leader.groupName))

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

@@ -34,6 +34,7 @@ namespace TEAMModelOS.Controllers.Common
         private readonly Option _option;
         private readonly AzureStorageFactory _azureStorage;
         private readonly AzureRedisFactory _azureRedis;
+
         public IConfiguration _configuration { get; set; }
         private readonly CoreAPIHttpService _coreAPIHttpService;
         public StudyController(CoreAPIHttpService  coreAPIHttpService,AzureCosmosFactory azureCosmos, AzureServiceBusFactory serviceBus, SnowflakeId snowflakeId, DingDing dingDing,
@@ -304,7 +305,7 @@ namespace TEAMModelOS.Controllers.Common
                     }
                     try
                     {
-                        (List<RMember> members, List<RGroupList> groups) = await GroupListService.GetStutmdidListids(client, _dingDing, study.tchLists, study.school, ps);
+                        (List<RMember> members, List<RGroupList> groups) = await GroupListService.GetStutmdidListids(_coreAPIHttpService, client, _dingDing, study.tchLists, study.school, ps);
                         await StatisticsService.DoChange(new TeacherTrainChange
                         { standard = standard, tmdids = members.Select(x => x.id)?.ToList(), school = study.school, update = new HashSet<string> { StatisticsService.OfflineRecord }, statistics = 0 }, _azureCosmos);
                     }
@@ -410,7 +411,7 @@ namespace TEAMModelOS.Controllers.Common
                 Study study = await client.GetContainer(Constant.TEAMModelOS, "Common").ReadItemAsync<Study>(id.GetString(), new PartitionKey($"Study-{code}"));
                 if (study != null)
                 {
-                    (List<RMember> tchList, List<RGroupList> classInfo) = await GroupListService.GetStutmdidListids(client, _dingDing, study.tchLists, study.school);
+                    (List<RMember> tchList, List<RGroupList> classInfo) = await GroupListService.GetStutmdidListids(_coreAPIHttpService, client, _dingDing, study.tchLists, study.school);
                     List<StudyRecord> records = new();
 
                     foreach (var member in tchList)

+ 6 - 4
TEAMModelOS/Controllers/Normal/AbilityStatisticsController.cs

@@ -18,6 +18,7 @@ using HTEXLib.COMM.Helpers;
 using TEAMModelOS.Filter;
 using static TEAMModelOS.Controllers.AbilitySubController;
 using Microsoft.AspNetCore.Authorization;
+using TEAMModelOS.SDK.Models.Service;
 
 namespace TEAMModelOS.Controllers
 {
@@ -31,12 +32,13 @@ namespace TEAMModelOS.Controllers
         private readonly AzureCosmosFactory _azureCosmos;
         private readonly DingDing _dingDing;
         private readonly Option _option;
-
-        public AbilityStatisticsController(AzureCosmosFactory azureCosmos, SnowflakeId snowflakeId, DingDing dingDing, IOptionsSnapshot<Option> option)
+        private readonly CoreAPIHttpService _coreAPIHttpService;
+        public AbilityStatisticsController(CoreAPIHttpService coreAPIHttpService, AzureCosmosFactory azureCosmos, SnowflakeId snowflakeId, DingDing dingDing, IOptionsSnapshot<Option> option)
         {
             _azureCosmos = azureCosmos;
             _dingDing = dingDing;
             _option = option?.Value;
+            _coreAPIHttpService=coreAPIHttpService;
         }
         /// <summary>
         /// 更新教师最终学习分数。
@@ -207,7 +209,7 @@ namespace TEAMModelOS.Controllers
                     }
                     schoolInfos.Add(new SchoolInfos { schoolId = school.id, schoolName = school.name, picture = school.picture, teacherCount = count, appraiseCount = appraise });
                     //增加评审人员总人数,学习总人数。
-                    trains.Add(StatisticsService.StatisticsSchool(school.id, setting, area, client, _dingDing, null));
+                    trains.Add(StatisticsService.StatisticsSchool(_coreAPIHttpService, school.id, setting, area, client, _dingDing, null));
                 }
                 int pagesize = 100;
                 if (trains.Count <= pagesize)
@@ -356,7 +358,7 @@ namespace TEAMModelOS.Controllers
                     count += 1;
                 }
                 //增加评审人员总人数,学习总人数。
-                (List<TeacherTrain> teacherTrains, List<RGroupList> yxtrain) = await StatisticsService.StatisticsSchool(school, setting, area, client, _dingDing, update);
+                (List<TeacherTrain> teacherTrains, List<RGroupList> yxtrain) = await StatisticsService.StatisticsSchool(_coreAPIHttpService, school, setting, area, client, _dingDing, update);
                 teacherTrains.ForEach(x => {
                     x.currency.videoTime = (int)x.currency.videoTime;
                     x.currency.teacherAilities.ForEach(y => {

+ 6 - 4
TEAMModelOS/Controllers/Normal/AbilitySubController.cs

@@ -39,8 +39,9 @@ namespace TEAMModelOS.Controllers
         private readonly HttpTrigger _httpTrigger;
         private readonly AzureServiceBusFactory _serviceBus;
         private readonly AzureStorageFactory _azureStorage;
-       public IConfiguration _configuration { get; set; }
-        public AbilitySubController(AzureStorageFactory azureStorage,AzureCosmosFactory azureCosmos, SnowflakeId snowflakeId, DingDing dingDing, IOptionsSnapshot<Option> option, ThirdApisService thirdApisService, HttpTrigger httpTrigge, AzureServiceBusFactory serviceBus, IConfiguration configuration)
+        private readonly CoreAPIHttpService _coreAPIHttpService;
+        public IConfiguration _configuration { get; set; }
+        public AbilitySubController(CoreAPIHttpService coreAPIHttpService, AzureStorageFactory azureStorage,AzureCosmosFactory azureCosmos, SnowflakeId snowflakeId, DingDing dingDing, IOptionsSnapshot<Option> option, ThirdApisService thirdApisService, HttpTrigger httpTrigge, AzureServiceBusFactory serviceBus, IConfiguration configuration)
         {
             _azureCosmos = azureCosmos;
             _snowflakeId = snowflakeId;
@@ -51,6 +52,7 @@ namespace TEAMModelOS.Controllers
             _serviceBus = serviceBus;
             _configuration = configuration;
             _azureStorage = azureStorage;
+            _coreAPIHttpService = coreAPIHttpService;
         }
        
         /// <summary>
@@ -1059,7 +1061,7 @@ namespace TEAMModelOS.Controllers
             var client = _azureCosmos.GetCosmosClient();
             if (!request.TryGetProperty("tmdid", out JsonElement _tmdid)) return Ok(new { error = 400 });
             if (!request.TryGetProperty("abilityId", out JsonElement _abilityId)) return Ok(new { error = 400 });
-            List<RGroupList> yxtrain= await  GroupListService.GetGroupListMemberByType(client, "yxtrain", new List<string> { "school" }, $"{_school}",_dingDing);
+            List<RGroupList> yxtrain= await  GroupListService.GetGroupListMemberByType(_coreAPIHttpService, client, "yxtrain", new List<string> { "school" }, $"{_school}",_dingDing);
             List<dynamic> abilitySubs = new List<dynamic>();
             if (yxtrain.IsNotEmpty()) {
                 var members = yxtrain.SelectMany(m => m.members).ToList();
@@ -1141,7 +1143,7 @@ namespace TEAMModelOS.Controllers
                 {
                     ids.Add("default");
                 }
-                (List<RMember> tmdInfos, List<RGroupList> classInfos) = await GroupListService.GetStutmdidListids(client, _dingDing, ids, $"{_school}");
+                (List<RMember> tmdInfos, List<RGroupList> classInfos) = await GroupListService.GetStutmdidListids(_coreAPIHttpService, client, _dingDing, ids, $"{_school}");
                 List<GroupMember> teachers = new List<GroupMember>();
                 foreach (var classInfo in classInfos)
                 {

+ 5 - 4
TEAMModelOS/Controllers/Teacher/ClassVideoController.cs

@@ -33,8 +33,9 @@ namespace TEAMModelOS.Controllers
         private readonly DingDing _dingDing;
         private readonly Option _option;
         private readonly AzureServiceBusFactory _serviceBus;
+        private readonly CoreAPIHttpService _coreAPIHttpService;
         public IConfiguration _configuration { get; set; }
-        public ClassVideoController(AzureCosmosFactory azureCosmos, SnowflakeId snowflakeId, DingDing dingDing, IOptionsSnapshot<Option> option, AzureServiceBusFactory serviceBus, IConfiguration configuration)
+        public ClassVideoController(CoreAPIHttpService coreAPIHttpService, AzureCosmosFactory azureCosmos, SnowflakeId snowflakeId, DingDing dingDing, IOptionsSnapshot<Option> option, AzureServiceBusFactory serviceBus, IConfiguration configuration)
         {
             _azureCosmos = azureCosmos;
             _snowflakeId = snowflakeId;
@@ -42,7 +43,7 @@ namespace TEAMModelOS.Controllers
             _option = option?.Value; 
             _serviceBus = serviceBus;
             _configuration = configuration;
-      
+            _coreAPIHttpService = coreAPIHttpService;
         }
 
         /// <summary>
@@ -80,7 +81,7 @@ namespace TEAMModelOS.Controllers
                 {
                     ids.Add("default");
                 }
-                (List<RMember> tmdInfos, List<RGroupList> classInfos) = await GroupListService.GetStutmdidListids(client, _dingDing, ids, $"{_school}");
+                (List<RMember> tmdInfos, List<RGroupList> classInfos) = await GroupListService.GetStutmdidListids(_coreAPIHttpService, client, _dingDing, ids, $"{_school}");
                 if (classInfos.IsNotEmpty())
                 {
                     List<dynamic> groupMembers = new List<dynamic>();
@@ -163,7 +164,7 @@ namespace TEAMModelOS.Controllers
                 if (!ids.IsNotEmpty()) {
                     ids.Add("default");
                 }
-                (List<RMember> tmdInfos, List<RGroupList> classInfos) = await GroupListService.GetStutmdidListids(client, _dingDing, ids, $"{_school}");
+                (List<RMember> tmdInfos, List<RGroupList> classInfos) = await GroupListService.GetStutmdidListids(_coreAPIHttpService, client, _dingDing, ids, $"{_school}");
                 List<dynamic> classVideos = new();
                 string code = $"ClassVideo-{_school}";
                 foreach (var listInfo in classInfos) {

+ 1 - 1
TEAMModelOS/Controllers/Teacher/InitController.cs

@@ -67,7 +67,7 @@ namespace TEAMModelOS.Controllers
         /// <returns></returns>
         [ProducesDefaultResponseType]
         [HttpPost("GetUserInfo")]
-        [Authorize(Roles = "IES")]
+        //[Authorize(Roles = "IES")]
         public async Task<IActionResult> GetUserInfo(JsonElement request) {
             if (!request.TryGetProperty("key", out JsonElement key)) return BadRequest();