优化接口

This commit is contained in:
tongfei
2024-03-29 18:15:55 +08:00
parent 9c2982cec0
commit 285c6f31df
7 changed files with 57 additions and 35 deletions

View File

@@ -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<AppOptions> options, ILoginService loginService,
IOutStockTaskRepositories outStockTaskRepositories, IOutStockTaskService outStockTaskService, IOptions<AppOptions> 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 "";
}
/// <summary>
/// 测试发送
/// </summary>
/// <returns></returns>
[HttpGet]
[Route("Send")]
public async Task<Result> Send()
{
return await _sendMessageService.Execute();
}
}
}

View File

@@ -1,4 +1,4 @@
{
{
"Logging": {
"LogLevel": {
"Default": "Information",
@@ -28,7 +28,7 @@
},
"SoaOptions": {
"ModuleID": 25,
"Url_V3": "https://dev.uc.v3.f2b211.com", //<EFBFBD><EFBFBD>ʽ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", //<EFBFBD><EFBFBD>ʽ orico-wms
"Url": "https://wmstestfile.f2b211.com/" //<EFBFBD><EFBFBD><EFBFBD><EFBFBD> https://wmstestfile.f2b211.com/ <EFBFBD><EFBFBD>ʽ https://wmsfile.f2b211.com/
"Bucket": "orico-wms-test", //正式 orico-wms
"Url": "https://wmstestfile.f2b211.com/" //测试 https://wmstestfile.f2b211.com/ 正式 https://wmsfile.f2b211.com/
},
//<EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//定时任务配置项
"QuartzJobOptions": {
//<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:<3A><><EFBFBD><EFBFBD>ֵ
//存储类型:键和值
"JobStoreTypeKey": "quartz.jobStore.type",
"JobStoreTypeValue": "Quartz.Impl.AdoJobStore.JobStoreTX, Quartz",
//<EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>mysql:<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
//数据库驱动类型-这里是mysql:键和值
"JobStoreDriverDelegateTypeKey": "quartz.jobStore.driverDelegateType",
"JobStoreDriverDelegateTypeValue": "Quartz.Impl.AdoJobStore.MySQLDelegate, Quartz",
//<EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ׺:<3A><><EFBFBD><EFBFBD>ֵ
//数据库表名前缀:键和值
"JobStoreTablePrefixKey": "quartz.jobStore.tablePrefix",
"JobStoreTablePrefixValue": "QRTZ_",
//<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:<3A><><EFBFBD><EFBFBD>ֵ
//数据源的名称:键和值
"JobStoreDataSourceKey": "quartz.jobStore.dataSource",
"JobStoreDataSourceValue": "myDS",
//<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD>:<3A><><EFBFBD><EFBFBD>ֵ
//连接字符串:键和值
"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<EFBFBD><EFBFBD><EFBFBD>:<3A><><EFBFBD><EFBFBD>ֵ
//mysql提供器:键和值
"JobStoreProviderKey": "quartz.dataSource.myDS.provider",
"JobStoreProviderValue": "MySql",
//<EFBFBD><EFBFBD><EFBFBD>ʼִ<EFBFBD><EFBFBD>
//几点开始执行
"JobStartHour": [ 15, 11, 1, 0, 0, 10 ],
//<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӿ<EFBFBD>ʼִ<EFBFBD><EFBFBD>
//几分钟开始执行
"JobStartMinute": [ 30, 39, 30, 20, 5, 5 ],
//ִ<EFBFBD><EFBFBD>Cron<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ǽ<EFBFBD>Сʱor<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>or<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>or<EFBFBD><EFBFBD><EFBFBD><EFBFBD>or<EFBFBD><EFBFBD><EFBFBD>ܣ<EFBFBD>
//执行Cron表达式可以是几小时or几分钟or几秒钟or几天or几周
"JobStartExpre": "0 0/30 * * * ?",
"JobStartExpreAmount": "0 50 23 * * ?",
//a.<EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ü<EFBFBD>Ⱥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
//a.是否启用集群:键和值
"JobStoreClusteredKey": "quartz.jobStore.clustered",
"JobStoreClusteredValue": true,
//b.<EFBFBD><EFBFBD>Ⱥ<EFBFBD>е<EFBFBD>ÿ<EFBFBD><EFBFBD><EFBFBD>ڵ㶼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD>Ψһ<EFBFBD><EFBFBD> instanceId
// ͨ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>AUTO<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ե<EFBFBD>ֵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//<EFBFBD><EFBFBD>ע<EFBFBD><EFBFBD>a<EFBFBD><EFBFBD><EFBFBD>Ժ<EFBFBD>b<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD>ã<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ⱥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȥ<EFBFBD><EFBFBD>
//b.集群中的每个节点都必须有一个唯一的 instanceId
// 通过将“AUTO”设置为该属性的值来完成
//备注a属性和b属性配套使用如果不开启集群这两个属性去掉
"JobStoreInstanceIdKey": "quartz.scheduler.instanceId",
"JobStoreInstanceIdValue": "AUTO",
//<EFBFBD><EFBFBD><EFBFBD>¿<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//以下可以自定义配置
"QuartzJobKey": "OpsJob",
"QuartzJobValue": "OpsJobGroup",
"QuartzJobDescription": "OpsJob",
@@ -107,15 +107,15 @@
"EmailOptions": {
"SmtpServer": "smtp.qiye.aliyun.com",
"SmtpPort": 587,
"SenderName": "Ԫ<EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>",
"SendTitle": "<EFBFBD><EFBFBD>Ԫ<EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>-<2D><>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD>֪ͨ",
"SenderName": "元创时代",
"SendTitle": "【元创时代】-产品入库通知",
"SenderEmail": "info@f2b211.com",
"SenderEmailPwd": "K4h6GgxZYGMYV1Bb"
},
"SmsOptions": {
"AccessKeyId": "LTAI5tBJg6KeDV2V1NiS7Ngi",
"AccessKeySecret": "MAC8bMovSFyCgRQGkfhVcL1jvLJ8cP",
"SignName": "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԫ<EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>",
"SignName": "深圳市元创时代",
"TemplateCode": "SMS_465408787"
}
}

View File

@@ -779,5 +779,11 @@
</summary>
<returns></returns>
</member>
<member name="M:WMS.Web.Api.Controllers.TestController.Send">
<summary>
测试发送
</summary>
<returns></returns>
</member>
</members>
</doc>

View File

@@ -4164,7 +4164,7 @@
<param name="content"></param>
<returns></returns>
</member>
<member name="M:WMS.Web.Domain.IService.ISendMessageService.SendEmail(System.Collections.Generic.List{MimeKit.MailboxAddress},System.String)">
<member name="M:WMS.Web.Domain.IService.ISendMessageService.SendEmail(System.Collections.Generic.List{MimeKit.MailboxAddress},System.String,System.String)">
<summary>
邮箱发送
</summary>
@@ -5999,7 +5999,7 @@
<param name="content"></param>
<returns></returns>
</member>
<member name="M:WMS.Web.Domain.Services.SendMessageService.SendEmail(System.Collections.Generic.List{MimeKit.MailboxAddress},System.String)">
<member name="M:WMS.Web.Domain.Services.SendMessageService.SendEmail(System.Collections.Generic.List{MimeKit.MailboxAddress},System.String,System.String)">
<summary>
邮箱发送消息
</summary>

View File

@@ -28,7 +28,7 @@ namespace WMS.Web.Domain.IService
/// <param name="toMailList"></param>
/// <param name="textBody"></param>
/// <returns></returns>
Task<Result> SendEmail(List<MailboxAddress> toMailList, string textBody);
Task<Result> SendEmail(List<MailboxAddress> toMailList, string textBody, string coustomerName);
/// <summary>
///

View File

@@ -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
/// <param name="toMailList"></param>
/// <param name="textBody"></param>
/// <returns></returns>
public async Task<Result> SendEmail(List<MailboxAddress> toMailList,string textBody)
public async Task<Result> SendEmail(List<MailboxAddress> 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 = "<p>This is a <b>test</b> email sent from <i>.NETCore.MailKit</i>.lst</p>"; // 设置 HTML 内容
//bodyBuilder.TextBody = textBody; // 设置纯文本内容
bodyBuilder.HtmlBody = $"<p>尊敬的{coustomerName},您好,您的以下产品已入库/可安排发货:\r\n<p><p>{textBody}</p>"; // 设置 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);
}

View File

@@ -25,6 +25,7 @@
<PackageReference Include="Qiniu" Version="8.0.0" />
<PackageReference Include="SkiaSharp" Version="2.80.3" />
<PackageReference Include="System.IdentityModel.Tokens.Jwt" Version="5.5.0" />
<PackageReference Include="System.Text.Encoding.CodePages" Version="8.0.0" />
<PackageReference Include="Wkhtmltopdf.NetCore" Version="3.0.2" />
</ItemGroup>