一、项目简介个人收账管理系统是一套基于 SpringBoot3 Vue3 前后端分离架构的现代化手账管理平台。系统采用 RESTful API 设计后端负责业务逻辑与数据持久化前端通过 Vue Router 实现单页面应用路由跳转前后端通过 JWT Token 进行身份认证与鉴权。系统包含普通用户和管理员两种角色普通用户可以进行手账的增删改查、分类与标签管理、日历与时间轴浏览、数据导出与备份恢复等操作管理员则负责用户管理、系统统计、全局数据导出以及 SQL 级别的数据库备份与恢复覆盖从个人记录到系统运维的完整链路。二、技术栈技术说明后端框架Spring Boot 3.2ORMMyBatis-Plus 3.5.5权限认证Spring Security JWT密码加密BCryptPasswordEncoder前端框架Vue 3 (Composition API)前端路由Vue Router 4 (createWebHistory)状态管理PiniaUI 组件库Element Plus构建工具Vite数据库MySQL 8.0Excel 导出Apache POI (XSSFWorkbook)PDF 导出iText 7文件上传MultipartFile 本地存储三、功能模块管理员端用户列表分页查询支持按用户名、昵称、邮箱关键词模糊搜索分页返回用户列表每页可自定义大小。用户状态切换对指定用户账号进行启用或禁用操作通过修改 status 字段0/1实现禁用后该用户无法登录。删除用户根据用户 ID 物理删除用户记录同时清理该用户关联的手账、分类、标签等数据。编辑用户信息修改用户的昵称、邮箱、手机号等基本信息不涉及密码修改。系统统计概览展示总用户数和总手账数两个核心指标用于快速了解系统整体数据规模。用户手账统计列出每个用户的 ID、用户名、昵称及其手账数量便于管理员掌握各用户使用情况。全局数据导出 Excel将系统所有手账含所属用户信息导出为 .xlsx 文件字段包括标题、内容、心情、天气、记录日期、创建时间及用户名。全局数据导出 PDF将系统所有手账含用户信息导出为 PDF 文档用于归档或打印。SQL 备份管理支持手动执行自动备份调用 mysqldump 生成 .sql 文件、查看备份文件列表文件名、大小、修改时间、下载备份文件、删除备份文件。SQL 恢复上传 .sql 文件并通过 mysql 命令执行恢复操作用于数据库迁移或灾难恢复。普通用户端用户注册与登录通过用户名和密码注册账号注册时校验用户名唯一性登录成功后返回 JWT Token后续请求需在 Header 中携带该 Token。手账列表分页查询支持按关键词标题/内容、分类、起始日期、结束日期进行多条件筛选结果按记录日期倒序分页返回。手账详情查看获取单条手账的完整信息包括标题、内容、心情、天气、图片、附件、分类、标签列表、公开状态、记录日期等。新增手账填写标题、内容、心情、天气、图片、附件、分类支持多级分类 ID 字符串、公开状态、记录日期并可关联多个标签。编辑手账修改手账所有字段同时重新设置关联标签先删除原有关联再插入新标签确保标签关系与表单一致。删除手账删除手账记录及其关联的 journal_tag 中间表数据支持批量删除。日历视图数据根据起止日期范围查询该用户的手账记录返回日期与手账数量/列表用于前端日历组件展示。时间轴数据获取该用户所有手账列表按记录日期倒序用于时间线浏览模式。分类管理新增、编辑、删除分类支持通过 parentId 实现多级分类结构按 sortOrder 字段排序。分类列表查询获取当前用户的所有分类根据父分类 ID 获取子分类列表用于级联选择。标签管理新增、编辑、删除标签标签包含名称和颜色字段颜色用于前端展示。标签列表查询获取当前用户的所有标签用于手账编辑时的多选关联。手账模板管理新增、编辑、删除模板模板包含标题、内容、心情、天气、分类、标签、公开状态、图片、附件等预填内容用于快速创建手账。模板列表查询获取当前用户的所有手账模板支持按名称搜索。个人资料查看与编辑获取并修改当前登录用户的基本信息昵称、邮箱、手机号、头像、主题主题字段用于前端切换 UI 风格。修改密码校验原密码后更新为新密码使用 BCrypt 加密存储。头像上传上传头像图片文件保存至本地目录并更新用户头像字段返回可访问 URL。图片/文件上传支持上传图片和普通文件返回可访问的 URL 地址用于手账中的附件。个人数据导出 Excel将当前用户的所有手账导出为 .xlsx 文件包含标题、内容、心情、天气、记录日期、创建时间。个人备份管理创建手动备份导出 Excel 并记录备份记录、查看备份列表、下载备份文件、删除备份。四、项目总结该项目技术栈覆盖了 SpringBoot3 Vue3 前后端分离的全套主流工具从用户认证、数据 CRUD 到文件上传、报表导出、数据库备份恢复均有完整实现。其技术亮点包括基于 JWT 的无状态鉴权、MyBatis-Plus 的灵活查询构造、Element Plus 的丰富 UI 组件、以及 Apache POI 和 iText 7 的多格式导出能力。适合作为个人项目或课程设计的学习参考也可用于二次开发扩展为团队笔记、轻量级 CRM 等场景。界面展示交付内容本项目为完整交付包含完整后端源码完整前端源码数据库初始化脚本SQL万字项目文档设计文档 / 论文可作课程设计、毕业设计参考获取完整源码完整前后端源码 数据库脚本 万字项目文档见 Gitee 仓库https://gitee.com/kangxihuang/src-K165