Browse Source

结构调整以及个人班级初始化

zhouj1203@hotmail.com 4 years ago
parent
commit
d01d384b96

+ 1 - 1
TEAMModelOS.SDK/Models/Cosmos/Common/ExamClassResult.cs

@@ -11,7 +11,7 @@ namespace TEAMModelOS.SDK.Models
     public class ExamClassResult :CosmosEntity
     {
         public ExamClassResult() {
-            //paper = new PaperSimple();
+            pk = "ExamClassResult";
             studentAnswers = new List<List<List<string>>>();
             studentScores = new List<List<double>>();
             info = new ClassInfo();

+ 1 - 0
TEAMModelOS.SDK/Models/Cosmos/Common/ItemInfo.cs

@@ -15,6 +15,7 @@ namespace TEAMModelOS.SDK.Models
     {       
         public ItemInfo()
         {
+            pk = "Item";
             children = new List<ItemInfo>();
             option = new List<CodeValue>();
             answer = new List<string>();

+ 1 - 0
TEAMModelOS.SDK/Models/Cosmos/School/CourseManagement.cs

@@ -15,6 +15,7 @@ namespace TEAMModelOS.SDK.Models
     {
         public CourseManagement()
         {
+            pk = "CourseManagement";
             courses = new List<CourseSimple>();
             teacher = new Teachers();
         }

+ 1 - 2
TEAMModelOS.SDK/Models/Cosmos/School/ExamAnswer.cs

@@ -15,10 +15,9 @@ namespace TEAMModelOS.SDK.Models
     public class ExamAnswer :CosmosEntity
     {
        // [PartitionKey(name = "ExamAnswer")]
-        public string pk { get; set; }
-        public int? ttl { get; set; } 
         public ExamAnswer()
         {
+            pk = "ExamAnswer";
             answer = new List<List<string>>();
         }
        

+ 1 - 0
TEAMModelOS.SDK/Models/Cosmos/School/ExamInfo.cs

@@ -16,6 +16,7 @@ namespace TEAMModelOS.SDK.Models
     public class ExamInfo :CosmosEntity
     { 
         public ExamInfo() {
+            pk = "Exam";
             period = new PeriodSimple();
             grades = new List<Grade>();
             subjects = new List<ExamSubject>();

+ 1 - 0
TEAMModelOS.SDK/Models/Cosmos/School/ExamResult.cs

@@ -15,6 +15,7 @@ namespace TEAMModelOS.SDK.Models
     {        
         public ExamResult()
         {
+            pk = "ExamResult";
             classes = new List<ClassRange>();
             studentScores = new List<List<double>>();
             studentIds = new List<string>();

+ 1 - 0
TEAMModelOS.SDK/Models/Cosmos/School/Paper.cs

@@ -16,6 +16,7 @@ namespace TEAMModelOS.SDK.Models
     {
         public Paper()
         {
+            pk = "Paper";
             //item = new List<ItemInfo>();
             scoring = new List<MarkConfig>();
         }

+ 1 - 0
TEAMModelOS.SDK/Models/Cosmos/School/School.cs

@@ -14,6 +14,7 @@ namespace TEAMModelOS.SDK.Models
     {        
         public School()
         {
+            pk = "Base";
             timeZone = new TimeZone();
             period = new List<Period>();
         }

+ 1 - 0
TEAMModelOS.SDK/Models/Cosmos/School/Survey.cs

@@ -15,6 +15,7 @@ namespace TEAMModelOS.SDK.Models
     public class Survey : CosmosEntity
     {
         public Survey() {
+            pk = "Survey";
             questions = new List<Questions>();
             classes = new List<Classes>();
         }

+ 1 - 0
TEAMModelOS.SDK/Models/Cosmos/School/Vote.cs

@@ -16,6 +16,7 @@ namespace TEAMModelOS.SDK.Models
     {   
         public Vote()
         {
+            pk = "Vote";
             options = new List<OptionsVote>();
 
         }

+ 1 - 1
TEAMModelOS.SDK/Models/Cosmos/Teacher/TeacherCourse.cs

@@ -25,6 +25,6 @@ namespace TEAMModelOS.SDK.Models
         public string scope { get; set; }
         public string code { get; set; }
         public Teachers teacher { get; set; }
-        public List<StudentSimple> students { get; set; } = new List<StudentSimple>();
+        //public List<StudentSimple> students { get; set; } = new List<StudentSimple>();
     }
 }

+ 1 - 3
TEAMModelOS/Controllers/Exam/ExamController.cs

@@ -61,9 +61,7 @@ namespace TEAMModelOS.Controllers
                 //新增
                 //string code = request.code;
                 var client = _azureCosmos.GetCosmosClient();
-                ExamInfo exam;                
-                request.pk = "Exam";
-                request.ttl = -1;
+                ExamInfo exam;
                 string code = request.code;
                 request.code = "Exam-" + request.code;
 

+ 0 - 1
TEAMModelOS/Controllers/Exam/PaperController.cs

@@ -196,7 +196,6 @@ namespace TEAMModelOS.Controllers
             if (!request.TryGetProperty("option", out JsonElement option)) return BadRequest();
             Paper paper;
             paper = papers.ToObject<Paper>();            
-            paper.pk = "Paper";
             paper.createTime = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds();
             if (option.ToString().Equals("insert"))
             {               

+ 0 - 1
TEAMModelOS/Controllers/School/ClassRoomController.cs

@@ -45,7 +45,6 @@ namespace TEAMModelOS.Controllers
             try {
                 classroom = room.ToObject<Class>();
                 var client = _azureCosmos.GetCosmosClient();                
-                classroom.pk = "Class";
                 classroom.code = "Class-" + school_code.ToString();
                 //students = await _azureCosmos.FindByDict<Student>(new Dictionary<string, object>() { { "classroomCode", classroom.id } });
                 if (option.ToString().Equals("insert"))

+ 16 - 2
TEAMModelOS/Controllers/School/CourseController.cs

@@ -414,9 +414,8 @@ namespace TEAMModelOS.Controllers
                 CourseManagement course = new CourseManagement();
                 //course = room.ToObject<CourseManagement>();
                 var client = _azureCosmos.GetCosmosClient();                
-                requert.pk = typeof(CourseManagement).Name;
                 string code = requert.code;
-                requert.code = typeof(CourseManagement).Name + "-" + requert.code;
+                requert.code = "CourseManagement-" + requert.code;
                 /*                if (requert.scope.Equals) { 
 
                                 }*/
@@ -683,6 +682,21 @@ namespace TEAMModelOS.Controllers
                 }
                 else
                 {
+                    if (course.classes.Count > 0) {
+                        foreach (ClassSimple classSimple in course.classes) {
+                            if (classSimple.scope.Equals("private",StringComparison.OrdinalIgnoreCase)) {
+                                Class cla = new Class();
+                                cla.id = classSimple.id;
+                                cla.code = cla.pk + "-" + code;
+                                cla.name = classSimple.name;
+                                cla.scope = classSimple.scope;
+                                cla.teacher.id = classSimple.teacher.id;
+                                cla.teacher.name = classSimple.teacher.name;
+
+                                await _azureCosmos.GetCosmosClient().GetContainer("TEAMModelOS", "Teacher").UpsertItemAsync(cla, new PartitionKey($"Class-{code}"));
+                            }                          
+                        }
+                    }
                     course = await _azureCosmos.GetCosmosClient().GetContainer("TEAMModelOS", "Teacher").ReplaceItemAsync(course,course.id, new PartitionKey($"Course-{code}"));
                 }
                 return Ok(new { course });

+ 0 - 1
TEAMModelOS/Controllers/School/SchoolController.cs

@@ -51,7 +51,6 @@ namespace TEAMModelOS.Controllers
             {
                 School schoolInfo = new School();
                 var client = _azureCosmos.GetCosmosClient();                
-                requert.pk = typeof(School).Name;
                 var response = await client.GetContainer("TEAMModelOS", "School").ReadItemStreamAsync(requert.id, new PartitionKey($"Base"));
                 if (response.Status == 200)
                 {

+ 0 - 2
TEAMModelOS/Controllers/Syllabus/ItemInfoController.cs

@@ -79,8 +79,6 @@ namespace TEAMModelOS.Controllers
             try {
                 ItemInfo itemInfo;
                 itemInfo = item.ToObject<ItemInfo>();                
-                itemInfo.pk = "Item";
-
                 if (option.ToString().Equals("insert"))
                 {
                     itemInfo.createTime = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds();

+ 12 - 13
TEAMModelOS/Controllers/Task/SurveyController.cs

@@ -46,17 +46,16 @@ namespace TEAMModelOS.Controllers
         /// <returns></returns>
         [ProducesDefaultResponseType]
         [HttpPost("upsert")]
-        public async Task<IActionResult> Upsert(SurveyDto request)
+        public async Task<IActionResult> Upsert(Survey request)
         {
             //ResponseBuilder builder = ResponseBuilder.custom();
             //新增
             //string code = request.survey.code;
             var client = _azureCosmos.GetCosmosClient();
             Survey survey;            
-            request.survey.pk = typeof(Survey).Name;
-            request.survey.school = request.survey.code;
-            request.survey.code = typeof(Survey).Name + "-" + request.survey.code;
-            request.survey.createTime = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds();
+            request.school = request.code;
+            request.code =  "Survey-" + request.code;
+            request.createTime = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds();
             /*if (request.survey.publishModel.Equals("0"))
             {
                 //request.survey.startTime = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds();
@@ -70,15 +69,15 @@ namespace TEAMModelOS.Controllers
                 request.survey.sequenceNumber = SequenceNumber;
 
             }*/
-            if (string.IsNullOrEmpty(request.survey.id))
+            if (string.IsNullOrEmpty(request.id))
             {
-                request.survey.id = Guid.NewGuid().ToString();
+                request.id = Guid.NewGuid().ToString();
                 //request.survey.status = 100;
-                request.survey.progress = "pending";
+                request.progress = "pending";
                 //await _serviceBus.GetServiceBusClient().cancelMessage(Constants.TopicName, info.sequenceNumber);
                /* long SequenceNumber = await _serviceBus.GetServiceBusClient().SendLeamMessage<Survey>(Constants.TopicName, request.survey.id, request.survey.code, request.survey.startTime);
                 request.survey.sequenceNumber = SequenceNumber;*/
-                survey = await client.GetContainer("TEAMModelOS", "Common").CreateItemAsync(request.survey, new PartitionKey($"{request.survey.code}"));
+                survey = await client.GetContainer("TEAMModelOS", "Common").CreateItemAsync(request, new PartitionKey($"{request.code}"));
                 /*if (request.survey.scope.Equals("school"))
                 {
                     survey = await client.GetContainer("TEAMModelOS", "School").CreateItemAsync(request.survey, new PartitionKey($"Survey-{code}"));
@@ -87,17 +86,17 @@ namespace TEAMModelOS.Controllers
                 {
                     survey = await client.GetContainer("TEAMModelOS", "Teacher").CreateItemAsync(request.survey, new PartitionKey($"Survey-{code}"));
                 }*/
-                await _serviceBus.GetServiceBusClient().SendLeamMessage<Survey>(Constants.TopicName, request.survey.id, request.survey.code, request.survey.startTime);
+                await _serviceBus.GetServiceBusClient().SendLeamMessage<Survey>(Constants.TopicName, request.id, request.code, request.startTime);
 
             }
             else {
-                Survey info = await client.GetContainer("TEAMModelOS", "Common").ReadItemAsync<Survey>(request.survey.id, new PartitionKey($"{request.survey.code}"));
+                Survey info = await client.GetContainer("TEAMModelOS", "Common").ReadItemAsync<Survey>(request.id, new PartitionKey($"{request.code}"));
                 if (info.progress.Equals("going"))
                 {
                     return Ok(new { v = "活动正在进行中" });
                 }
                 //request.survey.code = info.code;
-                request.survey.progress = info.progress;
+                request.progress = info.progress;
                 /*try {
                     await _serviceBus.GetServiceBusClient().cancelMessage(Constants.TopicName, info.sequenceNumber);
                     long SequenceNumber = await _serviceBus.GetServiceBusClient().SendLeamMessage<Survey>(Constants.TopicName, request.survey.id, request.survey.code, request.survey.startTime);
@@ -107,7 +106,7 @@ namespace TEAMModelOS.Controllers
                     //await _dingDing.SendBotMsg($"ServiceBusㄛExamBus()\n{e.Message}", GroupNames.醍摩豆服務運維群組);
                 }        */       
                 
-                survey = await client.GetContainer("TEAMModelOS", "Common").ReplaceItemAsync(request.survey, info.id, new PartitionKey($"{info.code}"));
+                survey = await client.GetContainer("TEAMModelOS", "Common").ReplaceItemAsync(request, info.id, new PartitionKey($"{info.code}"));
                 //request.survey.createTime = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds();
                 /*if (request.survey.scope.Equals("school"))
                 {

+ 1 - 2
TEAMModelOS/Controllers/Task/VoteController.cs

@@ -76,9 +76,8 @@ namespace TEAMModelOS.Controllers.Learn
             //string code = request.vote.code;
             var client = _azureCosmos.GetCosmosClient();
             Vote vote = new Vote();            
-            request.vote.pk = typeof(Vote).Name;
             request.vote.school = request.vote.code;
-            request.vote.code = typeof(Vote).Name + "-" + request.vote.code;
+            request.vote.code = request.vote.pk+ "-" + request.vote.code;
             request.vote.createTime = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds();
             /*if (request.vote.publishModel.Equals("0"))
             {