feat: 实现v1.2.0云同步与实体重构核心功能

1.  重构用户与任务实体:UserEntity实现IUser<Guid>,TaskEntity继承ABP风格FullAuditedEntityWithUser,主键从int改为Guid
2.  新增云同步代理系统:嵌入式WebServer支持CloudSyncProxy转发云同步请求,新增配置API与持久化
3.  完善前端适配:新增Guid工具函数,更新任务类型定义与API交互逻辑,调整云同步设置弹窗适配本地代理
4.  文档与配置优化:更新文档结构,新增部署文档、版本记录,统一各项目配置项
5.  补充测试与迁移:新增单元测试,更新EF Core数据库迁移快照
This commit is contained in:
ShaoHua
2026-06-14 04:51:22 +08:00
parent d81aa06681
commit 14868c45c7
51 changed files with 4368 additions and 449 deletions
@@ -3,66 +3,66 @@ using Hua.Todo.Application.Models;
namespace Hua.Todo.Application.Interfaces;
/// <summary>
/// 任务管理服务接口
/// 任务管理服务接口
/// </summary>
public interface ITaskService : IDynamicApiService
{
/// <summary>
/// 获取所有任务
/// 获取所有任务
/// </summary>
/// <returns>包含所有任务的列表</returns>
/// <returns>包含所有任务的列表</returns>
Task<List<TaskDto>> GetAllTasksAsync();
/// <summary>
/// 根据 ID 获取任务
/// 根据 ID 获取任务
/// </summary>
/// <param name="id">任务唯一标识符</param>
/// <returns>匹配的任务 DTO,如果未找到则返回 null</returns>
Task<TaskDto?> GetTaskByIdAsync(int id);
/// <param name="id">任务 ID。</param>
/// <returns>匹配的任务 DTO,如果未找到则返回 null</returns>
Task<TaskDto?> GetTaskByIdAsync(Guid id);
/// <summary>
/// 获取未完成的任务
/// 获取未完成的任务
/// </summary>
/// <returns>未完成任务的列表</returns>
/// <returns>未完成任务的列表</returns>
Task<List<TaskDto>> GetActiveTasksAsync();
/// <summary>
/// 获取已完成的任务
/// 获取已完成的任务
/// </summary>
/// <returns>已完成任务的列表</returns>
/// <returns>已完成任务的列表</returns>
Task<List<TaskDto>> GetCompletedTasksAsync();
/// <summary>
/// 创建新任务
/// 创建新任务
/// </summary>
/// <param name="dto">创建任务所需的数据传输对象</param>
/// <returns>创建成功的任务 DTO</returns>
/// <param name="dto">创建任务所需的数据传输对象</param>
/// <returns>创建成功的任务 DTO</returns>
Task<TaskDto> CreateTaskAsync(CreateTaskDto dto);
/// <summary>
/// 更新任务信息
/// 更新任务信息
/// </summary>
/// <param name="dto">包含更新信息的任务数据传输对象</param>
/// <returns>更新后的任务 DTO</returns>
/// <param name="dto">包含更新信息的任务数据传输对象</param>
/// <returns>更新后的任务 DTO</returns>
Task<TaskDto> UpdateTaskAsync(UpdateTaskDto dto);
/// <summary>
/// 切换任务完成状态
/// 切换任务完成状态
/// </summary>
/// <param name="id">任务唯一标识符</param>
/// <returns>更新状态后的任务 DTO</returns>
Task<TaskDto> ToggleCompleteAsync(int id);
/// <param name="id">任务 ID。</param>
/// <returns>更新状态后的任务 DTO</returns>
Task<TaskDto> ToggleCompleteAsync(Guid id);
/// <summary>
/// 删除任务
/// 删除任务
/// </summary>
/// <param name="id">要删除的任务唯一标识符</param>
Task DeleteTaskAsync(int id);
/// <param name="id">要删除的任务 ID。</param>
Task DeleteTaskAsync(Guid id);
/// <summary>
/// 获取子任务列表
/// 获取子任务列表
/// </summary>
/// <param name="parentTaskId">父任务唯一标识符</param>
/// <returns>该父任务下的所有子任务列表</returns>
Task<List<TaskDto>> GetSubTasksAsync(int parentTaskId);
}
/// <param name="parentTaskId">父任务 ID。</param>
/// <returns>该父任务下的所有子任务列表</returns>
Task<List<TaskDto>> GetSubTasksAsync(Guid parentTaskId);
}