zhouj1203@hotmail.com 1 gadu atpakaļ
vecāks
revīzija
15637438bc

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

@@ -251,10 +251,10 @@ namespace TEAMModelOS.FunctionV4.CosmosDB
                             {
                                 await _dingDing.SendBotMsg($"{Environment.GetEnvironmentVariable("Option:Location")}-艺术评测going{e.Message}\n{e.StackTrace}", GroupNames.醍摩豆服務運維群組);
                             }
-                           /* finally {
+                            finally {
                                 string pkey = string.Format("{0}{1}{2}", art.code, "-", "pending");
                                 await table.DeleteSingle<ChangeRecord>(pkey, tdata.id);
-                            }*/
+                            }
                             
 
                             break;
@@ -797,11 +797,11 @@ namespace TEAMModelOS.FunctionV4.CosmosDB
                             } catch (Exception e) {
                                 await _dingDing.SendBotMsg($"{Environment.GetEnvironmentVariable("Option:Location")}-艺术评测finish{e.Message}\n{e.StackTrace}", GroupNames.醍摩豆服務運維群組);
                             }
-                           /* finally
+                            finally
                             {
                                 string pk = string.Format("{0}{1}{2}", art.code, "-", "going");
                                 await table.DeleteSingle<ChangeRecord>(pk, tdata.id);
-                            }*/
+                            }
                             
 
                             break;

+ 4 - 4
TEAMModelOS.FunctionV4/CosmosDB/TriggerExam.cs

@@ -393,9 +393,9 @@ namespace TEAMModelOS.FunctionV4
                             finally
                             {
                                 try {
-                                    /*//新增serviceBus 消息释放后处理table
+                                    //新增serviceBus 消息释放后处理table
                                     string pkey = string.Format("{0}{1}{2}", info.code, "-", "pending");
-                                    await table.DeleteSingle<ChangeRecord>(pkey, data.id);*/
+                                    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");
@@ -551,11 +551,11 @@ namespace TEAMModelOS.FunctionV4
                             {
                                 await _dingDing.SendBotMsg($"{Environment.GetEnvironmentVariable("Option:Location")}-{info.id}-评测finish状态异常{e.Message}\n{e.StackTrace}\n", GroupNames.醍摩豆服務運維群組);
                             }
-                           /* finally {
+                            finally {
                                 //新增serviceBus 消息释放后处理table
                                 string pk = string.Format("{0}{1}{2}", info.code, "-", "going");
                                 await table.DeleteSingle<ChangeRecord>(pk, data.id);
-                            }*/
+                            }
                             break;
                     }
                 }

+ 4 - 4
TEAMModelOS.FunctionV4/CosmosDB/TriggerHomework.cs

@@ -135,10 +135,10 @@ namespace TEAMModelOS.FunctionV4
                             } catch (Exception e) {
                                 await _dingDing.SendBotMsg($"{Environment.GetEnvironmentVariable("Option:Location")}研修作业活动going{e.Message}\n{e.StackTrace}", GroupNames.醍摩豆服務運維群組);
                             }
-                            /*finally {
+                            finally {
                                 string pkey = string.Format("{0}{1}{2}", work.code, "-", "pending");
                                 await table.DeleteSingle<ChangeRecord>(pkey, tdata.id);
-                            }*/
+                            }
                             
                             
                             //if (bustasks.IsNotEmpty())
@@ -172,10 +172,10 @@ namespace TEAMModelOS.FunctionV4
                             } catch (Exception e) {
                                 await _dingDing.SendBotMsg($"{Environment.GetEnvironmentVariable("Option:Location")}研修作业活动finish{e.Message}\n{e.StackTrace}", GroupNames.醍摩豆服務運維群組);
 
-                            } /*finally {
+                            } finally {
                                 string pk = string.Format("{0}{1}{2}", work.code, "-", "going");
                                 await table.DeleteSingle<ChangeRecord>(pk, tdata.id);
-                            }*/
+                            }
                             
                                                 
                             break;

+ 4 - 4
TEAMModelOS.FunctionV4/CosmosDB/TriggerStudy.cs

@@ -222,10 +222,10 @@ namespace TEAMModelOS.FunctionV4
                             {
                                 await _dingDing.SendBotMsg($"{Environment.GetEnvironmentVariable("Option:Location")}研修活动异常-going {ex.Message}\n{ex.StackTrace}{tdata.ToJsonString()}{input}", GroupNames.醍摩豆服務運維群組);
                             }
-                            /*finally {
+                            finally {
                                 string pk = string.Format("{0}{1}{2}", study.code, "-", "pending");
                                 await table.DeleteSingle<ChangeRecord>(pk, tdata.id);
-                            }*/
+                            }
                            
                             break;
                         case "finish":
@@ -257,10 +257,10 @@ namespace TEAMModelOS.FunctionV4
                             {
                                 await _dingDing.SendBotMsg($"{Environment.GetEnvironmentVariable("Option:Location")}研修活动异常-finish {e.Message}\n{e.StackTrace}{tdata.ToJsonString()}{input}", GroupNames.醍摩豆服務運維群組);
                             }
-                           /* finally {
+                            finally {
                                 string pk = string.Format("{0}{1}{2}", study.code, "-", "going");
                                 await table.DeleteSingle<ChangeRecord>(pk, tdata.id);
-                            }*/
+                            }
                             break;
                     }
                 }

+ 4 - 4
TEAMModelOS.FunctionV4/CosmosDB/TriggerSurvey.cs

@@ -300,8 +300,8 @@ namespace TEAMModelOS.FunctionV4
 #endif                           
                             var messageSurveyEnd = new ServiceBusMessage(new { id = tdata.id, progress = "finish", code = tdata.code }.ToJsonString());
                             messageSurveyEnd.ApplicationProperties.Add("name", "Survey");
-                           /* string pkey = string.Format("{0}{1}{2}", survey.code, "-", "pending");
-                            await table.DeleteSingle<ChangeRecord>(pkey, tdata.id);*/
+                            string pkey = string.Format("{0}{1}{2}", survey.code, "-", "pending");
+                            await table.DeleteSingle<ChangeRecord>(pkey, tdata.id);
                             if (changeRecords.Count > 0)
                             {
                                 long end = await _serviceBus.GetServiceBusClient().SendScheduleMessageAsync(Environment.GetEnvironmentVariable("Azure:ServiceBus:ActiveTask"), messageSurveyEnd, DateTimeOffset.FromUnixTimeMilliseconds(tdata.endTime));
@@ -475,8 +475,8 @@ namespace TEAMModelOS.FunctionV4
                                 _azureRedis.GetRedisClient(8).KeyDelete($"Survey:Submit:{survey.id}");
                                 break;
                             }
-                            /*string pk = string.Format("{0}{1}{2}", survey.code, "-", "going");
-                            await table.DeleteSingle<ChangeRecord>(pk, tdata.id);*/
+                            string pk = string.Format("{0}{1}{2}", survey.code, "-", "going");
+                            await table.DeleteSingle<ChangeRecord>(pk, tdata.id);
                             //更新结束状态
                             //data.progress = "finish";
                             //if (survey.scope .Equals("school"))

+ 4 - 4
TEAMModelOS.FunctionV4/CosmosDB/TriggerVote.cs

@@ -304,8 +304,8 @@ namespace TEAMModelOS.FunctionV4
                             #endregion
                             var messageVoteEnd = new ServiceBusMessage(new { id = tdata.id, progress = "finish", code = tdata.code }.ToJsonString());
                             messageVoteEnd.ApplicationProperties.Add("name", "Vote");
-                           /* string pk = string.Format("{0}{1}{2}", vote.code, "-", "pending");
-                            await table.DeleteSingle<ChangeRecord>(pk, tdata.id);*/
+                            string pk = string.Format("{0}{1}{2}", vote.code, "-", "pending");
+                            await table.DeleteSingle<ChangeRecord>(pk, tdata.id);
                             if (voteRecords.Count > 0)
                             {
                                 long end = await _serviceBus.GetServiceBusClient().SendScheduleMessageAsync(Environment.GetEnvironmentVariable("Azure:ServiceBus:ActiveTask"), messageVoteEnd, DateTimeOffset.FromUnixTimeMilliseconds(tdata.endTime));
@@ -398,8 +398,8 @@ namespace TEAMModelOS.FunctionV4
                                 break;
                             }
                             await Task.WhenAll(tasks);
-                          /*  string pkey = string.Format("{0}{1}{2}", vote.code, "-", "going");
-                            await table.DeleteSingle<ChangeRecord>(pkey, tdata.id);*/
+                            string pkey = string.Format("{0}{1}{2}", vote.code, "-", "going");
+                            await table.DeleteSingle<ChangeRecord>(pkey, tdata.id);
                             break;
                     }
                 }

+ 80 - 9
TEAMModelOS.SDK/Models/Service/Third/ThirdService.cs

@@ -884,7 +884,7 @@ namespace TEAMModelOS.SDK.Models
         }
 
 
-        public static async Task<string> CreateMoofenExam(IHttpClientFactory _httpClient, JsonElement json)
+        public static async Task<string> CreateMoofenExam(IHttpClientFactory _httpClient, JsonElement json,DingDing _ding)
         {
             string content = string.Empty;
             try {
@@ -928,10 +928,9 @@ namespace TEAMModelOS.SDK.Models
                 dict.Add("signKey", "TMD");
                 var keys = dict.Keys.OrderBy(x => x);
                 var parmas = string.Join("&", keys.Select(x => $"{x}={dict[x]}"));
-                var signtime = DateTimeOffset.UtcNow.GetGMTTime(8).ToUnixTimeSeconds();
-                parmas = $"{parmas}&signtime={signtime}";
-                string sign = Md5Hash.Encrypt(parmas);
-                dict.Add("signtime", $"{signtime}");
+                //var signtime = DateTimeOffset.UtcNow.GetGMTTime(8).ToUnixTimeSeconds();
+                //parmas = $"{parmas}&signtime={signtime}";
+                string sign = Md5Hash.Encrypt(parmas);                
                 dict.Add("sign", $"{sign}");
                 dict.Remove("signKey");
                 //var pkeys = dict.Keys;
@@ -940,13 +939,13 @@ namespace TEAMModelOS.SDK.Models
                 var httpClient = _httpClient.CreateClient();
                 var request = new HttpRequestMessage
                 {
-                     Method = new HttpMethod("POST"),
+                    Method = new HttpMethod("POST"),
                     RequestUri = new Uri(url),
-                    Content = new FormUrlEncodedContent(dict)
+                    Content = new StringContent(JsonConvert.SerializeObject(dict))
                 };
                 // 设置请求头中的Content-Type
                 //  httpClient.DefaultRequestHeaders.Add("Content-Type", "application/x-www-form-urlencoded");
-                var mediaTypeHeader = new MediaTypeHeaderValue("application/x-www-form-urlencoded")
+                var mediaTypeHeader = new MediaTypeHeaderValue("application/json")
                 {
                     CharSet = "UTF-8"
                 };
@@ -963,11 +962,73 @@ namespace TEAMModelOS.SDK.Models
 
                 }
             } catch (Exception e) {
-                return "";
+                await _ding.SendBotMsg($"{Environment.GetEnvironmentVariable("Option:Location")},ThirdService/CreateMoofenExam()\n{e.Message}\n{e.StackTrace}", GroupNames.成都开发測試群組);
             }
             return "";
         }
 
+        public static async Task<List<stuAns>> CreateMoofenExamResult(IHttpClientFactory _httpClient, JsonElement json, DingDing _ding)
+        {
+            string content = string.Empty;
+            List<stuAns> ans = new();
+            try
+            {
+                Dictionary<string, string> dict = new Dictionary<string, string>();
+                if (json.TryGetProperty("examCode", out JsonElement examCode) && !string.IsNullOrWhiteSpace($"{examCode}"))
+                {
+                    dict.Add("examName", $"{examCode}");
+                }                
+                if (json.TryGetProperty("subjects", out JsonElement subjects) && subjects.ValueKind.Equals(JsonValueKind.Array))
+                {
+                    dict.Add("subjects", $"{subjects}");
+                }
+                dict.Add("signKey", "TMD");
+                var keys = dict.Keys.OrderBy(x => x);
+                var parmas = string.Join("&", keys.Select(x => $"{x}={dict[x]}"));
+                //var signtime = DateTimeOffset.UtcNow.GetGMTTime(8).ToUnixTimeSeconds();
+                //parmas = $"{parmas}&signtime={signtime}";
+                string sign = Md5Hash.Encrypt(parmas);
+                dict.Add("sign", $"{sign}");
+                dict.Remove("signKey");
+                //var pkeys = dict.Keys;
+                string url = "https://www.moofen.net/oss/esi/exam/tmodel/result";
+                //parmas = string.Join("&", pkeys.Select(x => $"{x}={dict[x]}"));
+                var httpClient = _httpClient.CreateClient();
+                var request = new HttpRequestMessage
+                {
+                    Method = new HttpMethod("POST"),
+                    RequestUri = new Uri(url),
+                    Content = new StringContent(JsonConvert.SerializeObject(dict))
+                };
+                // 设置请求头中的Content-Type
+                //  httpClient.DefaultRequestHeaders.Add("Content-Type", "application/x-www-form-urlencoded");
+                var mediaTypeHeader = new MediaTypeHeaderValue("application/json")
+                {
+                    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))
+                {
+                    content = await response.Content.ReadAsStringAsync();
+
+                    var data = content.ToObject<JsonElement>();
+                    if (data.TryGetProperty("data", out JsonElement _data))
+                    {
+                        ans = _data.ToObject<List<stuAns>>();
+                        return ans;
+                    }
+
+                }
+            }
+            catch (Exception e)
+            {
+                await _ding.SendBotMsg($"{Environment.GetEnvironmentVariable("Option:Location")},ThirdService/CreateMoofenExamResult()\n{e.Message}\n{e.StackTrace}", GroupNames.成都开发測試群組);
+            }
+            return ans;
+        }
+
         /* private class item
          {
              public string questionNo { get; set; }
@@ -988,5 +1049,15 @@ namespace TEAMModelOS.SDK.Models
             public string code { get; set; }
             public double value { get; set; }
         }
+        public class stuAns { 
+            public string stuId { get; set; }
+            public List<moofenAns> scoreData { get; set; } = new List<moofenAns>();
+        }
+        public class moofenAns
+        {
+            public double questionNo { get; set; }
+            public double score  { get; set; }
+            public string answer { get; set; }
+        }
     }
 }