# aa-pay-system **Repository Path**: zhang_Yzing/aa-pay-system ## Basic Information - **Project Name**: aa-pay-system - **Description**: No description available - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-01-29 - **Last Updated**: 2026-01-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # AA收款系统 一款简单、快速、透明的多人分账工具。 ## 功能特点 - 创建收款活动并生成唯一分享链接 - 参与者通过链接添加各自的支付记录 - 支持多种消费类别(餐饮、住宿、交通、门票/娱乐、购物、其他) - 自动计算总支出、人均分摊金额 - 智能生成结算方案(谁应该给谁多少钱) - 分类统计分析 ## 技术栈 ### 后端 - Java 17 - Spring Boot 3.2.0 - Spring Data JPA - PostgreSQL / H2(开发环境) - Lombok ### 前端 - Vue.js 3 - Vite - Vue Router - Pinia - Axios ## 项目结构 ``` aa-pay-system/ ├── backend/ # 后端项目 │ ├── src/ │ │ └── main/ │ │ ├── java/com/aapay/ │ │ │ ├── entity/ # 实体类 │ │ │ ├── dto/ # 数据传输对象 │ │ │ ├── repository/ # 数据访问层 │ │ │ ├── service/ # 业务逻辑层 │ │ │ ├── controller/ # 控制器层 │ │ │ ├── exception/ # 异常处理 │ │ │ └── AaPaySystemApplication.java │ │ └── resources/ │ │ └── application.yml │ └── pom.xml ├── frontend/ # 前端项目 │ ├── src/ │ │ ├── api/ # API接口 │ │ ├── views/ # 页面组件 │ │ ├── App.vue │ │ └── main.js │ ├── index.html │ ├── package.json │ └── vite.config.js └── database/ └── init.sql # 数据库初始化脚本 ``` ## 快速开始 ### 环境要求 - JDK 17 或更高版本 - Node.js 16 或更高版本 - PostgreSQL 12 或更高版本(可选,开发环境使用H2) - Maven 3.6 或更高版本 ### 后端启动 #### 1. 进入后端目录 ```bash cd backend ``` #### 2. 配置数据库 **使用H2(开发环境,无需额外配置):** - 默认已配置H2内存数据库,无需修改配置 **使用PostgreSQL(生产环境):** 编辑 `src/main/resources/application.yml`,修改数据库配置: ```yaml spring: datasource: url: jdbc:postgresql://localhost:5432/aapay driver-class-name: org.postgresql.Driver username: postgres password: your_password jpa: properties: hibernate: dialect: org.hibernate.dialect.PostgreSQLDialect ``` 初始化数据库(可选): ```bash psql -U postgres -f ../database/init.sql ``` #### 3. 启动后端 ```bash mvn spring-boot:run ``` 或使用IDE运行 `AaPaySystemApplication.java` 后端启动后访问: - API地址: http://localhost:8080/api - H2控制台: http://localhost:8080/api/h2-console - JDBC URL: `jdbc:h2:mem:aapay` - 用户名: `sa` - 密码: (留空) ### 前端启动 #### 1. 进入前端目录 ```bash cd frontend ``` #### 2. 安装依赖 ```bash npm install ``` #### 3. 启动开发服务器 ```bash npm run dev ``` 前端访问地址: http://localhost:5173 ## API接口文档 ### 活动管理 | 方法 | 路径 | 描述 | |------|------|------| | POST | `/api/activities` | 创建活动 | | GET | `/api/activities/{id}` | 获取活动详情 | | GET | `/api/activities/code/{code}` | 通过分享码获取活动 | | DELETE | `/api/activities/{id}` | 删除活动 | | GET | `/api/activities/{id}/settlement` | 获取结算明细 | ### 支付记录 | 方法 | 路径 | 描述 | |------|------|------| | POST | `/api/activities/{activityId}/records` | 添加支付记录 | | DELETE | `/api/activities/records/{recordId}` | 删除支付记录 | ### 请求示例 #### 创建活动 ```bash POST /api/activities Content-Type: application/json { "name": "周末旅行", "description": "杭州两日游", "createdBy": "张三" } ``` #### 添加支付记录 ```bash POST /api/activities/1/records Content-Type: application/json { "payerName": "张三", "amount": 150.00, "category": "dining", "description": "晚餐" } ``` ## 部署 ### 后端打包 ```bash cd backend mvn clean package java -jar target/aa-pay-system-1.0.0.jar ``` ### 前端打包 ```bash cd frontend npm run build ``` 打包后的文件在 `dist` 目录,可部署到任意静态服务器。 ## 开发计划 - [x] 创建活动功能 - [x] 唯一分享链接生成 - [x] 添加支付记录 - [x] 结算明细计算 - [x] 多消费类别统计 - [x] 移动端适配 - [ ] 用户注册登录 - [ ] 数据导出(Excel/PDF) - [ ] 二维码分享 - [ ] 多币种支持 ## 许可证 MIT License