# test-gk **Repository Path**: strong7217/test-gk ## Basic Information - **Project Name**: test-gk - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-11-25 - **Last Updated**: 2025-11-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 二手房管理系统 ## 项目简介 这是一个基于 Spring Boot 3 和 Vue 3 的前后端分离式二手房管理系统,提供房源发布、预约看房、收藏、下单等功能。 ## 技术栈 ### 后端技术栈 - **主框架**: Spring Boot 3.2.0 - **数据库访问**: MyBatis-Plus 3.5.5 - **安全认证**: Sa-Token 1.37.0 - **缓存**: Redis - **数据库**: MySQL 8.0+ - **API文档**: Knife4j (Swagger) - **工具类**: Hutool ### 前端技术栈 - **主框架**: Vue 3 (组合式 API) - **构建工具**: Vite 5 - **路由**: Vue Router 4 - **状态管理**: Pinia - **UI组件库**: Element Plus 2.4.4 - **图标库**: @element-plus/icons-vue - **HTTP请求**: Axios ## 功能模块 ### 1. 用户系统 - 用户注册/登录/登出 - 角色权限管理(普通用户、经纪人、管理员) - 个人信息管理 ### 2. 房源管理 - 房源发布(经纪人/管理员) - 房源编辑/删除 - 房源审核(管理员) - 房源搜索/筛选 - 房源详情查看 ### 3. 预约看房 - 创建预约 - 预约状态管理 - 预约记录查询 ### 4. 收藏功能 - 添加/取消收藏 - 收藏列表查看 ### 5. 订单管理 - 创建订单 - 订单状态管理 - 订单列表查询 ### 6. 文件上传 - 房源图片上传 - 多文件批量上传 ## 项目结构 ``` test-gk/ ├── house-system/ # 后端项目 │ ├── src/main/java/com/house/ # Java源代码 │ │ ├── common/ # 公共类(Result、异常处理等) │ │ ├── config/ # 配置类(MyBatis、Sa-Token、Swagger等) │ │ ├── controller/ # 控制器层 │ │ ├── dto/ # 数据传输对象 │ │ ├── entity/ # 实体类 │ │ ├── mapper/ # Mapper接口 │ │ ├── service/ # 服务层 │ │ ├── util/ # 工具类 │ │ └── vo/ # 视图对象 │ ├── src/main/resources/ # 资源文件 │ │ ├── db/ # 数据库脚本 │ │ └── application.yml # 配置文件 │ ├── pom.xml # Maven配置 │ ├── README.md # 后端说明文档 │ └── start-backend.bat # 后端启动脚本 │ ├── house-web/ # 前端项目 │ ├── src/ │ │ ├── api/ # API接口 │ │ ├── assets/ # 静态资源 │ │ ├── components/ # 组件 │ │ ├── layouts/ # 布局 │ │ ├── router/ # 路由 │ │ ├── stores/ # 状态管理 │ │ ├── utils/ # 工具类 │ │ ├── views/ # 页面 │ │ ├── App.vue # 根组件 │ │ └── main.js # 入口文件 │ ├── index.html │ ├── package.json │ ├── vite.config.js │ ├── README.md # 前端说明文档 │ └── start-web.bat # 前端启动脚本 │ ├── README.md # 项目总体说明 └── .gitignore # Git忽略配置 ``` ## 快速开始 ### 环境要求 - JDK 17+ - Maven 3.6+ - MySQL 8.0+ - Redis 5.0+ - Node.js 16+ ### 后端启动步骤 1. **创建数据库** ```sql CREATE DATABASE house_management DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ``` 2. **导入数据库脚本** - 执行 `house-system/src/main/resources/db/house_management.sql` 文件 3. **修改配置文件** - 编辑 `house-system/src/main/resources/application.yml` - 修改数据库连接信息(用户名、密码) - 修改Redis连接信息 4. **启动Redis** ```bash redis-server ``` 5. **启动后端项目** ```bash cd house-system mvn spring-boot:run ``` 或使用启动脚本: ```bash cd house-system start-backend.bat ``` 6. **访问API文档** - 地址: http://localhost:8080/api/doc.html ### 前端启动步骤 1. **安装依赖** ```bash cd house-web npm install ``` 2. **启动开发服务器** ```bash npm run dev ``` 或使用启动脚本: ```bash cd house-web start-web.bat ``` 3. **访问前端页面** - 地址: http://localhost:3000 ### 默认账号 系统预置了以下测试账号: | 用户名 | 密码 | 角色 | 说明 | |--------|------|------|------| | admin | 123456 | 管理员 | 拥有所有权限 | | agent001 | 123456 | 经纪人 | 可以发布房源 | | user001 | 123456 | 普通用户 | 浏览、预约、收藏 | ## API接口说明 ### 认证相关 - `POST /api/auth/register` - 用户注册 - `POST /api/auth/login` - 用户登录 - `POST /api/auth/logout` - 用户登出 - `GET /api/auth/current` - 获取当前用户信息 ### 房源管理 - `POST /api/houses` - 发布房源 - `PUT /api/houses` - 编辑房源 - `DELETE /api/houses/{id}` - 删除房源 - `PUT /api/houses/{id}/status` - 更新房源状态 - `POST /api/houses/list` - 分页查询房源列表 - `GET /api/houses/{id}` - 获取房源详情 ### 预约管理 - `POST /api/appointments` - 创建预约 - `PUT /api/appointments/{id}/status` - 更新预约状态 - `PUT /api/appointments/{id}/cancel` - 取消预约 - `GET /api/appointments/my` - 查询我的预约列表 - `GET /api/appointments/house/{houseId}` - 查询房源的预约列表 ### 收藏管理 - `POST /api/favorites/{houseId}` - 添加收藏 - `DELETE /api/favorites/{houseId}` - 取消收藏 - `GET /api/favorites/my` - 查询我的收藏列表 ### 订单管理 - `POST /api/orders` - 创建订单 - `PUT /api/orders/{id}/status` - 更新订单状态 - `GET /api/orders/my` - 查询我的订单列表 - `GET /api/orders/house/{houseId}` - 查询房源相关订单 - `GET /api/orders/no/{orderNo}` - 根据订单号查询订单 ### 文件上传 - `POST /api/files/upload` - 上传单个文件 - `POST /api/files/upload/batch` - 上传多个文件 - `POST /api/files/upload/house` - 上传房源图片 - `POST /api/files/upload/house/batch` - 批量上传房源图片 ## 核心配置说明 ### Sa-Token配置 - Token有效期: 30天 - Token存储: Redis - 权限控制: 基于角色和权限注解 ### Redis配置 - 用于Session存储 - 用于Token管理 - 可用于热门房源缓存 ### 文件上传配置 - 上传路径: `C:/java_env/test-gk/uploads` - 文件大小限制: 10MB - 支持格式: jpg, jpeg, png, gif, webp, bmp ## 开发建议 ### 代码规范 - 后端使用中文注释 - 前端使用Vue 3 组合式API - 遵循RESTful API设计规范 ### 权限控制 - 使用 `@SaCheckRole` 注解控制角色权限 - 前端路由守卫检查登录状态和角色权限 ### 异常处理 - 统一异常处理器处理所有异常 - 统一返回结果格式 ## 注意事项 1. 首次启动前请确保MySQL和Redis已正确安装并运行 2. 修改配置文件中的数据库密码和Redis配置 3. 文件上传目录需要有写入权限 4. 生产环境需要修改密码加密盐值和Token密钥 ## 后续扩展 - [ ] 完善房源详情页面(图片轮播、地图显示) - [ ] 实现发布房源表单页面 - [ ] 添加站内消息通知功能 - [ ] 集成第三方支付接口 - [ ] 集成短信/邮件通知 - [ ] 添加数据统计和报表 - [ ] 优化搜索功能(集成Elasticsearch) ## 许可证 本项目仅供学习参考使用。