zhouj1203@hotmail.com 1 yıl önce
ebeveyn
işleme
3eafcaf885

+ 2 - 2
TEAMModelOS.FunctionV4/CosmosDB/TriggerArt.cs

@@ -112,8 +112,6 @@ namespace TEAMModelOS.FunctionV4.CosmosDB
                             }
                             break;
                         case "going":
-                            string pkey = string.Format("{0}{1}{2}", art.code, "-", "pending");
-                            await table.DeleteSingle<ChangeRecord>(pkey, tdata.id);
                             /*
                              if (art.classes.Count > 0)
                             {
@@ -218,6 +216,8 @@ namespace TEAMModelOS.FunctionV4.CosmosDB
 
 
                            }*/
+                            string pkey = string.Format("{0}{1}{2}", art.code, "-", "pending");
+                            await table.DeleteSingle<ChangeRecord>(pkey, tdata.id);
                             var messageVoteEnd = new ServiceBusMessage(new { tdata.id, progress = "finish", tdata.code }.ToJsonString());
                             messageVoteEnd.ApplicationProperties.Add("name", "Art");
                             if (voteRecords.Count > 0)

+ 35 - 32
TEAMModelOS.FunctionV4/CosmosDB/TriggerExam.cs

@@ -160,10 +160,6 @@ namespace TEAMModelOS.FunctionV4
 
                             try
                             {
-
-                                //新增serviceBus 消息释放后处理table
-                                string pkey = string.Format("{0}{1}{2}", info.code, "-", "pending");
-                                await table.DeleteSingle<ChangeRecord>(pkey, data.id);
                                 //向学生或醍摩豆账号发起通知
                                 #region
                                 //Notice notice = new Notice()
@@ -396,43 +392,45 @@ namespace TEAMModelOS.FunctionV4
                             }
                             finally
                             {
-                                // 发送信息通知
-                                var messageEnd = new ServiceBusMessage(new { id = data.id, progress = "finish", code = data.code }.ToJsonString());
-                                messageEnd.ApplicationProperties.Add("name", "Exam");
-                                if (records.Count > 0)
-                                {
-                                    long end = await _serviceBus.GetServiceBusClient().SendScheduleMessageAsync(Environment.GetEnvironmentVariable("Azure:ServiceBus:ActiveTask"), messageEnd, DateTimeOffset.FromUnixTimeMilliseconds(data.endTime));
-                                    try
+                                try {
+                                    //新增serviceBus 消息释放后处理table
+                                    string pkey = string.Format("{0}{1}{2}", info.code, "-", "pending");
+                                    await table.DeleteSingle<ChangeRecord>(pkey, data.id);
+                                    // 发送信息通知
+                                    var messageEnd = new ServiceBusMessage(new { id = data.id, progress = "finish", code = data.code }.ToJsonString());
+                                    messageEnd.ApplicationProperties.Add("name", "Exam");
+                                    if (records.Count > 0)
                                     {
+                                        long end = await _serviceBus.GetServiceBusClient().SendScheduleMessageAsync(Environment.GetEnvironmentVariable("Azure:ServiceBus:ActiveTask"), messageEnd, DateTimeOffset.FromUnixTimeMilliseconds(data.endTime));
+
                                         await _serviceBus.GetServiceBusClient().CancelMessageAsync(Environment.GetEnvironmentVariable("Azure:ServiceBus:ActiveTask"), records[0].sequenceNumber);
+
+                                        records[0].sequenceNumber = end;
+                                        await table.SaveOrUpdate<ChangeRecord>(records[0]);
+                                        //await client.GetContainer(Constant.TEAMModelOS, "Common").ReplaceItemAsync(record, record.id, new Azure.Cosmos.PartitionKey($"{record.code}"));
                                     }
-                                    catch (Exception)
+                                    else
                                     {
+                                        long end = await _serviceBus.GetServiceBusClient().SendScheduleMessageAsync(Environment.GetEnvironmentVariable("Azure:ServiceBus:ActiveTask"), messageEnd, DateTimeOffset.FromUnixTimeMilliseconds(data.endTime));
+                                        //string pk = String.Format("{0}{1}{2}", info.code, "-", "going");
+                                        ChangeRecord changeRecord = new ChangeRecord
+                                        {
+                                            RowKey = data.id,
+                                            PartitionKey = PartitionKey,
+                                            sequenceNumber = end,
+                                            msgId = messageEnd.MessageId
+                                        };
+                                        await table.Save<ChangeRecord>(changeRecord);
+                                        //await client.GetContainer(Constant.TEAMModelOS, "Common").CreateItemAsync(changeRecord, new Azure.Cosmos.PartitionKey($"{changeRecord.code}"));
                                     }
-                                    records[0].sequenceNumber = end;
-                                    await table.SaveOrUpdate<ChangeRecord>(records[0]);
-                                    //await client.GetContainer(Constant.TEAMModelOS, "Common").ReplaceItemAsync(record, record.id, new Azure.Cosmos.PartitionKey($"{record.code}"));
-                                }
-                                else
-                                {
-                                    long end = await _serviceBus.GetServiceBusClient().SendScheduleMessageAsync(Environment.GetEnvironmentVariable("Azure:ServiceBus:ActiveTask"), messageEnd, DateTimeOffset.FromUnixTimeMilliseconds(data.endTime));
-                                    //string pk = String.Format("{0}{1}{2}", info.code, "-", "going");
-                                    ChangeRecord changeRecord = new ChangeRecord
-                                    {
-                                        RowKey = data.id,
-                                        PartitionKey = PartitionKey,
-                                        sequenceNumber = end,
-                                        msgId = messageEnd.MessageId
-                                    };
-                                    await table.Save<ChangeRecord>(changeRecord);
-                                    //await client.GetContainer(Constant.TEAMModelOS, "Common").CreateItemAsync(changeRecord, new Azure.Cosmos.PartitionKey($"{changeRecord.code}"));
+                                } catch (Exception e) {
+                                    await _dingDing.SendBotMsg($"{Environment.GetEnvironmentVariable("Option:Location")}-{info.id}-ChangeRecord{e.Message}\n{e.StackTrace}\n", GroupNames.醍摩豆服務運維群組);
                                 }
+                                
                             }
                             break;
                         case "finish":
-                            //新增serviceBus 消息释放后处理table
-                            string pk = string.Format("{0}{1}{2}", info.code, "-", "going");
-                            await table.DeleteSingle<ChangeRecord>(pk, data.id);
+                            
                             int fno = 0;
                             try
                             {
@@ -553,6 +551,11 @@ namespace TEAMModelOS.FunctionV4
                             {
                                 await _dingDing.SendBotMsg($"{Environment.GetEnvironmentVariable("Option:Location")}-{info.id}-评测finish状态异常{e.Message}\n{e.StackTrace}\n", GroupNames.醍摩豆服務運維群組);
                             }
+                            finally {
+                                //新增serviceBus 消息释放后处理table
+                                string pk = string.Format("{0}{1}{2}", info.code, "-", "going");
+                                await table.DeleteSingle<ChangeRecord>(pk, data.id);
+                            }
                             break;
                     }
                 }

+ 6 - 4
TEAMModelOS.SDK/Models/Service/Third/ThirdService.cs

@@ -858,19 +858,20 @@ namespace TEAMModelOS.SDK.Models
                 }
                 var period = sc.period.Where(x => x.id.Equals(info.period.id)).FirstOrDefault();
                 var pType = sc.period.FirstOrDefault(c => c.id.Equals(info.period.id)).periodType;
-                int pcount = (int)(sc.period.Where(c => c.periodType.Equals("primary")).FirstOrDefault()?.grades.Count);
-                int jcount = (int)(sc.period.Where(c => c.periodType.Equals("junior")).FirstOrDefault()?.grades.Count);
+                //int pcount = (int)(sc.period.Where(c => c.periodType.Equals("primary")).FirstOrDefault()?.grades.Count);
+                //int jcount = (int)(sc.period.Where(c => c.periodType.Equals("junior")).FirstOrDefault()?.grades.Count);
                 if (pType.Equals("primary"))
                 {
                     grade = (int.Parse(info.grades.FirstOrDefault().id) + 1).ToString();
                 }
                 else if (pType.Equals("junior"))
                 {
-                    grade = (int.Parse(info.grades.FirstOrDefault().id) + 1 + pcount).ToString();
+                   
+                    grade = (int.Parse(info.grades.FirstOrDefault().id) + 7).ToString();
                 }
                 else
                 {
-                    grade = (int.Parse(info.grades.FirstOrDefault().id) + 1 + pcount + jcount).ToString();
+                    grade = (int.Parse(info.grades.FirstOrDefault().id) + 10).ToString();
                 }
                 return (grade, period);
             }
@@ -949,6 +950,7 @@ namespace TEAMModelOS.SDK.Models
                 {
                     CharSet = "UTF-8"
                 };
+                httpClient.Timeout = new TimeSpan(0,0,10);
                 request.Content.Headers.ContentType = mediaTypeHeader;
                 HttpResponseMessage response = await _httpClient.CreateClient().SendAsync(request);
                 if (response.StatusCode.Equals(HttpStatusCode.OK)) {