清理冗余代码,整理项目结构

This commit is contained in:
马梓彭 2026-03-14 09:06:43 +08:00
parent 38f47e0fa7
commit b3174e6807
20 changed files with 338 additions and 2299 deletions

View File

@ -2,7 +2,7 @@ using YD_Event.Application.AppUser.Dtos;
using YD_Event.Application.Auth;
using YD_Event.Core.Entities;
using AppUserEntity = YD_Event.Core.Entities.AppUser;
using YD_Event.Core.Ocr;
using YD_Event.Core.Infrastructure.Aliyun.Ocr;
using YD_Event.Core.Enum;
using Mapster;

View File

@ -1,6 +1,6 @@
using YD_Event.Application.Certificate.Dtos;
using YD_Event.Core.Entities;
using YD_Event.Core.Certificate;
using YD_Event.Core.Domain.Certificate;
using SqlSugar;
using Mapster;
using OnceMi.AspNetCore.OSS;

View File

@ -1,6 +1,6 @@
using YD_Event.Application.Certificate.Dtos;
using YD_Event.Core.Entities;
using YD_Event.Core.Certificate;
using YD_Event.Core.Domain.Certificate;
using SqlSugar;
using Mapster;
using OnceMi.AspNetCore.OSS;

View File

@ -4,7 +4,7 @@ using System.Text;
using Microsoft.IdentityModel.Tokens;
using System.IdentityModel.Tokens.Jwt;
using YD_Event.Application.Client.Dtos;
using YD_Event.Core.Utils;
using YD_Event.Core.Infrastructure.WeChat;
using YD_Event.Application.Auth;
using Newtonsoft.Json.Linq;
using Newtonsoft.Json;
@ -17,7 +17,7 @@ namespace YD_Event.Application.Client;
[ApiDescriptionSettings("微信小程序接口")]
public class OAuthController : IDynamicApiController
{
private readonly WeChatTool _weChatTool;
private readonly WeChatService _weChatTool;
private readonly ISqlSugarRepository<AuthAccount> _accountRepository;
private readonly ISqlSugarRepository<YD_Event.Core.Entities.AppUser> _appUserRepository;
private readonly ISqlSugarRepository<SysRole> _roleRepository;
@ -29,7 +29,7 @@ public class OAuthController : IDynamicApiController
private const string SessionKeyCachePrefix = "wechat_session_";
public OAuthController(
WeChatTool weChatTool,
WeChatService weChatTool,
ISqlSugarRepository<AuthAccount> accountRepository,
ISqlSugarRepository<YD_Event.Core.Entities.AppUser> appUserRepository,
ISqlSugarRepository<SysRole> roleRepository,

View File

@ -1,7 +1,7 @@
using Microsoft.Extensions.Caching.Memory;
using YD_Event.Application.Auth;
using YD_Event.Application.Merchant.Dtos;
using YD_Event.Application.Sms;
using YD_Event.Core.Infrastructure.Aliyun.Sms;
using YD_Event.Core.Entities;
using YD_Event.Core.Enum;

View File

@ -1,6 +1,6 @@
using System.Collections.Generic;
namespace YD_Event.Core.Certificate;
namespace YD_Event.Core.Domain.Certificate;
/// <summary>
/// 证书模型

View File

@ -7,7 +7,7 @@ using DocumentFormat.OpenXml.Packaging;
using DocumentFormat.OpenXml.Wordprocessing;
using Furion.DependencyInjection;
namespace YD_Event.Core.Certificate
namespace YD_Event.Core.Domain.Certificate
{
/// <summary>
/// DOCX模板解析器

View File

@ -8,7 +8,7 @@ using DocumentFormat.OpenXml.Wordprocessing;
using DocumentFormat.OpenXml.Drawing.Wordprocessing;
using Furion.DependencyInjection;
namespace YD_Event.Core.Certificate
namespace YD_Event.Core.Domain.Certificate
{
/// <summary>
/// DOCX模板处理器

View File

@ -3,7 +3,7 @@ using System.IO;
using QRCoder;
using Furion.DependencyInjection;
namespace YD_Event.Core.Certificate
namespace YD_Event.Core.Domain.Certificate
{
/// <summary>
/// 二维码服务

View File

@ -1,7 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<DOTNET_EXPERIMENTAL_HOST_PATH>C:\Program Files\dotnet\dotnet.exe</DOTNET_EXPERIMENTAL_HOST_PATH>
<SdkResolverMSBuildTaskHostRuntimeVersion>9.0.2</SdkResolverMSBuildTaskHostRuntimeVersion>
</PropertyGroup>
</Project>

File diff suppressed because it is too large Load Diff

View File

@ -1,5 +1,5 @@
#nullable enable
namespace YD_Event.Core.Ocr;
namespace YD_Event.Core.Infrastructure.Aliyun.Ocr;
/// <summary>
/// OCR识别结果

View File

@ -8,7 +8,7 @@ using AlibabaCloud.SDK.Ocr20191230.Models;
using System.Threading.Tasks;
using System;
namespace YD_Event.Core.Ocr;
namespace YD_Event.Core.Infrastructure.Aliyun.Ocr;
/// <summary>
/// OCR服务实现

View File

@ -12,7 +12,7 @@ using Tea;
using YD_Event.Core.Entities;
using YD_Event.Core.Options;
namespace YD_Event.Application.Sms;
namespace YD_Event.Core.Infrastructure.Aliyun.Sms;
/// <summary>
/// 阿里云短信服务实现
@ -45,7 +45,7 @@ public class AliyunSmsService : ITransient
return;
}
var config = new Config
var config = new AlibabaCloud.OpenApiClient.Models.Config
{
AccessKeyId = _options.AccessKeyId,
AccessKeySecret = _options.AccessKeySecret,

View File

@ -10,15 +10,15 @@ using System.Net.Http;
using System.Threading.Tasks;
using Furion.FriendlyException;
namespace YD_Event.Core.Utils;
namespace YD_Event.Core.Infrastructure.WeChat;
public class WeChatTool : ITransient
public class WeChatService : ITransient
{
private readonly IHttpClientFactory _httpClientFactory;
private readonly ILogger<WeChatTool> _logger;
private readonly ILogger<WeChatService> _logger;
private readonly WeChatOptions _options;
public WeChatTool(IHttpClientFactory httpClientFactory, ILogger<WeChatTool> logger, IOptions<WeChatOptions> options)
public WeChatService(IHttpClientFactory httpClientFactory, ILogger<WeChatService> logger, IOptions<WeChatOptions> options)
{
_httpClientFactory = httpClientFactory;
_logger = logger;

View File

@ -4,271 +4,6 @@
<name>YD_Event.Core</name>
</assembly>
<members>
<member name="T:YD_Event.Core.Certificate.CertificateModel">
<summary>
证书模型
</summary>
</member>
<member name="P:YD_Event.Core.Certificate.CertificateModel.Name">
<summary>
证书名称
</summary>
</member>
<member name="P:YD_Event.Core.Certificate.CertificateModel.Code">
<summary>
证书编号
</summary>
</member>
<member name="P:YD_Event.Core.Certificate.CertificateModel.BackgroundImageUrl">
<summary>
背景图片URL
</summary>
</member>
<member name="P:YD_Event.Core.Certificate.CertificateModel.Width">
<summary>
宽度
</summary>
</member>
<member name="P:YD_Event.Core.Certificate.CertificateModel.Height">
<summary>
高度
</summary>
</member>
<member name="T:YD_Event.Core.Certificate.CertificateDocument">
<summary>
证书文档
</summary>
</member>
<member name="M:YD_Event.Core.Certificate.CertificateDocument.GeneratePdf">
<summary>
生成PDF
</summary>
<returns>PDF字节数组</returns>
</member>
<member name="T:YD_Event.Core.Certificate.DocxTemplateParser">
<summary>
DOCX模板解析器
</summary>
</member>
<member name="M:YD_Event.Core.Certificate.DocxTemplateParser.ExtractPlaceholders(System.IO.Stream)">
<summary>
从DOCX文件中提取占位符
</summary>
<param name="docxStream">DOCX文件流</param>
<returns>占位符列表</returns>
</member>
<member name="M:YD_Event.Core.Certificate.DocxTemplateParser.ExtractPlaceholdersFromText(System.String)">
<summary>
从文本中提取占位符
</summary>
<param name="text">文本内容</param>
<returns>占位符列表</returns>
</member>
<member name="M:YD_Event.Core.Certificate.DocxTemplateParser.ExtractTextFromParagraph(DocumentFormat.OpenXml.Wordprocessing.Paragraph)">
<summary>
从段落中提取文本
</summary>
<param name="paragraph">段落元素</param>
<returns>文本内容</returns>
</member>
<member name="M:YD_Event.Core.Certificate.DocxTemplateParser.ExtractPlaceholdersFromTable(DocumentFormat.OpenXml.Wordprocessing.Table)">
<summary>
从表格中提取占位符
</summary>
<param name="table">表格元素</param>
<returns>占位符列表</returns>
</member>
<member name="M:YD_Event.Core.Certificate.DocxTemplateParser.ExtractPlaceholdersFromHeaderFooter(DocumentFormat.OpenXml.Packaging.WordprocessingDocument,System.Collections.Generic.HashSet{System.String})">
<summary>
从页眉页脚中提取占位符
</summary>
<param name="document">Word文档对象</param>
<param name="placeholders">占位符集合</param>
</member>
<member name="M:YD_Event.Core.Certificate.DocxTemplateParser.IsValidPlaceholder(System.String)">
<summary>
验证占位符格式
</summary>
<param name="placeholder">占位符</param>
<returns>是否有效</returns>
</member>
<member name="M:YD_Event.Core.Certificate.DocxTemplateParser.GetPlaceholderType(System.String)">
<summary>
获取占位符类型
</summary>
<param name="placeholder">占位符</param>
<returns>占位符类型</returns>
</member>
<member name="T:YD_Event.Core.Certificate.DocxTemplateProcessor">
<summary>
DOCX模板处理器
</summary>
</member>
<member name="M:YD_Event.Core.Certificate.DocxTemplateProcessor.ProcessTemplate(System.IO.Stream,System.Collections.Generic.Dictionary{System.String,System.String},System.Collections.Generic.Dictionary{System.String,System.String})">
<summary>
处理DOCX模板,替换占位符
</summary>
<param name="templateStream">模板文件流</param>
<param name="data">数据字典</param>
<param name="qrCodeData">二维码数据字典</param>
<returns>处理后的文件流</returns>
</member>
<member name="M:YD_Event.Core.Certificate.DocxTemplateProcessor.ProcessParagraphs(DocumentFormat.OpenXml.Wordprocessing.Body,System.Collections.Generic.Dictionary{System.String,System.String},System.Collections.Generic.Dictionary{System.String,System.String})">
<summary>
处理段落中的占位符
</summary>
</member>
<member name="M:YD_Event.Core.Certificate.DocxTemplateProcessor.ProcessParagraph(DocumentFormat.OpenXml.Wordprocessing.Paragraph,System.Collections.Generic.Dictionary{System.String,System.String},System.Collections.Generic.Dictionary{System.String,System.String})">
<summary>
处理单个段落
</summary>
</member>
<member name="M:YD_Event.Core.Certificate.DocxTemplateProcessor.ProcessTables(DocumentFormat.OpenXml.Wordprocessing.Body,System.Collections.Generic.Dictionary{System.String,System.String},System.Collections.Generic.Dictionary{System.String,System.String})">
<summary>
处理表格中的占位符
</summary>
</member>
<member name="M:YD_Event.Core.Certificate.DocxTemplateProcessor.ProcessHeaderFooter(DocumentFormat.OpenXml.Packaging.WordprocessingDocument,System.Collections.Generic.Dictionary{System.String,System.String},System.Collections.Generic.Dictionary{System.String,System.String})">
<summary>
处理页眉页脚中的占位符
</summary>
</member>
<member name="M:YD_Event.Core.Certificate.DocxTemplateProcessor.ReplacePlaceholders(System.String,System.Collections.Generic.Dictionary{System.String,System.String},System.Collections.Generic.Dictionary{System.String,System.String})">
<summary>
替换文本中的占位符
</summary>
</member>
<member name="M:YD_Event.Core.Certificate.DocxTemplateProcessor.IsQRCodePlaceholder(System.String)">
<summary>
检查是否是二维码占位符
</summary>
</member>
<member name="M:YD_Event.Core.Certificate.DocxTemplateProcessor.ExtractPlaceholderKey(System.String)">
<summary>
提取占位符键名
</summary>
</member>
<member name="M:YD_Event.Core.Certificate.DocxTemplateProcessor.ReplaceTextWithQRCode(DocumentFormat.OpenXml.Wordprocessing.Run,System.String)">
<summary>
将文本替换为二维码图片
</summary>
</member>
<member name="M:YD_Event.Core.Certificate.DocxTemplateProcessor.ValidateTemplateData(System.Collections.Generic.List{System.String},System.Collections.Generic.Dictionary{System.String,System.String})">
<summary>
验证数据完整性
</summary>
<param name="requiredPlaceholders">必填占位符列表</param>
<param name="data">数据字典</param>
<returns>验证结果</returns>
</member>
<member name="T:YD_Event.Core.Certificate.TemplateValidationResult">
<summary>
模板验证结果
</summary>
</member>
<member name="T:YD_Event.Core.Certificate.QRCodeService">
<summary>
二维码服务
</summary>
</member>
<member name="M:YD_Event.Core.Certificate.QRCodeService.GenerateQRCode(System.String,System.Int32,System.String)">
<summary>
生成二维码图片
</summary>
<param name="content">二维码内容</param>
<param name="size">二维码尺寸(像素)</param>
<param name="logoPath">Logo图片路径(可选)</param>
<returns>二维码图片流</returns>
</member>
<member name="M:YD_Event.Core.Certificate.QRCodeService.GenerateCertificateUrl(System.Int64,System.String)">
<summary>
生成证书二维码URL
</summary>
<param name="certificateId">证书ID</param>
<param name="baseUrl">基础URL</param>
<returns>证书查看URL</returns>
</member>
<member name="M:YD_Event.Core.Certificate.QRCodeService.GeneratePdfUrl(System.Int64,System.String)">
<summary>
生成证书PDF下载URL
</summary>
<param name="certificateId">证书ID</param>
<param name="pdfUrl">PDF文件URL</param>
<returns>PDF下载URL</returns>
</member>
<member name="M:YD_Event.Core.Certificate.QRCodeService.GenerateVerificationUrl(System.Int64,System.String,System.String)">
<summary>
生成带验证信息的二维码内容
</summary>
<param name="certificateId">证书ID</param>
<param name="verificationCode">验证码</param>
<param name="baseUrl">基础URL</param>
<returns>验证URL</returns>
</member>
<member name="M:YD_Event.Core.Certificate.QRCodeService.CalculatePixelsPerModule(System.Int32)">
<summary>
计算每个模块的像素数
</summary>
<param name="desiredSize">期望的二维码尺寸</param>
<returns>每个模块的像素数</returns>
</member>
<member name="M:YD_Event.Core.Certificate.QRCodeService.ValidateQRContent(System.String)">
<summary>
验证二维码内容
</summary>
<param name="content">二维码内容</param>
<returns>是否有效</returns>
</member>
<member name="M:YD_Event.Core.Certificate.QRCodeService.GenerateStyledQRCode(System.String,YD_Event.Core.Certificate.QRCodeOptions)">
<summary>
生成带样式的二维码
</summary>
<param name="content">二维码内容</param>
<param name="options">二维码选项</param>
<returns>二维码图片流</returns>
</member>
<member name="M:YD_Event.Core.Certificate.QRCodeService.GetECCLevel(System.String)">
<summary>
获取错误纠正级别
</summary>
<param name="level">级别字符串</param>
<returns>ECC级别</returns>
</member>
<member name="T:YD_Event.Core.Certificate.QRCodeOptions">
<summary>
二维码选项
</summary>
</member>
<member name="P:YD_Event.Core.Certificate.QRCodeOptions.Size">
<summary>
二维码尺寸(像素)
</summary>
</member>
<member name="P:YD_Event.Core.Certificate.QRCodeOptions.DarkColor">
<summary>
深色(十六进制颜色代码)
</summary>
</member>
<member name="P:YD_Event.Core.Certificate.QRCodeOptions.LightColor">
<summary>
浅色(十六进制颜色代码)
</summary>
</member>
<member name="P:YD_Event.Core.Certificate.QRCodeOptions.LogoPath">
<summary>
Logo图片路径
</summary>
</member>
<member name="P:YD_Event.Core.Certificate.QRCodeOptions.ErrorCorrectionLevel">
<summary>
错误纠正级别:L(7%), M(15%), Q(25%), H(30%)
</summary>
</member>
<member name="P:YD_Event.Core.Certificate.QRCodeOptions.DrawQuietZones">
<summary>
是否绘制静区
</summary>
</member>
<member name="P:YD_Event.Core.Config.BloggerInfo.Avatar">
<summary>
头像
@ -444,6 +179,271 @@
自定义配置缓存键
</summary>
</member>
<member name="T:YD_Event.Core.Domain.Certificate.CertificateModel">
<summary>
证书模型
</summary>
</member>
<member name="P:YD_Event.Core.Domain.Certificate.CertificateModel.Name">
<summary>
证书名称
</summary>
</member>
<member name="P:YD_Event.Core.Domain.Certificate.CertificateModel.Code">
<summary>
证书编号
</summary>
</member>
<member name="P:YD_Event.Core.Domain.Certificate.CertificateModel.BackgroundImageUrl">
<summary>
背景图片URL
</summary>
</member>
<member name="P:YD_Event.Core.Domain.Certificate.CertificateModel.Width">
<summary>
宽度
</summary>
</member>
<member name="P:YD_Event.Core.Domain.Certificate.CertificateModel.Height">
<summary>
高度
</summary>
</member>
<member name="T:YD_Event.Core.Domain.Certificate.CertificateDocument">
<summary>
证书文档
</summary>
</member>
<member name="M:YD_Event.Core.Domain.Certificate.CertificateDocument.GeneratePdf">
<summary>
生成PDF
</summary>
<returns>PDF字节数组</returns>
</member>
<member name="T:YD_Event.Core.Domain.Certificate.DocxTemplateParser">
<summary>
DOCX模板解析器
</summary>
</member>
<member name="M:YD_Event.Core.Domain.Certificate.DocxTemplateParser.ExtractPlaceholders(System.IO.Stream)">
<summary>
从DOCX文件中提取占位符
</summary>
<param name="docxStream">DOCX文件流</param>
<returns>占位符列表</returns>
</member>
<member name="M:YD_Event.Core.Domain.Certificate.DocxTemplateParser.ExtractPlaceholdersFromText(System.String)">
<summary>
从文本中提取占位符
</summary>
<param name="text">文本内容</param>
<returns>占位符列表</returns>
</member>
<member name="M:YD_Event.Core.Domain.Certificate.DocxTemplateParser.ExtractTextFromParagraph(DocumentFormat.OpenXml.Wordprocessing.Paragraph)">
<summary>
从段落中提取文本
</summary>
<param name="paragraph">段落元素</param>
<returns>文本内容</returns>
</member>
<member name="M:YD_Event.Core.Domain.Certificate.DocxTemplateParser.ExtractPlaceholdersFromTable(DocumentFormat.OpenXml.Wordprocessing.Table)">
<summary>
从表格中提取占位符
</summary>
<param name="table">表格元素</param>
<returns>占位符列表</returns>
</member>
<member name="M:YD_Event.Core.Domain.Certificate.DocxTemplateParser.ExtractPlaceholdersFromHeaderFooter(DocumentFormat.OpenXml.Packaging.WordprocessingDocument,System.Collections.Generic.HashSet{System.String})">
<summary>
从页眉页脚中提取占位符
</summary>
<param name="document">Word文档对象</param>
<param name="placeholders">占位符集合</param>
</member>
<member name="M:YD_Event.Core.Domain.Certificate.DocxTemplateParser.IsValidPlaceholder(System.String)">
<summary>
验证占位符格式
</summary>
<param name="placeholder">占位符</param>
<returns>是否有效</returns>
</member>
<member name="M:YD_Event.Core.Domain.Certificate.DocxTemplateParser.GetPlaceholderType(System.String)">
<summary>
获取占位符类型
</summary>
<param name="placeholder">占位符</param>
<returns>占位符类型</returns>
</member>
<member name="T:YD_Event.Core.Domain.Certificate.DocxTemplateProcessor">
<summary>
DOCX模板处理器
</summary>
</member>
<member name="M:YD_Event.Core.Domain.Certificate.DocxTemplateProcessor.ProcessTemplate(System.IO.Stream,System.Collections.Generic.Dictionary{System.String,System.String},System.Collections.Generic.Dictionary{System.String,System.String})">
<summary>
处理DOCX模板,替换占位符
</summary>
<param name="templateStream">模板文件流</param>
<param name="data">数据字典</param>
<param name="qrCodeData">二维码数据字典</param>
<returns>处理后的文件流</returns>
</member>
<member name="M:YD_Event.Core.Domain.Certificate.DocxTemplateProcessor.ProcessParagraphs(DocumentFormat.OpenXml.Wordprocessing.Body,System.Collections.Generic.Dictionary{System.String,System.String},System.Collections.Generic.Dictionary{System.String,System.String})">
<summary>
处理段落中的占位符
</summary>
</member>
<member name="M:YD_Event.Core.Domain.Certificate.DocxTemplateProcessor.ProcessParagraph(DocumentFormat.OpenXml.Wordprocessing.Paragraph,System.Collections.Generic.Dictionary{System.String,System.String},System.Collections.Generic.Dictionary{System.String,System.String})">
<summary>
处理单个段落
</summary>
</member>
<member name="M:YD_Event.Core.Domain.Certificate.DocxTemplateProcessor.ProcessTables(DocumentFormat.OpenXml.Wordprocessing.Body,System.Collections.Generic.Dictionary{System.String,System.String},System.Collections.Generic.Dictionary{System.String,System.String})">
<summary>
处理表格中的占位符
</summary>
</member>
<member name="M:YD_Event.Core.Domain.Certificate.DocxTemplateProcessor.ProcessHeaderFooter(DocumentFormat.OpenXml.Packaging.WordprocessingDocument,System.Collections.Generic.Dictionary{System.String,System.String},System.Collections.Generic.Dictionary{System.String,System.String})">
<summary>
处理页眉页脚中的占位符
</summary>
</member>
<member name="M:YD_Event.Core.Domain.Certificate.DocxTemplateProcessor.ReplacePlaceholders(System.String,System.Collections.Generic.Dictionary{System.String,System.String},System.Collections.Generic.Dictionary{System.String,System.String})">
<summary>
替换文本中的占位符
</summary>
</member>
<member name="M:YD_Event.Core.Domain.Certificate.DocxTemplateProcessor.IsQRCodePlaceholder(System.String)">
<summary>
检查是否是二维码占位符
</summary>
</member>
<member name="M:YD_Event.Core.Domain.Certificate.DocxTemplateProcessor.ExtractPlaceholderKey(System.String)">
<summary>
提取占位符键名
</summary>
</member>
<member name="M:YD_Event.Core.Domain.Certificate.DocxTemplateProcessor.ReplaceTextWithQRCode(DocumentFormat.OpenXml.Wordprocessing.Run,System.String)">
<summary>
将文本替换为二维码图片
</summary>
</member>
<member name="M:YD_Event.Core.Domain.Certificate.DocxTemplateProcessor.ValidateTemplateData(System.Collections.Generic.List{System.String},System.Collections.Generic.Dictionary{System.String,System.String})">
<summary>
验证数据完整性
</summary>
<param name="requiredPlaceholders">必填占位符列表</param>
<param name="data">数据字典</param>
<returns>验证结果</returns>
</member>
<member name="T:YD_Event.Core.Domain.Certificate.TemplateValidationResult">
<summary>
模板验证结果
</summary>
</member>
<member name="T:YD_Event.Core.Domain.Certificate.QRCodeService">
<summary>
二维码服务
</summary>
</member>
<member name="M:YD_Event.Core.Domain.Certificate.QRCodeService.GenerateQRCode(System.String,System.Int32,System.String)">
<summary>
生成二维码图片
</summary>
<param name="content">二维码内容</param>
<param name="size">二维码尺寸(像素)</param>
<param name="logoPath">Logo图片路径(可选)</param>
<returns>二维码图片流</returns>
</member>
<member name="M:YD_Event.Core.Domain.Certificate.QRCodeService.GenerateCertificateUrl(System.Int64,System.String)">
<summary>
生成证书二维码URL
</summary>
<param name="certificateId">证书ID</param>
<param name="baseUrl">基础URL</param>
<returns>证书查看URL</returns>
</member>
<member name="M:YD_Event.Core.Domain.Certificate.QRCodeService.GeneratePdfUrl(System.Int64,System.String)">
<summary>
生成证书PDF下载URL
</summary>
<param name="certificateId">证书ID</param>
<param name="pdfUrl">PDF文件URL</param>
<returns>PDF下载URL</returns>
</member>
<member name="M:YD_Event.Core.Domain.Certificate.QRCodeService.GenerateVerificationUrl(System.Int64,System.String,System.String)">
<summary>
生成带验证信息的二维码内容
</summary>
<param name="certificateId">证书ID</param>
<param name="verificationCode">验证码</param>
<param name="baseUrl">基础URL</param>
<returns>验证URL</returns>
</member>
<member name="M:YD_Event.Core.Domain.Certificate.QRCodeService.CalculatePixelsPerModule(System.Int32)">
<summary>
计算每个模块的像素数
</summary>
<param name="desiredSize">期望的二维码尺寸</param>
<returns>每个模块的像素数</returns>
</member>
<member name="M:YD_Event.Core.Domain.Certificate.QRCodeService.ValidateQRContent(System.String)">
<summary>
验证二维码内容
</summary>
<param name="content">二维码内容</param>
<returns>是否有效</returns>
</member>
<member name="M:YD_Event.Core.Domain.Certificate.QRCodeService.GenerateStyledQRCode(System.String,YD_Event.Core.Domain.Certificate.QRCodeOptions)">
<summary>
生成带样式的二维码
</summary>
<param name="content">二维码内容</param>
<param name="options">二维码选项</param>
<returns>二维码图片流</returns>
</member>
<member name="M:YD_Event.Core.Domain.Certificate.QRCodeService.GetECCLevel(System.String)">
<summary>
获取错误纠正级别
</summary>
<param name="level">级别字符串</param>
<returns>ECC级别</returns>
</member>
<member name="T:YD_Event.Core.Domain.Certificate.QRCodeOptions">
<summary>
二维码选项
</summary>
</member>
<member name="P:YD_Event.Core.Domain.Certificate.QRCodeOptions.Size">
<summary>
二维码尺寸(像素)
</summary>
</member>
<member name="P:YD_Event.Core.Domain.Certificate.QRCodeOptions.DarkColor">
<summary>
深色(十六进制颜色代码)
</summary>
</member>
<member name="P:YD_Event.Core.Domain.Certificate.QRCodeOptions.LightColor">
<summary>
浅色(十六进制颜色代码)
</summary>
</member>
<member name="P:YD_Event.Core.Domain.Certificate.QRCodeOptions.LogoPath">
<summary>
Logo图片路径
</summary>
</member>
<member name="P:YD_Event.Core.Domain.Certificate.QRCodeOptions.ErrorCorrectionLevel">
<summary>
错误纠正级别:L(7%), M(15%), Q(25%), H(30%)
</summary>
</member>
<member name="P:YD_Event.Core.Domain.Certificate.QRCodeOptions.DrawQuietZones">
<summary>
是否绘制静区
</summary>
</member>
<member name="T:YD_Event.Core.Entities.Entity`1">
<summary>
表实体继承
@ -4326,58 +4326,97 @@
赞助单位
</summary>
</member>
<member name="M:YD_Event.Core.Logging.DatabaseLoggingWriter.Dispose">
<summary>
释放服务作用域
</summary>
</member>
<member name="T:YD_Event.Core.Ocr.OcrResult">
<member name="T:YD_Event.Core.Infrastructure.Aliyun.Ocr.OcrResult">
<summary>
OCR识别结果
</summary>
</member>
<member name="P:YD_Event.Core.Ocr.OcrResult.Success">
<member name="P:YD_Event.Core.Infrastructure.Aliyun.Ocr.OcrResult.Success">
<summary>
是否成功
</summary>
</member>
<member name="P:YD_Event.Core.Ocr.OcrResult.Message">
<member name="P:YD_Event.Core.Infrastructure.Aliyun.Ocr.OcrResult.Message">
<summary>
错误信息
</summary>
</member>
<member name="P:YD_Event.Core.Ocr.OcrResult.Name">
<member name="P:YD_Event.Core.Infrastructure.Aliyun.Ocr.OcrResult.Name">
<summary>
姓名
</summary>
</member>
<member name="P:YD_Event.Core.Ocr.OcrResult.Gender">
<member name="P:YD_Event.Core.Infrastructure.Aliyun.Ocr.OcrResult.Gender">
<summary>
性别
</summary>
</member>
<member name="P:YD_Event.Core.Ocr.OcrResult.IdCardNumber">
<member name="P:YD_Event.Core.Infrastructure.Aliyun.Ocr.OcrResult.IdCardNumber">
<summary>
身份证号
</summary>
</member>
<member name="P:YD_Event.Core.Ocr.OcrResult.BirthDate">
<member name="P:YD_Event.Core.Infrastructure.Aliyun.Ocr.OcrResult.BirthDate">
<summary>
出生日期 (可选)
</summary>
</member>
<member name="T:YD_Event.Core.Ocr.OcrService">
<member name="T:YD_Event.Core.Infrastructure.Aliyun.Ocr.OcrService">
<summary>
OCR服务实现
</summary>
</member>
<member name="M:YD_Event.Core.Ocr.OcrService.RecognizeIdCardAsync(System.String)">
<member name="M:YD_Event.Core.Infrastructure.Aliyun.Ocr.OcrService.RecognizeIdCardAsync(System.String)">
<summary>
识别身份证
</summary>
<param name="imageUrl">图片URL</param>
<returns></returns>
</member>
<member name="T:YD_Event.Core.Infrastructure.Aliyun.Sms.AliyunSmsService">
<summary>
阿里云短信服务实现
</summary>
</member>
<member name="M:YD_Event.Core.Infrastructure.Aliyun.Sms.AliyunSmsService.InitClient">
<summary>
初始化阿里云短信客户端
</summary>
</member>
<member name="M:YD_Event.Core.Infrastructure.Aliyun.Sms.AliyunSmsService.SendVerificationCodeAsync(System.String,System.String)">
<summary>
发送验证码短信
</summary>
<param name="phone">手机号</param>
<param name="code">验证码</param>
<returns></returns>
</member>
<member name="M:YD_Event.Core.Infrastructure.Aliyun.Sms.AliyunSmsService.SendSmsAsync(System.String,System.String,System.String)">
<summary>
发送自定义短信
</summary>
<param name="phone">手机号</param>
<param name="templateCode">模板编码</param>
<param name="templateParam">模板参数JSON字符串</param>
<returns></returns>
</member>
<member name="M:YD_Event.Core.Infrastructure.Aliyun.Sms.AliyunSmsService.ValidateConfig">
<summary>
校验短信配置
</summary>
</member>
<member name="M:YD_Event.Core.Infrastructure.WeChat.WeChatService.Code2Session(System.String)">
<summary>
code换取session_key
</summary>
<param name="code"></param>
<returns></returns>
</member>
<member name="M:YD_Event.Core.Logging.DatabaseLoggingWriter.Dispose">
<summary>
释放服务作用域
</summary>
</member>
<member name="T:YD_Event.Core.Options.AliyunOcrOptions">
<summary>
阿里云OCR配置选项
@ -4513,45 +4552,6 @@
子选项
</summary>
</member>
<member name="M:YD_Event.Core.Utils.WeChatTool.Code2Session(System.String)">
<summary>
code换取session_key
</summary>
<param name="code"></param>
<returns></returns>
</member>
<member name="T:YD_Event.Application.Sms.AliyunSmsService">
<summary>
阿里云短信服务实现
</summary>
</member>
<member name="M:YD_Event.Application.Sms.AliyunSmsService.InitClient">
<summary>
初始化阿里云短信客户端
</summary>
</member>
<member name="M:YD_Event.Application.Sms.AliyunSmsService.SendVerificationCodeAsync(System.String,System.String)">
<summary>
发送验证码短信
</summary>
<param name="phone">手机号</param>
<param name="code">验证码</param>
<returns></returns>
</member>
<member name="M:YD_Event.Application.Sms.AliyunSmsService.SendSmsAsync(System.String,System.String,System.String)">
<summary>
发送自定义短信
</summary>
<param name="phone">手机号</param>
<param name="templateCode">模板编码</param>
<param name="templateParam">模板参数JSON字符串</param>
<returns></returns>
</member>
<member name="M:YD_Event.Application.Sms.AliyunSmsService.ValidateConfig">
<summary>
校验短信配置
</summary>
</member>
<member name="F:Easy.Core.EnumExtension.EnumDic">
<summary>
缓存

View File

@ -1,24 +0,0 @@
<?xml version="1.0"?>
<doc>
<assembly>
<name>YD_Event.Web.Core</name>
</assembly>
<members>
<member name="M:YD_Event.Web.Core.JwtHandler.PipelineAsync(Microsoft.AspNetCore.Authorization.AuthorizationHandlerContext,Microsoft.AspNetCore.Http.DefaultHttpContext)">
<summary>
这里写您的授权判断逻辑,授权通过返回 true,否则返回 false
</summary>
<param name="context"></param>
<param name="httpContext"></param>
<returns></returns>
</member>
<member name="M:YD_Event.Web.Core.JwtHandler.HandleAsync(Microsoft.AspNetCore.Authorization.AuthorizationHandlerContext,Microsoft.AspNetCore.Http.DefaultHttpContext)">
<summary>
自动刷新token
</summary>
<param name="context"></param>
<param name="httpContext"></param>
<returns></returns>
</member>
</members>
</doc>

View File

@ -6,7 +6,7 @@
<members>
<member name="M:YD_Event.Web.Core.JwtHandler.PipelineAsync(Microsoft.AspNetCore.Authorization.AuthorizationHandlerContext,Microsoft.AspNetCore.Http.DefaultHttpContext)">
<summary>
这里写您的授权判断逻辑,授权通过返回 true,否则返回 false
授权判断逻辑,授权通过返回 true,否则返回 false
</summary>
<param name="context"></param>
<param name="httpContext"></param>

View File

@ -1,7 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<DOTNET_EXPERIMENTAL_HOST_PATH>C:\Program Files\dotnet\dotnet.exe</DOTNET_EXPERIMENTAL_HOST_PATH>
<SdkResolverMSBuildTaskHostRuntimeVersion>9.0.2</SdkResolverMSBuildTaskHostRuntimeVersion>
</PropertyGroup>
</Project>

Binary file not shown.