# finance-assistant-backend **Repository Path**: hln123/finance-assistant-backend ## Basic Information - **Project Name**: finance-assistant-backend - **Description**: 个人智能财务管理后端工程 - **Primary Language**: Unknown - **License**: MulanPSL-2.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2026-02-10 - **Last Updated**: 2026-03-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README Based on the code map provided, I can see this is a comprehensive financial management system with AI capabilities. Let me create a detailed README.md file. # 智能财务管理系统 (Finance Assistant Backend) ## 项目简介 智能财务管理系统是一个基于 Spring Boot 构建的后端服务,集成了 AI 智能助手功能,帮助用户管理个人财务。用户可以通过 AI 对话的方式完成账单记录、账本管理、财务目标设定等操作。 ### 核心特性 - **AI 智能助手**:基于大语言模型的智能财务助手,支持自然语言交互 - **财务管理**:完整的账本、账单、财务目标管理功能 - **用户系统**:支持邮箱验证码登录和密码登录 - **数据持久化**:MySQL 存储业务数据,MongoDB 存储对话历史 - **RAG 增强**:基于向量检索的知识增强回答 ## 技术栈 | 类别 | 技术 | |------|------| | 框架 | Spring Boot 3.x | | 数据库 | MySQL 8.x, MongoDB | | 缓存 | Redis | | ORM | MyBatis Plus | | AI | LangChain4j, 阿里云 Qwen | | 认证 | JWT | | 邮件 | Spring Mail | ## 项目结构 ``` com.eden.financial_sys/ ├── assistant/ # AI 智能助手核心 ├── common/ # 公共响应与异常处理 ├── config/ # 配置类 ├── controller/ # 控制器层 ├── entity/ # 实体类 ├── handler/ # 拦截器与处理器 ├── mapper/ # MyBatis Mapper 接口 ├── pojo/dto/ # 数据传输对象 ├── service/ # 业务接口 │ └── impl/ # 业务实现 ├── tools/ # AI 工具(账单、目标) └── utils/ # 工具类 ``` ## 快速开始 ### 环境要求 - JDK 17+ - Maven 3.8+ - MySQL 8.x - MongoDB 4.x - Redis 6.x ### 配置说明 在 `src/main/resources/application.properties` 中配置数据库连接: ```properties # 数据库配置 spring.datasource.url=jdbc:mysql://localhost:3306/financial_sys spring.datasource.username=root spring.datasource.password=your_password # MongoDB 配置 spring.data.mongodb.uri=mongodb://localhost:27017/financial_sys # Redis 配置 spring.redis.host=localhost spring.redis.port=6379 # 邮件配置 spring.mail.username=your_email@example.com spring.mail.password=your_password ``` ### 构建与运行 ```bash # 打包项目 mvn clean package -DskipTests # 运行项目 java -jar target/your-artifact.jar ``` 或使用 Docker: ```bash docker build -t finance-assistant-backend . docker run -p 8080:8080 finance-assistant-backend ``` ## API 接口 ### 用户管理 `/user` | 方法 | 路径 | 描述 | |------|------|------| | POST | `/user/loginByPassword` | 密码登录 | | POST | `/user/loginOrRegisterByCode` | 验证码登录/注册 | | GET | `/user/sendCode` | 发送验证码 | | POST | `/user/changePassword` | 修改密码 | | GET | `/user/getCurrentUserInfo` | 获取当前用户信息 | ### 账本管理 `/ledger` | 方法 | 路径 | 描述 | |------|------|------| | GET | `/ledger/getUserLedgers` | 获取用户账本 | | POST | `/ledger/addLedger` | 新增账本 | | PUT | `/ledger/updateLedger` | 修改账本 | | DELETE | `/ledger/deleteLedger` | 删除账本 | ### 账单管理 `/bill` | 方法 | 路径 | 描述 | |------|------|------| | GET | `/bill/getBillsByPage` | 分页查询账单 | | POST | `/bill/addBill` | 新增账单 | | PUT | `/bill/updateBill` | 修改账单 | | DELETE | `/bill/deleteBills` | 删除账单 | | GET | `/bill/getAllLabels` | 获取所有标签 | | GET | `/bill/getUserLedgers` | 获取用户账本 | ### 财务目标 `/goal` | 方法 | 路径 | 描述 | |------|------|------| | GET | `/goal/getUserFinancialGoals` | 获取用户财务目标 | | POST | `/goal/addFinancialGoal` | 新增财务目标 | | PUT | `/goal/updateFinancialGoal` | 修改财务目标 | | DELETE | `/goal/deleteFinancialGoal` | 删除财务目标 | ### AI 智能助手 `/ai` | 方法 | 路径 | 描述 | |------|------|------| | POST | `/ai/chat` | AI 对话(流式响应) | | GET | `/ai/memories` | 获取对话列表 | | GET | `/ai/latestChat` | 获取最近对话 | | POST | `/ai/memory` | 创建新对话 | | PUT | `/ai/memory` | 更新对话标题 | | DELETE | `/ai/memory/{memoryId}` | 删除对话 | | GET | `/ai/memory/{memoryId}/messages` | 获取对话消息 | ## AI 工具 AI 助手集成了以下工具,支持自然语言操作: - **查看账本**:获取用户所有账本信息 - **新增账本**:创建新的账本 - **查看账单**:查询账单记录 - **新增账单**:记录消费或收入 - **修改账单**:更新账单信息 - **查看财务目标**:了解存钱目标进度 - **添加财务目标**:设定新的理财目标 - **修改财务目标**:更新目标信息 ## 许可证 MIT License