|
@@ -292,8 +292,8 @@ namespace TEAMModelOS.Controllers.Both
|
|
//暂不处理
|
|
//暂不处理
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- var dtos = KnowledgeService.KnowledgeTranslate(new List<Knowledge> { knowledge });
|
|
|
|
- return Ok(new { knowledgeTree = dtos[0] });
|
|
|
|
|
|
+ var dto = KnowledgeService.KnowledgeTranslate(knowledge);
|
|
|
|
+ return Ok(new { knowledgeTree = dto});
|
|
}
|
|
}
|
|
return Ok(new {code =404});
|
|
return Ok(new {code =404});
|
|
}
|
|
}
|
|
@@ -424,8 +424,8 @@ namespace TEAMModelOS.Controllers.Both
|
|
}
|
|
}
|
|
if (knowledgeDb!=null)
|
|
if (knowledgeDb!=null)
|
|
{
|
|
{
|
|
- var dtos = KnowledgeService.KnowledgeTranslate(new List<Knowledge> { knowledgeDb });
|
|
|
|
- return Ok(new { knowledgeTree = dtos[0] });
|
|
|
|
|
|
+ var dto = KnowledgeService.KnowledgeTranslate(knowledgeDb);
|
|
|
|
+ return Ok(new { knowledgeTree = dto });
|
|
}
|
|
}
|
|
else {
|
|
else {
|
|
return BadRequest();
|
|
return BadRequest();
|
|
@@ -441,6 +441,7 @@ namespace TEAMModelOS.Controllers.Both
|
|
if (!json.TryGetProperty("scope", out var _scope)) {
|
|
if (!json.TryGetProperty("scope", out var _scope)) {
|
|
return BadRequest();
|
|
return BadRequest();
|
|
}
|
|
}
|
|
|
|
+ List<KnowledgeCount> datas = new List<KnowledgeCount>();
|
|
if ($"{_scope}".Equals("school", StringComparison.OrdinalIgnoreCase))
|
|
if ($"{_scope}".Equals("school", StringComparison.OrdinalIgnoreCase))
|
|
{
|
|
{
|
|
if (!json.TryGetProperty("periodId", out var periodId))
|
|
if (!json.TryGetProperty("periodId", out var periodId))
|
|
@@ -460,13 +461,107 @@ namespace TEAMModelOS.Controllers.Both
|
|
record.subjectId=value.Name;
|
|
record.subjectId=value.Name;
|
|
record.owner=school;
|
|
record.owner=school;
|
|
record.scope="school";
|
|
record.scope="school";
|
|
|
|
+ datas.Add(record);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ foreach (var subject in period.subjects)
|
|
|
|
+ {
|
|
|
|
+ var record = datas.Find(x => x.subjectId.Equals(subject.id));
|
|
|
|
+ if (record!=null)
|
|
|
|
+ {
|
|
|
|
+ record.name= subject.name;
|
|
|
|
+ }
|
|
|
|
+ else {
|
|
|
|
+ string sql= $" select value c from c where c.subjectId='{subject.id}' and c.periodId='{period.id}' ";
|
|
|
|
+ var result = await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.Teacher).GetList<Knowledge>(sql, $"Knowledge-{school}-{subject.id}");
|
|
|
|
+ if (result.list.IsNotEmpty())
|
|
|
|
+ {
|
|
|
|
+ foreach (var item in result.list) {
|
|
|
|
+ var dto = KnowledgeService.KnowledgeTranslate(item);
|
|
|
|
+ var count = new { pcount = dto.points.Count(), bcount = dto.blocks.Count(), name = subject.name };
|
|
|
|
+ //处理知识点,知识块计数问题
|
|
|
|
+ string key = $"KnowledgeNew:Count:{item.owner}-{item.periodId}";
|
|
|
|
+ string filed = item.subjectId;
|
|
|
|
+ await _azureRedis.GetRedisClient(8).HashSetAsync(key, filed, count.ToJsonString());
|
|
|
|
+ record = new KnowledgeCount
|
|
|
|
+ {
|
|
|
|
+ id= item.id,
|
|
|
|
+ periodId=period.id,
|
|
|
|
+ subjectId=subject.id,
|
|
|
|
+ name=subject.name,
|
|
|
|
+ owner=school,
|
|
|
|
+ scope="school",
|
|
|
|
+ pcount=dto.points.Count(),
|
|
|
|
+ bcount=dto.blocks.Count(),
|
|
|
|
+ };
|
|
|
|
+ datas.Add(record);
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ else {
|
|
|
|
+ record = new KnowledgeCount
|
|
|
|
+ {
|
|
|
|
+ periodId=period.id,
|
|
|
|
+ subjectId=subject.id,
|
|
|
|
+ name=subject.name,
|
|
|
|
+ owner=school,
|
|
|
|
+ scope="school",
|
|
|
|
+ pcount=0,
|
|
|
|
+ bcount=0,
|
|
|
|
+ };
|
|
|
|
+ }
|
|
|
|
+ datas.Add(record);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- else {
|
|
|
|
-
|
|
|
|
|
|
+ else {
|
|
|
|
+ var values = await _azureRedis.GetRedisClient(8).HashGetAllAsync($"KnowledgeNew:Count:{userid}");
|
|
|
|
+ if (values!=null && values!=default && values.Length>0)
|
|
|
|
+ {
|
|
|
|
+ foreach (var value in values)
|
|
|
|
+ {
|
|
|
|
+
|
|
|
|
+ KnowledgeCount record = value.Value.ToString().ToObject<KnowledgeCount>();
|
|
|
|
+ record.id=value.Name;
|
|
|
|
+ record.owner=userid;
|
|
|
|
+ record.scope="private";
|
|
|
|
+ datas.Add(record);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ string sql = string.Empty;
|
|
|
|
+ if (datas.IsNotEmpty())
|
|
|
|
+ {
|
|
|
|
+ sql= $" select value c from c where c.id not in ({string.Join(",", datas.Select(x => $"'{x.id}'"))}) ";
|
|
|
|
+ }
|
|
|
|
+ else {
|
|
|
|
+ sql= $" select value c from c ";
|
|
|
|
+ }
|
|
|
|
+ var result = await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.Teacher).GetList<Knowledge>(sql, $"Knowledge-{userid}");
|
|
|
|
+ if (result.list.IsNotEmpty())
|
|
|
|
+ {
|
|
|
|
+ foreach (var item in result.list)
|
|
|
|
+ {
|
|
|
|
+ var dto= KnowledgeService.KnowledgeTranslate(item);
|
|
|
|
+
|
|
|
|
+ //处理知识点,知识块计数问题
|
|
|
|
+ string key = $"KnowledgeNew:Count:{item.owner}";
|
|
|
|
+ string filed = item.id;
|
|
|
|
+ var count = new { pcount = dto. points.Count(), bcount = dto.blocks.Count(), name = item.name };
|
|
|
|
+ await _azureRedis.GetRedisClient(8).HashSetAsync(key, filed, count.ToJsonString());
|
|
|
|
+ KnowledgeCount record = new KnowledgeCount
|
|
|
|
+ {
|
|
|
|
+ id=item.id,
|
|
|
|
+ name=item.name,
|
|
|
|
+ owner=userid,
|
|
|
|
+ scope="private",
|
|
|
|
+ pcount=dto.points.Count(),
|
|
|
|
+ bcount=dto.blocks.Count(),
|
|
|
|
+ };
|
|
|
|
+ datas.Add(record);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
}
|
|
}
|
|
- return Ok();
|
|
|
|
|
|
+ return Ok(new { datas });
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|