CrazyIter_Bin 1 年之前
父節點
當前提交
9760f174dd

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

@@ -692,7 +692,7 @@ namespace TEAMModelOS.SDK.Models
         public string expertId { get; set; }
         public string periodSubjectKey { get; set; }
         /// <summary>
-        /// 0,未匹配,1已经匹配,2,3,4
+        /// 0,未匹配,1已经匹配,2学段未选择,3学科未选择,4 学段或学科未选择
         /// </summary>
         public int available { get; set; }
         /// <summary>

+ 88 - 9
TEAMModelOS.SDK/Models/Service/Common/ActivityService.cs

@@ -5,6 +5,7 @@ using DocumentFormat.OpenXml.Drawing;
 using DocumentFormat.OpenXml.Drawing.Charts;
 using DocumentFormat.OpenXml.Math;
 using DocumentFormat.OpenXml.Spreadsheet;
+using DocumentFormat.OpenXml.Wordprocessing;
 using HTEXLib.COMM.Helpers;
 using System;
 using System.Collections.Generic;
@@ -30,12 +31,12 @@ namespace TEAMModelOS.SDK
         /// <param name="activity"></param>
         /// <returns></returns>
 
-        public static async Task<(List<ExpertContestTaskDto> expertContestTasks, List<(ActivityEnroll enroll, int Invalid)> activityEnrollsInvalid, List<ExpertContestTaskDto> expertContestTasksDB)> AllocationTask(AzureCosmosFactory _azureCosmos, IEnumerable<ExpertPeriodSubjectDto> experts, Contest activity,HashSet<string> periodSubjectKeys,string distribute, int taskCount)
+        public static async Task<(List<ExpertContestTaskDto> expertContestTasks, List<ExpertContestTaskDto   > activityEnrollsInvalid, List<ExpertContestTaskDto> expertContestTasksDB)> AllocationTask(AzureCosmosFactory _azureCosmos, IEnumerable<ExpertPeriodSubjectDto> experts, Contest activity,HashSet<string> periodSubjectKeys,string distribute, int taskCount)
         {
             //检查报名,学段和科目是否匹配
             string enrollSQL = "select value  c from c where c.pk='ActivityEnroll'";
             var resultActivityEnroll=  await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.Teacher).GetList<ActivityEnroll>(enrollSQL, $"ActivityEnroll-{activity.id}");
-            List<(ActivityEnroll enroll , int Invalid)> activityEnrollsInvalid = new List<(ActivityEnroll enroll, int Invalid)>();
+            List<ExpertContestTaskDto  > activityEnrollsInvalid = new List<ExpertContestTaskDto>();
             Dictionary<string, List<ActivityEnroll>>  uploads = new  Dictionary<string, List<ActivityEnroll>>();
             foreach (ActivityEnroll enroll in resultActivityEnroll.list) 
             {
@@ -48,8 +49,36 @@ namespace TEAMModelOS.SDK
                         periodSubjectKey = $"{period.val}-";
                     }
                     else {
+                        int count = 0;
+                        if (enroll.upload!=null  && enroll.upload.sokrates.IsNotEmpty())
+                        {
+                            count += enroll.upload.sokrates.Count;
+                        }
+                        if (enroll.upload != null && enroll.upload.files.IsNotEmpty())
+                        {
+                            count += enroll.upload.files.Count;
+                        }
                         //学段学科不匹配
-                        activityEnrollsInvalid.Add((enroll, 1));
+                        var  invalidTask = new ExpertContestTaskDto
+                        {
+                            uploadId = enroll.upload?.uploadId,
+                            name = $"{enroll?.schoolName}-{enroll?.tmdName}",
+                            uploadTypes = new List<string> { enroll?.upload.type },
+                            count = count,
+                            cipher = enroll.contest?.cipher,
+                            type = enroll.contest != null ? enroll.contest.type : 0,
+                            leader = enroll.contest != null ? enroll.contest.type : 0,
+                            tmdid = enroll.id,
+                            status = -1,
+                            score = -1,
+                            //detailScore=new List<RuleConfig>()
+                            members = new List<IdNameCode>(),
+                            periodSubjectKey = periodSubjectKey,
+                            period = period?.val,
+                            subject =null,
+                            available=2
+                        };
+                        activityEnrollsInvalid.Add(invalidTask);
                         break;
                     }
                 }
@@ -61,9 +90,34 @@ namespace TEAMModelOS.SDK
                         periodSubjectKey = $"-{subject.val}";
                     }
                     else {
-                      
+                        int count = 0;
+                        if (enroll.upload != null && enroll.upload.sokrates.IsNotEmpty())
+                        {
+                            count += enroll.upload.sokrates.Count;
+                        }
+                        if (enroll.upload != null && enroll.upload.files.IsNotEmpty())
+                        {
+                            count += enroll.upload.files.Count;
+                        }
                         //学段学科不匹配
-                        activityEnrollsInvalid.Add((enroll, 1));
+                        var invalidTask = new ExpertContestTaskDto
+                        {
+                            uploadId = enroll.upload?.uploadId,
+                            name = $"{enroll?.schoolName}-{enroll?.tmdName}",
+                            uploadTypes = new List<string> { enroll?.upload.type },
+                            count = count,
+                            cipher = enroll.contest?.cipher,
+                            type = enroll.contest != null ? enroll.contest.type : 0,
+                            leader = enroll.contest != null ? enroll.contest.type : 0,
+                            tmdid = enroll.id,
+                            status = -1,
+                            score = -1,
+                            members = new List<IdNameCode>(),
+                            periodSubjectKey = periodSubjectKey,
+                            period = null,
+                            subject = subject?.val,
+                            available = 3
+                        }; activityEnrollsInvalid.Add(invalidTask);
                         break;
                     }
                 }
@@ -76,9 +130,34 @@ namespace TEAMModelOS.SDK
                         periodSubjectKey = $"{period.val}-{subject.val}";
                     }
                     else {
-                       
+                        int count = 0;
+                        if (enroll.upload != null && enroll.upload.sokrates.IsNotEmpty())
+                        {
+                            count += enroll.upload.sokrates.Count;
+                        }
+                        if (enroll.upload != null && enroll.upload.files.IsNotEmpty())
+                        {
+                            count += enroll.upload.files.Count;
+                        }
                         //学段学科不匹配
-                        activityEnrollsInvalid.Add((enroll, 1));
+                        var invalidTask = new ExpertContestTaskDto
+                        {
+                            uploadId = enroll.upload?.uploadId,
+                            name = $"{enroll?.schoolName}-{enroll?.tmdName}",
+                            uploadTypes = new List<string> { enroll?.upload.type },
+                            count = count,
+                            cipher = enroll.contest?.cipher,
+                            type = enroll.contest != null ? enroll.contest.type : 0,
+                            leader = enroll.contest != null ? enroll.contest.type : 0,
+                            tmdid = enroll.id,
+                            status = -1,
+                            score = -1,
+                            members = new List<IdNameCode>(),
+                            periodSubjectKey = periodSubjectKey,
+                            period = period?.val,
+                            subject = subject?.val,
+                            available = 3
+                        }; activityEnrollsInvalid.Add(invalidTask);
                         break;
                     }
                 }
@@ -105,12 +184,12 @@ namespace TEAMModelOS.SDK
                     }
                     else {
                         //未上传作品
-                        activityEnrollsInvalid.Add((enroll, 2));
+                        //activityEnrollsInvalid.Add((enroll, 2));
                     }
                 }
                 else {
                     //学段学科不匹配
-                    activityEnrollsInvalid.Add((enroll, 1));
+                    //activityEnrollsInvalid.Add((enroll, 1));
                 }
             }
             List<ExpertContestTaskDto> expertContestTasks = new List<ExpertContestTaskDto>();

+ 9 - 6
TEAMModelOS/Controllers/Common/ActivityController.cs

@@ -1766,7 +1766,7 @@ namespace TEAMModelOS.Controllers
                                                             else {
                                                                 allocationTaskKey = string.Empty;
                                                             }
-                                                            return Ok(new { taskKey= allocationTaskKey, code = 200, tasksDb= allocationResult.expertContestTasksDB, tasksAdd = allocationResult.expertContestTasks, invalid = allocationResult.activityEnrollsInvalid.Select(z => new { invalidCode = z.Invalid, enroll = z.enroll }) });
+                                                            return Ok(new { taskKey= allocationTaskKey, code = 200, tasksDb= allocationResult.expertContestTasksDB, tasksAdd = allocationResult.expertContestTasks, invalid = allocationResult.activityEnrollsInvalid });
                                                         }
                                                     }
                                                 case "subject":
@@ -1805,7 +1805,7 @@ namespace TEAMModelOS.Controllers
                                                             {
                                                                 allocationTaskKey = string.Empty;
                                                             }
-                                                            return Ok(new { taskKey = allocationTaskKey, code = 200, tasksDb = allocationResult.expertContestTasksDB, tasksAdd = allocationResult.expertContestTasks, invalid = allocationResult.activityEnrollsInvalid.Select(z => new { invalidCode = z.Invalid, enroll = z.enroll }) });
+                                                            return Ok(new { taskKey = allocationTaskKey, code = 200, tasksDb = allocationResult.expertContestTasksDB, tasksAdd = allocationResult.expertContestTasks, invalid = allocationResult.activityEnrollsInvalid });
                                                         }
                                                     }
 
@@ -1851,7 +1851,7 @@ namespace TEAMModelOS.Controllers
                                                             {
                                                                 allocationTaskKey = string.Empty;
                                                             }
-                                                            return Ok(new { taskKey = allocationTaskKey, code = 200, tasksDb = allocationResult.expertContestTasksDB, tasksAdd = allocationResult.expertContestTasks, invalid = allocationResult.activityEnrollsInvalid.Select(z => new { invalidCode = z.Invalid, enroll = z.enroll }) });
+                                                            return Ok(new { taskKey = allocationTaskKey, code = 200, tasksDb = allocationResult.expertContestTasksDB, tasksAdd = allocationResult.expertContestTasks, invalid = allocationResult.activityEnrollsInvalid });
 
                                                         }
                                                     }
@@ -1870,7 +1870,7 @@ namespace TEAMModelOS.Controllers
                                                             {
                                                                 allocationTaskKey = string.Empty;
                                                             }
-                                                            return Ok(new { taskKey = allocationTaskKey, code = 200, tasksDb = allocationResult.expertContestTasksDB, tasksAdd = allocationResult.expertContestTasks, invalid = allocationResult.activityEnrollsInvalid.Select(z => new { invalidCode = z.Invalid, enroll = z.enroll }) });
+                                                            return Ok(new { taskKey = allocationTaskKey, code = 200, tasksDb = allocationResult.expertContestTasksDB, tasksAdd = allocationResult.expertContestTasks, invalid = allocationResult.activityEnrollsInvalid });
                                                         }
                                                         else
                                                         {
@@ -2099,6 +2099,7 @@ namespace TEAMModelOS.Controllers
             string sql = $"select value c from c where c.route='{_route}'";
             var result = await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.Normal).GetList<ActivityWebsiteDto>(sql, "ActivityWebsite");
             ActivityWebsiteDto website = null;
+           
             if (result.list.Count>1)
             {
                 return Ok(new { code = 1, msg = "路由匹配多个区校" });
@@ -2132,8 +2133,10 @@ namespace TEAMModelOS.Controllers
                 {
                     cnt="02944f32-f534-3397-ea56-e6f1fc6c3714";
                 }
-                website.sas= _azureStorage.GetBlobContainerSAS(cnt, BlobContainerSasPermissions.Read).sas;
-                return Ok(new { code = 200, website, websites });
+                var blob = _azureStorage.GetBlobContainerSAS(cnt, BlobContainerSasPermissions.Read);
+                website.sas= blob.sas;
+                string blobUrl = blob.uri;
+                return Ok(new { code = 200, website, websites , blobUrl });
             }
             else
             {