fix: C# 管理后端配置的邮件模板-缺少变量参数:交易编号、平仓总额
This commit is contained in:
@@ -95,7 +95,9 @@ namespace YLErp.Modules.AppModule
|
||||
|
||||
string replace(Match m)
|
||||
{
|
||||
switch (m.Groups[1].Value)
|
||||
// 同时兼容标准 {{变量}} 和历史模板中的 {变量} 写法。
|
||||
var variableName = m.Groups[1].Success ? m.Groups[1].Value : m.Groups[2].Value;
|
||||
switch (variableName)
|
||||
{
|
||||
case "客户名称":
|
||||
return reqModel.ClientName;
|
||||
@@ -105,11 +107,16 @@ namespace YLErp.Modules.AppModule
|
||||
return reqModel.DocNumber;
|
||||
case "交易列表":
|
||||
return reqModel.TradeList;
|
||||
// 结算邮件扩展变量:可同时用于邮件标题和正文。
|
||||
case "交易编号":
|
||||
return reqModel.TradeNumber ?? string.Empty;
|
||||
case "平仓总额":
|
||||
return reqModel.UnwindTotalAmount ?? string.Empty;
|
||||
}
|
||||
return string.Empty;
|
||||
}
|
||||
|
||||
var pattern = @"\{\{(客户名称|交易日期|文档编号|交易列表)\}\}";
|
||||
var pattern = @"\{\{(客户名称|交易日期|文档编号|交易列表|交易编号|平仓总额)\}\}|\{(客户名称|交易日期|文档编号|交易列表|交易编号|平仓总额)\}";
|
||||
|
||||
var result = new MailInfoResultModel
|
||||
{
|
||||
@@ -146,6 +153,16 @@ namespace YLErp.Modules.AppModule
|
||||
/// {{交易列表}}
|
||||
/// </summary>
|
||||
public string TradeList { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// {{交易编号}}:当前客户在本次结算日邮件中涉及的交易编号,多个编号以逗号分隔。
|
||||
/// </summary>
|
||||
public string TradeNumber { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// {{平仓总额}}:当前客户在本次结算日邮件中的平仓金额合计,使用客户视角。
|
||||
/// </summary>
|
||||
public string UnwindTotalAmount { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -166,13 +166,17 @@ namespace YLErp.Modules.ReportModule
|
||||
fileList.Add(Path.ChangeExtension(docInfo.AbsolutePath, extension));
|
||||
}
|
||||
}
|
||||
//组织邮件主体
|
||||
var mailInfo = EmailTemplateService.GenerateMailInfo(useTemplate.Value, new MailInfoRequestModel
|
||||
// 根据当前客户的结算确认书准备交易编号和平仓总额变量。
|
||||
var settlementRows = SettlementMailTemplateHelper.GetSettlementRows(DbContext, SettleBills, client.id);
|
||||
var mailRequest = new MailInfoRequestModel
|
||||
{
|
||||
ClientName = client.Name,
|
||||
TradeDate = valueDate.ToString("yyyy-MM-dd"),
|
||||
DocNumber = SettleBills.Count > 0 ? SettleBills[0].Code : string.Empty
|
||||
}) ?? new MailInfoResultModel
|
||||
};
|
||||
SettlementMailTemplateHelper.PopulateSettlementFields(mailRequest, settlementRows);
|
||||
//组织邮件主体
|
||||
var mailInfo = EmailTemplateService.GenerateMailInfo(useTemplate.Value, mailRequest) ?? new MailInfoResultModel
|
||||
{
|
||||
Body = string.Empty,
|
||||
Title = "清算确认书-" + valueDate.ToString("yyyy-MM-dd")
|
||||
@@ -316,7 +320,9 @@ namespace YLErp.Modules.ReportModule
|
||||
foreach (var client in clientListOn)
|
||||
{
|
||||
var SettleBills = theDaySettleDocList.Where(t => t.SellerId == client.id || t.BuyerId == client.id).ToList();
|
||||
var res = ts.Where(O => O.trade.ClientId == client.id).ToList();
|
||||
// 批量查询包含整个日期区间,此处仅保留当前结算日的数据。
|
||||
var res = SettlementMailTemplateHelper.ForValueDate(
|
||||
ts.Where(O => O.trade.ClientId == client.id), valueDate);
|
||||
if (SettleBills.Count > 0)
|
||||
{
|
||||
var fileList = new List<string>();
|
||||
@@ -338,14 +344,16 @@ namespace YLErp.Modules.ReportModule
|
||||
var sb = new StringBuilder();
|
||||
var instrumentTypeArr = new List<string>() { ConsGlobal.InstrumentType.Stock, ConsGlobal.InstrumentType.StockIF };
|
||||
SendEmailSettleBillHtml(sb, res);
|
||||
//组织邮件主体
|
||||
var mailInfo = EmailTemplateService.GenerateMailInfo(tempalte.Value, new MailInfoRequestModel
|
||||
var mailRequest = new MailInfoRequestModel
|
||||
{
|
||||
ClientName = client.Name,
|
||||
TradeDate = valueDate.ToString("yyyy-MM-dd"),
|
||||
TradeList = sb.ToString(),
|
||||
DocNumber = SettleBills.Count > 0 ? SettleBills[0].Code : string.Empty
|
||||
}) ?? new MailInfoResultModel
|
||||
};
|
||||
SettlementMailTemplateHelper.PopulateSettlementFields(mailRequest, res);
|
||||
//组织邮件主体
|
||||
var mailInfo = EmailTemplateService.GenerateMailInfo(tempalte.Value, mailRequest) ?? new MailInfoResultModel
|
||||
{
|
||||
Body = string.Empty,
|
||||
Title = "清算确认书-" + valueDate.ToString("yyyy-MM-dd")
|
||||
|
||||
@@ -425,13 +425,17 @@ namespace YLErp.Modules.ReportModule
|
||||
|
||||
if (fileList.Count == 0) { continue; }
|
||||
|
||||
//组织邮件主体
|
||||
var mailInfo = EmailTemplateService.GenerateMailInfo(useTemplate.Value, new MailInfoRequestModel
|
||||
// 根据当前客户的提前终止确认书准备交易编号和平仓总额变量。
|
||||
var settlementRows = SettlementMailTemplateHelper.GetSettlementRows(DbContext, SettleBills, client.id);
|
||||
var mailRequest = new MailInfoRequestModel
|
||||
{
|
||||
ClientName = client.Name,
|
||||
TradeDate = valueDate.ToString("yyyy-MM-dd"),
|
||||
DocNumber = SettleBills.Count > 0 ? SettleBills[0].Code : string.Empty
|
||||
}) ?? new MailInfoResultModel
|
||||
};
|
||||
SettlementMailTemplateHelper.PopulateSettlementFields(mailRequest, settlementRows);
|
||||
//组织邮件主体
|
||||
var mailInfo = EmailTemplateService.GenerateMailInfo(useTemplate.Value, mailRequest) ?? new MailInfoResultModel
|
||||
{
|
||||
Body = string.Empty,
|
||||
Title = "清算确认书-" + valueDate.ToString("yyyy-MM-dd")
|
||||
@@ -601,7 +605,9 @@ trades.GroupBy(O => new { UnderlyingInstrumentType = instrumentTypeArr.Contains(
|
||||
foreach (var client in clientListOn)
|
||||
{
|
||||
var SettleBills = theDaySettleDocList.Where(t => t.SellerId == client.id || t.BuyerId == client.id).ToList();
|
||||
var res = ts.Where(O => O.trade.ClientId == client.id).ToList();
|
||||
// 批量查询包含整个日期区间,此处仅保留当前结算日的数据。
|
||||
var res = SettlementMailTemplateHelper.ForValueDate(
|
||||
ts.Where(O => O.trade.ClientId == client.id), valueDate);
|
||||
if (SettleBills.Count < 1)
|
||||
{
|
||||
continue;
|
||||
@@ -627,14 +633,16 @@ trades.GroupBy(O => new { UnderlyingInstrumentType = instrumentTypeArr.Contains(
|
||||
|
||||
var sb = new StringBuilder();
|
||||
SendEmailSettleBillHtml(sb, res);
|
||||
//组织邮件主体
|
||||
var mailInfo = EmailTemplateService.GenerateMailInfo(tempalte.Value, new MailInfoRequestModel
|
||||
var mailRequest = new MailInfoRequestModel
|
||||
{
|
||||
ClientName = client.Name,
|
||||
TradeDate = valueDate.ToString("yyyy-MM-dd"),
|
||||
TradeList = sb.ToString(),
|
||||
DocNumber = SettleBills.Count > 0 ? SettleBills[0].Code : string.Empty
|
||||
}) ?? new MailInfoResultModel
|
||||
};
|
||||
SettlementMailTemplateHelper.PopulateSettlementFields(mailRequest, res);
|
||||
//组织邮件主体
|
||||
var mailInfo = EmailTemplateService.GenerateMailInfo(tempalte.Value, mailRequest) ?? new MailInfoResultModel
|
||||
{
|
||||
Body = string.Empty,
|
||||
Title = "清算确认书-" + valueDate.ToString("yyyy-MM-dd")
|
||||
@@ -889,13 +897,17 @@ trades.GroupBy(O => new { UnderlyingInstrumentType = instrumentTypeArr.Contains(
|
||||
}
|
||||
if (fileList.Count == 0) { continue; }
|
||||
|
||||
//组织邮件主体
|
||||
var mailInfo = EmailTemplateService.GenerateMailInfo(useTemplate.Value, new MailInfoRequestModel
|
||||
// 合并发送时按当前客户附件反查记录,确保模板变量与附件范围一致。
|
||||
var settlementRows = SettlementMailTemplateHelper.GetSettlementRows(DbContext, SettleBills, client.id);
|
||||
var mailRequest = new MailInfoRequestModel
|
||||
{
|
||||
ClientName = client.Name,
|
||||
TradeDate = valueDate.ToString("yyyy-MM-dd"),
|
||||
DocNumber = SettleBills.Count > 0 ? SettleBills[0].Code : string.Empty
|
||||
}) ?? new MailInfoResultModel
|
||||
};
|
||||
SettlementMailTemplateHelper.PopulateSettlementFields(mailRequest, settlementRows);
|
||||
//组织邮件主体
|
||||
var mailInfo = EmailTemplateService.GenerateMailInfo(useTemplate.Value, mailRequest) ?? new MailInfoResultModel
|
||||
{
|
||||
Body = string.Empty,
|
||||
Title = "清算确认书-" + valueDate.ToString("yyyy-MM-dd")
|
||||
|
||||
@@ -20,11 +20,11 @@
|
||||
</select>
|
||||
</div>
|
||||
<div class="mb-4">
|
||||
<label>邮件标题模板(变量参数:{{客户名称}},{{交易日期}},{{文档编号}})</label>
|
||||
<label>邮件标题模板(变量参数:{{客户名称}},{{交易日期}},{{文档编号}},{{交易编号}},{{平仓总额}})</label>
|
||||
<input type="text" name="TitleTemplate" id="TitleTemplate" class="form-control" />
|
||||
</div>
|
||||
<div class="mb-4">
|
||||
<label>邮件内容模板(变量参数:{{客户名称}},{{交易日期}},{{文档编号}})</label>
|
||||
<label>邮件内容模板(变量参数:{{客户名称}},{{交易日期}},{{文档编号}},{{交易编号}},{{平仓总额}})</label>
|
||||
<div id="editor"></div>
|
||||
</div>
|
||||
<div class="mb-4">
|
||||
|
||||
Reference in New Issue
Block a user