CrazyIter_Bin 1 year ago
parent
commit
aafcdec24b

+ 24 - 4
TEAMModelOS.SDK/Models/Cosmos/Common/Activity.cs

@@ -90,9 +90,7 @@ namespace TEAMModelOS.SDK.Models
         public int publish { get; set; }
         public string sas { get; set; }
     }
-    public class TeacherActivityDto : Activity
-    {
-    }
+   
 
     public class ActivityWebsite : CosmosEntity {
         // id(区级id,校级id)
@@ -548,15 +546,37 @@ namespace TEAMModelOS.SDK.Models
         /// </summary>
         public string period { get; set; }
     }
+    public class TeacherActivityDto : Activity
+    {
+        /// <summary>
+        /// 0未报名,1已报名
+        /// </summary>
+        public int contestSign { get; set; } = 0;
+        /// <summary>
+        /// 参赛模式 0 个人,1 团队(是否允许跨校)
+        /// </summary>
+        public string contestType {  get; set; }
+        /// <summary>
+        /// 报名时间
+        /// </summary>
+        public long signTime { get; set; } = -1;
+        /// <summary>
+        /// 0未提交,1 已提交
+        /// </summary>
+        public int contestUpload { get; set; }
+        public string uploadType {  get; set; }
+        public long uploadTime { get; set; } = -1;
+    }
 
     public class ActivityEnroll  :CosmosEntity {
         //id  教师id,
         //code ActivityEnroll-ActivityId
         //pk ActivityEnroll
-        //Contest/赛课活动",  "Training/线上培训", "Research/教研活动
         public string school { get; set; }
         public EnrollContest contest { get; set; }
         public EnrollUpload upload { get; set; }
+
+        public string activityId {  get; set; }
     }
 
     public class EnrollContest

+ 25 - 0
TEAMModelOS/Controllers/Common/ActivityController.cs

@@ -367,7 +367,10 @@ namespace TEAMModelOS.Controllers
         [ProducesDefaultResponseType]
         [AuthToken(Roles = "teacher,admin,area")]
         [HttpPost("manage")]
+#if !DEBUG
         [Authorize(Roles = "IES")]
+#endif
+
         public async Task<IActionResult> Manage(JsonElement request)
         {
             try
@@ -1363,6 +1366,28 @@ namespace TEAMModelOS.Controllers
                 var (blob_uri, blob_sas) = _azureStorage.GetBlobContainerSAS(z.owner, BlobContainerSasPermissions.Read | BlobContainerSasPermissions.List);
                 z.sas=blob_sas;
             });
+            if (activities.IsNotEmpty()) {
+                string sql = $"select value c from c where c.pk='ActivityEnroll' and contains(c.code,'ActivityEnroll-') and c.id='{tmdid}' and  c.activityId in ({string.Join(",",activities.Select(z=>$"'{z.id}'"))})";
+                var resultEnroll = await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.Teacher).GetList<ActivityEnroll>(sql);
+                foreach (var enroll in resultEnroll.list) 
+                {
+                    var activityDto = activities.Find(z => z.id.Equals(enroll.activityId));
+                    if (activityDto!=null) {
+                        if (enroll.contest!=null  && !string.IsNullOrWhiteSpace(enroll.contest.type)  ) {
+                            activityDto.contestSign=1;
+                            activityDto.signTime=enroll.contest.enrollTime;
+                            activityDto.contestType=enroll.contest.type;
+                          
+                        }
+                        if (enroll.upload!=null  && (enroll.upload.files.IsNotEmpty()  ||  enroll.upload.sokrates.IsNotEmpty()))
+                        {
+                            activityDto.contestUpload=1;
+                            activityDto.uploadTime=enroll.upload.uploadTime;
+                            activityDto.uploadType=enroll.upload.type;
+                        }
+                    }
+                }
+            }
             return activities;
         }