浏览代码

Merge branch 'develop5.0-tmd' of http://52.130.252.100:10000/TEAMMODEL/TEAMModelOS into develop5.0-tmd

liqk 3 年之前
父节点
当前提交
ff959c15f5

+ 20 - 3
TEAMModelFunction/ScsApisHttpTrigger.cs

@@ -19,7 +19,7 @@ using System.Linq;
 using TEAMModelOS.Services.Common;
 using TEAMModelOS.SDK.Models.Service;
 using HTEXLib.COMM.Helpers;
-
+using System.Text;
 
 namespace TEAMModelFunction
 {
@@ -54,11 +54,28 @@ namespace TEAMModelFunction
             JsonElement accessConfig = data.ToObject<JsonElement>().GetProperty("accessConfig");
             ScAccessConfig config = $"{accessConfig}".ToObject<ScAccessConfig>();
             JsonElement school = data.ToObject<JsonElement>().GetProperty("school");
-            List<RGroupList> yxtrain = await GroupListService.GetGroupListMemberByType(client, "yxtrain", new List<string> { "school" }, $"{school}", _dingDing);
+            StringBuilder queryText = new StringBuilder($"SELECT distinct value(c) FROM c where c.type='yxtrain'");
+            List<GroupList> yxtrain = new List<GroupList>();
+            await foreach (var item in _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, "School").GetItemQueryIterator<GroupList>(queryText: queryText.ToString(),
+            requestOptions: new QueryRequestOptions() { PartitionKey = new Azure.Cosmos.PartitionKey($"GroupList-{school}") }))
+            {
+                yxtrain.Add(item);
+            }
             List<TeacherTrain> trains = new List<TeacherTrain>();
             var members = yxtrain.SelectMany(x => x.members).ToList();
+            await foreach (var item in _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, "School").GetItemQueryIterator<GroupList>(queryText: queryText.ToString(),
+            requestOptions: new QueryRequestOptions() { PartitionKey = new Azure.Cosmos.PartitionKey($"GroupList-{school}") }))
+            {
+                yxtrain.Add(item);
+            }
+            string sql = $" SELECT value(c) FROM c where ARRAY_LENGTH(c.binds)>0 ";
 
-
+            List<Teacher> teachers = new List<Teacher>();
+            await foreach (var item in _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, "Teacher").GetItemQueryIterator<Teacher>(queryText: sql,
+                requestOptions: new QueryRequestOptions() { PartitionKey = new PartitionKey($"Base") }))
+            {
+                teachers.Add(item);
+            }
             //5.3.1.12学员培训基本情况批量回写-UpdateTeacherListSituation
             //5.3.1.13学员能力点测评结果批量回写-UpdateTeacherListDiagnosis
             //5.3.1.17学员课堂实录批量回写-UploadKTSLList

+ 55 - 3
TEAMModelOS/Controllers/Third/ScController.cs

@@ -172,6 +172,7 @@ namespace TEAMModelOS.Controllers.Third
                     {
                         if (!string.IsNullOrEmpty(school.schoolId)  )
                         {
+                             
                             if (school.status.Equals("join")) {
                                 List<GroupList> yxtrain = groupLists.FindAll(x=>x.code.Equals($"GroupList-{school.schoolId}"));
                                 if (yxtrain.IsNotEmpty())
@@ -222,6 +223,23 @@ namespace TEAMModelOS.Controllers.Third
                                 };
                                 await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, "School").CreateItemAsync(teacher.id, new PartitionKey($"Teacher-{school.schoolId}"));
                             }
+                            else {
+                                JsonDocument document = await JsonDocument.ParseAsync(response.ContentStream);
+                                SchoolTeacher schoolTeacher = document.RootElement.ToObject<SchoolTeacher>();
+                                schoolTeacher.status =school.status;
+                                schoolTeacher.pk = "Teacher";
+                                schoolTeacher.name = teacher.name;
+                                schoolTeacher.picture = teacher.picture;
+                                if (schoolTeacher.roles.IsEmpty() || !schoolTeacher.roles.Contains("teacher"))
+                                {
+                                    schoolTeacher.roles = new List<string> { "teacher" };
+                                }
+                                schoolTeacher.permissions = schoolTeacher.permissions.IsNotEmpty() ? schoolTeacher.permissions : new List<string>();
+                               
+                                schoolTeacher.createTime = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds();
+                                schoolTeacher.ttl = -1;
+                                await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, "School").ReplaceItemAsync(schoolTeacher, schoolTeacher.id, new PartitionKey($"Teacher-{school.schoolId}"));
+                            }
                         }
                     }
                 }
@@ -313,6 +331,7 @@ namespace TEAMModelOS.Controllers.Third
                                 {
                                     foreach (var school in teacher.schools)
                                     {
+                                        
                                         if (!string.IsNullOrEmpty(school.schoolId))
                                         {
                                             if (school.status.Equals("join")) {
@@ -369,7 +388,23 @@ namespace TEAMModelOS.Controllers.Third
                                                     createTime = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds(),
                                                     ttl = -1
                                                 };
-                                                await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, "School").CreateItemAsync(teacher.id, new PartitionKey($"Teacher-{school.schoolId}"));
+                                                await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, "School").CreateItemAsync(schoolTeacher, new PartitionKey($"Teacher-{school.schoolId}"));
+                                            }
+                                            else {
+                                                JsonDocument document = await JsonDocument.ParseAsync(response.ContentStream);
+                                                SchoolTeacher schoolTeacher = document.RootElement.ToObject<SchoolTeacher>();
+                                                schoolTeacher.status = school.status;
+                                                schoolTeacher.pk = "Teacher";
+                                                schoolTeacher.name = teacher.name;
+                                                schoolTeacher.picture = teacher.picture;
+                                                if (schoolTeacher.roles.IsEmpty() || !schoolTeacher.roles.Contains("teacher"))
+                                                {
+                                                    schoolTeacher.roles = new List<string> { "teacher" };
+                                                }
+                                                schoolTeacher.permissions = schoolTeacher.permissions.IsNotEmpty() ? schoolTeacher.permissions : new List<string>();
+                                                schoolTeacher.createTime = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds();
+                                                schoolTeacher.ttl = -1;
+                                                await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, "School").ReplaceItemAsync(schoolTeacher, schoolTeacher.id, new PartitionKey($"Teacher-{school.schoolId}"));
                                             }
                                         }
                                     }
@@ -601,6 +636,7 @@ namespace TEAMModelOS.Controllers.Third
                             bind.account = Account;
                             if (teacher.schools.IsNotEmpty()) {
                                 foreach (var school in teacher.schools) {
+                                  
                                     if (!string.IsNullOrEmpty(school.schoolId) ) {
                                         if (school.status.Equals("join")) {
                                             StringBuilder queryText = new StringBuilder($"SELECT distinct value(c) FROM c where c.type='yxtrain'");
@@ -651,11 +687,27 @@ namespace TEAMModelOS.Controllers.Third
                                                 size=0,
                                                 roles=new List<string> { "teacher" },
                                                 permissions= new List<string>(),
-                                                status="join",
+                                                status=school.status,
                                                 createTime=DateTimeOffset.UtcNow.ToUnixTimeMilliseconds(),
                                                 ttl=-1
                                             };
-                                            await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, "School").CreateItemAsync(teacher.id, new PartitionKey($"Teacher-{school.schoolId}"));
+                                            await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, "School").CreateItemAsync(schoolTeacher, new PartitionKey($"Teacher-{school.schoolId}"));
+                                        }
+                                        else
+                                        {
+                                            JsonDocument document = await JsonDocument.ParseAsync(response.ContentStream);
+                                            SchoolTeacher schoolTeacher = document.RootElement.ToObject<SchoolTeacher>();
+                                            schoolTeacher.status =school.status;
+                                            schoolTeacher.pk = "Teacher";
+                                            schoolTeacher.name = teacher.name;
+                                            schoolTeacher.picture = teacher.picture;
+                                            if (schoolTeacher.roles.IsEmpty() ||! schoolTeacher.roles.Contains("teacher")) {
+                                                schoolTeacher.roles = new List<string> { "teacher" };
+                                            }
+                                            schoolTeacher.permissions = schoolTeacher.permissions.IsNotEmpty()? schoolTeacher.permissions: new List<string>();
+                                            schoolTeacher.createTime = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds();
+                                            schoolTeacher.ttl = -1;
+                                            await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, "School").ReplaceItemAsync(schoolTeacher, schoolTeacher.id, new PartitionKey($"Teacher-{school.schoolId}"));
                                         }
                                     }
                                 }

+ 4 - 1
TEAMModelOS/Controllers/XTest/FixDataController.cs

@@ -216,7 +216,9 @@ namespace TEAMModelOS.Controllers
                             {
                                 schoolTeacher.roles.Add("teacher");
                             }
-                            schoolTeacher.permissions = new List<string>();
+                            schoolTeacher.permissions = schoolTeacher.permissions.IsNotEmpty() ? schoolTeacher.permissions: new List<string>();
+                            schoolTeacher.status = "join";
+
                         }
                         catch (CosmosException)
                         {
@@ -232,6 +234,7 @@ namespace TEAMModelOS.Controllers
                                 roles = roles,
                                 status = "join",
                                 createTime = now,
+                                permissions = new List<string>()
                             };
 
                         }

+ 3 - 3
TEAMModelOS/TEAMModelOS.csproj

@@ -40,9 +40,9 @@
     <SpaRoot>ClientApp\</SpaRoot>
     <DefaultItemExcludes>$(DefaultItemExcludes);$(SpaRoot)node_modules\**</DefaultItemExcludes>
     <UserSecretsId>078b5d89-7d90-4f6a-88fc-7d96025990a8</UserSecretsId>
-    <Version>5.2112.13</Version>
-    <AssemblyVersion>5.2112.13.3</AssemblyVersion>
-    <FileVersion>5.2112.13.3</FileVersion>
+    <Version>5.2112.14</Version>
+    <AssemblyVersion>5.2112.14.1</AssemblyVersion>
+    <FileVersion>5.2112.14.1</FileVersion>
     <Description>TEAMModelOS(IES5)版本更新。</Description>
     <PackageReleaseNotes>版本说明</PackageReleaseNotes>
   </PropertyGroup>

+ 2 - 2
TEAMModelOS/appsettings.Development.json

@@ -29,8 +29,8 @@
       //"ConnectionString": "AccountEndpoint=https://teammodelos.documents.azure.cn:443/;AccountKey=clF73GwPECfP1lKZTCvs8gLMMyCZig1HODFbhDUsarsAURO7TcOjVz6ZFfPqr1HzYrfjCXpMuVD5TlEG5bFGGg==;"
     },
     "Redis": {
-      //"ConnectionString": "52.130.252.100:6379,password=habook,ssl=false,abortConnect=False,writeBuffer=10240"
-      "ConnectionString": "CoreRedisCN.redis.cache.chinacloudapi.cn:6380,password=LyJWP1ORJdv+poXWofAF97lhCEQPg1wXWqvtzXGXQuE=,ssl=True,abortConnect=False"
+      "ConnectionString": "52.130.252.100:6379,password=habook,ssl=false,abortConnect=False,writeBuffer=10240"
+      //"ConnectionString": "CoreRedisCN.redis.cache.chinacloudapi.cn:6380,password=LyJWP1ORJdv+poXWofAF97lhCEQPg1wXWqvtzXGXQuE=,ssl=True,abortConnect=False"
     },
     "ServiceBus": {
       "ConnectionString": "Endpoint=sb://teammodelos.servicebus.chinacloudapi.cn/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=Sy4h4EQ8zP+7w/lOLi1X3tGord/7ShFHimHs1vC50Dc=",