Ver código fonte

获取分享的课纲

CrazyIter_Bin 4 anos atrás
pai
commit
b4c89d5a6d
1 arquivos alterados com 10 adições e 66 exclusões
  1. 10 66
      TEAMModelOS/Controllers/Syllabus/ShareController.cs

+ 10 - 66
TEAMModelOS/Controllers/Syllabus/ShareController.cs

@@ -304,11 +304,10 @@ namespace TEAMModelOS.Controllers
         {
             try
             {
-                List<List<SyllabusTree>> tts = new List<List<SyllabusTree>>();
+                List<SyllabusTreeNode> treeNodes = new List<SyllabusTreeNode>();
                 Volume volume;
                 var client = _azureCosmos.GetCosmosClient();
                 string code = null;
-                SyllabusTreeNode tree = null;
                 List<string> sid = new List<string>();
                 request.syllabusId.ForEach(x => { sid.Add($"'{x}'"); });
                 var sidSql= string.Join(",", sid);
@@ -319,86 +318,31 @@ namespace TEAMModelOS.Controllers
                     await foreach (var item in client.GetContainer("TEAMModelOS", "School").GetItemQueryIterator<Syllabus>(queryText: queryslt, requestOptions: new QueryRequestOptions() { PartitionKey = new PartitionKey($"Syllabus-{request.volumeId}") }))
                     {
                         List<SyllabusTree> trees = SyllabusService.ListToTree(item.children);
-                        tts.Add(trees);
+                        SyllabusTreeNode tree = new SyllabusTreeNode() { id = item.id, scope = item.scope, trees = trees, volumeId = item.volumeId, auth = item.auth };
+                        treeNodes.Add(tree);
+
                     }
                     volume = await client.GetContainer("TEAMModelOS", "School").ReadItemAsync<Volume>(request.volumeId, new PartitionKey($"Volume-{code}"));
-                    tree = new SyllabusTreeNode() { id = request.volumeId, scope = "school", trees = new List<SyllabusTree>() };
+                    
                 }
                 else if (request.scope == "private")
                 {
                     code = request.issuer;
-                    var queryslt = $"SELECT  value(c) FROM c ";
+                    var queryslt = $"SELECT  value(c) FROM c where c.id in ({sidSql})";
                     await foreach (var item in client.GetContainer("TEAMModelOS", "Teacher").GetItemQueryIterator<Syllabus>(queryText: queryslt, requestOptions: new QueryRequestOptions() { PartitionKey = new PartitionKey($"Syllabus-{request.volumeId}") }))
                     {
                         List<SyllabusTree> trees = SyllabusService.ListToTree(item.children);
-                        tts.Add(trees);
+                        SyllabusTreeNode tree = new SyllabusTreeNode() { id = item.id, scope = item.scope, trees = trees, volumeId = item.volumeId, auth = item.auth };
+                        treeNodes.Add(tree);
                     }
                     volume = await client.GetContainer("TEAMModelOS", "Teacher").ReadItemAsync<Volume>(request.volumeId, new PartitionKey($"Volume-{code}"));
-                    tree = new SyllabusTreeNode() { id = request.volumeId, scope = "private", trees = new List<SyllabusTree>() };
                 }
                 else
                 {
                     return BadRequest();
                 }
-                //bool coedit = false;
-                //bool share = false;
-                //SyllabusTreeNode  etree = null;
-                //if (syllabus.auth.IsNotEmpty())
-                //{
-                //    foreach (var x in syllabus.auth)
-                //    {
-                //        if ($"Share-{x.tmdid }" == request.code)
-                //        {
-                //            coedit = x.coedit;
-                //            share = x.share;
-                //            break;
-                //        }
-                //    }
-                //}
-                //if (coedit)
-                //{
-                //    var treechd = SyllabusService.ListToTree(syllabus.children);
-                //    etree = new SyllabusTreeNode() {
-                //        id = syllabus.id,
-                //        trees = treechd
-                //    };
-                //}
-                //SyllabusTreeNode stree = new SyllabusTreeNode();
-                //if (share && snodes.IsNotEmpty())
-                //{
-                //    stree = new SyllabusTreeNode()
-                //    {
-                //        id = syllabus.id,
-                //    };
-                //    snodes.ForEach(x =>
-                //    {
-                //        SyllabusTree syllabusTree = null;
-                //        foreach (var node in syllabus.children)
-                //        {
-                //            if (node.id == x)
-                //            {
-                //                syllabusTree = new SyllabusTree
-                //                {
-                //                    id = node.id,
-                //                    pid = node.pid,
-                //                    order = node.order,
-                //                    rnodes = node.rnodes,
-                //                    cids = node.cids
-                //                };
-                //                break;
-                //            }
-                //        }
-                //        HashSet<Tnode> newNodes = new HashSet<Tnode>();
-                //        SyllabusService.GetNewNode(syllabus.children, x, newNodes);
-                //        var trees = SyllabusService.ListToTree(newNodes.ToList());
-                //        if (syllabusTree != null)
-                //        {
-                //            syllabusTree.children.AddRange(trees);
-                //            stree.trees.Add(syllabusTree);
-                //        }
-                //    });
-                //}
-                return Ok(new { tree });
+                
+                return Ok(new { volume,tree= treeNodes });
             }
             catch (Exception ex) {
                 await _dingDing.SendBotMsg($"OS,{_option.Location},teacher/share/view()\n{ex.Message}", GroupNames.醍摩豆服務運維群組);