|
@@ -24,6 +24,7 @@ using Microsoft.AspNetCore.Authorization;
|
|
|
using OpenXmlPowerTools;
|
|
|
using System.IdentityModel.Tokens.Jwt;
|
|
|
using Microsoft.AspNetCore.Routing;
|
|
|
+using Pipelines.Sockets.Unofficial.Arenas;
|
|
|
|
|
|
namespace TEAMModelOS.Controllers
|
|
|
{
|
|
@@ -67,13 +68,29 @@ namespace TEAMModelOS.Controllers
|
|
|
[Authorize(Roles = "IES")]
|
|
|
|
|
|
public async Task<IActionResult> WebsiteManage(JsonElement request) {
|
|
|
- (string tmdid, _, _, string school) = HttpContext.GetAuthTokenInfo();
|
|
|
+ (string tmdid, _, _, string school,string areaId,string keyData) = HttpContext.GetAuthTokenKey();
|
|
|
if (!request.TryGetProperty("grant_type", out JsonElement grant_type)) return BadRequest();
|
|
|
{
|
|
|
switch (true)
|
|
|
{
|
|
|
- case bool when $"{grant_type}".Equals("update", StringComparison.OrdinalIgnoreCase):
|
|
|
+ case bool when $"{grant_type}".Equals("update", StringComparison.OrdinalIgnoreCase):
|
|
|
{
|
|
|
+ if (!request.TryGetProperty("website", out JsonElement _website)) return BadRequest();
|
|
|
+ ActivityWebsite website = _website.ToObject<ActivityWebsite>();
|
|
|
+ Azure.Response teammodelResponse = await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.Normal).ReadItemStreamAsync(website.id, new PartitionKey("ActivityWebsite"));
|
|
|
+ if (teammodelResponse.Status == 200)
|
|
|
+ {
|
|
|
+ ActivityWebsite activityWebsite = JsonDocument.Parse(teammodelResponse.Content).RootElement.ToObject<ActivityWebsite>();
|
|
|
+ website.route=activityWebsite.route;
|
|
|
+ website.pk=activityWebsite.pk;
|
|
|
+ website.code=activityWebsite.code;
|
|
|
+ website.scope=activityWebsite.scope;
|
|
|
+ //不是醍摩豆学区的,不能修改是否有公开办活动权限
|
|
|
+ if (!areaId.Equals("02944f32-f534-3397-ea56-e6f1fc6c3714")) {
|
|
|
+ website.allowPublic=activityWebsite.allowPublic;
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
break;
|
|
|
}
|
|
|
case bool when $"{grant_type}".Equals("list", StringComparison.OrdinalIgnoreCase):
|
|
@@ -108,6 +125,46 @@ namespace TEAMModelOS.Controllers
|
|
|
var result = await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.Normal).GetList<Area>(sqlArea, "Base-Area");
|
|
|
if (result.list.IsNotEmpty()) {
|
|
|
string sqlWebsite = $"select value c from c where c.id in ({string.Join(",", result.list.Select(z => $"'{z.id}'"))})";
|
|
|
+ var resultWebsite = await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.Normal).GetList<ActivityWebsite>(sqlWebsite, "ActivityWebsite");
|
|
|
+ foreach (var item in result.list) {
|
|
|
+ var website = resultWebsite.list.Find(z => z.id.Equals(item.id));
|
|
|
+ if (website!=null)
|
|
|
+ {
|
|
|
+ if (!string.IsNullOrWhiteSpace(item.shortCode))
|
|
|
+ {
|
|
|
+ bool change = false;
|
|
|
+ if (string.IsNullOrWhiteSpace(website.route))
|
|
|
+ {
|
|
|
+ website.route=item.shortCode;
|
|
|
+ change = true;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ if (!website.route.Equals(item.shortCode))
|
|
|
+ {
|
|
|
+ website.route=item.shortCode;
|
|
|
+ change = true;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (change)
|
|
|
+ {
|
|
|
+ await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.Normal).UpsertItemAsync(website, new PartitionKey(website.code));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ website= new ActivityWebsite
|
|
|
+ {
|
|
|
+ id= item.id,
|
|
|
+ code="ActivityWebsite",
|
|
|
+ pk="ActivityWebsite",
|
|
|
+ route=item.shortCode,
|
|
|
+ scope="area",
|
|
|
+ allowPublic=0,
|
|
|
+ };
|
|
|
+ }
|
|
|
+ websites.Add(website);
|
|
|
+ }
|
|
|
}
|
|
|
return Ok(websites);
|
|
|
}
|
|
@@ -116,6 +173,26 @@ namespace TEAMModelOS.Controllers
|
|
|
if (activityWebsiteResponse.Status == 200)
|
|
|
{
|
|
|
ActivityWebsite activityWebsite = JsonDocument.Parse(activityWebsiteResponse.Content).RootElement.ToObject<ActivityWebsite>();
|
|
|
+ Area area = await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.Normal).ReadItemAsync<Area>(websiteId, new PartitionKey("Base-Area"));
|
|
|
+ if (!string.IsNullOrWhiteSpace(area.shortCode) )
|
|
|
+ {
|
|
|
+ bool change = false;
|
|
|
+ if (string.IsNullOrWhiteSpace(activityWebsite.route))
|
|
|
+ {
|
|
|
+ activityWebsite.route=area.shortCode;
|
|
|
+ change = true;
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ if (!activityWebsite.route.Equals(area.shortCode))
|
|
|
+ {
|
|
|
+ activityWebsite.route=area.shortCode;
|
|
|
+ change = true;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (change) {
|
|
|
+ await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.Normal).UpsertItemAsync(activityWebsite, new PartitionKey(activityWebsite.code));
|
|
|
+ }
|
|
|
+ }
|
|
|
websites.Add(activityWebsite);
|
|
|
}
|
|
|
else
|
|
@@ -166,7 +243,6 @@ namespace TEAMModelOS.Controllers
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
}
|
|
|
return Ok();
|
|
|
}
|