CrazyIter_Bin 1 年間 前
コミット
8f7ae8ddc9

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

@@ -761,7 +761,8 @@ namespace TEAMModelOS.SDK.Models
         /// 组队口令
         /// </summary>
         public string teamCipherContest { get; set; }
-        public int reviewAssignCount { get; set; }
+        public int reviewContestAssignCount { get; set; }
+        public List<IdNameCode> reviewContestExperts { get; set; } = new List<IdNameCode>();
     }
 
     /// <summary>

+ 35 - 3
TEAMModelOS/Controllers/Common/ActivityController.cs

@@ -931,7 +931,11 @@ namespace TEAMModelOS.Controllers
                                                 owner= reviewRuleDB.owner,
                                                 sourceName= reviewRuleDB.sourceName,
                                                 trees=tree,
-                                                desc=reviewRuleDB.desc
+                                                desc=reviewRuleDB.desc,
+                                                scoreDetail=reviewRuleDB.scoreDetail,
+                                                scoreRule=reviewRuleDB.scoreRule,
+                                                distribute=reviewRuleDB.distribute,
+                                                taskCount=reviewRuleDB.taskCount,
                                             };
                                         }
                                     }
@@ -961,7 +965,7 @@ namespace TEAMModelOS.Controllers
                                     if (reviewRuleResponse.Status==200) {
                                         ReviewRule reviewRuleDB = JsonDocument.Parse(reviewRuleResponse.Content).RootElement.ToObject<ReviewRule>();
                                         var tree = ActivityService.ListToTree(reviewRuleDB.configs);
-                                        reviewRule=new ReviewRuleTree
+                                        reviewRule= new ReviewRuleTree
                                         {
                                             id=reviewRuleDB.id,
                                             name= reviewRuleDB.name,
@@ -1368,6 +1372,30 @@ namespace TEAMModelOS.Controllers
                                         inviteEnrollTeacher.uploadContestScore=activityEnroll.upload.score;
                                     }
                                 }
+                                //进入评审环节
+                                if (contest.review!= null  && now > contest.review.stime) 
+                                {
+                                    HashSet<string> uploadContestIds =  inviteEnrollTeachers.Where(x => !string.IsNullOrWhiteSpace(x.uploadContestId)).Select(z => z.uploadContestId).ToHashSet();
+                                    if (uploadContestIds!= null && uploadContestIds.Count>0) 
+                                    {
+                                       // List<ActivityExpertTask> expertTasks = new List<ActivityExpertTask>();
+                                        string taskSQL = $"select distinct value c from c  join s in c.contestTasks  where c.pk='ActivityExpertTask' and s.uploadId in ({string.Join(",", uploadContestIds.Select(z => $"'{z}'"))})";
+                                        List<ExpertContestTaskDto> worksDB = new List<ExpertContestTaskDto>();
+                                        var result = await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.Teacher).GetList<ActivityExpertTask>(taskSQL, $"ActivityExpertTask-{_activityId}");
+                                        if (result.list.IsNotEmpty())
+                                        {
+                                            foreach (var item in result.list) 
+                                            {
+                                                foreach (var task in item.contestTasks) {
+                                                    var  teachers = inviteEnrollTeachers.FindAll(z => z.uploadContestId.Equals(task.uploadId));
+                                                    if (teachers!=null) {
+                                                        teachers.ForEach(z => { z.reviewContestAssignCount+=1; z.reviewContestExperts.Add(new IdNameCode { id= item.id, }); });
+                                                    }
+                                                }
+                                            }
+                                        }
+                                    }
+                                }
                                 return Ok(new {code=200, inviteEnrollTeachers });
                             }
                             else
@@ -2245,7 +2273,11 @@ namespace TEAMModelOS.Controllers
                                 owner= reviewRuleDB.owner,
                                 sourceName= reviewRuleDB.sourceName,
                                 trees=tree,
-                                desc=reviewRuleDB.desc
+                                desc=reviewRuleDB.desc,
+                                scoreDetail=reviewRuleDB.scoreDetail,
+                                scoreRule=reviewRuleDB.scoreRule,
+                                distribute=reviewRuleDB.distribute,
+                                taskCount=reviewRuleDB.taskCount,
                             };
                         }
                     }