From 285c6f31dfd88c4dc353ecf42a913e98fb77fe03 Mon Sep 17 00:00:00 2001 From: tongfei <244188119@qq.com> Date: Fri, 29 Mar 2024 18:15:55 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/WMS.Web.Api/Controllers/TestController.cs | 14 +++++- src/WMS.Web.Api/appsettings.json | 44 +++++++++---------- src/WMS.Web.Api/wwwroot/WMS.Web.Api.xml | 6 +++ src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml | 4 +- .../IService/Public/ISendMessageService.cs | 2 +- .../Services/Public/SendMessageService.cs | 21 +++++---- src/WMS.Web.Domain/WMS.Web.Domain.csproj | 1 + 7 files changed, 57 insertions(+), 35 deletions(-) diff --git a/src/WMS.Web.Api/Controllers/TestController.cs b/src/WMS.Web.Api/Controllers/TestController.cs index faeb383d..66a78e36 100644 --- a/src/WMS.Web.Api/Controllers/TestController.cs +++ b/src/WMS.Web.Api/Controllers/TestController.cs @@ -46,13 +46,15 @@ namespace WMS.Web.Api.Controllers private readonly IWebHostEnvironment _env; private readonly ILoginService _loginService; private readonly AppOptions _options; + private readonly ISendMessageService _sendMessageService; public TestController(IErpService erpService, IInStockTaskService inStockTaskService, IBoxInventoryRepositories boxInventoryRepositories, IBasicsRepositories transactionRepositories, IOpsService opsService, IBoxService boxService, IBasicsRepositories basicsRepositories, - IOutStockTaskRepositories outStockTaskRepositories, IOutStockTaskService outStockTaskService, IOptions options, ILoginService loginService, + IOutStockTaskRepositories outStockTaskRepositories, IOutStockTaskService outStockTaskService, IOptions options, ILoginService loginService, ISendMessageService sendMessageService, ITakeStockService takeStockService, ITakeStockRepositories takeStockRepositories, IOutStockService outStockService, IInStockTaskRepositories inStockTaskRepositories, IWebHostEnvironment env) { _loginService = loginService; + _sendMessageService = sendMessageService; _inStockTaskRepositories = inStockTaskRepositories; _basicsRepositories = basicsRepositories; _options = options?.Value; @@ -329,5 +331,15 @@ namespace WMS.Web.Api.Controllers await _loginService.RefreshTokenNew(oldtoken, retoken); return ""; } + /// + /// 测试发送 + /// + /// + [HttpGet] + [Route("Send")] + public async Task Send() + { + return await _sendMessageService.Execute(); + } } } diff --git a/src/WMS.Web.Api/appsettings.json b/src/WMS.Web.Api/appsettings.json index 36b14bcc..67852484 100644 --- a/src/WMS.Web.Api/appsettings.json +++ b/src/WMS.Web.Api/appsettings.json @@ -1,4 +1,4 @@ -{ +{ "Logging": { "LogLevel": { "Default": "Information", @@ -28,7 +28,7 @@ }, "SoaOptions": { "ModuleID": 25, - "Url_V3": "https://dev.uc.v3.f2b211.com", //ʽhttp://uc.v3.f2b211.com + "Url_V3": "https://dev.uc.v3.f2b211.com", //正式http://uc.v3.f2b211.com "Url": "http://dev.uc.f2b211.com", "AppId": "100528847652388864", "AppSecret": "fa950a1fe690fe610338084b49db7db9", @@ -49,55 +49,55 @@ "Qiniu": { "AccessKey": "dOsTum4a5qvhPTBbZRPX0pIOU7PZWRX7htKjztms", "SecretKey": "KFxsGbnErkALFfeGdMa8QWTdodJbamMX0iznLe-q", - "Bucket": "orico-wms-test", //ʽ orico-wms - "Url": "https://wmstestfile.f2b211.com/" // https://wmstestfile.f2b211.com/ ʽ https://wmsfile.f2b211.com/ + "Bucket": "orico-wms-test", //正式 orico-wms + "Url": "https://wmstestfile.f2b211.com/" //测试 https://wmstestfile.f2b211.com/ 正式 https://wmsfile.f2b211.com/ }, - //ʱ + //定时任务配置项 "QuartzJobOptions": { - //洢:ֵ + //存储类型:键和值 "JobStoreTypeKey": "quartz.jobStore.type", "JobStoreTypeValue": "Quartz.Impl.AdoJobStore.JobStoreTX, Quartz", - //ݿ-mysql:ֵ + //数据库驱动类型-这里是mysql:键和值 "JobStoreDriverDelegateTypeKey": "quartz.jobStore.driverDelegateType", "JobStoreDriverDelegateTypeValue": "Quartz.Impl.AdoJobStore.MySQLDelegate, Quartz", - //ݿǰ׺:ֵ + //数据库表名前缀:键和值 "JobStoreTablePrefixKey": "quartz.jobStore.tablePrefix", "JobStoreTablePrefixValue": "QRTZ_", - //Դ:ֵ + //数据源的名称:键和值 "JobStoreDataSourceKey": "quartz.jobStore.dataSource", "JobStoreDataSourceValue": "myDS", - //ַ:ֵ + //连接字符串:键和值 "JobStoreConnectionStringKey": "quartz.dataSource.myDS.connectionString", "JobStoreConnectionStringValue": "Server=192.168.1.253; Database=wms_db;User Id=root;password=bf69f5755f97e943;port=3306;CharSet=gb2312;Connect Timeout=150;", - //mysqlṩ:ֵ + //mysql提供器:键和值 "JobStoreProviderKey": "quartz.dataSource.myDS.provider", "JobStoreProviderValue": "MySql", - //㿪ʼִ + //几点开始执行 "JobStartHour": [ 15, 11, 1, 0, 0, 10 ], - //ӿʼִ + //几分钟开始执行 "JobStartMinute": [ 30, 39, 30, 20, 5, 5 ], - //ִCronʽǼСʱororororܣ + //执行Cron表达式:可以是几小时or几分钟or几秒钟or几天or几周; "JobStartExpre": "0 0/30 * * * ?", "JobStartExpreAmount": "0 50 23 * * ?", - //a.ǷüȺֵ + //a.是否启用集群:键和值 "JobStoreClusteredKey": "quartz.jobStore.clustered", "JobStoreClusteredValue": true, - //b.Ⱥеÿڵ㶼һΨһ instanceId - // ͨAUTOΪԵֵ - //עaԺbʹãȺȥ + //b.集群中的每个节点都必须有一个唯一的 instanceId + // 通过将“AUTO”设置为该属性的值来完成 + //备注:a属性和b属性配套使用;如果不开启集群这两个属性去掉 "JobStoreInstanceIdKey": "quartz.scheduler.instanceId", "JobStoreInstanceIdValue": "AUTO", - //¿Զ + //以下可以自定义配置 "QuartzJobKey": "OpsJob", "QuartzJobValue": "OpsJobGroup", "QuartzJobDescription": "OpsJob", @@ -107,15 +107,15 @@ "EmailOptions": { "SmtpServer": "smtp.qiye.aliyun.com", "SmtpPort": 587, - "SenderName": "Ԫʱ", - "SendTitle": "Ԫʱ-Ʒ֪ͨ", + "SenderName": "元创时代", + "SendTitle": "【元创时代】-产品入库通知", "SenderEmail": "info@f2b211.com", "SenderEmailPwd": "K4h6GgxZYGMYV1Bb" }, "SmsOptions": { "AccessKeyId": "LTAI5tBJg6KeDV2V1NiS7Ngi", "AccessKeySecret": "MAC8bMovSFyCgRQGkfhVcL1jvLJ8cP", - "SignName": "Ԫʱ", + "SignName": "深圳市元创时代", "TemplateCode": "SMS_465408787" } } diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Api.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Api.xml index 3a574846..76086fa6 100644 --- a/src/WMS.Web.Api/wwwroot/WMS.Web.Api.xml +++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Api.xml @@ -779,5 +779,11 @@ + + + 测试发送 + + + diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml index fc0d4039..4f887ee7 100644 --- a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml +++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml @@ -4164,7 +4164,7 @@ - + 邮箱发送 @@ -5999,7 +5999,7 @@ - + 邮箱发送消息 diff --git a/src/WMS.Web.Domain/IService/Public/ISendMessageService.cs b/src/WMS.Web.Domain/IService/Public/ISendMessageService.cs index d5ad57c3..4777a26a 100644 --- a/src/WMS.Web.Domain/IService/Public/ISendMessageService.cs +++ b/src/WMS.Web.Domain/IService/Public/ISendMessageService.cs @@ -28,7 +28,7 @@ namespace WMS.Web.Domain.IService /// /// /// - Task SendEmail(List toMailList, string textBody); + Task SendEmail(List toMailList, string textBody, string coustomerName); /// /// diff --git a/src/WMS.Web.Domain/Services/Public/SendMessageService.cs b/src/WMS.Web.Domain/Services/Public/SendMessageService.cs index 725b8e55..9eef94f8 100644 --- a/src/WMS.Web.Domain/Services/Public/SendMessageService.cs +++ b/src/WMS.Web.Domain/Services/Public/SendMessageService.cs @@ -72,6 +72,7 @@ namespace WMS.Web.Domain.Services SendSmsRequest request = new SendSmsRequest(); request.PhoneNumbers = phoneNumbers; // 目标手机号 request.SignName = _smsOptions.SignName; // 短信签名 + //request.SignName = "深圳市元创时代"; // 短信签名 request.TemplateCode = _smsOptions.TemplateCode; // 短信模板编号 request.TemplateParam = "{\"material\":\"" + content+"\"}"; // 模板参数,根据实际情况填写 @@ -79,7 +80,7 @@ namespace WMS.Web.Domain.Services { // 发送短信 SendSmsResponse response = client.GetAcsResponse(request); - _logger.LogInformation("短信发送消息:成功->手机号码:" + phoneNumbers + " 内容:" + content); + _logger.LogInformation($"短信发送消息:成功->短信签名:{_smsOptions.SignName}->手机号码:" + phoneNumbers + " 内容:" + content); return true; } catch (ServerException e) @@ -101,19 +102,21 @@ namespace WMS.Web.Domain.Services /// /// /// - public async Task SendEmail(List toMailList,string textBody) + public async Task SendEmail(List toMailList,string textBody,string coustomerName) { // 创建 MimeMessage 实例 MimeMessage message = new MimeMessage(); - message.From.Add(new MailboxAddress(_emailOptions.SenderName, _emailOptions.SenderEmail)); // 设置发件人姓名和邮箱地址 + //message.From.Add(new MailboxAddress( _emailOptions.SenderName, _emailOptions.SenderEmail)); // 设置发件人姓名和邮箱地址 + message.From.Add(new MailboxAddress("元创时代", _emailOptions.SenderEmail)); // 设置发件人姓名和邮箱地址 //message.To.Add(new MailboxAddress("Recipient Name", "244188119@qq.com")); // 设置收件人姓名和邮箱地址 message.To.AddRange(toMailList); - message.Subject = _emailOptions.SendTitle+$"{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}"; // 设置邮件主题 + //message.Subject = _emailOptions.SendTitle+$"{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}"; // 设置邮件主题 + message.Subject =$"【元创时代】-产品入库通知{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}"; // 设置邮件主题 // 创建邮件正文 BodyBuilder bodyBuilder = new BodyBuilder(); - bodyBuilder.TextBody = textBody; // 设置纯文本内容 - //bodyBuilder.HtmlBody = "

This is a test email sent from .NETCore.MailKit.lst

"; // 设置 HTML 内容 + //bodyBuilder.TextBody = textBody; // 设置纯文本内容 + bodyBuilder.HtmlBody = $"

尊敬的{coustomerName},您好,您的以下产品已入库/可安排发货:\r\n

{textBody}

"; // 设置 HTML 内容 message.Body = bodyBuilder.ToMessageBody(); try @@ -223,14 +226,14 @@ namespace WMS.Web.Domain.Services foreach (var det in item.Details) { if (i == item.Details.Count) - content = det.Specifications + " X 数量" + det.Qty; + content = det.Specifications + " X 数量" +Convert.ToInt32(det.Qty); else - content = det.Specifications + " X 数量" + det.Qty + ","; + content = det.Specifications + " X 数量" + Convert.ToInt32(det.Qty) + ","; i = i + 1; } //邮箱 - await this.SendEmail(item.EmailList, content); + await this.SendEmail(item.EmailList, content, item.CustomerName); //短信 this.SendSms(item.PhoneNumbers, content); } diff --git a/src/WMS.Web.Domain/WMS.Web.Domain.csproj b/src/WMS.Web.Domain/WMS.Web.Domain.csproj index 466c2992..5946ff22 100644 --- a/src/WMS.Web.Domain/WMS.Web.Domain.csproj +++ b/src/WMS.Web.Domain/WMS.Web.Domain.csproj @@ -25,6 +25,7 @@ +