|
@@ -241,7 +241,7 @@ namespace TEAMModelOS.Controllers
|
|
|
{
|
|
|
case bool when $"{grant_type}".Equals("create", StringComparison.OrdinalIgnoreCase):
|
|
|
{
|
|
|
- if (!request.TryGetProperty("Activity", out JsonElement _activity)) return Ok(new { error = ResponseCode._400ParamsError, msg = "活动信息参数错误" });
|
|
|
+ if (!request.TryGetProperty("Activity", out JsonElement _activity)) return Ok(new { code = 1, msg = "活动信息参数错误" });
|
|
|
Activity activity = _activity.ToObject<Activity>();
|
|
|
activity.id=!string.IsNullOrWhiteSpace(activity.id) ? activity.id : Guid.NewGuid().ToString();
|
|
|
activity.code="Activity";
|
|
@@ -254,7 +254,7 @@ namespace TEAMModelOS.Controllers
|
|
|
//醍摩豆智慧学区
|
|
|
if (!activity.owner.Equals("02944f32-f534-3397-ea56-e6f1fc6c3714", StringComparison.OrdinalIgnoreCase) && activity.scope.Equals("public", StringComparison.OrdinalIgnoreCase))
|
|
|
{
|
|
|
- return Ok(new { error = ResponseCode._400ParamsError, msg = "公开的活动只能由醍摩豆智慧学区发布!" });
|
|
|
+ return Ok(new { code = 2, msg = "公开的活动只能由醍摩豆智慧学区发布!" });
|
|
|
}
|
|
|
{
|
|
|
string websiteId = activity.owner;
|
|
@@ -290,6 +290,7 @@ namespace TEAMModelOS.Controllers
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+ Contest contest = null;
|
|
|
ValidResult validResult = activity.Valid();
|
|
|
if (validResult.isVaild)
|
|
|
{
|
|
@@ -304,9 +305,9 @@ namespace TEAMModelOS.Controllers
|
|
|
{
|
|
|
if (!request.TryGetProperty("Contest", out JsonElement _contest))
|
|
|
{
|
|
|
- return Ok(new { error = ResponseCode._400ParamsError, msg = "赛课信息参数错误" });
|
|
|
+ return Ok(new { code =3, msg = "赛课信息参数错误" });
|
|
|
}
|
|
|
- Contest contest = _activity.ToObject<Contest>();
|
|
|
+ contest = _contest.ToObject<Contest>();
|
|
|
if (contest!=null) {
|
|
|
contest.id=activity.id;
|
|
|
contest.code="Contest";
|
|
@@ -318,10 +319,10 @@ namespace TEAMModelOS.Controllers
|
|
|
if (contest.modules.Contains("review")) {
|
|
|
if (!request.TryGetProperty("reviewConfig", out JsonElement _reviewConfig))
|
|
|
{
|
|
|
- return Ok(new { error = ResponseCode._400ParamsError, msg = "评审未配置" });
|
|
|
+ return Ok(new { code = 4, msg = "评审未配置" });
|
|
|
}
|
|
|
if (contest.review== null) {
|
|
|
- return Ok(new { error = ResponseCode._400ParamsError, msg = "评审未配置" });
|
|
|
+ return Ok(new { code = 4, msg = "评审未配置" });
|
|
|
}
|
|
|
ReviewRuleTree ruleTree = _reviewConfig.ToObject<ReviewRuleTree>();
|
|
|
var reviewRule = await ActivityService.UpsertReviewRule(ruleTree, activity, _azureCosmos);
|
|
@@ -350,6 +351,7 @@ namespace TEAMModelOS.Controllers
|
|
|
}
|
|
|
//保存活动基础信息
|
|
|
await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.Common).UpsertItemAsync(activity, new PartitionKey(activity.code));
|
|
|
+ return Ok(new { activity, contest ,code=200});
|
|
|
}
|
|
|
else
|
|
|
{
|
|
@@ -388,11 +390,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 ) ";
|
|
|
+ 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");
|
|
|
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}' ";
|
|
|
+ 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");
|
|
|
resultSchool.list.ForEach(z => {
|
|
|
var confirmedSchool = z.confirmedSchools.Find(z => z.id.Equals(school));
|
|
@@ -561,6 +563,31 @@ namespace TEAMModelOS.Controllers
|
|
|
}
|
|
|
return Ok(new { activities = activities.OrderByDescending(z => z.stime) });
|
|
|
}
|
|
|
+ case bool when $"{grant_type}".Equals("read-contest", StringComparison.OrdinalIgnoreCase):
|
|
|
+ {
|
|
|
+ Contest contest = null;
|
|
|
+ ReviewRuleTree reviewRule = null;
|
|
|
+ if (!request.TryGetProperty("activityId", out JsonElement _activityId)) return BadRequest();
|
|
|
+ Azure.Response response = await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.Common).ReadItemStreamAsync(_activityId.GetString(), new PartitionKey("Contest"));
|
|
|
+ if (response.Status==200) {
|
|
|
+ contest= JsonDocument.Parse(response.Content).RootElement.ToObject<Contest>() ;
|
|
|
+ if (contest.modules.Contains("review")) {
|
|
|
+ Azure.Response reviewRuleResponse = await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.Normal).ReadItemStreamAsync(_activityId.GetString(), new PartitionKey("ReviewRule-disposable"));
|
|
|
+ if (reviewRuleResponse.Status==200) {
|
|
|
+ ReviewRule reviewRuleDB = JsonDocument.Parse(reviewRuleResponse.Content).RootElement.ToObject<ReviewRule>();
|
|
|
+ var tree = ActivityService.ListToTree(reviewRuleDB.configs);
|
|
|
+ reviewRule=new ReviewRuleTree
|
|
|
+ {
|
|
|
+ name= reviewRuleDB.name,
|
|
|
+ owner= reviewRuleDB.owner,
|
|
|
+ sourceName= reviewRuleDB.sourceName,
|
|
|
+ trees=tree
|
|
|
+ };
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return Ok(new { code = 200, contest, reviewRule });
|
|
|
+ }
|
|
|
}
|
|
|
} catch (Exception ex)
|
|
|
{
|