跳到主要内容

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