|
@@ -113,6 +113,7 @@ namespace TEAMModelOS.Controllers
|
|
|
}
|
|
|
}
|
|
|
await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.Normal).UpsertItemAsync(website ,new PartitionKey("ActivityWebsite"));
|
|
|
+
|
|
|
return Ok(new { website,code =200});
|
|
|
}
|
|
|
case bool when $"{grant_type}".Equals("list", StringComparison.OrdinalIgnoreCase):
|
|
@@ -267,7 +268,6 @@ namespace TEAMModelOS.Controllers
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
}
|
|
|
return Ok(new { code = 200, websites });
|
|
|
}
|
|
@@ -550,7 +550,7 @@ namespace TEAMModelOS.Controllers
|
|
|
yearSql = $" and c.year={_year}";
|
|
|
}
|
|
|
string sql = $"select value c from c where c.owner='{_areaId}' {yearSql} ";
|
|
|
- var result = await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.Common).GetList<Activity>(sql, "Activity");
|
|
|
+ var result = await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.Common).GetList<ActivityDto>(sql, "Activity");
|
|
|
result.list.ForEach(z => {
|
|
|
var (blob_uri, blob_sas) = _azureStorage.GetBlobContainerSAS(z.owner, BlobContainerSasPermissions.Read | BlobContainerSasPermissions.List);
|
|
|
z.sas=blob_sas;
|
|
@@ -562,7 +562,7 @@ namespace TEAMModelOS.Controllers
|
|
|
{
|
|
|
if (!string.IsNullOrWhiteSpace(school)) {
|
|
|
School schoolbase = await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.School).ReadItemAsync<School>(school, new PartitionKey("Base"));
|
|
|
- List<Activity> activities = new List<Activity>();
|
|
|
+ List<ActivityDto> activities = new List<ActivityDto>();
|
|
|
string yearSql = $" and c.year={DateTimeOffset.Now.Year}";
|
|
|
|
|
|
if (request.TryGetProperty("year", out JsonElement _year))
|
|
@@ -574,11 +574,11 @@ namespace TEAMModelOS.Controllers
|
|
|
|
|
|
//完全开放 所有的学校
|
|
|
string sqlOpen = $"select value c from c where c.scope='public' {yearSql} and (c.publish=1 or c.publish=2 ) and( ARRAY_LENGTH(c.invitedSchools)=0 or IS_DEFINED(c.invitedSchools) = false ) ";
|
|
|
- var resultOpen = await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.Common).GetList<Activity>(sqlOpen, "Activity");
|
|
|
+ var resultOpen = await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.Common).GetList<ActivityDto>(sqlOpen, "Activity");
|
|
|
activities.AddRange(resultOpen.list);
|
|
|
//部分学校
|
|
|
string sqlSchool = $"select value c from c join s in c.invitedSchools where c.scope='public' {yearSql} and (c.publish=1 or c.publish=2 ) and s.id='{school}' ";
|
|
|
- var resultSchool = await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.Common).GetList<Activity>(sqlSchool, "Activity");
|
|
|
+ var resultSchool = await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.Common).GetList<ActivityDto>(sqlSchool, "Activity");
|
|
|
resultSchool.list.ForEach(z => {
|
|
|
var confirmedSchool = z.confirmedSchools.Find(z => z.id.Equals(school));
|
|
|
if (confirmedSchool==null)
|
|
@@ -600,7 +600,7 @@ namespace TEAMModelOS.Controllers
|
|
|
if (!string.IsNullOrWhiteSpace(schoolbase.areaId)) {
|
|
|
//区级所有学校
|
|
|
string sqlOpen = $"select value c from c where c.scope='area'{yearSql} and (c.publish=1 or c.publish=2 ) and c.owner='{schoolbase.areaId}' and( ARRAY_LENGTH(c.invitedSchools)=0 or IS_DEFINED(c.invitedSchools) = false) ";
|
|
|
- var resultOpen = await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.Common).GetList<Activity>(sqlOpen, "Activity");
|
|
|
+ var resultOpen = await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.Common).GetList<ActivityDto>(sqlOpen, "Activity");
|
|
|
resultOpen.list.ForEach(z => {
|
|
|
var confirmedSchool = z.confirmedSchools.Find(z => z.id.Equals(school));
|
|
|
if (confirmedSchool==null)
|
|
@@ -617,7 +617,7 @@ namespace TEAMModelOS.Controllers
|
|
|
activities.AddRange(resultOpen.list);
|
|
|
//区级部分学校
|
|
|
string sqlSchool = $"select value c from c join s in c.invitedSchools where c.scope='area'{yearSql} and (c.publish=1 or c.publish=2 ) and c.owner='{schoolbase.areaId}' and s.id='{school}' ";
|
|
|
- var resultSchool = await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.Common).GetList<Activity>(sqlSchool, "Activity");
|
|
|
+ var resultSchool = await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.Common).GetList<ActivityDto>(sqlSchool, "Activity");
|
|
|
resultSchool.list.ForEach(z => {
|
|
|
var confirmedSchool = z.confirmedSchools.Find(z => z.id.Equals(school));
|
|
|
if (confirmedSchool==null)
|
|
@@ -637,7 +637,7 @@ namespace TEAMModelOS.Controllers
|
|
|
//获取学校自己的
|
|
|
{
|
|
|
string sqlSchool = $"select value c from c where c.scope='school'{yearSql} and c.owner='{school}' ";
|
|
|
- var resultSchool = await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.Common).GetList<Activity>(sqlSchool, "Activity");
|
|
|
+ var resultSchool = await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.Common).GetList<ActivityDto>(sqlSchool, "Activity");
|
|
|
activities.AddRange(resultSchool.list);
|
|
|
}
|
|
|
activities.ForEach(z => {
|
|
@@ -1424,8 +1424,8 @@ namespace TEAMModelOS.Controllers
|
|
|
public async Task<IActionResult> GetWebsite(JsonElement request) {
|
|
|
if (!request.TryGetProperty("route", out JsonElement _route)) return BadRequest();
|
|
|
string sql = $"select value c from c where c.route='{_route}'";
|
|
|
- var result = await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.Normal).GetList<ActivityWebsite>(sql, "ActivityWebsite");
|
|
|
- ActivityWebsite website = null;
|
|
|
+ var result = await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.Normal).GetList<ActivityWebsiteDto>(sql, "ActivityWebsite");
|
|
|
+ ActivityWebsiteDto website = null;
|
|
|
if (result.list.Count>1)
|
|
|
{
|
|
|
return Ok(new { code = 1, msg = "路由匹配多个区校" });
|
|
@@ -1439,13 +1439,27 @@ namespace TEAMModelOS.Controllers
|
|
|
}
|
|
|
if (website!= null)
|
|
|
{
|
|
|
- List<ActivityWebsite> websites = new List<ActivityWebsite>();
|
|
|
+ List<ActivityWebsiteDto> websites = new List<ActivityWebsiteDto>();
|
|
|
if (website.route.Equals("teammodel") )
|
|
|
{
|
|
|
string sqlAll = $"select value c from c where IS_DEFINED(c.route) = true and c.route<> null and c.route<>'' ";
|
|
|
- var resultAll = await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.Normal).GetList<ActivityWebsite>(sqlAll, "ActivityWebsite");
|
|
|
+ var resultAll = await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.Normal).GetList<ActivityWebsiteDto>(sqlAll, "ActivityWebsite");
|
|
|
websites=resultAll.list;
|
|
|
}
|
|
|
+ websites.ForEach(z => {
|
|
|
+ string cnt = z.id;
|
|
|
+ if (z.id.Equals("teammodel"))
|
|
|
+ {
|
|
|
+ cnt="02944f32-f534-3397-ea56-e6f1fc6c3714";
|
|
|
+ }
|
|
|
+ z.sas= _azureStorage.GetBlobContainerSAS(cnt ,BlobContainerSasPermissions.Read).sas;
|
|
|
+ });
|
|
|
+ string cnt = website.id;
|
|
|
+ if (website.id.Equals("teammodel"))
|
|
|
+ {
|
|
|
+ cnt="02944f32-f534-3397-ea56-e6f1fc6c3714";
|
|
|
+ }
|
|
|
+ website.sas= _azureStorage.GetBlobContainerSAS(cnt, BlobContainerSasPermissions.Read).sas;
|
|
|
return Ok(new { code = 200, website ,websites });
|
|
|
}
|
|
|
else {
|
|
@@ -1472,16 +1486,16 @@ namespace TEAMModelOS.Controllers
|
|
|
if (!request.TryGetProperty("activityId", out JsonElement _activityId)) return BadRequest();
|
|
|
var client = _azureCosmos.GetCosmosClient();
|
|
|
Azure.Response response = await client.GetContainer(Constant.TEAMModelOS, Constant.Common).ReadItemStreamAsync(_activityId.GetString(), new PartitionKey("Activity"));
|
|
|
- if (response.Status==200)
|
|
|
+ if (response.Status==200)
|
|
|
{
|
|
|
+ int code = -1;
|
|
|
Activity activity= JsonDocument.Parse(response.Content).RootElement.ToObject<Activity>();
|
|
|
+
|
|
|
switch (true)
|
|
|
{
|
|
|
//教师报名参加
|
|
|
case bool when $"{grant_type}".Equals("sign-contest", StringComparison.OrdinalIgnoreCase):
|
|
|
- {
|
|
|
- int code = -1;
|
|
|
- ///检查被报名的活动是是否符合
|
|
|
+ {
|
|
|
//邀请制
|
|
|
if (activity.joinMode.Equals("invite")) {
|
|
|
|
|
@@ -1507,7 +1521,24 @@ namespace TEAMModelOS.Controllers
|
|
|
//如果邀请制没有检查通过,则检查其他模式
|
|
|
if (code!=200)
|
|
|
{
|
|
|
-
|
|
|
+ if (activity.invitedSchools.IsNotEmpty() && activity.confirmedSchools.IsNotEmpty()) {
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (code==200) {
|
|
|
+ ///检查被报名的活动是是否符合
|
|
|
+ if (activity.publish==1 && activity.modules.Contains("Contest"))
|
|
|
+ {
|
|
|
+ Azure.Response responseContest = await client.GetContainer(Constant.TEAMModelOS, Constant.Common).ReadItemStreamAsync(_activityId.GetString(), new PartitionKey("Contest"));
|
|
|
+ if (responseContest.Status==200)
|
|
|
+ {
|
|
|
+ Contest contest = JsonDocument.Parse(responseContest.Content).RootElement.ToObject<Contest>();
|
|
|
+ if (contest.modules.Contains("sign") && contest.sign!=null)
|
|
|
+ {
|
|
|
+ long now = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
break;
|
|
|
}
|
|
@@ -1556,7 +1587,7 @@ namespace TEAMModelOS.Controllers
|
|
|
// jwt.Payload.TryGetValue("azp", out schoolid);
|
|
|
//}
|
|
|
if (!request.TryGetProperty("route", out JsonElement _route)) return BadRequest();
|
|
|
- List<Activity> activities = new List<Activity>();
|
|
|
+ List<ActivityDto> activities = new List<ActivityDto>();
|
|
|
string sql = $"select value c from c where c.route='{_route}'";
|
|
|
var result= await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.Normal).GetList<ActivityWebsite>(sql, "ActivityWebsite");
|
|
|
ActivityWebsite website = null;
|
|
@@ -1576,7 +1607,7 @@ namespace TEAMModelOS.Controllers
|
|
|
{
|
|
|
//区级所有学校
|
|
|
string sqlOpen = $"select value c from c where c.scope='area' and (c.publish=1 or c.publish=2 ) and c.owner='{website.id}' ";
|
|
|
- var resultOpen = await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.Common).GetList<Activity>(sqlOpen, "Activity");
|
|
|
+ var resultOpen = await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.Common).GetList<ActivityDto>(sqlOpen, "Activity");
|
|
|
activities.AddRange(resultOpen.list);
|
|
|
}
|
|
|
if (website.scope.Equals("school"))
|
|
@@ -1587,17 +1618,17 @@ namespace TEAMModelOS.Controllers
|
|
|
{
|
|
|
//区级所有学校
|
|
|
string sqlOpen = $"select value c from c join s in c.confirmedSchools where c.scope='area' and (c.publish=1 or c.publish=2 ) and c.owner='{schoolbase.areaId}' and( ARRAY_LENGTH(c.invitedSchools)=0 or IS_DEFINED(c.invitedSchools) = false) and s.id='{schoolbase.id}' and s.status=1 ";
|
|
|
- var resultOpen = await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.Common).GetList<Activity>(sqlOpen, "Activity");
|
|
|
+ var resultOpen = await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.Common).GetList<ActivityDto>(sqlOpen, "Activity");
|
|
|
activities.AddRange(resultOpen.list);
|
|
|
//区级部分学校
|
|
|
string sqlSchool = $"select value c from c join i in c.invitedSchools join s in c.confirmedSchools where c.scope='area'and (c.publish=1 or c.publish=2 ) and c.owner='{schoolbase.areaId}' and i.id='{schoolbase.id}' and s.id='{schoolbase.id}' and s.status=1 ";
|
|
|
- var resultSchool = await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.Common).GetList<Activity>(sqlSchool, "Activity");
|
|
|
+ var resultSchool = await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.Common).GetList<ActivityDto>(sqlSchool, "Activity");
|
|
|
activities.AddRange(resultSchool.list);
|
|
|
}
|
|
|
{
|
|
|
///学校自己的
|
|
|
string sqlSchool = $"select value c from c where c.scope='school' and (c.publish=1 or c.publish=2 ) and c.owner='{schoolbase.id}' ";
|
|
|
- var resultSchool = await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.Common).GetList<Activity>(sqlSchool, "Activity");
|
|
|
+ var resultSchool = await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.Common).GetList<ActivityDto>(sqlSchool, "Activity");
|
|
|
activities.AddRange(resultSchool.list);
|
|
|
}
|
|
|
}
|
|
@@ -1605,13 +1636,13 @@ namespace TEAMModelOS.Controllers
|
|
|
{
|
|
|
//完全开放 所有的学校
|
|
|
string sqlOpen = $"select value c from c where c.scope='public' and (c.publish=1 or c.publish=2 ) ";
|
|
|
- var resultOpen = await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.Common).GetList<Activity>(sqlOpen, "Activity");
|
|
|
+ var resultOpen = await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.Common).GetList<ActivityDto>(sqlOpen, "Activity");
|
|
|
activities.AddRange(resultOpen.list);
|
|
|
}
|
|
|
}
|
|
|
activities.ForEach(z =>
|
|
|
{
|
|
|
- var (blob_uri, blob_sas) = _azureStorage.GetBlobContainerSAS(z.owner, BlobContainerSasPermissions.Read | BlobContainerSasPermissions.List);
|
|
|
+ var (blob_uri, blob_sas) = _azureStorage.GetBlobContainerSAS(z.owner, BlobContainerSasPermissions.Read);
|
|
|
z.sas=blob_sas;
|
|
|
});
|
|
|
return Ok(new { activities, website });
|