|
@@ -65,6 +65,9 @@ namespace TEAMModelOS.Controllers
|
|
|
request.pk = "Notice";
|
|
|
request.ttl = -1;
|
|
|
long now = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds();
|
|
|
+ if (request.autoDelete) {
|
|
|
+ request.ttl=(int?)(request.endTime - now);
|
|
|
+ }
|
|
|
request.createTime = now;
|
|
|
request.creatorId = userid;
|
|
|
//如果设置的时间是小于当前时间则立即发布
|
|
@@ -117,7 +120,7 @@ namespace TEAMModelOS.Controllers
|
|
|
/// <returns></returns>
|
|
|
[ProducesDefaultResponseType]
|
|
|
[HttpPost("find")]
|
|
|
- [AuthToken(Roles = "teacher,admin")]
|
|
|
+ [AuthToken(Roles = "teacher,admin,student")]
|
|
|
public async Task<IActionResult> Find(JsonElement requert)
|
|
|
{
|
|
|
try
|
|
@@ -168,9 +171,27 @@ namespace TEAMModelOS.Controllers
|
|
|
typesql = $" and c.type='{type}' ";
|
|
|
}
|
|
|
}
|
|
|
+ string joinSqlClasses = "";
|
|
|
+ string andSqlClasses = "";
|
|
|
+ if (requert.TryGetProperty("classes", out JsonElement _classes))
|
|
|
+ {
|
|
|
+
|
|
|
+ if (_classes.ValueKind is JsonValueKind.Array)
|
|
|
+ {
|
|
|
+ List<string> subjects = _classes.ToObject<List<string>>();
|
|
|
+ if (subjects.IsNotEmpty())
|
|
|
+ {
|
|
|
+ joinSqlClasses = " join A2 in c.classes ";
|
|
|
+ List<string> sqlList = new List<string>();
|
|
|
+ subjects.ForEach(x => { sqlList.Add($" '{x}' "); });
|
|
|
+ string sql = string.Join(" , ", sqlList);
|
|
|
+ andSqlClasses = $" and A2 in ({sql}) ";
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
List<Notice> notices = new List<Notice>();
|
|
|
var client = _azureCosmos.GetCosmosClient();
|
|
|
- var query = $"select value(c) from c where c.ttl=-1 {etimestampsql} {stimestampsql} {publishsql } {typesql} ";
|
|
|
+ var query = $"select distinct value(c) from c {joinSqlClasses} where c.ttl=-1 {etimestampsql} {stimestampsql} {publishsql } {typesql} {andSqlClasses} ";
|
|
|
await foreach (var item in client.GetContainer(Constant.TEAMModelOS, "School").GetItemQueryIterator<Notice>(queryText: query,
|
|
|
requestOptions: new QueryRequestOptions() { PartitionKey = new PartitionKey($"Notice-{code}") }))
|
|
|
{
|