CrazyIter_Bin 1 år sedan
förälder
incheckning
eb9208adf6

+ 2 - 1
TEAMModelOS.SDK/Models/Cosmos/Common/Activity.cs

@@ -382,7 +382,7 @@ namespace TEAMModelOS.SDK.Models
         public int scoreDetail { get; set; } = 0;
     }
 
-    public class ContestTime 
+    public class ContestUpdate 
     {
         public long? scoreStime { get; set; } = -1;
         public long? scoreEtime { get; set; } = -1;
@@ -392,6 +392,7 @@ namespace TEAMModelOS.SDK.Models
         public long? uploadEtime { get; set; } = -1;
         public long? reviewStime { get; set; } = -1;
         public long? reviewEtime { get; set; } = -1;
+        public List<string> addModules { get; set; } = new List<string>();
 
     }
 

+ 19 - 0
TEAMModelOS.SDK/Models/Cosmos/School/Knowledge.cs

@@ -37,8 +37,27 @@ namespace TEAMModelOS.SDK.Models
         /// 知识块
         /// </summary>
         public List<Block> blocks { get; set; } = new List<Block>();
+        public List<PointNode> nodes { get; set; }= new List<PointNode>();
 
     }
+
+    public class PointNode 
+    { 
+        public string id { get; set; }
+        public string name { get; set; }
+        public string pid { get; set; }
+    }
+    public class PointTree 
+    {
+        public string id { get; set; }
+        public string name { get; set; }
+        public string pid { get; set; }
+        /// <summary>
+        /// 知识点属性结构的子节点
+        /// </summary>
+        public List<PointTree> nodes { get; set; }= new List<PointTree>();
+    }
+
     public class TagOldNew
     {
         [Required(ErrorMessage = "_old 必须设置")]

+ 91 - 37
TEAMModelOS/Controllers/Common/ActivityController.cs

@@ -409,7 +409,7 @@ namespace TEAMModelOS.Controllers
                             {
                                 Contest contest = JsonDocument.Parse(responseContest.Content).RootElement.ToObject<Contest>();
                                 long now = DateTimeOffset.Now.ToUnixTimeMilliseconds();
-                                ContestTime contestTime = new ContestTime() {
+                                ContestUpdate contestUpdate = new ContestUpdate() {
                                     signStime= contest.sign?.stime,
                                     signEtime= contest.sign?.etime,
 
@@ -422,51 +422,57 @@ namespace TEAMModelOS.Controllers
                                     scoreStime= contest.score?.stime,
                                     scoreEtime= contest.score?.etime,
                                 };
+
+
                                 if (_contestUpdate.TryGetProperty("signStime", out JsonElement signStime)  && signStime.ValueKind.Equals(JsonValueKind.Number)) {
-                                    contestTime.signStime=signStime.GetInt64();
+                                    contestUpdate.signStime=signStime.GetInt64();
                                 }
                                 if (_contestUpdate.TryGetProperty("signEtime", out JsonElement signEtime)  && signEtime.ValueKind.Equals(JsonValueKind.Number))
                                 {
-                                    contestTime.signEtime=signEtime.GetInt64();
+                                    contestUpdate.signEtime=signEtime.GetInt64();
                                 }
 
                                 if (_contestUpdate.TryGetProperty("uploadStime", out JsonElement uploadStime)  && uploadStime.ValueKind.Equals(JsonValueKind.Number))
                                 {
-                                    contestTime.uploadStime=uploadStime.GetInt64();
+                                    contestUpdate.uploadStime=uploadStime.GetInt64();
                                 }
                                 if (_contestUpdate.TryGetProperty("uploadEtime", out JsonElement uploadEtime)  && uploadEtime.ValueKind.Equals(JsonValueKind.Number))
                                 {
-                                    contestTime.uploadEtime=uploadEtime.GetInt64();
+                                    contestUpdate.uploadEtime=uploadEtime.GetInt64();
                                 }
 
                                 if (_contestUpdate.TryGetProperty("reviewStime", out JsonElement reviewStime)  && reviewStime.ValueKind.Equals(JsonValueKind.Number))
                                 {
-                                    contestTime.reviewStime=reviewStime.GetInt64();
+                                    contestUpdate.reviewStime=reviewStime.GetInt64();
                                 }
 
                                 if (_contestUpdate.TryGetProperty("reviewEtime", out JsonElement reviewEtime)  && reviewEtime.ValueKind.Equals(JsonValueKind.Number))
                                 {
-                                    contestTime.reviewEtime=reviewEtime.GetInt64();
+                                    contestUpdate.reviewEtime=reviewEtime.GetInt64();
                                 }
 
                                 if (_contestUpdate.TryGetProperty("scoreStime", out JsonElement scoreStime)  && scoreStime.ValueKind.Equals(JsonValueKind.Number))
                                 {
-                                    contestTime.scoreStime=scoreStime.GetInt64();
+                                    contestUpdate.scoreStime=scoreStime.GetInt64();
                                 }
 
                                 if (_contestUpdate.TryGetProperty("scoreEtime", out JsonElement scoreEtime)  && scoreEtime.ValueKind.Equals(JsonValueKind.Number))
                                 {
-                                    contestTime.scoreEtime=scoreEtime.GetInt64();
+                                    contestUpdate.scoreEtime=scoreEtime.GetInt64();
+                                }
+                                if (_contestUpdate.TryGetProperty("addModules", out JsonElement addModules)  && addModules.ValueKind.Equals(JsonValueKind.Array))
+                                {
+                                    contestUpdate.addModules = addModules.ToObject<List<string>>();
                                 }
                                 if (contest.modules.Contains("sign")  && contest.sign!= null    )
                                 {
 
-                                    if (contestTime.signStime.HasValue  &&contestTime.signEtime.HasValue) {
-                                        if (contestTime.reviewStime.HasValue)
+                                    if (contestUpdate.signStime.HasValue  &&contestUpdate.signEtime.HasValue) {
+                                        if (contestUpdate.reviewStime.HasValue)
                                         {
-                                            if (contestTime.signEtime.Value<contestTime.reviewStime.Value)
+                                            if (contestUpdate.signEtime.Value<contestUpdate.reviewStime.Value)
                                             {
-                                                contest.sign.etime=contestTime.signEtime.Value;
+                                                contest.sign.etime=contestUpdate.signEtime.Value;
                                             }
                                             else
                                             {
@@ -475,11 +481,11 @@ namespace TEAMModelOS.Controllers
                                         }
                                         else
                                         {
-                                            contest.sign.etime=contestTime.signEtime.Value;
+                                            contest.sign.etime=contestUpdate.signEtime.Value;
                                         }
-                                        if (contestTime.signEtime.Value> contestTime.signStime.Value)
+                                        if (contestUpdate.signEtime.Value> contestUpdate.signStime.Value)
                                         {
-                                            contest.sign.stime=contestTime.signStime.Value;
+                                            contest.sign.stime=contestUpdate.signStime.Value;
                                         }
                                         else {
                                             return Ok(new { code = 2, msg = "报名开始时间不能早于报名结束时间!" });
@@ -494,13 +500,13 @@ namespace TEAMModelOS.Controllers
                                 if (contest.modules.Contains("upload")  && contest.upload!= null)
                                 {
 
-                                    if (contestTime.uploadStime.HasValue  &&contestTime.uploadEtime.HasValue)
+                                    if (contestUpdate.uploadStime.HasValue  &&contestUpdate.uploadEtime.HasValue)
                                     {
-                                        if (contestTime.reviewStime.HasValue)
+                                        if (contestUpdate.reviewStime.HasValue)
                                         {
-                                            if (contestTime.uploadEtime.Value<contestTime.reviewStime.Value)
+                                            if (contestUpdate.uploadEtime.Value<contestUpdate.reviewStime.Value)
                                             {
-                                                contest.upload.etime=contestTime.uploadEtime.Value;
+                                                contest.upload.etime=contestUpdate.uploadEtime.Value;
                                             }
                                             else
                                             {
@@ -509,11 +515,11 @@ namespace TEAMModelOS.Controllers
                                         }
                                         else
                                         {
-                                            contest.upload.etime=contestTime.uploadEtime.Value;
+                                            contest.upload.etime=contestUpdate.uploadEtime.Value;
                                         }
-                                        if (contestTime.uploadEtime.Value> contestTime.uploadStime.Value)
+                                        if (contestUpdate.uploadEtime.Value> contestUpdate.uploadStime.Value)
                                         {
-                                            contest.upload.stime=contestTime.uploadStime.Value;
+                                            contest.upload.stime=contestUpdate.uploadStime.Value;
                                         }
                                         else
                                         {
@@ -537,13 +543,13 @@ namespace TEAMModelOS.Controllers
                                 if (contest.modules.Contains("review")  && contest.review!= null)
                                 {
 
-                                    if (contestTime.reviewStime.HasValue  &&contestTime.reviewEtime.HasValue)
+                                    if (contestUpdate.reviewStime.HasValue  &&contestUpdate.reviewEtime.HasValue)
                                     {
-                                        if (contestTime.scoreStime.HasValue)
+                                        if (contestUpdate.scoreStime.HasValue)
                                         {
-                                            if (contestTime.reviewEtime.Value<contestTime.scoreStime.Value)
+                                            if (contestUpdate.reviewEtime.Value<contestUpdate.scoreStime.Value)
                                             {
-                                                contest.review.etime=contestTime.reviewEtime.Value;
+                                                contest.review.etime=contestUpdate.reviewEtime.Value;
                                             }
                                             else
                                             {
@@ -552,11 +558,11 @@ namespace TEAMModelOS.Controllers
                                         }
                                         else
                                         {
-                                            contest.review.etime=contestTime.reviewEtime.Value;
+                                            contest.review.etime=contestUpdate.reviewEtime.Value;
                                         }
-                                        if (contestTime.reviewEtime.Value> contestTime.reviewStime.Value)
+                                        if (contestUpdate.reviewEtime.Value> contestUpdate.reviewStime.Value)
                                         {
-                                            contest.review.stime=contestTime.reviewStime.Value;
+                                            contest.review.stime=contestUpdate.reviewStime.Value;
                                         }
                                         else
                                         {
@@ -568,13 +574,13 @@ namespace TEAMModelOS.Controllers
                                 if (contest.modules.Contains("score")  && contest.score!= null)
                                 {
 
-                                    if (contestTime.scoreStime.HasValue  &&contestTime.scoreEtime.HasValue)
+                                    if (contestUpdate.scoreStime.HasValue  &&contestUpdate.scoreEtime.HasValue)
                                     {
-                                        if (contestTime.reviewEtime.HasValue)
+                                        if (contestUpdate.reviewEtime.HasValue)
                                         {
-                                            if (contestTime.reviewEtime.Value<contestTime.scoreStime.Value)
+                                            if (contestUpdate.reviewEtime.Value<contestUpdate.scoreStime.Value)
                                             {
-                                                contest.score.stime=contestTime.scoreStime.Value;
+                                                contest.score.stime=contestUpdate.scoreStime.Value;
                                             }
                                             else
                                             {
@@ -583,11 +589,11 @@ namespace TEAMModelOS.Controllers
                                         }
                                         else
                                         {
-                                            contest.score.stime=contestTime.scoreStime.Value;
+                                            contest.score.stime=contestUpdate.scoreStime.Value;
                                         }
-                                        if (contestTime.scoreEtime.Value> contestTime.scoreStime.Value)
+                                        if (contestUpdate.scoreEtime.Value> contestUpdate.scoreStime.Value)
                                         {
-                                            contest.score.etime=contestTime.scoreEtime.Value;
+                                            contest.score.etime=contestUpdate.scoreEtime.Value;
                                         }
                                         else
                                         {
@@ -595,6 +601,54 @@ namespace TEAMModelOS.Controllers
                                         }
                                     }
                                 }
+                                else {
+                                    //增加公示成绩模块
+                                    if (contestUpdate.addModules.Contains("score") ) 
+                                    {
+                                        if (contestUpdate.scoreStime.HasValue  &&contestUpdate.scoreEtime.HasValue) 
+                                        {
+                                            if (!contest.modules.Contains("score"))
+                                            {
+                                                contest.modules.Add("score");
+                                            }
+                                            if (contest.score==null)
+                                            {
+                                                contest.score= new ContestScore
+                                                {
+                                                    scoreStatus=0,
+                                                    showType=0,
+                                                    showDetail=0,
+                                                    levelType=0,
+                                                    top=-1
+                                                };
+                                            }
+                                            if (contestUpdate.reviewEtime.HasValue)
+                                            {
+                                                if (contestUpdate.reviewEtime.Value<contestUpdate.scoreStime.Value)
+                                                {
+                                                    contest.score.stime=contestUpdate.scoreStime.Value;
+                                                }
+                                                else
+                                                {
+                                                    return Ok(new { code = 7, msg = "成绩公布开始时间不能早于评审结束时间!" });
+                                                }
+                                            }
+                                            else
+                                            {
+                                                contest.score.stime=contestUpdate.scoreStime.Value;
+                                            }
+                                            if (contestUpdate.scoreEtime.Value> contestUpdate.scoreStime.Value)
+                                            {
+                                                contest.score.etime=contestUpdate.scoreEtime.Value;
+                                            }
+                                            else
+                                            {
+                                                return Ok(new { code = 8, msg = "成绩公布结束时间不能晚于成绩公布开始时间!" });
+                                            }
+                                        }
+                                    }
+                                }
+
                                 await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.Common).UpsertItemAsync(contest, new PartitionKey("Contest"));
                                 return Ok(new { code = 200, contest });
                             }