|
@@ -35,80 +35,90 @@ namespace TEAMModelOS.Controllers
|
|
|
_azureCosmos = azureCosmos;
|
|
|
}
|
|
|
|
|
|
- /*
|
|
|
- {
|
|
|
- "id": "hbcn108774752059002880",
|
|
|
- "code": "Syllabus-hbcn",
|
|
|
- "trees": [
|
|
|
- {
|
|
|
- "id": "111111-111-44E7-8DD9-A6CB6D0D52F2",
|
|
|
- "pid": "hbcn108515325535981568",
|
|
|
- "title": "第一章",
|
|
|
- "order": 0,
|
|
|
- "type": 1,
|
|
|
- "children": [
|
|
|
- {
|
|
|
- "id": "22222-111-447E-8A52-BFCD63E61D33",
|
|
|
- "pid": "111111-111-44E7-8DD9-A6CB6D0D52F2",
|
|
|
- "title": "第一节333",
|
|
|
- "order": 0,
|
|
|
- "type": 1,
|
|
|
- "children": [
|
|
|
- {
|
|
|
- "id": "3333-111-447E-8A52-BFCD63E61D33",
|
|
|
- "pid": "22222-111-447E-8A52-BFCD63E61D33",
|
|
|
- "title": "第一节333",
|
|
|
- "order": 0,
|
|
|
- "type": 1
|
|
|
- },
|
|
|
- {
|
|
|
- "id": "4444-111-447E-8A52-BFCD63E61D33",
|
|
|
- "pid": "22222-111-447E-8A52-BFCD63E61D33",
|
|
|
- "title": "第一节333",
|
|
|
- "order": 0,
|
|
|
- "type": 1
|
|
|
- }
|
|
|
- ]
|
|
|
- }
|
|
|
- ]
|
|
|
- },
|
|
|
- {
|
|
|
- "id": "111111-222-44E7-8DD9-A6CB6D0D52F2",
|
|
|
- "pid": "hbcn108515325535981568",
|
|
|
- "title": "第一章",
|
|
|
- "order": 0,
|
|
|
- "type": 1,
|
|
|
- "children": [
|
|
|
- {
|
|
|
- "id": "22222-222-447E-8A52-BFCD63E61D33",
|
|
|
- "pid": "111111-222-44E7-8DD9-A6CB6D0D52F2",
|
|
|
- "title": "第一节333",
|
|
|
- "order": 0,
|
|
|
- "type": 1,
|
|
|
- "children": [
|
|
|
- {
|
|
|
- "id": "3333-222-447E-8A52-BFCD63E61D33",
|
|
|
- "pid": "22222-222-447E-8A52-BFCD63E61D33",
|
|
|
- "title": "第一节333",
|
|
|
- "order": 0,
|
|
|
- "type": 1
|
|
|
- }
|
|
|
- ]
|
|
|
- },
|
|
|
- {
|
|
|
- "id": "5555-222-447E-8A52-BFCD63E61D33",
|
|
|
- "pid": "111111-222-44E7-8DD9-A6CB6D0D52F2",
|
|
|
- "title": "第一节333",
|
|
|
- "order": 0,
|
|
|
- "type": 1,
|
|
|
- "children": []
|
|
|
- }
|
|
|
- ]
|
|
|
- }
|
|
|
- ]
|
|
|
- }
|
|
|
+ /*
|
|
|
+ {
|
|
|
+ "id": "hbcn108774752059002880",
|
|
|
+ "code": "Syllabus-hbcn",
|
|
|
+ "trees": [
|
|
|
+ {
|
|
|
+ "id": "111111-111-44E7-8DD9-A6CB6D0D52F2",
|
|
|
+ "pid": "hbcn108515325535981568",
|
|
|
+ "title": "第一章",
|
|
|
+ "order": 0,
|
|
|
+ "type": 1,
|
|
|
+ "rnodes":[
|
|
|
+ {
|
|
|
+ "type":"item/paper/res/link"//试题 ,试卷,内容资源,外部链接(只有link,和name)
|
|
|
+ "title":"",
|
|
|
+ "id":"关联资源的id",
|
|
|
+ "code":"关联资源的code",
|
|
|
+ "link":["https;//www.xxx.com/xxx.json"],
|
|
|
+ ""
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ "children": [
|
|
|
+ {
|
|
|
+ "id": "22222-111-447E-8A52-BFCD63E61D33",
|
|
|
+ "pid": "111111-111-44E7-8DD9-A6CB6D0D52F2",
|
|
|
+ "title": "第一节333",
|
|
|
+ "order": 0,
|
|
|
+ "type": 1,
|
|
|
+ "children": [
|
|
|
+ {
|
|
|
+ "id": "3333-111-447E-8A52-BFCD63E61D33",
|
|
|
+ "pid": "22222-111-447E-8A52-BFCD63E61D33",
|
|
|
+ "title": "第一节333",
|
|
|
+ "order": 0,
|
|
|
+ "type": 1
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "id": "4444-111-447E-8A52-BFCD63E61D33",
|
|
|
+ "pid": "22222-111-447E-8A52-BFCD63E61D33",
|
|
|
+ "title": "第一节333",
|
|
|
+ "order": 0,
|
|
|
+ "type": 1
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "id": "111111-222-44E7-8DD9-A6CB6D0D52F2",
|
|
|
+ "pid": "hbcn108515325535981568",
|
|
|
+ "title": "第一章",
|
|
|
+ "order": 0,
|
|
|
+ "type": 1,
|
|
|
+ "children": [
|
|
|
+ {
|
|
|
+ "id": "22222-222-447E-8A52-BFCD63E61D33",
|
|
|
+ "pid": "111111-222-44E7-8DD9-A6CB6D0D52F2",
|
|
|
+ "title": "第一节333",
|
|
|
+ "order": 0,
|
|
|
+ "type": 1,
|
|
|
+ "children": [
|
|
|
+ {
|
|
|
+ "id": "3333-222-447E-8A52-BFCD63E61D33",
|
|
|
+ "pid": "22222-222-447E-8A52-BFCD63E61D33",
|
|
|
+ "title": "第一节333",
|
|
|
+ "order": 0,
|
|
|
+ "type": 1
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "id": "5555-222-447E-8A52-BFCD63E61D33",
|
|
|
+ "pid": "111111-222-44E7-8DD9-A6CB6D0D52F2",
|
|
|
+ "title": "第一节333",
|
|
|
+ "order": 0,
|
|
|
+ "type": 1,
|
|
|
+ "children": []
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ }
|
|
|
|
|
|
- */
|
|
|
+ */
|
|
|
|
|
|
/// <summary>
|
|
|
/// 批量保存或更新课纲
|
|
@@ -120,9 +130,18 @@ namespace TEAMModelOS.Controllers
|
|
|
[HttpPost("upsert-tree")]
|
|
|
public async Task<IActionResult> SaveOrUpdateAsTree(SyllabusTreeNode request)
|
|
|
{
|
|
|
- var node = await SaveOrUpdateToTree(request);
|
|
|
- ////return builder.Data(treess).build();
|
|
|
- return Ok(node );
|
|
|
+ List<Tnode> nodes = new List<Tnode>();
|
|
|
+ Syllabus syllabus = new Syllabus();
|
|
|
+ SyllabusService.TreeToList(request.trees, nodes);
|
|
|
+ syllabus.children = nodes;
|
|
|
+ syllabus.id = !string.IsNullOrEmpty(request.id) ? request.id : Guid.NewGuid().ToString();
|
|
|
+ syllabus.code = $"Syllabus-{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> trees = SyllabusService.ListToTree(nodes);
|
|
|
+ request.trees = trees;
|
|
|
+ return Ok(request);
|
|
|
}
|
|
|
|
|
|
// TODO 代码优化
|
|
@@ -144,6 +163,19 @@ namespace TEAMModelOS.Controllers
|
|
|
|
|
|
// TODO 代码优化
|
|
|
|
|
|
+ /// <summary>
|
|
|
+ /// 查找课纲
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="request"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ [ProducesDefaultResponseType]
|
|
|
+ [HttpPost("find-id")]
|
|
|
+ public async Task<IActionResult> Find(JsonElement request)
|
|
|
+ {
|
|
|
+ return Ok();
|
|
|
+ }
|
|
|
+ // TODO 代码优化
|
|
|
+
|
|
|
/// <summary>
|
|
|
/// 删除课纲
|
|
|
/// </summary>
|
|
@@ -197,45 +229,8 @@ namespace TEAMModelOS.Controllers
|
|
|
|
|
|
}
|
|
|
|
|
|
- // TODO 代码优化
|
|
|
-
|
|
|
- /// <summary>
|
|
|
- /// 查找课纲
|
|
|
- /// </summary>
|
|
|
- /// <param name="request"></param>
|
|
|
- /// <returns></returns>
|
|
|
- [ProducesDefaultResponseType]
|
|
|
- [HttpPost("find")]
|
|
|
- public async Task<IActionResult> Find(JsonElement request)
|
|
|
- {
|
|
|
- return Ok();
|
|
|
- //ResponseBuilder builder = ResponseBuilder.custom();
|
|
|
- //Dictionary<string, object> dict = new Dictionary<string, object>();
|
|
|
- //var emobj = request.EnumerateObject();
|
|
|
- //while (emobj.MoveNext())
|
|
|
- //{
|
|
|
- // dict[emobj.Current.Name] = emobj.Current.Value;
|
|
|
- //}
|
|
|
- //List<SyllabusTree> treess = await Find(dict);
|
|
|
- ////return builder.Data(treess).build();
|
|
|
- //return Ok(treess);
|
|
|
- }
|
|
|
|
|
|
- private async Task<SyllabusTreeNode> SaveOrUpdateToTree(SyllabusTreeNode request)
|
|
|
- {
|
|
|
- List<Tnode> nodes = new List<Tnode>();
|
|
|
- Syllabus syllabus = new Syllabus();
|
|
|
- SyllabusService.TreeToList(request.trees, nodes);
|
|
|
- syllabus.children = nodes;
|
|
|
- syllabus.id = !string.IsNullOrEmpty(request.id) ? request.id : Guid.NewGuid().ToString() ;
|
|
|
- syllabus.code =$"Syllabus-{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> trees = SyllabusService. ListToTree(nodes);
|
|
|
- request.trees = trees;
|
|
|
- return request;
|
|
|
- }
|
|
|
+
|
|
|
|
|
|
private async Task<List<Tnode>> FindByPid(Tnode data, List<Tnode> nodes, List<Tnode> nodedata)
|
|
|
{
|