Bläddra i källkod

课纲结构更新

CrazyIter_Bin 4 år sedan
förälder
incheckning
4d7b9fd7f3

+ 3 - 1
TEAMModelOS.SDK/Models/Cosmos/Common/Inner/SyllabusTree.cs

@@ -10,7 +10,9 @@ namespace TEAMModelOS.SDK.Models
         }
         public List<SyllabusTree> children { get; set; }
     }
-    public class SyllabusTreeNode: CosmosEntity{
+    public class SyllabusTreeNode{
+        public string id { get; set; }
+        public string code { get; set; }
         public SyllabusTreeNode() {
             trees = new List<SyllabusTree>();
         }

+ 2 - 2
TEAMModelOS.SDK/Models/Cosmos/Common/Snode.cs

@@ -13,7 +13,7 @@ namespace TEAMModelOS.SDK.Models.Cosmos.Common
         /// <summary>
         /// 试题 ,试卷,内容资源,外部链接(只有link,和name),
         /// </summary>
-        public string type { get; set; }
+        public int type { get; set; }
         public string title { get; set; }
 
     }
@@ -38,7 +38,7 @@ namespace TEAMModelOS.SDK.Models.Cosmos.Common
         public int order { get; set; }
         public List<string> points { get; set; } = new List<string> { "" };
         public List<Rnode> rnodes { get; set; }
-        public string code { get; set; }
+        //public string code { get; set; }
 
     }
     /// <summary>

+ 72 - 10
TEAMModelOS/Controllers/Syllabus/SyllabusController.cs

@@ -43,11 +43,11 @@ namespace TEAMModelOS.Controllers
         /// <returns></returns>
         [ProducesDefaultResponseType]
         [HttpPost("upsert-tree")]
-        public async Task<IActionResult> SaveOrUpdateAsTree(List<SyllabusTree> request)
+        public async Task<IActionResult> SaveOrUpdateAsTree(SyllabusTreeNode request)
         {
-            //List<SyllabusTree> treess = await SaveOrUpdateToTree(request);
+           var node = await SaveOrUpdateToTree(request);
             ////return builder.Data(treess).build();
-            return Ok();
+            return Ok(node );
         }
 
         // TODO 代码优化
@@ -62,7 +62,7 @@ namespace TEAMModelOS.Controllers
         public async Task<IActionResult> SaveOrUpdateAsNodes(List<Tnode> request)
         {
             return Ok();
-            //List<Syllabus> syllabuses = await SaveOrUpdateToNodes(request);
+           // List<Syllabus> syllabuses = await SaveOrUpdateToNodes(request);
             //if (syllabuses.IsNotEmpty()) return Ok(request);
             //else return Ok(syllabuses);
         }
@@ -132,19 +132,22 @@ namespace TEAMModelOS.Controllers
             //return Ok(treess);
         }
 
-        private async Task<List<SyllabusTree>> SaveOrUpdateToTree(List<SyllabusTree> request)
+        private async Task<SyllabusTreeNode> SaveOrUpdateToTree(SyllabusTreeNode request)
         {
             List<Tnode> nodes = new List<Tnode>();
             Syllabus syllabus = new Syllabus();
 
-            TreeToList(request, nodes);
+            TreeToList(request.trees, nodes);
             // List<SyllabusNode> nods = nodes.ToJson().FromJson<List<SyllabusNode>>() ;
             syllabus.children = nodes;
-            syllabus.id = request[0].code;
-            syllabus.code = request[0].code;
+            syllabus.id = !string.IsNullOrEmpty(request.id) ? request.id : Guid.NewGuid().ToString() ;
+            syllabus.code = request.code;
+            syllabus.pk = "Syllabus";
+            syllabus.ttl = -1;
             await _azureCosmos.GetCosmosClient().GetContainer("TEAMModelOS", "School").UpsertItemAsync<Syllabus>(syllabus,new Azure.Cosmos.PartitionKey(syllabus.code));
-            List<SyllabusTree> treess = ListToTree(nodes);
-            return treess;
+            List<SyllabusTree> trees = ListToTree(nodes);
+            request.trees = trees;
+            return request;
         }
 
         private async Task<List<Tnode>> FindByPid(Tnode data, List<Tnode> nodes, List<Tnode> nodedata)
@@ -214,5 +217,64 @@ namespace TEAMModelOS.Controllers
             }
             return trees;
         }
+        //private async Task<List<Syllabus>> SaveOrUpdateToNodes(List<Tnode> syllabusNodes)
+        //{
+        //    List<Syllabus> syllabuses;
+
+        //   var  data = await _azureCosmos.GetCosmosClient().GetContainer("TEAMModelOS", "School").ReadItemAsync<Syllabus>(  syllabusNodes[0].code ,new Azure.Cosmos.PartitionKey(""));
+        //    if (data.IsEmpty())
+        //    {
+        //        var syllabus = new Syllabus { id = syllabusNodes[0].code, code = syllabusNodes[0].code, children = new List<SyllabusNode>() };
+        //        await _azureCosmos.SaveOrUpdate(syllabus);
+        //        data = new List<Syllabus>() { syllabus };
+        //    }
+        //    List<SyllabusNode> syllabusNodes1 = new List<SyllabusNode>();
+        //    if (data.IsNotEmpty())
+        //    {
+        //        syllabusNodes1.AddRange(data[0].children);
+        //        //replace
+        //        for (int i = 0; i < data[0].children.Count; i++)
+        //        {
+        //            for (int j = 0; j < syllabusNodes.Count; j++)
+        //            {
+        //                if (data[0].children[i].id == syllabusNodes[j].id && data[0].children[i].code == syllabusNodes[j].code)
+        //                {
+        //                    syllabusNodes1.Remove(data[0].children[i]);
+        //                    syllabusNodes1.Add(syllabusNodes[j]);
+        //                    syllabusNodes.Remove(syllabusNodes[j]);
+        //                }
+        //            }
+        //        }
+        //        data[0].children = syllabusNodes1;
+
+        //        //新增
+        //        data[0].children.AddRange(syllabusNodes);
+
+        //        if (data[0].children.IsNotEmpty())
+        //        {
+        //            var len = data[0].children.Count;
+        //            for (int i = 0; i < len; i++)
+        //            {
+        //                if (data[0].children[i].items.IsNotEmpty())
+        //                {
+        //                    data[0].children[i].item = true;
+        //                }
+        //                if (data[0].children[i].resources.IsNotEmpty())
+        //                {
+        //                    data[0].children[i].resource = true;
+        //                }
+        //            }
+        //        }
+        //        syllabuses = await _azureCosmos.SaveOrUpdateAll<Syllabus>(data);
+
+        //    }
+        //    else
+        //    {
+        //        throw new BizException("保存失败", ResponseCode.FAILED);
+
+        //    }
+
+        //    return syllabuses;
+        //}
     }
 }