CrazyIter_Bin 2 yıl önce
ebeveyn
işleme
72041d4ae5

+ 2 - 2
TEAMModelOS.SDK/Models/Service/Common/ActivityStudentService.cs

@@ -560,10 +560,10 @@ namespace TEAMModelOS.SDK.Services
 
 
             try
             try
             {
             {
-                //1.再次检查投票
+                //1.再次检查问卷
                 var client = _azureCosmos.GetCosmosClient();
                 var client = _azureCosmos.GetCosmosClient();
                 Survey survey = null;
                 Survey survey = null;
-                ///TODO 检查是否在投票范围内,包括在tmdids 及班级  但是需要处理认证金钥中的班级问题
+                ///TODO 检查是否在问卷范围内,包括在tmdids 及班级  但是需要处理认证金钥中的班级问题
                 await foreach (var item in client.GetContainer(Constant.TEAMModelOS, "Common").GetItemQueryIterator<Survey>(queryText: $"select c.id,c.owner,c.scope, c.code ,c.creatorId,c.answers ,c.school , c.progress,c.times,c.startTime,c.endTime from c where c.id = '{id}'",
                 await foreach (var item in client.GetContainer(Constant.TEAMModelOS, "Common").GetItemQueryIterator<Survey>(queryText: $"select c.id,c.owner,c.scope, c.code ,c.creatorId,c.answers ,c.school , c.progress,c.times,c.startTime,c.endTime from c where c.id = '{id}'",
                     requestOptions: new QueryRequestOptions() { PartitionKey = new PartitionKey($"{code}") }))
                     requestOptions: new QueryRequestOptions() { PartitionKey = new PartitionKey($"{code}") }))
                 {
                 {

+ 6 - 42
TEAMModelOS.SDK/Models/Service/Common/TeacherService.cs

@@ -30,12 +30,11 @@ namespace TEAMModelOS.Services
     public static class TeacherService
     public static class TeacherService
     {
     {
         public static async Task<TeacherInfo> TeacherInfo(AzureCosmosFactory _azureCosmos, Teacher teacher, string name, string picture, string id,
         public static async Task<TeacherInfo> TeacherInfo(AzureCosmosFactory _azureCosmos, Teacher teacher, string name, string picture, string id,
-            AzureStorageFactory _azureStorage, Option _option,AzureRedisFactory _azureRedis,string ip, HttpTrigger _httpTrigger,string lang )
+            AzureStorageFactory _azureStorage, Option _option, AzureRedisFactory _azureRedis, string ip, HttpTrigger _httpTrigger, string lang)
         {
         {
             List<object> schools = new List<object>();
             List<object> schools = new List<object>();
             List<AreaDto> areas = new List<AreaDto>();
             List<AreaDto> areas = new List<AreaDto>();
             string defaultschool = null;
             string defaultschool = null;
-            string defaultschoolPeriod = null;
             //TODO 取得Teacher 個人相關數據(課程清單、虛擬教室清單、歷史紀錄清單等),學校數據另外API處理,多校切換時不同
             //TODO 取得Teacher 個人相關數據(課程清單、虛擬教室清單、歷史紀錄清單等),學校數據另外API處理,多校切換時不同
             var client = _azureCosmos.GetCosmosClient();
             var client = _azureCosmos.GetCosmosClient();
             int total = 0;
             int total = 0;
@@ -47,7 +46,8 @@ namespace TEAMModelOS.Services
                 if (teacher == null)
                 if (teacher == null)
                 {
                 {
                     teacher = await client.GetContainer(Constant.TEAMModelOS, "Teacher").ReadItemAsync<Teacher>(id, new PartitionKey("Base"));
                     teacher = await client.GetContainer(Constant.TEAMModelOS, "Teacher").ReadItemAsync<Teacher>(id, new PartitionKey("Base"));
-                    if (!string.IsNullOrWhiteSpace(lang) &&  string.IsNullOrWhiteSpace(teacher.lang)) {
+                    if (!string.IsNullOrWhiteSpace(lang) && string.IsNullOrWhiteSpace(teacher.lang))
+                    {
                         teacher.lang = lang;
                         teacher.lang = lang;
                     }
                     }
                     teacher.name = $"{name}";
                     teacher.name = $"{name}";
@@ -116,7 +116,6 @@ namespace TEAMModelOS.Services
                     }
                     }
                 }
                 }
                 //检查是否有加入学校,如果加入学校,则当个人空间size是0G的时候,则免费获得一个G空间,但无论加入多少个学校,只能获取一次 1G的免费空间。没有加入学校则默认0G空间,除非自己购买空间
                 //检查是否有加入学校,如果加入学校,则当个人空间size是0G的时候,则免费获得一个G空间,但无论加入多少个学校,只能获取一次 1G的免费空间。没有加入学校则默认0G空间,除非自己购买空间
-                List<SchoolTeacher> schoolTeachers= new List<SchoolTeacher>();
                 if (teacher.schools.IsNotEmpty())
                 if (teacher.schools.IsNotEmpty())
                 {
                 {
                     foreach (var sc in teacher.schools)
                     foreach (var sc in teacher.schools)
@@ -131,7 +130,6 @@ namespace TEAMModelOS.Services
                             schoolExtobj.time = sc.time;
                             schoolExtobj.time = sc.time;
                             schoolExtobj.picture = sc.picture;
                             schoolExtobj.picture = sc.picture;
                             schoolExtobj.areaId = $"{sc.areaId}";
                             schoolExtobj.areaId = $"{sc.areaId}";
-
                             Area area = null;
                             Area area = null;
                             int access = 0;
                             int access = 0;
                             if (!string.IsNullOrEmpty($"{sc.areaId}"))
                             if (!string.IsNullOrEmpty($"{sc.areaId}"))
@@ -160,24 +158,6 @@ namespace TEAMModelOS.Services
                             {
                             {
                                 var jsonDoc = await JsonDocument.ParseAsync(sctch.ContentStream);
                                 var jsonDoc = await JsonDocument.ParseAsync(sctch.ContentStream);
                                 SchoolTeacher schoolTeacher = jsonDoc.RootElement.ToObject<SchoolTeacher>();
                                 SchoolTeacher schoolTeacher = jsonDoc.RootElement.ToObject<SchoolTeacher>();
-                                if (!string.IsNullOrWhiteSpace(schoolTeacher.periodId))
-                                {
-                                    schoolExtobj.periodId = schoolTeacher.periodId;
-                                }
-                                else
-                                {
-                                    var schoolbase = await client.GetContainer(Constant.TEAMModelOS, "School").ReadItemStreamAsync(sc.schoolId, new PartitionKey($"Base"));
-                                    if (schoolbase.Status == 200) {
-                                        var schoolJsonDoc = await JsonDocument.ParseAsync(schoolbase.ContentStream);
-                                        School schoolBase = schoolJsonDoc.RootElement.ToObject<School>();
-                                        if (schoolBase.period.IsNotEmpty()) {
-                                            schoolExtobj.periodId = schoolBase.period[0].id;
-                                            schoolTeacher.periodId = schoolBase.period[0].id;
-                                            await client.GetContainer(Constant.TEAMModelOS, "School").ReplaceItemAsync(schoolTeacher, id, new PartitionKey($"Teacher-{sc.schoolId}"));
-                                        }
-                                    }
-                                }
-                               
                                 if (schoolTeacher.name == null || schoolTeacher.picture == null || !schoolTeacher.name.Equals($"{name}") || !schoolTeacher.picture.Equals($"{picture}"))
                                 if (schoolTeacher.name == null || schoolTeacher.picture == null || !schoolTeacher.name.Equals($"{name}") || !schoolTeacher.picture.Equals($"{picture}"))
                                 {
                                 {
                                     schoolTeacher.name = $"{name}";
                                     schoolTeacher.name = $"{name}";
@@ -190,7 +170,6 @@ namespace TEAMModelOS.Services
                                     schoolExtobj.size = _size.GetInt32();
                                     schoolExtobj.size = _size.GetInt32();
                                 }
                                 }
                                 else { schoolExtobj.size = 0; }
                                 else { schoolExtobj.size = 0; }
-                                schoolTeachers.Add(schoolTeacher);
                             }
                             }
                             else
                             else
                             {
                             {
@@ -245,20 +224,6 @@ namespace TEAMModelOS.Services
                         teacher.defaultSchool = null;
                         teacher.defaultSchool = null;
                     }
                     }
                 }
                 }
-                var sctecher= schoolTeachers.Find(z => z.id.Equals(teacher.id) && z.code.Equals($"Teacher-{teacher.defaultSchool}"));
-                if (sctecher != null)
-                {
-                    defaultschoolPeriod = sctecher.periodId;
-                }
-                else {
-                    var sctch = await client.GetContainer(Constant.TEAMModelOS, "School").ReadItemStreamAsync(id, new PartitionKey($"Teacher-{teacher.defaultSchool}"));
-                    if (sctch.Status == 200 && sctch != null && sctch.ContentStream != null) {
-                        var jsonDoc = await JsonDocument.ParseAsync(sctch.ContentStream);
-                        SchoolTeacher schoolTeacher = jsonDoc.RootElement.ToObject<SchoolTeacher>();
-                        defaultschoolPeriod = schoolTeacher.periodId;
-                    }
-                }
-                teacher.defaultschoolPeriod= defaultschoolPeriod;   
                 await client.GetContainer(Constant.TEAMModelOS, "Teacher").ReplaceItemAsync<Teacher>(teacher, id, new PartitionKey("Base"));
                 await client.GetContainer(Constant.TEAMModelOS, "Teacher").ReplaceItemAsync<Teacher>(teacher, id, new PartitionKey("Base"));
                 //預設學校ID
                 //預設學校ID
                 defaultschool = teacher.defaultSchool;
                 defaultschool = teacher.defaultSchool;
@@ -321,11 +286,11 @@ namespace TEAMModelOS.Services
             //用户在线记录
             //用户在线记录
             try
             try
             {
             {
-                _ = _httpTrigger.RequestHttpTrigger(new { school = defaultschool, scope = $"{Constant.ScopeTeacher}", id=$"{id}", ip=$"{ip}", expire=1 }, _option.Location, "online-record");
+                _ = _httpTrigger.RequestHttpTrigger(new { school = defaultschool, scope = $"{Constant.ScopeTeacher}", id = $"{id}", ip = $"{ip}", expire = 1 }, _option.Location, "online-record");
             }
             }
             catch { }
             catch { }
 
 
-           
+
             //取得Teacher Blob 容器位置及SAS 
             //取得Teacher Blob 容器位置及SAS 
             await _azureStorage.GetBlobContainerClient(id).CreateIfNotExistsAsync(PublicAccessType.None); //嘗試創建Teacher私有容器,如存在則不做任何事,保障容器一定存在
             await _azureStorage.GetBlobContainerClient(id).CreateIfNotExistsAsync(PublicAccessType.None); //嘗試創建Teacher私有容器,如存在則不做任何事,保障容器一定存在
             var (blob_uri, blob_sas) = _azureStorage.GetBlobContainerSAS(id, BlobContainerSasPermissions.Write | BlobContainerSasPermissions.Read | BlobContainerSasPermissions.List | BlobContainerSasPermissions.Delete);
             var (blob_uri, blob_sas) = _azureStorage.GetBlobContainerSAS(id, BlobContainerSasPermissions.Write | BlobContainerSasPermissions.Read | BlobContainerSasPermissions.List | BlobContainerSasPermissions.Delete);
@@ -337,7 +302,6 @@ namespace TEAMModelOS.Services
                 blob_sas = blob_sas,
                 blob_sas = blob_sas,
                 schools = schools,
                 schools = schools,
                 defaultschool = defaultschool,
                 defaultschool = defaultschool,
-                defaultschoolPeriod=defaultschoolPeriod,
                 courses = courses,
                 courses = courses,
                 total = total,
                 total = total,
                 osblob_sas = osblob_sas,
                 osblob_sas = osblob_sas,
@@ -348,7 +312,7 @@ namespace TEAMModelOS.Services
             };
             };
         }
         }
 
 
-       }
+    }
     public record AreaDto
     public record AreaDto
     {
     {
         //areaId = area.id, name = area.name, area.standard, area.standardName
         //areaId = area.id, name = area.name, area.standard, area.standardName

+ 2 - 2
TEAMModelOS.SDK/Models/Service/Third/ThirdService.cs

@@ -444,12 +444,12 @@ namespace TEAMModelOS.SDK.Models
             int t53113OK = 1;
             int t53113OK = 1;
             List<AbilitySub> allRightAbility = new List<AbilitySub>();
             List<AbilitySub> allRightAbility = new List<AbilitySub>();
             List<AbilitySub> abilitySubs = new List<AbilitySub>();
             List<AbilitySub> abilitySubs = new List<AbilitySub>();
-            if (teacherTrain.currency.videoTime < 0)
+            if (teacherTrain.currency.videoTime <= 0)
             {
             {
                 msgs.Add(new CodeValue("videoTime", $"视频学习时长:{teacherTrain.currency.videoTime}"));
                 msgs.Add(new CodeValue("videoTime", $"视频学习时长:{teacherTrain.currency.videoTime}"));
                 t53113OK = 0;
                 t53113OK = 0;
             }
             }
-            if (teacherTrain.currency.submitTime < 0)
+            if (teacherTrain.currency.submitTime <= 0)
             {
             {
                 msgs.Add(new CodeValue("submitTime", $"认证材料学习:{teacherTrain.currency.submitTime}"));
                 msgs.Add(new CodeValue("submitTime", $"认证材料学习:{teacherTrain.currency.submitTime}"));
                 t53113OK = 0;
                 t53113OK = 0;

+ 25 - 15
TEAMModelOS/Controllers/Third/Sc/ScDataPushController.cs

@@ -23,6 +23,7 @@ using System.IO;
 using Microsoft.AspNetCore.Authorization;
 using Microsoft.AspNetCore.Authorization;
 using TEAMModelOS.Filter;
 using TEAMModelOS.Filter;
 using System.Net.Http;
 using System.Net.Http;
+using System;
 
 
 namespace TEAMModelOS.Controllers
 namespace TEAMModelOS.Controllers
 {
 {
@@ -303,6 +304,7 @@ namespace TEAMModelOS.Controllers
                 await foreach (var item in _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, "School").GetItemQueryIterator<GroupList>(queryText: queryText.ToString(),
                 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}") }))
                 requestOptions: new QueryRequestOptions() { PartitionKey = new Azure.Cosmos.PartitionKey($"GroupList-{school}") }))
                 {
                 {
+                  
                     yxtrain.Add(item);
                     yxtrain.Add(item);
                 }
                 }
                 List<TeacherTrain> trains = new List<TeacherTrain>();
                 List<TeacherTrain> trains = new List<TeacherTrain>();
@@ -319,15 +321,19 @@ namespace TEAMModelOS.Controllers
                     await foreach (var item in _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, "Teacher").GetItemQueryIterator<TeacherTrain>(queryText: queryText.ToString(),
                     await foreach (var item in _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, "Teacher").GetItemQueryIterator<TeacherTrain>(queryText: queryText.ToString(),
                     requestOptions: new QueryRequestOptions() { PartitionKey = new Azure.Cosmos.PartitionKey($"TeacherTrain-{school}") }))
                     requestOptions: new QueryRequestOptions() { PartitionKey = new Azure.Cosmos.PartitionKey($"TeacherTrain-{school}") }))
                     {
                     {
+                       
                         trains.Add(item);
                         trains.Add(item);
                     }
                     }
                 }
                 }
-                int pages = (trains.Count + 99) / 100; //pages = (total + max -1) / max;
+
+                int pages = (trains.Count + 49) / 50; //pages = (total + max -1) / max;
                 var schoolsas = _azureStorage.GetBlobContainerSAS99Year($"{school}", Azure.Storage.Sas.BlobContainerSasPermissions.Read);
                 var schoolsas = _azureStorage.GetBlobContainerSAS99Year($"{school}", Azure.Storage.Sas.BlobContainerSasPermissions.Read);
                 HashSet<TeacherTrain> updatePush = new HashSet<TeacherTrain>();
                 HashSet<TeacherTrain> updatePush = new HashSet<TeacherTrain>();
                 for (int i = 0; i < pages; i++)
                 for (int i = 0; i < pages; i++)
                 {
                 {
                     List<TeacherTrain> lists = trains.Skip((i) * 50).Take(50).ToList();
                     List<TeacherTrain> lists = trains.Skip((i) * 50).Take(50).ToList();
+                   
+                   
                     //5.3.1.12学员培训基本情况批量回写-UpdateTeacherListSituation
                     //5.3.1.12学员培训基本情况批量回写-UpdateTeacherListSituation
                     List<TeacherTrain> trains53112OK = new List<TeacherTrain>();
                     List<TeacherTrain> trains53112OK = new List<TeacherTrain>();
                     Dictionary<string, object> parameterContent53112 = new Dictionary<string, object>();
                     Dictionary<string, object> parameterContent53112 = new Dictionary<string, object>();
@@ -365,25 +371,29 @@ namespace TEAMModelOS.Controllers
                     //推送数据
                     //推送数据
                 }
                 }
                 pushDatas.Keys.ToList().ForEach(x => {
                 pushDatas.Keys.ToList().ForEach(x => {
-                    if (pushDatas[x].Keys.Any())
-                    {
-                        Dictionary<string, dynamic> dict = new Dictionary<string, dynamic>();
-                        dict.Add($"tmdid", x);
+                   
+                    if (!string.IsNullOrWhiteSpace(x)&&  pushDatas.ContainsKey(x)) {
+                        if (pushDatas[x].Keys.Any())
+                        {
+                            Dictionary<string, dynamic> dict = new Dictionary<string, dynamic>();
+                            dict.Add($"tmdid", x);
 
 
-                        List<string> types = new List<string>();
-                        pushDatas[x].Keys.ToList().ForEach(y => {
-                            if (y.Contains("fail-"))
+                            List<string> types = new List<string>();
+                            pushDatas[x].Keys.ToList().ForEach(y => {
+                                if (y.Contains("fail-"))
+                                {
+                                    types.Add(y);
+                                }
+                            });
+                            dict.Add($"msg", pushDatas[x][pushDatas[x].Keys.First()]);
+                            dict.Add($"types", types);
+                            if (types.Any())
                             {
                             {
-                                types.Add(y);
+                                checkDatas[x] = dict;
                             }
                             }
-                        });
-                        dict.Add($"msg", pushDatas[x][pushDatas[x].Keys.First()]);
-                        dict.Add($"types", types);
-                        if (types.Any())
-                        {
-                            checkDatas[x] = dict;
                         }
                         }
                     }
                     }
+                    
                 });
                 });
             }
             }
             List<PushFail> fails = new List<PushFail>();
             List<PushFail> fails = new List<PushFail>();

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

@@ -2762,6 +2762,10 @@ namespace TEAMModelOS.Controllers
             {
             {
                 tmdidSchooCode.Add(item);
                 tmdidSchooCode.Add(item);
             }
             }
+            if (json.TryGetProperty("pushTeachers", out JsonElement pushTeachers)) {
+                List<string> teachers = pushTeachers.ToObject<List<string>>();
+                tmdidSchooCode  =  tmdidSchooCode.FindAll(z => teachers.Contains(z.id));
+            }
             var group = tmdidSchooCode.GroupBy(idcode => idcode.code).ToList();
             var group = tmdidSchooCode.GroupBy(idcode => idcode.code).ToList();
             List<Task<List<dynamic>>> dynamicsTask = new List<Task<List<dynamic>>>();
             List<Task<List<dynamic>>> dynamicsTask = new List<Task<List<dynamic>>>();