From b3174e68074e4146ff084be3bd9444b78dd2679f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=A9=AC=E6=A2=93=E5=BD=AD?= Date: Sat, 14 Mar 2026 09:06:43 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B8=85=E7=90=86=E5=86=97=E4=BD=99=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=EF=BC=8C=E6=95=B4=E7=90=86=E9=A1=B9=E7=9B=AE=E7=BB=93?= =?UTF-8?q?=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AppUser/AppUserService.cs | 2 +- .../Certificate/CertificateGenerateService.cs | 2 +- .../Certificate/CertificateTemplateService.cs | 2 +- .../Client/OAuthController.cs | 6 +- .../Merchant/MerchantService.cs | 2 +- .../Certificate/CertificateModel.cs | 2 +- .../Certificate/DocxTemplateParser.cs | 2 +- .../Certificate/DocxTemplateProcessor.cs | 2 +- .../{ => Domain}/Certificate/QRCodeService.cs | 2 +- ...in.Core.csproj.SdkResolver.1981936763.proj | 7 - YD_Event.Core/Easy.Admin.Core.xml | 1923 ----------------- .../Aliyun}/Ocr/OcrResult.cs | 2 +- .../Aliyun}/Ocr/OcrService.cs | 2 +- .../Aliyun}/Sms/AliyunSmsService.cs | 4 +- .../WeChat/WeChatService.cs} | 8 +- YD_Event.Core/YD_Event.Core.xml | 636 +++--- YD_Event.Web.Core/Easy.Admin.Web.Core.xml | 24 - YD_Event.Web.Core/YD_Event.Web.Core.xml | 2 +- ...b.Entry.csproj.SdkResolver.1981936763.proj | 7 - YD_Event.Web.Entry/easy.admin.sqlite | Bin 598016 -> 0 bytes 20 files changed, 338 insertions(+), 2299 deletions(-) rename YD_Event.Core/{ => Domain}/Certificate/CertificateModel.cs (97%) rename YD_Event.Core/{ => Domain}/Certificate/DocxTemplateParser.cs (99%) rename YD_Event.Core/{ => Domain}/Certificate/DocxTemplateProcessor.cs (99%) rename YD_Event.Core/{ => Domain}/Certificate/QRCodeService.cs (99%) delete mode 100644 YD_Event.Core/Easy.Admin.Core.csproj.SdkResolver.1981936763.proj delete mode 100644 YD_Event.Core/Easy.Admin.Core.xml rename YD_Event.Core/{ => Infrastructure/Aliyun}/Ocr/OcrResult.cs (93%) rename YD_Event.Core/{ => Infrastructure/Aliyun}/Ocr/OcrService.cs (97%) rename YD_Event.Core/{ => Infrastructure/Aliyun}/Sms/AliyunSmsService.cs (97%) rename YD_Event.Core/{Utils/WeChatTool.cs => Infrastructure/WeChat/WeChatService.cs} (91%) delete mode 100644 YD_Event.Web.Core/Easy.Admin.Web.Core.xml delete mode 100644 YD_Event.Web.Entry/Easy.Admin.Web.Entry.csproj.SdkResolver.1981936763.proj delete mode 100644 YD_Event.Web.Entry/easy.admin.sqlite diff --git a/YD_Event.Application/AppUser/AppUserService.cs b/YD_Event.Application/AppUser/AppUserService.cs index 9f20d76..0dc1f70 100644 --- a/YD_Event.Application/AppUser/AppUserService.cs +++ b/YD_Event.Application/AppUser/AppUserService.cs @@ -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; diff --git a/YD_Event.Application/Certificate/CertificateGenerateService.cs b/YD_Event.Application/Certificate/CertificateGenerateService.cs index d87f20c..d6ba757 100644 --- a/YD_Event.Application/Certificate/CertificateGenerateService.cs +++ b/YD_Event.Application/Certificate/CertificateGenerateService.cs @@ -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; diff --git a/YD_Event.Application/Certificate/CertificateTemplateService.cs b/YD_Event.Application/Certificate/CertificateTemplateService.cs index af8f570..839a834 100644 --- a/YD_Event.Application/Certificate/CertificateTemplateService.cs +++ b/YD_Event.Application/Certificate/CertificateTemplateService.cs @@ -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; diff --git a/YD_Event.Application/Client/OAuthController.cs b/YD_Event.Application/Client/OAuthController.cs index fa0e412..e3feec1 100644 --- a/YD_Event.Application/Client/OAuthController.cs +++ b/YD_Event.Application/Client/OAuthController.cs @@ -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 _accountRepository; private readonly ISqlSugarRepository _appUserRepository; private readonly ISqlSugarRepository _roleRepository; @@ -29,7 +29,7 @@ public class OAuthController : IDynamicApiController private const string SessionKeyCachePrefix = "wechat_session_"; public OAuthController( - WeChatTool weChatTool, + WeChatService weChatTool, ISqlSugarRepository accountRepository, ISqlSugarRepository appUserRepository, ISqlSugarRepository roleRepository, diff --git a/YD_Event.Application/Merchant/MerchantService.cs b/YD_Event.Application/Merchant/MerchantService.cs index 29dd58c..142a888 100644 --- a/YD_Event.Application/Merchant/MerchantService.cs +++ b/YD_Event.Application/Merchant/MerchantService.cs @@ -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; diff --git a/YD_Event.Core/Certificate/CertificateModel.cs b/YD_Event.Core/Domain/Certificate/CertificateModel.cs similarity index 97% rename from YD_Event.Core/Certificate/CertificateModel.cs rename to YD_Event.Core/Domain/Certificate/CertificateModel.cs index fde0be5..f4afd73 100644 --- a/YD_Event.Core/Certificate/CertificateModel.cs +++ b/YD_Event.Core/Domain/Certificate/CertificateModel.cs @@ -1,6 +1,6 @@ using System.Collections.Generic; -namespace YD_Event.Core.Certificate; +namespace YD_Event.Core.Domain.Certificate; /// /// 证书模型 diff --git a/YD_Event.Core/Certificate/DocxTemplateParser.cs b/YD_Event.Core/Domain/Certificate/DocxTemplateParser.cs similarity index 99% rename from YD_Event.Core/Certificate/DocxTemplateParser.cs rename to YD_Event.Core/Domain/Certificate/DocxTemplateParser.cs index a3b8f43..c62d1ff 100644 --- a/YD_Event.Core/Certificate/DocxTemplateParser.cs +++ b/YD_Event.Core/Domain/Certificate/DocxTemplateParser.cs @@ -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 { /// /// DOCX模板解析器 diff --git a/YD_Event.Core/Certificate/DocxTemplateProcessor.cs b/YD_Event.Core/Domain/Certificate/DocxTemplateProcessor.cs similarity index 99% rename from YD_Event.Core/Certificate/DocxTemplateProcessor.cs rename to YD_Event.Core/Domain/Certificate/DocxTemplateProcessor.cs index 7551c78..313feb7 100644 --- a/YD_Event.Core/Certificate/DocxTemplateProcessor.cs +++ b/YD_Event.Core/Domain/Certificate/DocxTemplateProcessor.cs @@ -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 { /// /// DOCX模板处理器 diff --git a/YD_Event.Core/Certificate/QRCodeService.cs b/YD_Event.Core/Domain/Certificate/QRCodeService.cs similarity index 99% rename from YD_Event.Core/Certificate/QRCodeService.cs rename to YD_Event.Core/Domain/Certificate/QRCodeService.cs index 7dafc6e..13be5a6 100644 --- a/YD_Event.Core/Certificate/QRCodeService.cs +++ b/YD_Event.Core/Domain/Certificate/QRCodeService.cs @@ -3,7 +3,7 @@ using System.IO; using QRCoder; using Furion.DependencyInjection; -namespace YD_Event.Core.Certificate +namespace YD_Event.Core.Domain.Certificate { /// /// 二维码服务 diff --git a/YD_Event.Core/Easy.Admin.Core.csproj.SdkResolver.1981936763.proj b/YD_Event.Core/Easy.Admin.Core.csproj.SdkResolver.1981936763.proj deleted file mode 100644 index e52700a..0000000 --- a/YD_Event.Core/Easy.Admin.Core.csproj.SdkResolver.1981936763.proj +++ /dev/null @@ -1,7 +0,0 @@ - - - - C:\Program Files\dotnet\dotnet.exe - 9.0.2 - - \ No newline at end of file diff --git a/YD_Event.Core/Easy.Admin.Core.xml b/YD_Event.Core/Easy.Admin.Core.xml deleted file mode 100644 index b62c0e0..0000000 --- a/YD_Event.Core/Easy.Admin.Core.xml +++ /dev/null @@ -1,1923 +0,0 @@ - - - - YD_Event.Core - - - - - 头像 - - - - - 昵称 - - - - - QQ - - - - - Github - - - - - 码云 - - - - - 个性签名 - - - - - 关于我 - - - - - 网站Logo - - - - - 站点图标 - - - - - 开启打赏 - - - - - 支付宝 - - - - - 微信收款码 - - - - - 允许留言 - - - - - 允许评论 - - - - - 公告 - - - - - 站点名称 - - - - - 首页格言 - - - - - 网站运营时间 - - - - - 站点版权 - - - - - 站点描述 - - - - - 关键词 - - - - - 备案号 - - - - - 用户默认密码 - - - - - 密码错误次数 - - - - - 密码规则 - - - - - 密码规则提示语 - - - - - Token有效期(分钟) - - - - - 用户唯一ID - - - - - 授权账户名键 - - - - - 登录唯一ID - - - - - 授权平台类型 - - - - - 权限缓存键 - - - - - 用户菜单信息权限缓存键(构建ui左侧菜单) - - - - - 用户可访问的按钮权限编码缓存键(权限编码集合) - - - - - 自定义配置缓存键 - - - - - 表实体继承 - - 主键类型 - - - - 主键 - - - - - 相册表 - - - - - 相册名称 - - - - - 封面图 - - - - - 相册类型 - - - - - 可用状态 - - - - - 排序值(值越小越靠前) - - - - - 备注 - - - - - 是否可见 - - - - - 创建人 - - - - - 标记删除 - - - - - 创建时间 - - - - - 文章表 - - - - - 标题 - - - - - 概要 - - - - - 封面图 - - - - - 是否置顶 - - - - - 浏览量 - - - - - 作者 - - - - - 原文地址 - - - - - 创作类型 - - - - - 文章正文(Html或markdown) - - - - - 文章正文是否为html代码 - - - - - 发布时间 - - - - - 可用状态 - - - - - 排序值(值越小越靠前) - - - - - 是否允许评论 - - - - - 过期时间(过期后文章不显示) - - - - - 标记删除 - - - - - 更新时间 - - - - - 创建人 - - - - - 创建时间 - - - - - 文章所属栏目表 - - - - - 文章Id - - - - - 栏目Id - - - - - 文章标签表 - - - - - 文章Id - - - - - 标签Id - - - - - 博客授权用户 - - - - - 授权唯一标识 - - - - - 授权类型 - - - - - 博主标识 - - - - - 姓名(昵称) - - - - - 性别 - - - - - 头像 - - - - - 邮箱 - - - - - 更新时间 - - - - - 标记删除 - - - - - 创建时间 - - - - - 文章栏目表 - - - - - 栏目名称 - - - - - 父级id - - - - - 封面图 - - - - - 可用状态 - - - - - 排序值(值越小越靠前) - - - - - 备注 - - - - - 创建人 - - - - - 标记删除 - - - - - 创建时间 - - - - - 子栏目 - - - - - 评论表 - - - - - 对应模块ID(null表留言,0代表友链的评论) - - - - - 顶级楼层评论ID - - - - - 被回复的评论ID - - - - - 当前评论人ID - - - - - 回复人ID - - - - - 评论内容 - - - - - Ip地址 - - - - - IP所属地 - - - - - 标记删除 - - - - - 创建时间 - - - - - 自定义配置 - - - - - 配置名称 - - - - - 配置唯一编码(类名) - - - - - 是否是多项(集合) - - - - - 配置界面设计(json) - - - - - 是否允许创建实体 - - - - - 是否已生成实体 - - - - - 可用状态 - - - - - 备注 - - - - - 创建人 - - - - - 标记删除 - - - - - 创建时间 - - - - - 自定义配置子项 - - - - - 自定义配置Id - - - - - 配置 - - - - - 可用状态 - - - - - 创建人 - - - - - 标记删除 - - - - - 创建时间 - - - - - 友情链接 - - - - - 博客用户Id - - - - - 网站名称 - - - - - 网站链接 - - - - - 网站logo - - - - - 对方博客友链的地址 - - - - - 是否忽略对方站点是否存在本站链接 - - - - - 备注 - - - - - 排序值(值越小越靠前) - - - - - 可用状态 - - - - - 标记删除 - - - - - 创建时间 - - - - - 可用状态 - - - - - 可用状态 - - - - - 创建日期 - - - - - 创建时间 - - - - - 创建人 - - - - - 所有实体类继承 - - - - - - - 主键类型 - - - - - - - - - 软删除 - - - - - 标记删除 - - - - - 排序 - - - - - 排序值(值越小越靠前) - - - - - 更新时间 - - - - - 相册图片表 - - - - - 相册Id - - - - - 图片地址 - - - - - 备注 - - - - - 创建时间 - - - - - 点赞表 - - - - - 用户ID - - - - - 点赞对象ID - - - - - 创建时间 - - - - - 系统菜单表 - - - - - 菜单名称 - - - - - 菜单类型 - - - - - 权限编码 - - - - - 父级菜单 - - - - - 路由名 - - - - - 路由地址 - - - - - 组件路径 - - - - - 重定向地址 - - - - - 菜单图标 - - - - - 是否内嵌页面 - - - - - 外链地址 - - - - - 是否可见 - - - - - 是否缓存 - - - - - 是否固定 - - - - - 可用状态 - - - - - 排序值(值越小越靠前) - - - - - 备注 - - - - - 创建人 - - - - - 标记删除 - - - - - 创建时间 - - - - - 子菜单 - - - - - 操作日志 - - - - - 操作用户ID - - - - - 日志级别 - - - - - 接口描述 - - - - - 控制器名称 - - - - - 路由名称 - - - - - 请求方式 - - - - - 请求跟踪唯一ID (同一次请求ID相同) - - - - - 线程ID - - - - - 浏览器 - - - - - 请求地址 - - - - - ip地址 - - - - - 用户系统信息 - - - - - 耗时(毫秒) - - - - - Ip归属地 - - - - - http状态码 - - - - - 请求参数 - - - - - 响应结果 - - - - - 详细信息 - - - - - 异常信息 - - - - - 创建时间 - - - - - 组织机构信息表 - - - - - 父级Id - - - - - 部门名称 - - - - - 部门编码 - - - - - 可用状态 - - - - - 排序值(值越小越靠前) - - - - - 备注 - - - - - 创建人 - - - - - 标记删除 - - - - - 创建时间 - - - - - 子部门 - - - - - 角色表 - - - - - 角色名 - - - - - 角色编码 - - - - - 可用状态 - - - - - 排序值 - - - - - 备注 - - - - - 标记删除 - - - - - 创建时间 - - - - - 角色权限表 - - - - - 角色id - - - - - 菜单按钮id - - - - - 用户登录日志 - - - - - 用户ID - - - - - ip地址 - - - - - 浏览器 - - - - - Ip归属地 - - - - - 用户系统信息 - - - - - 消息 - - - - - 创建时间 - - - - - 系统用户表 - - - - - 用户名 - - - - - 密码 - - - - - 姓名 - - - - - 性别 - - - - - 组织机构id - - - - - 昵称 - - - - - 生日 - - - - - 头像 - - - - - 手机号码 - - - - - 邮箱 - - - - - 可用状态 - - - - - 最后一次登录IP地址 - - - - - 最后一次登录位置 - - - - - 最后登录时间 - - - - - 备注 - - - - - 创建人 - - - - - 更新时间 - - - - - 标记删除 - - - - - 账号锁定过期时间 - - - - - 创建时间 - - - - - 用户id - - - - - 角色id - - - - - 标签信息表 - - - - - 标签名称 - - - - - 封面图 - - - - - 标签颜色 - - - - - 可用状态 - - - - - 排序值(值越小越靠前) - - - - - 备注 - - - - - 创建人 - - - - - 标记删除 - - - - - 创建时间 - - - - - 是否置顶 - - - - - 说说正文 - - - - - 图片 - - - - - 是否允许评论 - - - - - 可用状态 - - - - - 标记删除 - - - - - 创建时间 - - - - - 登录账户类型 - - - - - 后台 - - - - - 博客 - - - - - 可用状态 - - - - - 启用 - - - - - 禁用 - - - - - 博客封面类型 - - - - - 首页封面 - - - - - 归档封面 - - - - - 分类封面 - - - - - 标签封面 - - - - - 相册封面图 - - - - - 说说封面图 - - - - - 关于封面图 - - - - - 留言封面图 - - - - - 个人中心封面图 - - - - - 友情链接封面图 - - - - - 标签列表封面 - - - - - 分类列表封面 - - - - - 原创 - - - - - 转载 - - - - - 登录事件 - - - - - 操作事件 - - - - - 异常事件 - - - - - 性别 - - - - - 男 - - - - - 女 - - - - - 未知 - - - - - 目录 - - - - - 菜单 - - - - - 按钮 - - - - - 释放服务作用域 - - - - - 数据库选项配置 - - - - - 数据库配置 - - - - - 数据库连接扩展 - - - - - 是否初始化数据库 - - - - - 启用表数据初始化 - - - - - 对象存储连接配置 - - - - - 默认存目录 - - - - - 外网访问域名或IP - - - - - 是否启用对象存储(不启用将存储至站点目录) - - - - - 雪花id配置 - - - - - 状态 - - - - - 主键 - - - - - 下拉框 - - - - - 文本 - - - - - 值 - - - - - 树形下拉框 - - - - - 子选项 - - - - - 缓存 - - - - - 获取枚举上定义的Description - - - - - - - 获取ip - - - - - - - 获取Ip所属详细地理位置 - - - - - - - 获取ip详细信息 - - - - - - - ip - - - - - 省份 - - - - - 省编码 - - - - - 城市 - - - - - 城市编码 - - - - - 区域 - - - - - 区编码 - - - - - IP归属地 - - - - - - - - - - 错误信息 - - - - - 添加自定义选项 - - - - - - - 盐值 - - - - - 注册雪花ID服务(默认配置) - - - - - - 注册雪花ID服务(自定义配置) - - - - - - - 注册雪花ID服务(自定义配置) - - - 配置 - - - - 生成ID - - - - - - - 加密ID(生成短ID) - - - long类型ID - 盐值 - - - - - 解密加密ID(解密短ID) - - - 密文 - 盐值 - - - - - 当前页码 - - - - - 页码容量 - - - - - 当前页 - - - - - 页容量 - - - - - 总页数 - - - - - 总条数 - - - - - 数据 - - - - - 分页查询基类 - - - - - 当前页码 - - - - - 页码容量 - - - - - 泛型仓储 - - - - - - 泛型仓储 - - - - - - SqlSugar ORM框架所需缓存配置 - - - - - 添加 SqlSugar 拓展(适用于单个数据库) - - - 数据库连接对象 - - - - - - 添加 SqlSugar 拓展(适用于多数据库) - - - 数据库连接对象集合 - - - - - - 初始化数据库 - - - - - - - 添加 SqlSugar 服务 - - - - - - - 拦截器 - - - - - 初始化基础数据 - - - - - 数据库事务(工作单元保证数据的一致性) - - - - - 开启事务 - - - - - - - 提交事务 - - - - - - - 回滚 - - - - - - - 释放连接对象 - - - - - - - 扩展SqlSugar SugarQueryable进行分页 - - - - - 分页拓展 - - - - - - - - 分页拓展 - - - - - - - diff --git a/YD_Event.Core/Ocr/OcrResult.cs b/YD_Event.Core/Infrastructure/Aliyun/Ocr/OcrResult.cs similarity index 93% rename from YD_Event.Core/Ocr/OcrResult.cs rename to YD_Event.Core/Infrastructure/Aliyun/Ocr/OcrResult.cs index 6013539..739a1dd 100644 --- a/YD_Event.Core/Ocr/OcrResult.cs +++ b/YD_Event.Core/Infrastructure/Aliyun/Ocr/OcrResult.cs @@ -1,5 +1,5 @@ #nullable enable -namespace YD_Event.Core.Ocr; +namespace YD_Event.Core.Infrastructure.Aliyun.Ocr; /// /// OCR识别结果 diff --git a/YD_Event.Core/Ocr/OcrService.cs b/YD_Event.Core/Infrastructure/Aliyun/Ocr/OcrService.cs similarity index 97% rename from YD_Event.Core/Ocr/OcrService.cs rename to YD_Event.Core/Infrastructure/Aliyun/Ocr/OcrService.cs index c27ad82..18061d3 100644 --- a/YD_Event.Core/Ocr/OcrService.cs +++ b/YD_Event.Core/Infrastructure/Aliyun/Ocr/OcrService.cs @@ -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; /// /// OCR服务实现 diff --git a/YD_Event.Core/Sms/AliyunSmsService.cs b/YD_Event.Core/Infrastructure/Aliyun/Sms/AliyunSmsService.cs similarity index 97% rename from YD_Event.Core/Sms/AliyunSmsService.cs rename to YD_Event.Core/Infrastructure/Aliyun/Sms/AliyunSmsService.cs index f0e7580..266d3fd 100644 --- a/YD_Event.Core/Sms/AliyunSmsService.cs +++ b/YD_Event.Core/Infrastructure/Aliyun/Sms/AliyunSmsService.cs @@ -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; /// /// 阿里云短信服务实现 @@ -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, diff --git a/YD_Event.Core/Utils/WeChatTool.cs b/YD_Event.Core/Infrastructure/WeChat/WeChatService.cs similarity index 91% rename from YD_Event.Core/Utils/WeChatTool.cs rename to YD_Event.Core/Infrastructure/WeChat/WeChatService.cs index f7aa9b9..ee8ba3c 100644 --- a/YD_Event.Core/Utils/WeChatTool.cs +++ b/YD_Event.Core/Infrastructure/WeChat/WeChatService.cs @@ -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 _logger; + private readonly ILogger _logger; private readonly WeChatOptions _options; - public WeChatTool(IHttpClientFactory httpClientFactory, ILogger logger, IOptions options) + public WeChatService(IHttpClientFactory httpClientFactory, ILogger logger, IOptions options) { _httpClientFactory = httpClientFactory; _logger = logger; diff --git a/YD_Event.Core/YD_Event.Core.xml b/YD_Event.Core/YD_Event.Core.xml index 49903eb..c99ab89 100644 --- a/YD_Event.Core/YD_Event.Core.xml +++ b/YD_Event.Core/YD_Event.Core.xml @@ -4,271 +4,6 @@ YD_Event.Core - - - 证书模型 - - - - - 证书名称 - - - - - 证书编号 - - - - - 背景图片URL - - - - - 宽度 - - - - - 高度 - - - - - 证书文档 - - - - - 生成PDF - - PDF字节数组 - - - - DOCX模板解析器 - - - - - 从DOCX文件中提取占位符 - - DOCX文件流 - 占位符列表 - - - - 从文本中提取占位符 - - 文本内容 - 占位符列表 - - - - 从段落中提取文本 - - 段落元素 - 文本内容 - - - - 从表格中提取占位符 - - 表格元素 - 占位符列表 - - - - 从页眉页脚中提取占位符 - - Word文档对象 - 占位符集合 - - - - 验证占位符格式 - - 占位符 - 是否有效 - - - - 获取占位符类型 - - 占位符 - 占位符类型 - - - - DOCX模板处理器 - - - - - 处理DOCX模板,替换占位符 - - 模板文件流 - 数据字典 - 二维码数据字典 - 处理后的文件流 - - - - 处理段落中的占位符 - - - - - 处理单个段落 - - - - - 处理表格中的占位符 - - - - - 处理页眉页脚中的占位符 - - - - - 替换文本中的占位符 - - - - - 检查是否是二维码占位符 - - - - - 提取占位符键名 - - - - - 将文本替换为二维码图片 - - - - - 验证数据完整性 - - 必填占位符列表 - 数据字典 - 验证结果 - - - - 模板验证结果 - - - - - 二维码服务 - - - - - 生成二维码图片 - - 二维码内容 - 二维码尺寸(像素) - Logo图片路径(可选) - 二维码图片流 - - - - 生成证书二维码URL - - 证书ID - 基础URL - 证书查看URL - - - - 生成证书PDF下载URL - - 证书ID - PDF文件URL - PDF下载URL - - - - 生成带验证信息的二维码内容 - - 证书ID - 验证码 - 基础URL - 验证URL - - - - 计算每个模块的像素数 - - 期望的二维码尺寸 - 每个模块的像素数 - - - - 验证二维码内容 - - 二维码内容 - 是否有效 - - - - 生成带样式的二维码 - - 二维码内容 - 二维码选项 - 二维码图片流 - - - - 获取错误纠正级别 - - 级别字符串 - ECC级别 - - - - 二维码选项 - - - - - 二维码尺寸(像素) - - - - - 深色(十六进制颜色代码) - - - - - 浅色(十六进制颜色代码) - - - - - Logo图片路径 - - - - - 错误纠正级别:L(7%), M(15%), Q(25%), H(30%) - - - - - 是否绘制静区 - - 头像 @@ -444,6 +179,271 @@ 自定义配置缓存键 + + + 证书模型 + + + + + 证书名称 + + + + + 证书编号 + + + + + 背景图片URL + + + + + 宽度 + + + + + 高度 + + + + + 证书文档 + + + + + 生成PDF + + PDF字节数组 + + + + DOCX模板解析器 + + + + + 从DOCX文件中提取占位符 + + DOCX文件流 + 占位符列表 + + + + 从文本中提取占位符 + + 文本内容 + 占位符列表 + + + + 从段落中提取文本 + + 段落元素 + 文本内容 + + + + 从表格中提取占位符 + + 表格元素 + 占位符列表 + + + + 从页眉页脚中提取占位符 + + Word文档对象 + 占位符集合 + + + + 验证占位符格式 + + 占位符 + 是否有效 + + + + 获取占位符类型 + + 占位符 + 占位符类型 + + + + DOCX模板处理器 + + + + + 处理DOCX模板,替换占位符 + + 模板文件流 + 数据字典 + 二维码数据字典 + 处理后的文件流 + + + + 处理段落中的占位符 + + + + + 处理单个段落 + + + + + 处理表格中的占位符 + + + + + 处理页眉页脚中的占位符 + + + + + 替换文本中的占位符 + + + + + 检查是否是二维码占位符 + + + + + 提取占位符键名 + + + + + 将文本替换为二维码图片 + + + + + 验证数据完整性 + + 必填占位符列表 + 数据字典 + 验证结果 + + + + 模板验证结果 + + + + + 二维码服务 + + + + + 生成二维码图片 + + 二维码内容 + 二维码尺寸(像素) + Logo图片路径(可选) + 二维码图片流 + + + + 生成证书二维码URL + + 证书ID + 基础URL + 证书查看URL + + + + 生成证书PDF下载URL + + 证书ID + PDF文件URL + PDF下载URL + + + + 生成带验证信息的二维码内容 + + 证书ID + 验证码 + 基础URL + 验证URL + + + + 计算每个模块的像素数 + + 期望的二维码尺寸 + 每个模块的像素数 + + + + 验证二维码内容 + + 二维码内容 + 是否有效 + + + + 生成带样式的二维码 + + 二维码内容 + 二维码选项 + 二维码图片流 + + + + 获取错误纠正级别 + + 级别字符串 + ECC级别 + + + + 二维码选项 + + + + + 二维码尺寸(像素) + + + + + 深色(十六进制颜色代码) + + + + + 浅色(十六进制颜色代码) + + + + + Logo图片路径 + + + + + 错误纠正级别:L(7%), M(15%), Q(25%), H(30%) + + + + + 是否绘制静区 + + 表实体继承 @@ -4326,58 +4326,97 @@ 赞助单位 - - - 释放服务作用域 - - - + OCR识别结果 - + 是否成功 - + 错误信息 - + 姓名 - + 性别 - + 身份证号 - + 出生日期 (可选) - + OCR服务实现 - + 识别身份证 图片URL + + + 阿里云短信服务实现 + + + + + 初始化阿里云短信客户端 + + + + + 发送验证码短信 + + 手机号 + 验证码 + + + + + 发送自定义短信 + + 手机号 + 模板编码 + 模板参数JSON字符串 + + + + + 校验短信配置 + + + + + code换取session_key + + + + + + + 释放服务作用域 + + 阿里云OCR配置选项 @@ -4513,45 +4552,6 @@ 子选项 - - - code换取session_key - - - - - - - 阿里云短信服务实现 - - - - - 初始化阿里云短信客户端 - - - - - 发送验证码短信 - - 手机号 - 验证码 - - - - - 发送自定义短信 - - 手机号 - 模板编码 - 模板参数JSON字符串 - - - - - 校验短信配置 - - 缓存 diff --git a/YD_Event.Web.Core/Easy.Admin.Web.Core.xml b/YD_Event.Web.Core/Easy.Admin.Web.Core.xml deleted file mode 100644 index d83b348..0000000 --- a/YD_Event.Web.Core/Easy.Admin.Web.Core.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - YD_Event.Web.Core - - - - - 这里写您的授权判断逻辑,授权通过返回 true,否则返回 false - - - - - - - - 自动刷新token - - - - - - - diff --git a/YD_Event.Web.Core/YD_Event.Web.Core.xml b/YD_Event.Web.Core/YD_Event.Web.Core.xml index d83b348..d058d0c 100644 --- a/YD_Event.Web.Core/YD_Event.Web.Core.xml +++ b/YD_Event.Web.Core/YD_Event.Web.Core.xml @@ -6,7 +6,7 @@ - 这里写您的授权判断逻辑,授权通过返回 true,否则返回 false + 授权判断逻辑,授权通过返回 true,否则返回 false diff --git a/YD_Event.Web.Entry/Easy.Admin.Web.Entry.csproj.SdkResolver.1981936763.proj b/YD_Event.Web.Entry/Easy.Admin.Web.Entry.csproj.SdkResolver.1981936763.proj deleted file mode 100644 index e52700a..0000000 --- a/YD_Event.Web.Entry/Easy.Admin.Web.Entry.csproj.SdkResolver.1981936763.proj +++ /dev/null @@ -1,7 +0,0 @@ - - - - C:\Program Files\dotnet\dotnet.exe - 9.0.2 - - \ No newline at end of file diff --git a/YD_Event.Web.Entry/easy.admin.sqlite b/YD_Event.Web.Entry/easy.admin.sqlite deleted file mode 100644 index 842939ecd1b538463f76706031319a35c8a36f55..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 598016 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 PYtOIYn$_#HtI?c#ZKi~jnJQ`; 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

;5Y&>zWb=975PV=R`N88u=DuARYdgg>A&I^S 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