CrazyIter_Bin 1 rok pred
rodič
commit
6d94d56e5d

+ 3 - 3
TEAMModelBI/TEAMModelBI.csproj

@@ -65,9 +65,9 @@
 		<SpaRoot>ClientApp\</SpaRoot>
 		<SpaRoot>ClientApp\</SpaRoot>
 		<DefaultItemExcludes>$(DefaultItemExcludes);$(SpaRoot)node_modules\**</DefaultItemExcludes>
 		<DefaultItemExcludes>$(DefaultItemExcludes);$(SpaRoot)node_modules\**</DefaultItemExcludes>
 		<UserSecretsId>078b5d89-7d90-4f6a-88fc-7d96025990a8</UserSecretsId>
 		<UserSecretsId>078b5d89-7d90-4f6a-88fc-7d96025990a8</UserSecretsId>
-		<Version>5.2406.5</Version>
-		<AssemblyVersion>5.2406.5.1</AssemblyVersion>
-		<FileVersion>5.2406.5.1</FileVersion>
+		<Version>5.2406.12</Version>
+		<AssemblyVersion>5.2406.12.1</AssemblyVersion>
+		<FileVersion>5.2406.12.1</FileVersion>
 		<Description>TEAMModelBI(BI)</Description>
 		<Description>TEAMModelBI(BI)</Description>
 		<PackageReleaseNotes>BI版本说明版本切换标记2022000908</PackageReleaseNotes>
 		<PackageReleaseNotes>BI版本说明版本切换标记2022000908</PackageReleaseNotes>
 		<PackageId>TEAMModelBI</PackageId>
 		<PackageId>TEAMModelBI</PackageId>

+ 2 - 2
TEAMModelContest/contest.client/package.json

@@ -3,8 +3,8 @@
   "version": "0.1.0",
   "version": "0.1.0",
   "private": true,
   "private": true,
   "scripts": {
   "scripts": {
-    "serve": "vue-cli-service serve",
-    "build": "vue-cli-service build",
+    "serve": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve",
+    "build": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service build",
     "lint": "vue-cli-service lint"
     "lint": "vue-cli-service lint"
   },
   },
   "dependencies": {
   "dependencies": {

+ 3 - 0
TEAMModelOS.FunctionV4/Program.cs

@@ -7,6 +7,7 @@ using Microsoft.Extensions.Hosting;
 
 
 using System;
 using System;
 using System.Collections.Generic;
 using System.Collections.Generic;
+using System.Configuration;
 using System.Diagnostics;
 using System.Diagnostics;
 using System.IO;
 using System.IO;
 using System.Linq;
 using System.Linq;
@@ -22,6 +23,7 @@ using TEAMModelOS.FunctionV4.ServiceBus;
 using TEAMModelOS.Models;
 using TEAMModelOS.Models;
 using TEAMModelOS.SDK;
 using TEAMModelOS.SDK;
 using TEAMModelOS.SDK.DI;
 using TEAMModelOS.SDK.DI;
+using TEAMModelOS.SDK.DI.Mail;
 using TEAMModelOS.SDK.DI.Multiple;
 using TEAMModelOS.SDK.DI.Multiple;
 
 
 namespace TEAMModelOS.FunctionV4
 namespace TEAMModelOS.FunctionV4
@@ -84,6 +86,7 @@ namespace TEAMModelOS.FunctionV4
                services.AddHostedService<BlobRootServiceBusSub>();
                services.AddHostedService<BlobRootServiceBusSub>();
                services.AddIPSearcher("");
                services.AddIPSearcher("");
                services.TryAddSingleton(new Region2LongitudeLatitudeTranslator(""));
                services.TryAddSingleton(new Region2LongitudeLatitudeTranslator(""));
+               services.AddNetMail( );
            })
            })
            .Build();
            .Build();
             await host.RunAsync();
             await host.RunAsync();

+ 3 - 3
TEAMModelOS.FunctionV4/TEAMModelOS.FunctionV4.csproj

@@ -5,9 +5,9 @@
 		<OutputType>Exe</OutputType>
 		<OutputType>Exe</OutputType>
 		<_FunctionsSkipCleanOutput>true</_FunctionsSkipCleanOutput>
 		<_FunctionsSkipCleanOutput>true</_FunctionsSkipCleanOutput>
 		<SignAssembly>true</SignAssembly>
 		<SignAssembly>true</SignAssembly>
-		<Version>5.2406.5</Version>
-		<AssemblyVersion>5.2406.5.1</AssemblyVersion>
-		<FileVersion>5.2406.5.1</FileVersion>
+		<Version>5.2406.12</Version>
+		<AssemblyVersion>5.2406.12.1</AssemblyVersion>
+		<FileVersion>5.2406.12.1</FileVersion>
 		<PackageId>TEAMModelOS.FunctionV4</PackageId>
 		<PackageId>TEAMModelOS.FunctionV4</PackageId>
 		<Authors>teammodel</Authors>
 		<Authors>teammodel</Authors>
 		<Company>醍摩豆(成都)信息技术有限公司</Company>
 		<Company>醍摩豆(成都)信息技术有限公司</Company>

+ 55 - 4
TEAMModelOS.FunctionV4/TimeTrigger/IESTimerTrigger.cs

@@ -8,7 +8,9 @@ using HTEXLib.COMM.Helpers;
 using Microsoft.Azure.Cosmos.Table;
 using Microsoft.Azure.Cosmos.Table;
 using Microsoft.Azure.Functions.Worker;
 using Microsoft.Azure.Functions.Worker;
 using Microsoft.Azure.Functions.Worker.Http;
 using Microsoft.Azure.Functions.Worker.Http;
+using Microsoft.Extensions.Configuration;
 using Microsoft.Extensions.Logging;
 using Microsoft.Extensions.Logging;
+using Microsoft.Extensions.Options;
 using Microsoft.OData.Edm;
 using Microsoft.OData.Edm;
 using StackExchange.Redis;
 using StackExchange.Redis;
 using System;
 using System;
@@ -23,8 +25,10 @@ using System.Text;
 using System.Text.Json;
 using System.Text.Json;
 using System.Threading.Tasks;
 using System.Threading.Tasks;
 using System.Web;
 using System.Web;
+using TEAMModelOS.Models;
 using TEAMModelOS.SDK;
 using TEAMModelOS.SDK;
 using TEAMModelOS.SDK.DI;
 using TEAMModelOS.SDK.DI;
+using TEAMModelOS.SDK.DI.Mail;
 using TEAMModelOS.SDK.Extension;
 using TEAMModelOS.SDK.Extension;
 using TEAMModelOS.SDK.Models;
 using TEAMModelOS.SDK.Models;
 using TEAMModelOS.SDK.Models.Cosmos.School;
 using TEAMModelOS.SDK.Models.Cosmos.School;
@@ -50,9 +54,13 @@ namespace TEAMModelOS.FunctionV4.TimeTrigger
         private readonly IConverter _converter;
         private readonly IConverter _converter;
         private readonly SnowflakeId _snowflakeId;
         private readonly SnowflakeId _snowflakeId;
         private readonly IHttpClientFactory _httpClient;
         private readonly IHttpClientFactory _httpClient;
+        private readonly CoreAPIHttpService _coreAPIHttpService;
         private IPSearcher _ipSearcher;
         private IPSearcher _ipSearcher;
         private readonly Region2LongitudeLatitudeTranslator _longitudeLatitudeTranslator;
         private readonly Region2LongitudeLatitudeTranslator _longitudeLatitudeTranslator;
-        public IESTimerTrigger(Region2LongitudeLatitudeTranslator longitudeLatitudeTranslator, IPSearcher ipSearcher, IHttpClientFactory httpClient, SnowflakeId snowflakeId, IConverter converter, AzureCosmosFactory azureCosmos, DingDing dingDing, AzureStorageFactory azureStorage, AzureRedisFactory azureRedis)
+        private readonly MailFactory _mailFactory;
+        private readonly IConfiguration _configuration;
+
+        public IESTimerTrigger(IConfiguration configuration,MailFactory mailFactory,  CoreAPIHttpService coreAPIHttpService, Region2LongitudeLatitudeTranslator longitudeLatitudeTranslator, IPSearcher ipSearcher, IHttpClientFactory httpClient, SnowflakeId snowflakeId, IConverter converter, AzureCosmosFactory azureCosmos, DingDing dingDing, AzureStorageFactory azureStorage, AzureRedisFactory azureRedis)
         {
         {
             _azureCosmos = azureCosmos;
             _azureCosmos = azureCosmos;
             _dingDing = dingDing;
             _dingDing = dingDing;
@@ -62,7 +70,10 @@ namespace TEAMModelOS.FunctionV4.TimeTrigger
             _snowflakeId=snowflakeId;
             _snowflakeId=snowflakeId;
             _httpClient = httpClient;
             _httpClient = httpClient;
             _ipSearcher = ipSearcher;
             _ipSearcher = ipSearcher;
+            _coreAPIHttpService = coreAPIHttpService;
             _longitudeLatitudeTranslator = longitudeLatitudeTranslator;
             _longitudeLatitudeTranslator = longitudeLatitudeTranslator;
+            _mailFactory = mailFactory;
+            _configuration= configuration;
         }
         }
         /// <summary>
         /// <summary>
         /// 防火墙日志记录文件
         /// 防火墙日志记录文件
@@ -71,13 +82,53 @@ namespace TEAMModelOS.FunctionV4.TimeTrigger
         /// <param name="log"></param>
         /// <param name="log"></param>
         /// <returns></returns>
         /// <returns></returns>
         [Function("DailyReport")]
         [Function("DailyReport")]
-        //https://docs.azure.cn/zh-cn/azure-functions/functions-bindings-timer?tabs=in-process&pivots=programming-language-csharp
         //0 1 * * * * 一天中每小时的第 1 分钟
         //0 1 * * * * 一天中每小时的第 1 分钟
         //0 */10 * * * *  每五分钟一次
         //0 */10 * * * *  每五分钟一次
-        public async Task DailyReport([TimerTrigger("0 1 * * * *")] TimerInfo myTimer, ILogger log)
+        public async Task DailyReport([TimerTrigger("0 05 * * * *")] TimerInfo myTimer, ILogger log)
         {
         {
-            
+            try
+            {
+                await _dingDing.SendBotMsg($"定时任务{DateTimeOffset.Now.ToString("yyyy-MM-dd HH:mm:ss")}", GroupNames.成都开发測試群組);
+                string local = Environment.GetEnvironmentVariable("Option:Location");
+                if (local.Contains("Test")||local.Contains("Dep"))
+                {
 
 
+                    int am =8;
+                    int pm = 20;
+                    //int am = DateTimeOffset.Now.Hour;
+                    //int pm = DateTimeOffset.Now.Hour;
+                    var url = Environment.GetEnvironmentVariable("HaBookAuth:CoreAPI");
+                    var clientID = Environment.GetEnvironmentVariable("HaBookAuth:CoreService:clientID");
+                    var clientSecret = Environment.GetEnvironmentVariable("HaBookAuth:CoreService:clientSecret");
+                    string location = "";
+                    if (local.Contains("China"))
+                    {
+                        location = "China";
+                    }
+                    else if (local.Contains("Global"))
+                    {
+                        location = "Global";
+                    }
+                    var client = _httpClient.CreateClient();
+                    var token = CoreTokenExtensions.CreateAccessToken(clientID, clientSecret, location).Result;
+                    if (client.DefaultRequestHeaders.Contains("Authorization"))
+                    {
+                        client.DefaultRequestHeaders.Remove("Authorization");
+                        client.DefaultRequestHeaders.Add("Authorization", $"Bearer {token.AccessToken}");
+                    }
+                    else
+                    {
+                        client.DefaultRequestHeaders.Add("Authorization", $"Bearer {token.AccessToken}");
+                    }
+                    var data = await TEAMModelOS.SDK.Models.Service.SystemService.AccumulateDaily(_configuration,_azureRedis, _azureCosmos, _coreAPIHttpService, _dingDing, client, _snowflakeId, url, _mailFactory, am, pm);
+                    await _dingDing.SendBotMsg($"返回数据{data.ToJsonString()}", GroupNames.成都开发測試群組);
+                }
+            }
+            catch (Exception ex)
+            {
+                await _dingDing.SendBotMsg($"{DailyReport}\n{ex.Message}\n{ex.StackTrace}", GroupNames.成都开发測試群組);
+            }
+             
         }
         }
         /// <summary>
         /// <summary>
         /// 防火墙日志记录文件
         /// 防火墙日志记录文件

+ 12 - 2
TEAMModelOS.FunctionV4/local.settings.json

@@ -23,7 +23,12 @@
     "Azure:CoreService:delnotification": "https://api2.teammodel.cn/service/delnotification",
     "Azure:CoreService:delnotification": "https://api2.teammodel.cn/service/delnotification",
     "Azure:CoreService:deviceinfo": "https://api2.teammodel.cn/oauth2/getdeviceinfos",
     "Azure:CoreService:deviceinfo": "https://api2.teammodel.cn/oauth2/getdeviceinfos",
     "Azure:CoreService:getnotification": "https://api2.teammodel.cn/service/getnotification",
     "Azure:CoreService:getnotification": "https://api2.teammodel.cn/service/getnotification",
-    "Azure:CoreService:sendnotification": "https://api2.teammodel.cn/service/sendnotification"
+    "Azure:CoreService:sendnotification": "https://api2.teammodel.cn/service/sendnotification",
+    "MailOption:fromMail": "customer_service@cdhabook.com",
+    "MailOption:smtp": "smtp.263.net",
+    "MailOption:port": "25",
+    "MailOption:username": "customer_service@cdhabook.com",
+    "MailOption:password": "CDhabook2023~!@"
   }
   }
   //"Values": {
   //"Values": {
   //  "AzureWebJobsSecretStorageType": "Blob",
   //  "AzureWebJobsSecretStorageType": "Blob",
@@ -49,6 +54,11 @@
   //  "Azure:CoreService:delnotification": "https://api2.teammodel.cn/service/delnotification",
   //  "Azure:CoreService:delnotification": "https://api2.teammodel.cn/service/delnotification",
   //  "Azure:CoreService:deviceinfo": "https://api2.teammodel.cn/oauth2/getdeviceinfos",
   //  "Azure:CoreService:deviceinfo": "https://api2.teammodel.cn/oauth2/getdeviceinfos",
   //  "Azure:CoreService:getnotification": "https://api2.teammodel.cn/service/getnotification",
   //  "Azure:CoreService:getnotification": "https://api2.teammodel.cn/service/getnotification",
-  //  "Azure:CoreService:sendnotification": "https://api2.teammodel.cn/service/sendnotification"
+  //  "Azure:CoreService:sendnotification": "https://api2.teammodel.cn/service/sendnotification",
+  //  "MailOption:fromMail": "customer_service@cdhabook.com",
+  //  "MailOption:smtp": "smtp.263.net",
+  //  "MailOption:port": "25",
+  //  "MailOption:username": "customer_service@cdhabook.com",
+  //  "MailOption:password": "CDhabook2023~!@"
   //}
   //}
 }
 }

+ 25 - 0
TEAMModelOS.SDK/DI/CoreAPI/CoreAPIHttpService.cs

@@ -863,6 +863,31 @@ lang 语系"zh-cn" ,zh-tw", "en-us"
                 return null;
                 return null;
             }
             }
         }
         }
+        public async Task  SendMail(Dictionary<string, object> data, string location, IConfiguration _configuration) 
+        {
+            var url = _configuration.GetValue<string>("HaBookAuth:CoreAPI");
+            //url = "https://api2-rc.teammodel.cn";
+            url = $"{url}/service/sendmail";
+            var clientID = _configuration.GetValue<string>("HaBookAuth:CoreService:clientID");
+            var clientSecret = _configuration.GetValue<string>("HaBookAuth:CoreService:clientSecret");
+            if (location.Contains("China"))
+            {
+                location = "China";
+            }
+            else if (location.Contains("Global"))
+            {
+                location = "Global";
+            }
+            var client = _httpClient;
+            var token = await CoreTokenExtensions.CreateAccessToken(clientID, clientSecret, location);
+            if (client.DefaultRequestHeaders.Contains("Authorization"))
+            {
+                client.DefaultRequestHeaders.Remove("Authorization");
+            }
+            client.DefaultRequestHeaders.Add("Authorization", $"Bearer {token.AccessToken}");
+            HttpResponseMessage responseMessage = await client.PostAsJsonAsync(url, data);
+        }
+
         /// <summary>
         /// <summary>
         ///  获取单个用户信息
         ///  获取单个用户信息
         /// </summary>
         /// </summary>

+ 15 - 19
TEAMModelOS.SDK/DI/Mail/MailFactory.cs

@@ -1,4 +1,6 @@
-using Microsoft.Extensions.DependencyInjection;
+using DocumentFormat.OpenXml.Wordprocessing;
+using Microsoft.Extensions.Configuration;
+using Microsoft.Extensions.DependencyInjection;
 using Microsoft.Extensions.DependencyInjection.Extensions;
 using Microsoft.Extensions.DependencyInjection.Extensions;
 using Microsoft.Extensions.Logging;
 using Microsoft.Extensions.Logging;
 using Microsoft.Extensions.Options;
 using Microsoft.Extensions.Options;
@@ -18,13 +20,16 @@ namespace TEAMModelOS.SDK.DI.Mail
     public class MailFactory
     public class MailFactory
     {
     {
         private readonly ILogger _logger;
         private readonly ILogger _logger;
-        private readonly IOptionsMonitor<MailOptions> _optionsMonitor;
+        private readonly MailOptions _optionsMonitor;
         private ConcurrentDictionary<string, SmtpClient> smtpClients { get; } = new ConcurrentDictionary<string, SmtpClient>();
         private ConcurrentDictionary<string, SmtpClient> smtpClients { get; } = new ConcurrentDictionary<string, SmtpClient>();
-        public MailFactory(IOptionsMonitor<MailOptions> optionsMonitor, ILogger<MailFactory> logger)
+        public MailFactory( ILogger<MailFactory> logger, IConfiguration _configuration)
         {
         {
-
-            if (optionsMonitor == null) throw new ArgumentNullException(nameof(optionsMonitor));
-            _optionsMonitor = optionsMonitor;
+            _optionsMonitor= new MailOptions();
+            _optionsMonitor.fromMail=_configuration.GetValue<string>("MailOption:fromMail");
+            _optionsMonitor.port=_configuration.GetValue<Int32>("MailOption:port");
+            _optionsMonitor.smtp=_configuration.GetValue<string>("MailOption:smtp");
+            _optionsMonitor.username=_configuration.GetValue<string>("MailOption:username");
+            _optionsMonitor.password=_configuration.GetValue<string>("MailOption:password");
             _logger = logger;
             _logger = logger;
         }
         }
 
 
@@ -32,14 +37,14 @@ namespace TEAMModelOS.SDK.DI.Mail
         {
         {
             try
             try
             {
             {
-                var cklient = smtpClients.GetOrAdd(name, x => new SmtpClient(_optionsMonitor.Get(name).smtp)
+                var cklient = smtpClients.GetOrAdd(name, x => new SmtpClient(_optionsMonitor.smtp)
                 {
                 {
-                    Credentials= new NetworkCredential(_optionsMonitor.Get(name).username, _optionsMonitor.Get(name).password),
+                    Credentials= new NetworkCredential(_optionsMonitor.username, _optionsMonitor.password),
                     UseDefaultCredentials=false,
                     UseDefaultCredentials=false,
                     EnableSsl=true
                     EnableSsl=true
                 });
                 });
                 //955 是错误的。
                 //955 是错误的。
-                cklient.Port= _optionsMonitor.Get(name).port;
+                cklient.Port= _optionsMonitor.port;
                 return cklient;
                 return cklient;
             }
             }
             catch (OptionsValidationException e)
             catch (OptionsValidationException e)
@@ -52,19 +57,10 @@ namespace TEAMModelOS.SDK.DI.Mail
     }
     }
     public static class NetMailFactoryExtensions
     public static class NetMailFactoryExtensions
     {
     {
-        public static IServiceCollection AddNetMail(this IServiceCollection services, MailOptions mailOptions, string name = "Default")
+        public static IServiceCollection AddNetMail(this IServiceCollection services )
         {
         {
             if (services == null) throw new ArgumentNullException(nameof(services));
             if (services == null) throw new ArgumentNullException(nameof(services));
-            if (mailOptions == null) throw new ArgumentNullException(nameof(mailOptions));
             services.TryAddSingleton<MailFactory>();
             services.TryAddSingleton<MailFactory>();
-            services.Configure<MailOptions>(name, o => {
-                o.Name = name;
-                o.fromMail=mailOptions.fromMail;
-                o.port=mailOptions.port;
-                o.smtp=mailOptions.smtp;
-                o.username=mailOptions.username;
-                o.password=mailOptions.password;
-            });
             return services;
             return services;
         }
         }
         public static string SendEmail(this SmtpClient smtpClient, AzureCosmosFactory azureCosmos,DingDing dingDing  , TMDOrder order, string subject, string content, string toMail,string tmdid,string tmdname ,string sender = "醍摩豆客服助手")
         public static string SendEmail(this SmtpClient smtpClient, AzureCosmosFactory azureCosmos,DingDing dingDing  , TMDOrder order, string subject, string content, string toMail,string tmdid,string tmdname ,string sender = "醍摩豆客服助手")

+ 26 - 9
TEAMModelOS.SDK/Models/Service/SystemService.cs

@@ -7,6 +7,7 @@ using HTEXLib;
 using HTEXLib.COMM.Helpers;
 using HTEXLib.COMM.Helpers;
 using HTEXLib.PPTX.Models;
 using HTEXLib.PPTX.Models;
 using Microsoft.Azure.Amqp.Framing;
 using Microsoft.Azure.Amqp.Framing;
+using Microsoft.Extensions.Configuration;
 using Microsoft.Extensions.Logging;
 using Microsoft.Extensions.Logging;
 using Newtonsoft.Json.Linq;
 using Newtonsoft.Json.Linq;
 using NUnit.Framework.Internal.Execution;
 using NUnit.Framework.Internal.Execution;
@@ -113,8 +114,21 @@ IES Morning Report:
         static string en_groupTitle = "Personal course list change details:";
         static string en_groupTitle = "Personal course list change details:";
         #endregion
         #endregion
 
 
-
-        public static async Task<List<CodeValue> > AccumulateDaily(AzureRedisFactory _azureRedis,AzureCosmosFactory _azureCosmos,
+        /// <summary>
+        /// 
+        /// </summary>
+        /// <param name="_azureRedis"></param>
+        /// <param name="_azureCosmos"></param>
+        /// <param name="coreAPIHttpService"></param>
+        /// <param name="dingDing"></param>
+        /// <param name="_httpClient"></param>
+        /// <param name="_snowflakeId"></param>
+        /// <param name="notifyUrl"></param>
+        /// <param name="_mailFactory"></param>
+        /// <param name="am"></param>
+        /// <param name="pm"></param>
+        /// <returns></returns>
+        public static async Task<List<CodeValue> > AccumulateDaily(IConfiguration _configuration,AzureRedisFactory _azureRedis,AzureCosmosFactory _azureCosmos,
             CoreAPIHttpService coreAPIHttpService, DingDing dingDing,HttpClient _httpClient, SnowflakeId _snowflakeId,string notifyUrl, MailFactory _mailFactory, int am=0 ,int pm=0)
             CoreAPIHttpService coreAPIHttpService, DingDing dingDing,HttpClient _httpClient, SnowflakeId _snowflakeId,string notifyUrl, MailFactory _mailFactory, int am=0 ,int pm=0)
         {
         {
             DateTimeOffset now = DateTimeOffset.Now;
             DateTimeOffset now = DateTimeOffset.Now;
@@ -254,6 +268,10 @@ IES Morning Report:
             List<CodeValue> notifys = new List<CodeValue>();
             List<CodeValue> notifys = new List<CodeValue>();
             foreach (var teacher in teachers)
             foreach (var teacher in teachers)
             {
             {
+                if (!(teacher.id.Equals("1595321354")|| teacher.id.Equals("1535418750") || teacher.id.Equals("1528783259")))
+                {
+                    continue;
+                }
                 StringBuilder notify = new StringBuilder();
                 StringBuilder notify = new StringBuilder();
 #if DEBUG
 #if DEBUG
                 int sendTime_pm = now.Hour;
                 int sendTime_pm = now.Hour;
@@ -590,8 +608,7 @@ IES Morning Report:
                             }
                             }
                             break;
                             break;
                     }
                     }
-
-#if DEBUG
+                    template= template.Replace("\r\n", "");
                     string eventId = $"Evening_Report-{_snowflakeId.NextId()}";
                     string eventId = $"Evening_Report-{_snowflakeId.NextId()}";
                     NotifyData notifyData = new NotifyData
                     NotifyData notifyData = new NotifyData
                     {
                     {
@@ -609,9 +626,9 @@ IES Morning Report:
                     var coreUser = coreUsers.Find(x => x.id.Equals(teacher.id)  && !string.IsNullOrWhiteSpace(x.mail));
                     var coreUser = coreUsers.Find(x => x.id.Equals(teacher.id)  && !string.IsNullOrWhiteSpace(x.mail));
                     if (coreUser!=null)
                     if (coreUser!=null)
                     {
                     {
-                        var token = _mailFactory.GetSmtpClient().SendEmail(_azureCosmos, dingDing, eventId, title, template, coreUser.mail, teacher.id, teacher.name);
+                        var token = _mailFactory.GetSmtpClient().SendEmail(_azureCosmos, dingDing, eventId, title, template, coreUser.mail, teacher.id, teacher.name, sender: "TEAMModel");
+                       // await coreAPIHttpService.SendMail(new Dictionary<string, object> { { "to", coreUser.mail },{ "tid","1234" },{ "vars",new { title=title,body=template } } } ,coreAPIHttpService.options.location,_configuration);
                     }
                     }
-#endif
                     notify.Append(template);
                     notify.Append(template);
                 }
                 }
                 if (tzt.Hour==sendTime_am  && !string.IsNullOrWhiteSpace(homeworkSB.ToString()))
                 if (tzt.Hour==sendTime_am  && !string.IsNullOrWhiteSpace(homeworkSB.ToString()))
@@ -640,7 +657,7 @@ IES Morning Report:
                             template=template.Replace("{en_homeworkTitle}", en_homeworkTitle);
                             template=template.Replace("{en_homeworkTitle}", en_homeworkTitle);
                             break;
                             break;
                     }
                     }
-#if DEBUG
+                    template= template.Replace("\r\n", "");
                     string  eventId = $"Morning_Report-{_snowflakeId.NextId()}";
                     string  eventId = $"Morning_Report-{_snowflakeId.NextId()}";
                     NotifyData notifyData = new NotifyData
                     NotifyData notifyData = new NotifyData
                     {
                     {
@@ -658,9 +675,9 @@ IES Morning Report:
                     var coreUser = coreUsers.Find(x => x.id.Equals(teacher.id)  && !string.IsNullOrWhiteSpace(x.mail));
                     var coreUser = coreUsers.Find(x => x.id.Equals(teacher.id)  && !string.IsNullOrWhiteSpace(x.mail));
                     if (coreUser!=null)
                     if (coreUser!=null)
                     {
                     {
-                        var token = _mailFactory.GetSmtpClient().SendEmail(_azureCosmos, dingDing, eventId, title, template, coreUser.mail, teacher.id, teacher.name);
+                        var token = _mailFactory.GetSmtpClient().SendEmail(_azureCosmos, dingDing, eventId, title, template, coreUser.mail, teacher.id, teacher.name,sender:"TEAMModel");
+                        //await coreAPIHttpService.SendMail(new Dictionary<string, object> { { "to", coreUser.mail }, { "tid", "1234" }, { "vars", new { title = title, body = template } } }, coreAPIHttpService.options.location, _configuration);
                     }
                     }
-#endif
                     notify.Append(template);
                     notify.Append(template);
                 }
                 }
                 notifys.Add(new CodeValue { code=teacher.id, value= notify.ToString() });
                 notifys.Add(new CodeValue { code=teacher.id, value= notify.ToString() });

+ 3 - 3
TEAMModelOS.SDK/TEAMModelOS.SDK.csproj

@@ -2,9 +2,9 @@
 
 
 	<PropertyGroup>
 	<PropertyGroup>
 		<TargetFramework>net6.0</TargetFramework>
 		<TargetFramework>net6.0</TargetFramework>
-		<Version>5.2406.5</Version>
-		<AssemblyVersion>5.2406.5.1</AssemblyVersion>
-		<FileVersion>5.2406.5.1</FileVersion>
+		<Version>5.2406.12</Version>
+		<AssemblyVersion>5.2406.12.1</AssemblyVersion>
+		<FileVersion>5.2406.12.1</FileVersion>
 		<PackageReleaseNotes>发版</PackageReleaseNotes>
 		<PackageReleaseNotes>发版</PackageReleaseNotes>
 	</PropertyGroup>
 	</PropertyGroup>
 
 

+ 1 - 1
TEAMModelOS/Controllers/XTest/TestController.cs

@@ -153,7 +153,7 @@ namespace TEAMModelOS.Controllers
             {
             {
                 client.DefaultRequestHeaders.Add("Authorization", $"Bearer {token.AccessToken}");
                 client.DefaultRequestHeaders.Add("Authorization", $"Bearer {token.AccessToken}");
             }
             }
-            List<CodeValue> notifys= await SystemService.AccumulateDaily( _azureRedis,_azureCosmos, _coreAPIHttpService,_dingDing,client, _snowflakeId, url,_mailFactory,am ,pm );
+            List<CodeValue> notifys= await SystemService.AccumulateDaily(_configuration, _azureRedis,_azureCosmos, _coreAPIHttpService,_dingDing,client, _snowflakeId, url,_mailFactory,am ,pm );
             return Ok(new { notifys });
             return Ok(new { notifys });
         }
         }
 
 

+ 1 - 1
TEAMModelOS/Startup.cs

@@ -201,7 +201,7 @@ namespace TEAMModelOS
             //services.AddHostedService<>
             //services.AddHostedService<>
            // services.AddSingleton<ILoggerProvider, BlobLoggerProvider>();
            // services.AddSingleton<ILoggerProvider, BlobLoggerProvider>();
             services.AddMvcFilter<RequestAuditFilter>();
             services.AddMvcFilter<RequestAuditFilter>();
-            services.AddNetMail(Configuration.GetSection("MailOption").Get<MailOptions>());
+            services.AddNetMail();
 #if !DEBUG
 #if !DEBUG
  //第一步: 配置gzip与br的压缩等级为最优
  //第一步: 配置gzip与br的压缩等级为最优
             //builder.Services.AddMyResponseCompression();
             //builder.Services.AddMyResponseCompression();

+ 4 - 4
TEAMModelOS/TEAMModelOS.csproj

@@ -79,11 +79,11 @@
 		<SpaRoot>ClientApp\</SpaRoot>
 		<SpaRoot>ClientApp\</SpaRoot>
 		<DefaultItemExcludes>$(DefaultItemExcludes);$(SpaRoot)node_modules\**</DefaultItemExcludes>
 		<DefaultItemExcludes>$(DefaultItemExcludes);$(SpaRoot)node_modules\**</DefaultItemExcludes>
 		<UserSecretsId>078b5d89-7d90-4f6a-88fc-7d96025990a8</UserSecretsId>
 		<UserSecretsId>078b5d89-7d90-4f6a-88fc-7d96025990a8</UserSecretsId>
-		<Version>5.2406.5</Version>
-		<AssemblyVersion>5.2406.5.1</AssemblyVersion>
-		<FileVersion>5.2406.5.1</FileVersion>
+		<Version>5.2406.12</Version>
+		<AssemblyVersion>5.2406.12.1</AssemblyVersion>
+		<FileVersion>5.2406.12.1</FileVersion>
 		<Description>TEAMModelOS(IES5)</Description>
 		<Description>TEAMModelOS(IES5)</Description>
-		<PackageReleaseNotes>IES版本说明版本切换标记5.2406.5.1</PackageReleaseNotes>
+		<PackageReleaseNotes>IES版本说明版本切换标记5.2406.12.1</PackageReleaseNotes>
 		<PackageId>TEAMModelOS</PackageId>
 		<PackageId>TEAMModelOS</PackageId>
 		<Authors>teammodel</Authors>
 		<Authors>teammodel</Authors>
 		<Company>醍摩豆(成都)信息技术有限公司</Company>
 		<Company>醍摩豆(成都)信息技术有限公司</Company>

Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 3 - 3
TEAMModelOS/appsettings.Development.json


+ 1 - 1
TEAMModelOS/appsettings.json

@@ -18,7 +18,7 @@
     "Exp": 86400,
     "Exp": 86400,
     "IdTokenSalt": "8263692E2213497BB55E74792B7900B4",
     "IdTokenSalt": "8263692E2213497BB55E74792B7900B4",
     "HttpTrigger": "https://teammodelosfunction.chinacloudsites.cn/api/",
     "HttpTrigger": "https://teammodelosfunction.chinacloudsites.cn/api/",
-    "Version": "5.2406.5.1"
+    "Version": "5.2406.12.1"
   },
   },
   "Azure": {
   "Azure": {
     "Storage": {
     "Storage": {