添加项目文件。

This commit is contained in:
glz
2026-06-01 13:42:40 +08:00
parent 435474c5fe
commit bba985f937
56 changed files with 3758 additions and 0 deletions

View File

@ -0,0 +1,46 @@
namespace QYZH.InteractiveMagazine.Models.Common;
/// <summary>
/// 业务异常类
/// </summary>
public class BusinessException : Exception
{
/// <summary>
/// 错误码
/// </summary>
public int Code { get; set; }
/// <summary>
/// 无参构造函数
/// </summary>
public BusinessException() : base()
{
}
/// <summary>
/// 构造函数
/// </summary>
/// <param name="message">异常消息</param>
public BusinessException(string message) : base(message)
{
}
/// <summary>
/// 构造函数
/// </summary>
/// <param name="message">异常消息</param>
/// <param name="code">错误码</param>
public BusinessException(string message, int code) : base(message)
{
Code = code;
}
/// <summary>
/// 构造函数
/// </summary>
/// <param name="message">异常消息</param>
/// <param name="innerException">内部异常</param>
public BusinessException(string message, Exception innerException) : base(message, innerException)
{
}
}

View File

@ -0,0 +1,55 @@
namespace QYZH.InteractiveMagazine.Models.Dto;
/// <summary>
/// 统一响应模型
/// </summary>
/// <typeparam name="T">数据类型</typeparam>
public class BaseResponse<T>
{
/// <summary>
/// 状态码
/// </summary>
public int Code { get; set; }
/// <summary>
/// 提示信息
/// </summary>
public string? Message { get; set; }
/// <summary>
/// 数据
/// </summary>
public T? Data { get; set; }
/// <summary>
/// 成功响应
/// </summary>
/// <param name="data">数据</param>
/// <param name="message">提示信息</param>
/// <returns>统一响应对象</returns>
public static BaseResponse<T> Success(T data, string message = "操作成功")
{
return new BaseResponse<T>
{
Code = 200,
Message = message,
Data = data
};
}
/// <summary>
/// 失败响应
/// </summary>
/// <param name="message">提示信息</param>
/// <param name="code">状态码</param>
/// <returns>统一响应对象</returns>
public static BaseResponse<T> Fail(string message, int code = 500)
{
return new BaseResponse<T>
{
Code = code,
Message = message,
Data = default
};
}
}

View File

@ -0,0 +1,33 @@
namespace QYZH.InteractiveMagazine.Models.Dto;
/// <summary>
/// 分页输出
/// </summary>
/// <typeparam name="T">数据类型</typeparam>
public class PageListModel<T>
{
/// <summary>
/// 页码
/// </summary>
public int PageIndex { get; set; }
/// <summary>
/// 每页条数
/// </summary>
public int PageSize { get; set; }
/// <summary>
/// 总记录数
/// </summary>
public long TotalCount { get; set; }
/// <summary>
/// 总页数
/// </summary>
public int TotalPages => PageSize > 0 ? (int)Math.Ceiling((double)TotalCount / PageSize) : 0;
/// <summary>
/// 数据列表
/// </summary>
public List<T>? List { get; set; }
}

View File

@ -0,0 +1,27 @@
namespace QYZH.InteractiveMagazine.Models.Dto;
/// <summary>
/// 分页查询输入
/// </summary>
public class PageQueryModel
{
/// <summary>
/// 页码默认1
/// </summary>
public int PageIndex { get; set; } = 1;
/// <summary>
/// 每页条数默认10
/// </summary>
public int PageSize { get; set; } = 10;
/// <summary>
/// 排序字段
/// </summary>
public string? SortField { get; set; }
/// <summary>
/// 排序方式asc/desc
/// </summary>
public string? SortOrder { get; set; }
}

View File

@ -0,0 +1,43 @@
using SqlSugar;
namespace QYZH.InteractiveMagazine.Models.Entity;
/// <summary>
/// 基础实体类
/// </summary>
public abstract class BaseEntity
{
/// <summary>
/// 主键Id
/// </summary>
[SugarColumn(IsPrimaryKey = true, IsIdentity = true)]
public long Id { get; set; }
/// <summary>
/// 是否已删除
/// </summary>
[SugarColumn(IsIgnore = false)]
public bool IsDeleted { get; set; } = false;
/// <summary>
/// 创建人
/// </summary>
[SugarColumn(Length = 50)]
public string? CreatedBy { get; set; }
/// <summary>
/// 创建时间
/// </summary>
public DateTime CreatedTime { get; set; } = DateTime.Now;
/// <summary>
/// 更新人
/// </summary>
[SugarColumn(Length = 50)]
public string? UpdatedBy { get; set; }
/// <summary>
/// 更新时间
/// </summary>
public DateTime UpdatedTime { get; set; } = DateTime.Now;
}

View File

@ -0,0 +1,13 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="SqlSugarCore" Version="5.1.4.166" />
</ItemGroup>
</Project>

View File

@ -0,0 +1,27 @@
namespace QYZH.InteractiveMagazine.Models.Settings;
/// <summary>
/// JWT配置
/// </summary>
public class JwtSettings
{
/// <summary>
/// 颁发者
/// </summary>
public string? Issuer { get; set; }
/// <summary>
/// 接收者
/// </summary>
public string? Audience { get; set; }
/// <summary>
/// 密钥
/// </summary>
public string? SecretKey { get; set; }
/// <summary>
/// 过期时间(分钟)
/// </summary>
public int ExpiryMinutes { get; set; }
}

View File

@ -0,0 +1,32 @@
namespace QYZH.InteractiveMagazine.Models.Settings;
/// <summary>
/// RabbitMQ配置
/// </summary>
public class RabbitMQSettings
{
/// <summary>
/// 主机地址
/// </summary>
public string? HostName { get; set; }
/// <summary>
/// 端口
/// </summary>
public int Port { get; set; }
/// <summary>
/// 用户名
/// </summary>
public string? UserName { get; set; }
/// <summary>
/// 密码
/// </summary>
public string? Password { get; set; }
/// <summary>
/// 虚拟主机
/// </summary>
public string? VirtualHost { get; set; }
}

View File

@ -0,0 +1,17 @@
namespace QYZH.InteractiveMagazine.Models.Settings;
/// <summary>
/// Redis配置
/// </summary>
public class RedisSettings
{
/// <summary>
/// 连接字符串
/// </summary>
public string? ConnectionString { get; set; }
/// <summary>
/// 实例名称
/// </summary>
public string? InstanceName { get; set; }
}

View File

@ -0,0 +1,17 @@
namespace QYZH.InteractiveMagazine.Models.Settings;
/// <summary>
/// 微信小程序配置
/// </summary>
public class WeChatSettings
{
/// <summary>
/// 应用Id
/// </summary>
public string? AppId { get; set; }
/// <summary>
/// 应用密钥
/// </summary>
public string? AppSecret { get; set; }
}