feat: initialize Evergreen Health backend

This commit is contained in:
fuenmao
2026-09-21 14:08:22 +08:00
commit 8553df5dd2
493 changed files with 75649 additions and 0 deletions
@@ -0,0 +1,149 @@
// Admin.NET 项目的版权、商标、专利和其他相关权利均受相应法律法规的保护。使用本项目应遵守相关法律法规和许可证的要求。
//
// 本项目主要遵循 MIT 许可证和 Apache 许可证(版本 2.0)进行分发和使用。许可证位于源代码树根目录中的 LICENSE-MIT 和 LICENSE-APACHE 文件。
//
// 不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任!
namespace Admin.NET.Core.Service;
/// <summary>
/// 生成网页授权Url
/// </summary>
public class GenAuthUrlInput
{
/// <summary>
/// RedirectUrl
/// </summary>
public string RedirectUrl { get; set; }
/// <summary>
/// Scope
/// </summary>
public string Scope { get; set; }
/// <summary>
/// State
/// </summary>
public string State { get; set; }
}
/// <summary>
/// 获取微信用户OpenId
/// </summary>
public class WechatOAuth2Input
{
/// <summary>
/// Code
/// </summary>
[Required(ErrorMessage = "Code不能为空"), MinLength(10, ErrorMessage = "Code错误")]
public string Code { get; set; }
}
/// <summary>
/// 微信用户登录
/// </summary>
public class WechatUserLogin
{
/// <summary>
/// OpenId
/// </summary>
[Required(ErrorMessage = "微信标识不能为空"), MinLength(10, ErrorMessage = "微信标识长错误")]
public string OpenId { get; set; }
}
/// <summary>
/// 获取配置签名
/// </summary>
public class SignatureInput
{
/// <summary>
/// Url
/// </summary>
public string Url { get; set; }
}
/// <summary>
/// 获取消息模板列表
/// </summary>
public class MessageTemplateSendInput
{
/// <summary>
/// 订阅模板Id
/// </summary>
[Required(ErrorMessage = "订阅模板Id不能为空")]
public string TemplateId { get; set; }
/// <summary>
/// 接收者的OpenId
/// </summary>
[Required(ErrorMessage = "接收者的OpenId不能为空")]
public string ToUserOpenId { get; set; }
/// <summary>
/// 模板数据,格式形如 { "key1": { "value": any }, "key2": { "value": any } }
/// </summary>
[Required(ErrorMessage = "模板数据不能为空")]
public Dictionary<string, CgibinMessageSubscribeSendRequest.Types.DataItem> Data { get; set; }
/// <summary>
/// 模板跳转链接
/// </summary>
public string Url { get; set; }
/// <summary>
/// 所需跳转到小程序的具体页面路径,支持带参数,(示例index?foo=bar)
/// </summary>
public string MiniProgramPagePath { get; set; }
}
/// <summary>
/// 删除消息模板
/// </summary>
public class DeleteMessageTemplateInput
{
/// <summary>
/// 订阅模板Id
/// </summary>
[Required(ErrorMessage = "订阅模板Id不能为空")]
public string TemplateId { get; set; }
}
public class UploadAvatarInput
{
/// <summary>
/// 小程序用户身份标识
/// </summary>
[Required(ErrorMessage = "OpenId不能为空")]
public string OpenId { get; set; }
/// <summary>
/// 文件
/// </summary>
[Required]
public IFormFile File { get; set; }
/// <summary>
/// 文件类型
/// </summary>
public string FileType { get; set; }
/// <summary>
/// 文件路径
/// </summary>
public string Path { get; set; }
}
public class SetNickNameInput
{
/// <summary>
/// 小程序用户身份标识
/// </summary>
[Required(ErrorMessage = "OpenId不能为空")]
public string OpenId { get; set; }
/// <summary>
/// 昵称
/// </summary>
[Required(ErrorMessage = "昵称不能为空")]
public string NickName { get; set; }
}
@@ -0,0 +1,87 @@
// Admin.NET 项目的版权、商标、专利和其他相关权利均受相应法律法规的保护。使用本项目应遵守相关法律法规和许可证的要求。
//
// 本项目主要遵循 MIT 许可证和 Apache 许可证(版本 2.0)进行分发和使用。许可证位于源代码树根目录中的 LICENSE-MIT 和 LICENSE-APACHE 文件。
//
// 不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任!
namespace Admin.NET.Core.Service;
public class WechatPayTransactionInput
{
/// <summary>
/// OpenId
/// </summary>
public string OpenId { get; set; }
/// <summary>
/// 订单金额
/// </summary>
public int Total { get; set; }
/// <summary>
/// 商品描述
/// </summary>
public string Description { get; set; }
/// <summary>
/// 附加数据
/// </summary>
public string Attachment { get; set; }
/// <summary>
/// 优惠标记
/// </summary>
public string GoodsTag { get; set; }
/// <summary>
/// 业务标签,用来区分做什么业务
/// </summary>
public string Tags { get; set; }
/// <summary>
/// 对应业务的主键
/// </summary>
public long BusinessId { get; set; }
}
public class WechatPayParaInput
{
/// <summary>
/// 订单Id
/// </summary>
public string PrepayId { get; set; }
}
public class WechatPayRefundDomesticInput
{
/// <summary>
/// 商户端生成的业务流水号
/// </summary>
[Required]
public string TradeId { get; set; }
/// <summary>
/// 退款原因
/// </summary>
public string Reason { get; set; }
/// <summary>
/// 退款金额
/// </summary>
[Required]
public int Refund { get; set; }
/// <summary>
/// 原订单金额
/// </summary>
[Required]
public int Total { get; set; }
}
public class WechatPayPageInput : BasePageInput
{
/// <summary>
/// 添加时间范围
/// </summary>
public List<DateTime?> CreateTimeRange { get; set; }
}
@@ -0,0 +1,54 @@
// Admin.NET 项目的版权、商标、专利和其他相关权利均受相应法律法规的保护。使用本项目应遵守相关法律法规和许可证的要求。
//
// 本项目主要遵循 MIT 许可证和 Apache 许可证(版本 2.0)进行分发和使用。许可证位于源代码树根目录中的 LICENSE-MIT 和 LICENSE-APACHE 文件。
//
// 不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任!
namespace Admin.NET.Core.Service;
public class WechatPayOutput
{
/// <summary>
/// OpenId
/// </summary>
public string OpenId { get; set; }
/// <summary>
/// 订单金额
/// </summary>
public int Total { get; set; }
/// <summary>
/// 附加数据
/// </summary>
public string Attachment { get; set; }
/// <summary>
/// 优惠标记
/// </summary>
public string GoodsTag { get; set; }
}
public class WechatPayTransactionOutput
{
public string PrepayId { get; set; }
public string OutTradeNumber { get; set; }
public WechatPayParaOutput SingInfo { get; set; }
}
public class WechatPayParaOutput
{
public string AppId { get; set; }
public string TimeStamp { get; set; }
public string NonceStr { get; set; }
public string Package { get; set; }
public string SignType { get; set; }
public string PaySign { get; set; }
}
@@ -0,0 +1,24 @@
// Admin.NET 项目的版权、商标、专利和其他相关权利均受相应法律法规的保护。使用本项目应遵守相关法律法规和许可证的要求。
//
// 本项目主要遵循 MIT 许可证和 Apache 许可证(版本 2.0)进行分发和使用。许可证位于源代码树根目录中的 LICENSE-MIT 和 LICENSE-APACHE 文件。
//
// 不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任!
namespace Admin.NET.Core.Service;
public class WechatUserInput : BasePageInput
{
/// <summary>
/// 昵称
/// </summary>
public string NickName { get; set; }
/// <summary>
/// 手机号码
/// </summary>
public string Mobile { get; set; }
}
public class DeleteWechatUserInput : BaseIdInput
{
}
@@ -0,0 +1,150 @@
// Admin.NET 项目的版权、商标、专利和其他相关权利均受相应法律法规的保护。使用本项目应遵守相关法律法规和许可证的要求。
//
// 本项目主要遵循 MIT 许可证和 Apache 许可证(版本 2.0)进行分发和使用。许可证位于源代码树根目录中的 LICENSE-MIT 和 LICENSE-APACHE 文件。
//
// 不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任!
namespace Admin.NET.Core.Service;
/// <summary>
/// 获取微信用户OpenId
/// </summary>
public class JsCode2SessionInput
{
/// <summary>
/// JsCode
/// </summary>
[Required(ErrorMessage = "JsCode不能为空"), MinLength(10, ErrorMessage = "JsCode错误")]
public string JsCode { get; set; }
}
/// <summary>
/// 获取微信用户电话号码
/// </summary>
public class WxPhoneInput : WxOpenIdLoginInput
{
/// <summary>
/// Code
/// </summary>
[Required(ErrorMessage = "Code不能为空"), MinLength(10, ErrorMessage = "Code错误")]
public string Code { get; set; }
}
/// <summary>
/// 微信小程序登录
/// </summary>
public class WxOpenIdLoginInput
{
/// <summary>
/// OpenId
/// </summary>
[Required(ErrorMessage = "微信标识不能为空"), MinLength(10, ErrorMessage = "微信标识错误")]
public string OpenId { get; set; }
}
/// <summary>
/// 微信手机号登录
/// </summary>
public class WxPhoneLoginInput
{
/// <summary>
/// 电话号码
/// </summary>
[DataValidation(ValidationTypes.PhoneNumber, ErrorMessage = "电话号码错误")]
public string PhoneNumber { get; set; }
}
/// <summary>
/// 发送订阅消息
/// </summary>
public class SendSubscribeMessageInput
{
/// <summary>
/// 订阅模板Id
/// </summary>
[Required(ErrorMessage = "订阅模板Id不能为空")]
public string TemplateId { get; set; }
/// <summary>
/// 接收者的OpenId
/// </summary>
[Required(ErrorMessage = "接收者的OpenId不能为空")]
public string ToUserOpenId { get; set; }
/// <summary>
/// 模板内容,格式形如 { "key1": { "value": any }, "key2": { "value": any } }
/// </summary>
[Required(ErrorMessage = "模板内容不能为空")]
public Dictionary<string, CgibinMessageSubscribeSendRequest.Types.DataItem> Data { get; set; }
/// <summary>
/// 跳转小程序类型
/// </summary>
public string MiniprogramState { get; set; }
/// <summary>
/// 语言类型
/// </summary>
public string Language { get; set; }
/// <summary>
/// 点击模板卡片后的跳转页面(仅限本小程序内的页面),支持带参数(示例pages/app/index?foo=bar)
/// </summary>
public string MiniProgramPagePath { get; set; }
}
/// <summary>
/// 增加订阅消息模板
/// </summary>
public class AddSubscribeMessageTemplateInput
{
/// <summary>
/// 模板标题Id
/// </summary>
[Required(ErrorMessage = "模板标题Id不能为空")]
public string TemplateTitleId { get; set; }
/// <summary>
/// 模板关键词列表,例如 [3,5,4]
/// </summary>
[Required(ErrorMessage = "模板关键词列表不能为空")]
public List<int> KeyworkIdList { get; set; }
/// <summary>
/// 服务场景描述,15个字以内
/// </summary>
[Required(ErrorMessage = "服务场景描述不能为空")]
public string SceneDescription { get; set; }
}
/// <summary>
/// 生成带参数小程序二维码(总共生成的码数量限制为 100,000)
/// </summary>
public class GenerateQRImageInput
{
/// <summary>
/// 扫码进入的小程序页面路径,最大长度 128 个字符,不能为空; eg: pages/index?id=0001
/// </summary>
public string PagePath { get; set; }
/// <summary>
/// 文件保存的名称
/// </summary>
public string ImageName { get; set; }
/// <summary>
/// 图片宽度 默认430
/// </summary>
public int Width { get; set; } = 430;
}
/// <summary>
/// 生成带参数小程序二维码(获取不受限制的小程序码)
/// </summary>
public class GenerateQRImageUnLimitInput : GenerateQRImageInput
{
/// <summary>
/// 二维码携带的参数 eg:a=1(最大32个可见字符,只支持数字,大小写英文以及部分特殊字符:<!-- !#$&'()*+,/:;=?@-._~ -->)
/// </summary>
public string Scene { get; set; }
}
@@ -0,0 +1,40 @@
// Admin.NET 项目的版权、商标、专利和其他相关权利均受相应法律法规的保护。使用本项目应遵守相关法律法规和许可证的要求。
//
// 本项目主要遵循 MIT 许可证和 Apache 许可证(版本 2.0)进行分发和使用。许可证位于源代码树根目录中的 LICENSE-MIT 和 LICENSE-APACHE 文件。
//
// 不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任!
namespace Admin.NET.Core.Service;
public class WxOpenIdOutput
{
public string OpenId { get; set; }
}
public class WxPhoneOutput
{
public string PhoneNumber { get; set; }
}
public class GenerateQRImageOutput
{
/// <summary>
/// 生成状态
/// </summary>
public bool Success { get; set; } = false;
/// <summary>
/// 生成图片的绝对路径
/// </summary>
public string ImgPath { get; set; } = "";
/// <summary>
/// 生成图片的相对路径
/// </summary>
public string RelativeImgPath { get; set; } = "";
/// <summary>
/// 生成图片的错误信息
/// </summary>
public string Message { get; set; } = "";
}