|
@@ -0,0 +1,346 @@
|
|
|
+using System;
|
|
|
+using System.Collections.Generic;
|
|
|
+using System.Text;
|
|
|
+using System.Text.Json;
|
|
|
+using System.Threading.Tasks;
|
|
|
+using Azure.Cosmos;
|
|
|
+using Azure.Messaging.ServiceBus;
|
|
|
+using Microsoft.Extensions.Logging;
|
|
|
+using StackExchange.Redis;
|
|
|
+using TEAMModelOS.SDK.DI;
|
|
|
+using TEAMModelOS.SDK.Extension;
|
|
|
+using TEAMModelOS.SDK;
|
|
|
+using TEAMModelOS.SDK.Models;
|
|
|
+using TEAMModelOS.SDK.Models.Cosmos;
|
|
|
+using TEAMModelOS.SDK.Models.Cosmos.Common;
|
|
|
+using System.Linq;
|
|
|
+using TEAMModelOS.SDK.Models.Service;
|
|
|
+using TEAMModelOS.SDK.Models.Cosmos.BI;
|
|
|
+using TEAMModelOS.Models;
|
|
|
+using Microsoft.Extensions.Options;
|
|
|
+using Microsoft.Extensions.Configuration;
|
|
|
+using HTEXLib.COMM.Helpers;
|
|
|
+using Microsoft.Azure.Functions.Worker;
|
|
|
+using TEAMModelOS.SDK.Services;
|
|
|
+using Azure.Storage.Blobs.Models;
|
|
|
+using System.IO;
|
|
|
+using Azure;
|
|
|
+using static TEAMModelOS.SDK.Models.Service.LessonService;
|
|
|
+using DinkToPdf.Contracts;
|
|
|
+using TEAMModelOS.SDK.Helper.Common.DateTimeHelper;
|
|
|
+using static TEAMModelOS.SDK.StatisticsService;
|
|
|
+using DocumentFormat.OpenXml.Office2010.Excel;
|
|
|
+using DocumentFormat.OpenXml.Wordprocessing;
|
|
|
+using System.Xml.Linq;
|
|
|
+using Azure.Storage.Sas;
|
|
|
+using DocumentFormat.OpenXml.Drawing;
|
|
|
+using System.Net.Http;
|
|
|
+using System.Web;
|
|
|
+using System.Net;
|
|
|
+using System.Net.Http.Json;
|
|
|
+using System.Threading;
|
|
|
+using System.Collections.Concurrent;
|
|
|
+using Microsoft.Azure.Amqp.Framing;
|
|
|
+using System.Security.Policy;
|
|
|
+using TEAMModelOS.SDK.Models.Service.BI;
|
|
|
+
|
|
|
+namespace TEAMModelOS.FunctionV4.ServiceBus
|
|
|
+{
|
|
|
+ public class ActiveTaskTopic
|
|
|
+ {
|
|
|
+
|
|
|
+ private readonly int psize = 20;
|
|
|
+ private readonly AzureCosmosFactory _azureCosmos;
|
|
|
+ private readonly DingDing _dingDing;
|
|
|
+ private readonly AzureStorageFactory _azureStorage;
|
|
|
+ private readonly AzureRedisFactory _azureRedis;
|
|
|
+ private readonly AzureServiceBusFactory _serviceBus;
|
|
|
+ private readonly Option _option;
|
|
|
+ private readonly CoreAPIHttpService _coreAPIHttpService;
|
|
|
+ private readonly IConfiguration _configuration;
|
|
|
+ private readonly IConverter _converter;
|
|
|
+ private readonly SnowflakeId _snowflakeId;
|
|
|
+ private readonly HttpTrigger _httpTrigger;
|
|
|
+ public ActiveTaskTopic(HttpTrigger httpTrigger, SnowflakeId snowflakeId, IConverter converter, CoreAPIHttpService coreAPIHttpService,
|
|
|
+ AzureCosmosFactory azureCosmos, DingDing dingDing, AzureStorageFactory azureStorage, AzureRedisFactory azureRedis,
|
|
|
+ AzureServiceBusFactory serviceBus, IOptionsSnapshot<Option> option,
|
|
|
+ IConfiguration configuration)
|
|
|
+ {
|
|
|
+ _azureCosmos = azureCosmos;
|
|
|
+ _dingDing = dingDing;
|
|
|
+ _azureStorage = azureStorage;
|
|
|
+ _azureRedis = azureRedis;
|
|
|
+ _serviceBus = serviceBus;
|
|
|
+ _option = option?.Value;
|
|
|
+ _configuration = configuration;
|
|
|
+ _coreAPIHttpService = coreAPIHttpService;
|
|
|
+ _converter = converter;
|
|
|
+ _snowflakeId = snowflakeId;
|
|
|
+ _httpTrigger = httpTrigger;
|
|
|
+ }
|
|
|
+ [Function("Exam")]
|
|
|
+ public async Task ExamFunc([ServiceBusTrigger("%Azure:ServiceBus:ActiveTask%", "exam", Connection = "Azure:ServiceBus:ConnectionString")] string msg)
|
|
|
+ {
|
|
|
+ try
|
|
|
+ {
|
|
|
+ var json = JsonDocument.Parse(msg);
|
|
|
+ json.RootElement.TryGetProperty("id", out JsonElement id);
|
|
|
+ json.RootElement.TryGetProperty("progress", out JsonElement progress);
|
|
|
+ json.RootElement.TryGetProperty("code", out JsonElement code);
|
|
|
+ //Dictionary<string, object> keyValuePairs = mySbMsg.ToObject<Dictionary<string, object>>();
|
|
|
+ var client = _azureCosmos.GetCosmosClient();
|
|
|
+ ExamInfo exam = await client.GetContainer(Constant.TEAMModelOS, "Common").ReadItemAsync<ExamInfo>(id.ToString(), new PartitionKey($"{code}"));
|
|
|
+ exam.progress = progress.ToString();
|
|
|
+ await client.GetContainer(Constant.TEAMModelOS, "Common").ReplaceItemAsync(exam, id.ToString(), new PartitionKey($"{code}"));
|
|
|
+ }
|
|
|
+ catch (CosmosException e)
|
|
|
+ {
|
|
|
+ await _dingDing.SendBotMsg($"{Environment.GetEnvironmentVariable("Option:Location")}-ServiceBus,ExamBus()-CosmosDB异常{e.Message}\n{e.StackTrace}\n{e.Status}\n{msg}", GroupNames.醍摩豆服務運維群組);
|
|
|
+ }
|
|
|
+ catch (Exception ex)
|
|
|
+ {
|
|
|
+ await _dingDing.SendBotMsg($"{Environment.GetEnvironmentVariable("Option:Location")}-ServiceBus,ExamBus()\n{ex.Message}\n{ex.StackTrace}\n\n{msg}", GroupNames.醍摩豆服務運維群組);
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ [Function("Vote")]
|
|
|
+ public async Task VoteFunc([ServiceBusTrigger("%Azure:ServiceBus:ActiveTask%", "vote", Connection = "Azure:ServiceBus:ConnectionString")] string msg)
|
|
|
+ {
|
|
|
+ try
|
|
|
+ {
|
|
|
+ var jsonMsg = JsonDocument.Parse(msg);
|
|
|
+ jsonMsg.RootElement.TryGetProperty("id", out JsonElement id);
|
|
|
+ jsonMsg.RootElement.TryGetProperty("progress", out JsonElement progress);
|
|
|
+ jsonMsg.RootElement.TryGetProperty("code", out JsonElement code);
|
|
|
+ var client = _azureCosmos.GetCosmosClient();
|
|
|
+ Vote vote = await client.GetContainer(Constant.TEAMModelOS, "Common").ReadItemAsync<Vote>(id.ToString(), new PartitionKey($"{code}"));
|
|
|
+ vote.progress = progress.ToString();
|
|
|
+ await client.GetContainer(Constant.TEAMModelOS, "Common").ReplaceItemAsync(vote, id.ToString(), new PartitionKey($"{code}"));
|
|
|
+ }
|
|
|
+ catch (CosmosException e)
|
|
|
+ {
|
|
|
+ await _dingDing.SendBotMsg($"{Environment.GetEnvironmentVariable("Option:Location")}-ServiceBus,VoteBus()-CosmosDB异常{e.Message}\n{e.StackTrace}\n{e.Status}\n{msg}", GroupNames.醍摩豆服務運維群組);
|
|
|
+ }
|
|
|
+ catch (Exception ex)
|
|
|
+ {
|
|
|
+ await _dingDing.SendBotMsg($"{Environment.GetEnvironmentVariable("Option:Location")}-ServiceBus,VoteBus()\n{ex.Message}\n{ex.StackTrace}\n\n{msg}", GroupNames.醍摩豆服務運維群組);
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ [Function("Correct")]
|
|
|
+ public async Task CorrectFunc([ServiceBusTrigger("%Azure:ServiceBus:ActiveTask%", "correct", Connection = "Azure:ServiceBus:ConnectionString")] string msg)
|
|
|
+ {
|
|
|
+ try
|
|
|
+ {
|
|
|
+ var jsonMsg = JsonDocument.Parse(msg);
|
|
|
+ jsonMsg.RootElement.TryGetProperty("id", out JsonElement id);
|
|
|
+ jsonMsg.RootElement.TryGetProperty("progress", out JsonElement progress);
|
|
|
+ jsonMsg.RootElement.TryGetProperty("code", out JsonElement code);
|
|
|
+ var client = _azureCosmos.GetCosmosClient();
|
|
|
+ Correct correct = await client.GetContainer(Constant.TEAMModelOS, "Common").ReadItemAsync<Correct>(id.ToString(), new PartitionKey($"{code}"));
|
|
|
+ correct.progress = progress.ToString();
|
|
|
+ await client.GetContainer(Constant.TEAMModelOS, "Common").ReplaceItemAsync(correct, id.ToString(), new PartitionKey($"{code}"));
|
|
|
+ }
|
|
|
+ catch (CosmosException e)
|
|
|
+ {
|
|
|
+ await _dingDing.SendBotMsg($"{Environment.GetEnvironmentVariable("Option:Location")}-ServiceBus,Correct()-CosmosDB异常{e.Message}\n{e.StackTrace}\n{e.Status}\n{msg}", GroupNames.醍摩豆服務運維群組);
|
|
|
+ }
|
|
|
+ catch (Exception ex)
|
|
|
+ {
|
|
|
+ await _dingDing.SendBotMsg($"{Environment.GetEnvironmentVariable("Option:Location")}-ServiceBus,Correct()\n{ex.Message}\n{ex.StackTrace}\n\n{msg}", GroupNames.醍摩豆服務運維群組);
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ [Function("Survey")]
|
|
|
+ public async Task SurveyFunc([ServiceBusTrigger("%Azure:ServiceBus:ActiveTask%", "survey", Connection = "Azure:ServiceBus:ConnectionString")] string msg)
|
|
|
+ {
|
|
|
+ try
|
|
|
+ {
|
|
|
+ var jsonMsg = JsonDocument.Parse(msg);
|
|
|
+ jsonMsg.RootElement.TryGetProperty("id", out JsonElement id);
|
|
|
+ jsonMsg.RootElement.TryGetProperty("progress", out JsonElement progress);
|
|
|
+ jsonMsg.RootElement.TryGetProperty("code", out JsonElement code);
|
|
|
+ //Dictionary<string, object> keyValuePairs = mySbMsg.ToObject<Dictionary<string, object>>();
|
|
|
+ var client = _azureCosmos.GetCosmosClient();
|
|
|
+ Survey survey = await client.GetContainer(Constant.TEAMModelOS, "Common").ReadItemAsync<Survey>(id.ToString(), new PartitionKey($"{code}"));
|
|
|
+ survey.progress = progress.ToString();
|
|
|
+ await client.GetContainer(Constant.TEAMModelOS, "Common").ReplaceItemAsync(survey, id.ToString(), new PartitionKey($"{code}"));
|
|
|
+ }
|
|
|
+ catch (CosmosException e)
|
|
|
+ {
|
|
|
+ await _dingDing.SendBotMsg($"{Environment.GetEnvironmentVariable("Option:Location")}-ServiceBus,SurveyBus()-CosmosDB异常{e.Message}\n{e.StackTrace}\n{e.Status}\n{msg}", GroupNames.醍摩豆服務運維群組);
|
|
|
+ }
|
|
|
+ catch (Exception ex)
|
|
|
+ {
|
|
|
+ await _dingDing.SendBotMsg($"{Environment.GetEnvironmentVariable("Option:Location")}-ServiceBus,SurveyBus()\n{ex.Message}\n{ex.StackTrace}\n\n{msg}", GroupNames.醍摩豆服務運維群組);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ [Function("Homework")]
|
|
|
+ public async Task HomeworkFunc([ServiceBusTrigger("%Azure:ServiceBus:ActiveTask%", "homework", Connection = "Azure:ServiceBus:ConnectionString")] string msg)
|
|
|
+ {
|
|
|
+ try
|
|
|
+ {
|
|
|
+ var jsonMsg = JsonDocument.Parse(msg);
|
|
|
+ jsonMsg.RootElement.TryGetProperty("id", out JsonElement id);
|
|
|
+ jsonMsg.RootElement.TryGetProperty("progress", out JsonElement progress);
|
|
|
+ jsonMsg.RootElement.TryGetProperty("code", out JsonElement code);
|
|
|
+ var client = _azureCosmos.GetCosmosClient();
|
|
|
+ Homework homework = await client.GetContainer(Constant.TEAMModelOS, "Common").ReadItemAsync<Homework>(id.ToString(), new PartitionKey($"{code}"));
|
|
|
+ homework.progress = progress.ToString();
|
|
|
+ await client.GetContainer(Constant.TEAMModelOS, "Common").ReplaceItemAsync(homework, id.ToString(), new PartitionKey($"{code}"));
|
|
|
+ }
|
|
|
+ catch (CosmosException e)
|
|
|
+ {
|
|
|
+ await _dingDing.SendBotMsg($"{Environment.GetEnvironmentVariable("Option:Location")}-ServiceBus,Homework()-CosmosDB异常{e.Message}\n{e.StackTrace}\n{e.Status}\n{msg}", GroupNames.醍摩豆服務運維群組);
|
|
|
+ }
|
|
|
+ catch (Exception ex)
|
|
|
+ {
|
|
|
+ await _dingDing.SendBotMsg($"{Environment.GetEnvironmentVariable("Option:Location")}-ServiceBus,Homework()\n{ex.Message}\n{ex.StackTrace}\n\n{msg}", GroupNames.醍摩豆服務運維群組);
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ [Function("Study")]
|
|
|
+ public async Task StudyFunc([ServiceBusTrigger("%Azure:ServiceBus:ActiveTask%", "study", Connection = "Azure:ServiceBus:ConnectionString")] string msg)
|
|
|
+ {
|
|
|
+ string activityId = string.Empty;
|
|
|
+ try
|
|
|
+ {
|
|
|
+ var jsonMsg = JsonDocument.Parse(msg);
|
|
|
+ jsonMsg.RootElement.TryGetProperty("id", out JsonElement id);
|
|
|
+ jsonMsg.RootElement.TryGetProperty("progress", out JsonElement progress);
|
|
|
+ jsonMsg.RootElement.TryGetProperty("code", out JsonElement code);
|
|
|
+ var client = _azureCosmos.GetCosmosClient();
|
|
|
+ Study study = await client.GetContainer(Constant.TEAMModelOS, "Common").ReadItemAsync<Study>(id.ToString(), new PartitionKey($"{code}"));
|
|
|
+ study.progress = progress.ToString();
|
|
|
+ activityId = id.ToString();
|
|
|
+ await client.GetContainer(Constant.TEAMModelOS, "Common").ReplaceItemAsync(study, id.ToString(), new PartitionKey($"{code}"));
|
|
|
+ }
|
|
|
+ catch (CosmosException e)
|
|
|
+ {
|
|
|
+ await _dingDing.SendBotMsg($"{Environment.GetEnvironmentVariable("Option:Location")}-ServiceBus,Study()-CosmosDB异常{e.Message}\n{e.StackTrace}\n{e.Status}\n{msg}", GroupNames.醍摩豆服務運維群組);
|
|
|
+ }
|
|
|
+ catch (Exception ex)
|
|
|
+ {
|
|
|
+ await _dingDing.SendBotMsg($"{Environment.GetEnvironmentVariable("Option:Location")}-ServiceBus,Study()\n{ex.Message}\n{ex.StackTrace}\n\n{msg}", GroupNames.醍摩豆服務運維群組);
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ [Function("Art")]
|
|
|
+ public async Task ArtFunc([ServiceBusTrigger("%Azure:ServiceBus:ActiveTask%", "art", Connection = "Azure:ServiceBus:ConnectionString")] string msg)
|
|
|
+ {
|
|
|
+ string activityId = string.Empty;
|
|
|
+ try
|
|
|
+ {
|
|
|
+ var jsonMsg = JsonDocument.Parse(msg);
|
|
|
+ jsonMsg.RootElement.TryGetProperty("id", out JsonElement id);
|
|
|
+ jsonMsg.RootElement.TryGetProperty("progress", out JsonElement progress);
|
|
|
+ jsonMsg.RootElement.TryGetProperty("code", out JsonElement code);
|
|
|
+ var client = _azureCosmos.GetCosmosClient();
|
|
|
+ ArtEvaluation art = await client.GetContainer(Constant.TEAMModelOS, "Common").ReadItemAsync<ArtEvaluation>(id.ToString(), new PartitionKey($"{code}"));
|
|
|
+ art.progress = progress.ToString();
|
|
|
+ activityId = id.ToString();
|
|
|
+ await client.GetContainer(Constant.TEAMModelOS, "Common").ReplaceItemAsync(art, id.ToString(), new PartitionKey($"{code}"));
|
|
|
+ }
|
|
|
+ catch (CosmosException e)
|
|
|
+ {
|
|
|
+ await _dingDing.SendBotMsg($"{Environment.GetEnvironmentVariable("Option:Location")}-ServiceBus,Art()-CosmosDB异常{e.Message}\n{e.StackTrace}\n{e.Status}\n{msg}", GroupNames.醍摩豆服務運維群組);
|
|
|
+ }
|
|
|
+ catch (Exception ex)
|
|
|
+ {
|
|
|
+ await _dingDing.SendBotMsg($"{Environment.GetEnvironmentVariable("Option:Location")}-ServiceBus,Art()\n{ex.Message}\n{ex.StackTrace}\n\n{msg}", GroupNames.醍摩豆服務運維群組);
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ [Function("ExamLite")]
|
|
|
+ public async Task ExamLiteFunc([ServiceBusTrigger("%Azure:ServiceBus:ActiveTask%", "examlite", Connection = "Azure:ServiceBus:ConnectionString")] string msg)
|
|
|
+ {
|
|
|
+ try
|
|
|
+ {
|
|
|
+ var jsonMsg = JsonDocument.Parse(msg);
|
|
|
+ jsonMsg.RootElement.TryGetProperty("id", out JsonElement id);
|
|
|
+ jsonMsg.RootElement.TryGetProperty("progress", out JsonElement progress);
|
|
|
+ jsonMsg.RootElement.TryGetProperty("code", out JsonElement code);
|
|
|
+ var client = _azureCosmos.GetCosmosClient();
|
|
|
+ ExamLite lite = await client.GetContainer(Constant.TEAMModelOS, "Common").ReadItemAsync<ExamLite>(id.ToString(), new PartitionKey($"{code}"));
|
|
|
+ lite.progress = progress.ToString();
|
|
|
+ await client.GetContainer(Constant.TEAMModelOS, "Common").ReplaceItemAsync(lite, id.ToString(), new PartitionKey($"{code}"));
|
|
|
+ }
|
|
|
+ catch (CosmosException e)
|
|
|
+ {
|
|
|
+ await _dingDing.SendBotMsg($"{Environment.GetEnvironmentVariable("Option:Location")}-ServiceBus,ExamLite()-CosmosDB异常{e.Message}\n{e.StackTrace}\n{e.Status}\n{msg}", GroupNames.醍摩豆服務運維群組);
|
|
|
+ }
|
|
|
+ catch (Exception ex)
|
|
|
+ {
|
|
|
+ await _dingDing.SendBotMsg($"{Environment.GetEnvironmentVariable("Option:Location")}-ServiceBus,ExamLite()\n{ex.Message}\n{ex.StackTrace}\n\n{msg}", GroupNames.醍摩豆服務運維群組);
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ [Function("LessonRecordExpire")]
|
|
|
+ public async Task LessonRecordExpireFunc([ServiceBusTrigger("%Azure:ServiceBus:ActiveTask%", "lesson-record-expire", Connection = "Azure:ServiceBus:ConnectionString")] string msg)
|
|
|
+ {
|
|
|
+ try
|
|
|
+ {
|
|
|
+ var jsonMsg = JsonDocument.Parse(msg).RootElement;
|
|
|
+ jsonMsg.TryGetProperty("id", out JsonElement id);
|
|
|
+ jsonMsg.TryGetProperty("progress", out JsonElement progress);
|
|
|
+ jsonMsg.TryGetProperty("code", out JsonElement _code);
|
|
|
+ jsonMsg.TryGetProperty("tmdid", out JsonElement tmdid);
|
|
|
+ jsonMsg.TryGetProperty("tmdname", out JsonElement tmdname);
|
|
|
+ jsonMsg.TryGetProperty("name", out JsonElement name);
|
|
|
+ jsonMsg.TryGetProperty("startTime", out JsonElement startTime);
|
|
|
+ jsonMsg.TryGetProperty("expire", out JsonElement expire);
|
|
|
+ jsonMsg.TryGetProperty("scope", out JsonElement scope);
|
|
|
+ jsonMsg.TryGetProperty("school", out JsonElement _school);
|
|
|
+ jsonMsg.TryGetProperty("tag", out JsonElement _tag);
|
|
|
+ var client = _azureCosmos.GetCosmosClient();
|
|
|
+ //处理到期删除
|
|
|
+ if (_tag.ValueKind.Equals(JsonValueKind.String) && $"{_tag}".Equals("delete"))
|
|
|
+ {
|
|
|
+ string lessonId = $"{id}";
|
|
|
+ string tbname;
|
|
|
+ string school = $"{_school}";
|
|
|
+ string code = "";
|
|
|
+ if ($"{scope}".Equals("school") && !string.IsNullOrEmpty($"{school}"))
|
|
|
+ {
|
|
|
+ code = $"LessonRecord-{school}";
|
|
|
+ tbname = "School";
|
|
|
+ }
|
|
|
+ else if ($"{scope}".Equals("private"))
|
|
|
+ {
|
|
|
+ code = $"LessonRecord";
|
|
|
+ tbname = "Teacher";
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ Azure.Response response = await client.GetContainer(Constant.TEAMModelOS, tbname).ReadItemStreamAsync(lessonId, new PartitionKey(code));
|
|
|
+ if (response.Status == 200)
|
|
|
+ {
|
|
|
+ LessonRecord lessonRecord;
|
|
|
+ var doc = JsonDocument.Parse(response.ContentStream);
|
|
|
+ lessonRecord = doc.RootElement.ToObject<LessonRecord>();
|
|
|
+ lessonRecord.status = 404;
|
|
|
+ await client.GetContainer(Constant.TEAMModelOS, tbname).ReplaceItemAsync(lessonRecord, lessonRecord.id, new PartitionKey(lessonRecord.code));
|
|
|
+ var ActiveTask = _configuration.GetValue<string>("Azure:ServiceBus:ActiveTask");
|
|
|
+ var messageChange = new ServiceBusMessage(new { delete_id = lessonId, tmdid = tmdid, scope = scope, opt = "delete", school = school }.ToJsonString());
|
|
|
+ messageChange.ApplicationProperties.Add("name", "LessonRecordEvent");
|
|
|
+ await _serviceBus.GetServiceBusClient().SendMessageAsync(ActiveTask, messageChange);
|
|
|
+ await _dingDing.SendBotMsg($"课例:【{lessonRecord.name}】\n课例ID:【{lessonRecord.id}】\n因时间到期,即将被自动删除,到期时间:" +
|
|
|
+ $"{lessonRecord.expire}\n{lessonRecord.ToJsonString()}", GroupNames.成都开发測試群組);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ string biz = "expire";
|
|
|
+ Teacher targetTeacher = await client.GetContainer(Constant.TEAMModelOS, Constant.Teacher).ReadItemAsync<Teacher>($"{tmdid}", new PartitionKey($"Base"));
|
|
|
+ string expireTime = DateTimeOffset.FromUnixTimeMilliseconds(long.Parse($"{expire}")).ToString("yyyy-MM-dd HH:mm:ss");
|
|
|
+ _coreAPIHttpService.PushNotify(new List<IdNameCode> { new IdNameCode { id = targetTeacher.id, name = targetTeacher.name, code = targetTeacher.lang } }, "expire-private_lessonRecord", Constant.NotifyType_IES5_Course,
|
|
|
+ new Dictionary<string, object> { { "tmdname", tmdname }, { "tmdid", tmdid }, { "lessonId", id }, { "expireTime", expireTime }, { "lessonName", name } }, $"{Environment.GetEnvironmentVariable("Option:Location")}", _configuration, _dingDing, "");
|
|
|
+ }
|
|
|
+ catch (Exception ex)
|
|
|
+ {
|
|
|
+ await _dingDing.SendBotMsg($"{Environment.GetEnvironmentVariable("Option:Location")}-ServiceBus,LessonRecordExpire()\n{ex.Message}\n{ex.StackTrace}\n\n{msg}", GroupNames.醍摩豆服務運維群組);
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|