# fun-easy **Repository Path**: so_xin/fun-easy ## Basic Information - **Project Name**: fun-easy - **Description**: 乐玩易租,大型租赁平台 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-05-23 - **Last Updated**: 2026-06-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 乐玩易租 一个综合性租赁平台,支持 B2C(用户↔商家)和 C2C(用户↔用户)两种租赁模式。 ## 项目简介 乐玩易租是一个全品类租赁平台,用户可以在大厅浏览商家租赁物,也可以在广场发布或浏览个人租赁帖子。租赁物品不限制类型,商家和个人用户均可自由选择租赁物类型。 ### 核心特性 - **双模式租赁**:支持 B2C 商家租赁和 C2C 用户间租赁 - **广场社区**:用户可发布交流帖子,支持评论互动 - **完整订单流程**:下单、支付、发货、归还、续租、评价 - **权限管理**:基于 Sa-Token 的角色权限控制 - **单设备登录**:同一账号只能在一个设备登录 ## 技术栈 | 技术 | 版本 | 说明 | |------|------|------| | Spring Boot | 2.6.13 | 基础框架 | | MyBatis-Plus | 3.5.9 | ORM 框架 | | MySQL | - | 数据库 | | Sa-Token | 1.37.0 | 权限认证 | | Knife4j | 4.4.0 | 接口文档 | | 腾讯云 COS | 5.6.227 | 对象存储 | | Hutool | 5.8.26 | 工具库 | | Java | 8 | 开发语言 | ## 项目结构 ``` song-fun-easy ├── sql/ # SQL 脚本 │ ├── create_table.sql # 表结构 │ └── init_data.sql # 初始化数据 ├── src/main/java/ │ └── com/song/songpicturebackend/ │ ├── annotation/ # 自定义注解 │ ├── aop/ # AOP 切面 │ ├── common/ # 通用类 │ ├── config/ # 配置类 │ ├── constant/ # 常量 │ ├── controller/ # 控制器 │ ├── exception/ # 异常处理 │ ├── manager/ # 业务管理器 │ ├── mapper/ # MyBatis Mapper │ ├── model/ │ │ ├── dto/ # 数据传输对象 │ │ ├── entity/ # 实体类 │ │ ├── enums/ # 枚举类 │ │ └── vo/ # 视图对象 │ ├── satoken/ # Sa-Token 配置 │ └── service/ # 服务层 └── src/main/resources/ └── application.yml # 配置文件 ``` ## 快速开始 ### 环境要求 - JDK 8+ - MySQL 5.7+ - Maven 3.6+ ### 安装步骤 1. **克隆项目** ```bash git clone cd song-fun-easy ``` 2. **创建数据库** ```sql CREATE DATABASE song_picture; ``` 3. **执行 SQL 脚本** ```bash # 执行表结构脚本 mysql -u root -p song_picture < sql/create_table.sql # 执行初始化数据脚本 mysql -u root -p song_picture < sql/init_data.sql ``` 4. **修改配置** 编辑 `src/main/resources/application.yml`,修改数据库连接信息: ```yaml spring: datasource: url: jdbc:mysql://localhost:3306/song_picture username: root password: your_password ``` 5. **运行项目** ```bash mvn spring-boot:run ``` 6. **访问接口文档** 浏览器打开:http://localhost:8123/api/doc.html ### 请求头 登录后需要在请求头中携带 Token: ``` Authorization: ``` ## 订单状态流转 ``` 待支付(0) → 待发货(1) → 租赁中(2) → 待确认归还(3) → 已完成(4) ↘ 超时自动完成(7) → 违约金待支付(8) ↘ 续租中(5) → 回到租赁中(2) 任意状态 → 已取消(6) ``` ## 数据库表 | 表名 | 说明 | |------|------| | user | 用户表 | | role | 角色表 | | menu | 菜单表 | | role_menu | 角色菜单关联表 | | merchant | 商家表 | | category | 分类表 | | rental_item | 租赁物表 | | post | 广场帖子表 | | cart_item | 购物车表 | | orders | 订单表 | | address | 地址表 | | comment | 评论表 | | review | 评价表 | | message | 系统消息表 | | chat_message | 对话消息表 | | user_favorite | 收藏表 | | user_like | 点赞表 | | certification | 实名认证表 | ## 配置说明 ### Sa-Token 配置 ```yaml sa-token: token-name: Authorization # Token 名称 timeout: 2592000 # Token 有效期(30天) is-concurrent: false # 单设备登录 is-share: false # 不共享 Token ``` ### 文件上传配置 ```yaml spring: servlet: multipart: max-file-size: 10MB ``` ## 开发规范 ### DTO 命名规范 - `*AddRequest` - 新增请求 - `*UpdateRequest` - 更新请求 - `*QueryRequest` - 查询请求(继承 PageRequest) ### 权限注解 ```java @AuthCheck(mustRole = "ADMIN") // 需要管理员权限 ``` ## 许可证 MIT License