Compare commits

..

No commits in common. "6211506aee389ba7c12e3d6ae58ce185e10a1a41" and "b56d45f411832ce4fec347ee49808472ece3ded7" have entirely different histories.

1 changed files with 151 additions and 162 deletions

View File

@ -5,7 +5,6 @@ using IRaCIS.Core.Application.Helper;
using IRaCIS.Core.Application.MassTransit.Consumer; using IRaCIS.Core.Application.MassTransit.Consumer;
using IRaCIS.Core.Application.Service.Reading.Dto; using IRaCIS.Core.Application.Service.Reading.Dto;
using IRaCIS.Core.Domain.Models; using IRaCIS.Core.Domain.Models;
using IRaCIS.Core.Domain.Share;
using MassTransit; using MassTransit;
using Microsoft.Extensions.Options; using Microsoft.Extensions.Options;
using MimeKit; using MimeKit;
@ -85,61 +84,58 @@ namespace IRaCIS.Core.Application.MassTransit.Recurring
var userinfoList = await _identityUserRepository.Where(x => confirmUserIdList.Contains(x.Id)).ToListAsync(); var userinfoList = await _identityUserRepository.Where(x => confirmUserIdList.Contains(x.Id)).ToListAsync();
Console.WriteLine("发送定时过期提醒:人员数量" + userinfoList.Count); Console.WriteLine("发送定时过期提醒:人员数量" + userinfoList.Count);
int index = 1;
var scenario = EmailBusinessScenario.GeneralTraining_ExpirationNotification; foreach (var userinfo in userinfoList)
var emailConfig = _emailNoticeConfigrepository.Where(t => t.BusinessScenarioEnum == scenario && t.IsAutoSend && t.IsEnable).FirstOrDefault();
if (emailConfig == null)
{
return;
}
var userWorkLanguageList = userinfoList.Select(x => x.UserWorkLanguage).Distinct().ToList();
foreach (var workLanguage in userWorkLanguageList)
{ {
try try
{ {
var langUserInfoList = userinfoList.Where(x => x.UserWorkLanguage == workLanguage).ToList(); Console.WriteLine($"{index}发送定时过期提醒,邮箱:{userinfo.EMail},姓名{userinfo.UserName}");
if (!langUserInfoList.Any()) index++;
{
continue;
}
var userIsEn_US = workLanguage == UserWorkLanguage.US;
var messageToSend = new MimeMessage(); var messageToSend = new MimeMessage();
//发件地址
messageToSend.From.Add(new MailboxAddress(_systemEmailConfig.FromName, _systemEmailConfig.FromEmail)); messageToSend.From.Add(new MailboxAddress(_systemEmailConfig.FromName, _systemEmailConfig.FromEmail));
foreach (var userinfo in langUserInfoList)
{
messageToSend.To.Add(new MailboxAddress(userinfo.FullName, userinfo.EMail)); messageToSend.To.Add(new MailboxAddress(userinfo.FullName, userinfo.EMail));
}
var companyName = userIsEn_US ? _systemEmailConfig.CompanyShortName : _systemEmailConfig.CompanyShortNameCN;
var userNames = langUserInfoList.Select(x => x.UserName).ToList();
var companyName = isEn_US ? _systemEmailConfig.CompanyShortName : _systemEmailConfig.CompanyShortNameCN;
Func<(string topicStr, string htmlBodyStr), (string topicStr, string htmlBodyStr)> emailConfigFunc = input => Func<(string topicStr, string htmlBodyStr), (string topicStr, string htmlBodyStr)> emailConfigFunc = input =>
{ {
var topicStr = string.Format(input.topicStr, companyName); var topicStr = string.Format(input.topicStr, companyName);
var htmlBodyStr = string.Format( var htmlBodyStr = string.Format(
CommonEmailHelper.ReplaceCompanyName(_systemEmailConfig, input.htmlBodyStr, workLanguage), CommonEmailHelper.ReplaceCompanyName(_systemEmailConfig, input.htmlBodyStr),
string.Join(',', userNames), userinfo.UserName, // 用户名 {0}
_systemEmailConfig.SiteUrl _systemEmailConfig.SiteUrl
); );
return (topicStr, htmlBodyStr); return (topicStr, htmlBodyStr);
}; };
await CommonEmailHelper.GetEmailSubejctAndHtmlInfoAndBuildAsync(emailConfig, messageToSend, emailConfigFunc, workLanguage); var scenario = EmailBusinessScenario.GeneralTraining_ExpirationNotification;
var emailConfig = _emailNoticeConfigrepository.Where(t => t.BusinessScenarioEnum == scenario && t.IsAutoSend && t.IsEnable).FirstOrDefault();
if (emailConfig != null)
{
await CommonEmailHelper.GetEmailSubejctAndHtmlInfoAndBuildAsync(emailConfig, messageToSend, emailConfigFunc);
await SendEmailHelper.SendEmailAsync(messageToSend, _systemEmailConfig); await SendEmailHelper.SendEmailAsync(messageToSend, _systemEmailConfig);
} }
}
catch (Exception) catch (Exception)
{ {
}
} }
} }
}
}
/// <summary> /// <summary>
/// 生效通知 /// 生效通知
/// </summary> /// </summary>
@ -232,53 +228,47 @@ namespace IRaCIS.Core.Application.MassTransit.Recurring
var confirmUserIdList = datalist.Select(t => t.ConfirmUserId).Distinct().ToList(); var confirmUserIdList = datalist.Select(t => t.ConfirmUserId).Distinct().ToList();
var userinfoList = await _identityUserRepository.Where(x => confirmUserIdList.Contains(x.Id)).ToListAsync(); var userinfoList = await _identityUserRepository.Where(x => confirmUserIdList.Contains(x.Id)).ToListAsync();
int index = 1;
var scenario = EmailBusinessScenario.GeneralTraining_EffectiveNotification; foreach (var userinfo in userinfoList)
var emailConfig = _emailNoticeConfigrepository.Where(t => t.BusinessScenarioEnum == scenario && t.IsAutoSend && t.IsEnable).FirstOrDefault();
if (emailConfig == null)
{ {
return; string msg = $"{index}生效通知,邮箱:{userinfo.EMail},姓名{userinfo.UserName},";
} index++;
var userWorkLanguageList = userinfoList.Select(x => x.UserWorkLanguage).Distinct().ToList();
foreach (var workLanguage in userWorkLanguageList)
{
var langUserInfoList = userinfoList.Where(x => x.UserWorkLanguage == workLanguage).ToList();
if (!langUserInfoList.Any())
{
continue;
}
string msg = $"{langUserInfoList.Count}生效通知,";
try try
{ {
var messageToSend = new MimeMessage(); var messageToSend = new MimeMessage();
//发件地址
messageToSend.From.Add(new MailboxAddress(_systemEmailConfig.FromName, _systemEmailConfig.FromEmail)); messageToSend.From.Add(new MailboxAddress(_systemEmailConfig.FromName, _systemEmailConfig.FromEmail));
foreach (var userinfo in langUserInfoList)
{
messageToSend.To.Add(new MailboxAddress(userinfo.FullName, userinfo.EMail)); messageToSend.To.Add(new MailboxAddress(userinfo.FullName, userinfo.EMail));
}
var userIsEn_US = workLanguage == UserWorkLanguage.US;
var companyName = userIsEn_US ? _systemEmailConfig.CompanyShortName : _systemEmailConfig.CompanyShortNameCN;
var userNames = langUserInfoList.Select(x => x.UserName).ToList();
var companyName = isEn_US ? _systemEmailConfig.CompanyShortName : _systemEmailConfig.CompanyShortNameCN;
Func<(string topicStr, string htmlBodyStr), (string topicStr, string htmlBodyStr)> emailConfigFunc = input => Func<(string topicStr, string htmlBodyStr), (string topicStr, string htmlBodyStr)> emailConfigFunc = input =>
{ {
var topicStr = string.Format(input.topicStr, companyName); var topicStr = string.Format(input.topicStr, companyName);
var htmlBodyStr = string.Format( var htmlBodyStr = string.Format(
CommonEmailHelper.ReplaceCompanyName(_systemEmailConfig, input.htmlBodyStr, workLanguage), CommonEmailHelper.ReplaceCompanyName(_systemEmailConfig, input.htmlBodyStr),
string.Join(',', userNames), userinfo.UserName, // 用户名 {0}
_systemEmailConfig.SiteUrl _systemEmailConfig.SiteUrl
); );
return (topicStr, htmlBodyStr); return (topicStr, htmlBodyStr);
}; };
await CommonEmailHelper.GetEmailSubejctAndHtmlInfoAndBuildAsync(emailConfig, messageToSend, emailConfigFunc, workLanguage);
var scenario = EmailBusinessScenario.GeneralTraining_EffectiveNotification;
var emailConfig = _emailNoticeConfigrepository.Where(t => t.BusinessScenarioEnum == scenario && t.IsAutoSend && t.IsEnable).FirstOrDefault();
if (emailConfig != null)
{
await CommonEmailHelper.GetEmailSubejctAndHtmlInfoAndBuildAsync(emailConfig, messageToSend, emailConfigFunc);
await SendEmailHelper.SendEmailAsync(messageToSend, _systemEmailConfig); await SendEmailHelper.SendEmailAsync(messageToSend, _systemEmailConfig);
msg += "发送成功"; msg += "发送成功";
}
} }
catch (Exception) catch (Exception)
@ -293,5 +283,4 @@ namespace IRaCIS.Core.Application.MassTransit.Recurring
} }
} }
}
} }