FreeKit.ToDos
简介
FreeKit.ToDos 是一个功能完整的待办事项管理模块,提供任务创建、更新、删除等核心功能,支持任务提醒和超时提醒等特性。
核心功能
- ✅ 待办事项的 CRUD 操作
- 📅 任务提醒和超时提醒
- 🔍 支持按条件查询任务
- 📊 分页获取任务列表
- ⭐ 批量任务状态更新
- 👤 用户任务隔离
实体设计
ToDo 实体
public class ToDo
{
public Guid Id { get; set; }
public string Message { get; set; }
public bool IsDone { get; set; }
public DateTime CreateTime { get; set; }
public DateTime UpdateTime { get; set; }
public Guid CreateUserId { get; set; }
public string CreateUserName { get; set; }
public bool IsDeleted { get; set; }
public DateTime? NotificationTime { get; set; }
}
API 接口
获取任务列表
public async Task<PagedResultDto<ToDoDto>> GetListAsync(ToDoQuery query)
- 支持按消息内容筛选
- 支持按完成状态筛选
- 按创建时间倒序排序
- 支持分页
获取任务详情
public async Task<IResult> GetAsync(Guid id)
- 获取指定ID的任务详情
- 验证任务所属权
创建任务
public async Task<ToDoDto> CreateAsync(InputToDo inputToDo)
- 创建新的待办事项
- 自动记录创建时间和用户信息
更新任务
public async Task<IResult> UpdateAsync(Guid id, InputToDo inputToDo)
- 更新现有待办事项
- 支持设置提醒时间
- 验证任务所属权
删除任务
public async Task<IResult> DeleteAsync(Guid id)
- 软删除指定任务
- 验证任务所属权
更新任务状态
public async Task<IResult> MakeDone(Guid id, bool isDone)
- 设置任务完成/未完成状态
批量更新任务状态
public async Task<IResult> MakeDones(MakeDoneReq makeDoneReq)
- 批量设置多个任务的完成状态
使用示例
1. 注册服务
services.AddModule<TodoModuleStartup>("module-todo", configuration);
2. 创建任务
var todo = await todoService.CreateAsync(new InputToDo
{
Message = "完成文档编写",
NotificationTime = DateTime.Now.AddHours(2)
});
3. 查询任务列表
var query = new ToDoQuery
{
Message = "文档",
IsDone = false,
PageSize = 10,
PageIndex = 1
};
var result = await todoService.GetListAsync(query);
技术特点
- 基于 .NET Core 开发
- 使用 FreeSql ORM
- 支持多种数据库
- 完整的用户权限控制
- 软删除支持
依赖项
- IGeekFan.FreeKit.Extras
- FreeScheduler
- Microsoft.AspNetCore.Mvc