# todoList **Repository Path**: lqgg/todo-list ## Basic Information - **Project Name**: todoList - **Description**: 日常待办事项记录软件 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-06-09 - **Last Updated**: 2026-06-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 日常待办事项记录软件 基于 **Spring Boot 3 + Vue 2 + MySQL 8** 的日常待办提醒系统,专为微信公众号菜单入口设计,移动端适配。支持**服药管理**、**浇花管理**、**通用待办**三大场景,具备智能排序、循环提醒、独立完成标记等功能。 --- ## 功能特性 ### 📋 通用待办 - 自定义待办事项,设置时段(早/中/晚)、事件等级(普通/重要/紧急) - 标记完成 / 取消完成 - 按日期查看待办(支持未来日期查看,但禁止标记) - 循环模式:每天 / 每周指定日 / 每月指定日 ### 💊 服药管理 - 每种药独立添加,支持名称、剂量数量、剂量单位(粒/片/ml/袋) - **每种药独立勾选完成**,精准记录服药情况 - 循环服药按日期追踪完成状态(今天完成不影响明天) - 预设常用药品库,选择式录入 ### 🌱 浇花管理 - 管理多盆植物的浇水计划 - 设置浇水间隔天数 - 记录每次实际浇水时间 - 按植物/日期查询浇水历史 ### 🔥 智能排序 根据以下因素综合计算排序分(越高越靠前): | 因素 | 权重 | |------|------| | 事件等级 | 普通=10, 重要=20, 紧急=30 | | 紧急度 | 已过期+50, 今天+40, 明天+25, 3天内+15, 一周内+5 | | 时段匹配 | 当前时段匹配+15 | | 分类加成 | 服药+10, 浇花+5 | --- ## 技术栈 ### 后端 | 技术 | 版本 | |------|------| | Java | 17 | | Spring Boot | 3.3.5 | | Spring Security | 6.x(JWT 无状态认证) | | MyBatis-Plus | 3.5.9 | | MySQL | 8.0 | | jjwt | 0.12.6 | | SpringDoc OpenAPI | 2.6.0 | ### 前端 | 技术 | 版本 | |------|------| | Vue | 2.7.16 | | Vant | 2.12.54(移动端 UI) | | Vue Router | 3.x | | Vuex | 3.x | | Axios | 1.x | | dayjs | 1.x | | postcss-pxtorem | 移动端适配 | --- ## 快速开始 ### 环境要求 - JDK 17+ - Node.js 16+ - MySQL 8.0+ - Maven 3.6+ ### 1. 初始化数据库 ```sql -- 执行建表脚本 source /path/to/sql/init.sql ``` ### 2. 启动后端 ```bash # 开发环境(默认) cd todo mvn spring-boot:run # 生产环境 mvn spring-boot:run --spring.profiles.active=prod # 或打包后运行 mvn clean package -DskipTests java -jar target/todo-0.0.1-SNAPSHOT.jar ``` 服务启动在 `http://localhost:9999` ### 3. 启动前端 ```bash cd vue-frontend npm install npm run serve ``` 前端开发服务器启动在 `http://localhost:3000`,已配置代理转发 `/api` 请求到后端 `9999` 端口。 ### 4. 生产部署 — 前端构建 ```bash cd vue-frontend npm run build # 将 dist/ 目录部署到 Web 服务器(如 Nginx) ``` --- ## 多环境配置 项目使用 Spring Profiles 管理多环境配置: | 配置文件 | 环境 | 激活方式 | |----------|------|---------| | `application.yml` | 共享配置(默认 dev) | — | | `application-dev.yml` | 开发环境 | 默认 | | `application-prod.yml` | 生产环境 | `--spring.profiles.active=prod` | ### Nginx 反向代理配置 ```nginx location /api/ { proxy_pass http://127.0.0.1:9999; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_connect_timeout 60s; proxy_read_timeout 60s; client_max_body_size 10m; } ``` --- ## API 接口概览 | 方法 | 路径 | 说明 | |------|------|------| | `POST` | `/api/auth/register` | 用户注册(手机号) | | `POST` | `/api/auth/login` | 用户登录 | | `GET` | `/api/auth/me` | 获取当前用户 | | `POST` | `/api/todo/item` | 创建待办 | | `PUT` | `/api/todo/item/{id}` | 更新待办 | | `DELETE` | `/api/todo/item/{id}` | 删除待办 | | `PUT` | `/api/todo/item/{id}/complete` | 标记完成 | | `PUT` | `/api/todo/item/{id}/uncomplete` | 取消完成 | | `GET` | `/api/todo/item/{id}` | 获取待办详情(含子表) | | `GET` | `/api/todo/items?date=` | 按日期查询待办(智能排序) | | `GET` | `/api/todo/item/{id}/doses` | 获取药品剂量列表 | | `PUT` | `/api/todo/item/dose/{id}/toggle` | 切换单药完成状态 | | `POST` | `/api/todo/water/record` | 记录浇水 | | `GET` | `/api/todo/water/records?date=` | 查询某日浇水记录 | 完整 API 文档启动后访问:`http://localhost:9999/swagger-ui.html` --- ## 项目结构 ``` todo/ ├── sql/ │ └── init.sql # 数据库表初始化脚本 ├── src/main/java/com/example/todo/ │ ├── TodoApplication.java # 启动入口 │ ├── common/ # 通用结果码、统一响应、异常处理 │ ├── config/ # 安全配置、JWT 过滤器、MyBatis-Plus 配置 │ ├── controller/ # 控制器(AuthController, TodoController) │ ├── dto/ # 请求/响应数据传输对象 │ ├── entity/ # 数据库实体(7张表映射) │ ├── mapper/ # MyBatis-Plus Mapper 接口 │ ├── service/ # 业务层接口与实现 │ └── util/ # 工具类(JWT、手机号校验) ├── vue-frontend/ # Vue2 前端项目 │ └── src/ │ ├── views/ # 页面视图(登录、注册、首页、详情、编辑、个人) │ ├── api/ # API 接口封装 │ ├── router/ # 路由配置(含登录拦截) │ ├── store/ # Vuex 状态管理 │ └── utils/ # Axios 封装(JWT 拦截) └── pom.xml ``` ## 数据库表结构 | 表名 | 说明 | |------|------| | `user` | 用户表(手机号注册) | | `todo_item` | 待办事项主表(通用/服药/浇花通用) | | `todo_medicine_dose` | 药品剂量明细表 | | `todo_medicine_dose_record` | 药品剂量完成记录表(按日期) | | `todo_plant` | 浇花植物表 | | `todo_plant_water_record` | 浇水记录表 | | `todo_record` | 待办完成记录表(通用) | ## 页面预览 ### 个人中心 ![img.png](img/img.png) ### 待办事项 ![img.png](img/img_1.png) ### 服药管理 ![img.png](img/img_2.png) ### 浇花管理 ![img.png](img/img_3.png) ### 通用待办 ![img.png](img/img_4.png) ### 待办详情 ![img.png](img/img_5.png) ### 待办编辑 ![img.png](img/img_6.png) ### 待办完成 ![img.png](img/img_7.png) ### 待办删除 ![img.png](img/img_8.png)