一个面向校园用户的二手物品交易平台,支持物品发布、订单管理、站内私信等功能。
springboot3.5+mybatsi+openAPI3
|
|
hace 4 meses | |
|---|---|---|
| .mvn | hace 4 meses | |
| doc | hace 4 meses | |
| sql | hace 4 meses | |
| src | hace 4 meses | |
| .gitattributes | hace 4 meses | |
| .gitignore | hace 4 meses | |
| AGENTS.md | hace 4 meses | |
| README.md | hace 4 meses | |
| mvnw | hace 4 meses | |
| mvnw.cmd | hace 4 meses | |
| pom.xml | hace 4 meses |
一个面向校园用户的二手物品交易平台,支持物品发布、订单管理、站内私信等功能。
server/
├── pom.xml # Maven 配置文件
├── sql/
│ └── init.sql # 数据库初始化脚本
└── src/main/
├── java/com/campus/trade/
│ ├── ServerApplication.java # 应用入口
│ ├── config/ # 配置类
│ │ ├── WebMvcConfig.java # Web MVC 配置
│ │ └── MyBatisConfig.java # MyBatis 配置
│ ├── controller/ # 控制器层
│ │ ├── AuthController.java # 认证相关 API
│ │ ├── ItemController.java # 物品相关 API
│ │ ├── OrderController.java # 订单相关 API
│ │ ├── MessageController.java # 消息相关 API
│ │ ├── UserController.java # 用户资料 API
│ │ ├── CategoryController.java # 分类相关 API
│ │ └── admin/ # 后台管理 API
│ ├── service/ # 业务逻辑层
│ │ ├── impl/ # 服务实现类
│ │ └── admin/ # 后台管理服务
│ ├── mapper/ # 数据访问层 (MyBatis Mapper)
│ ├── entity/ # 实体类
│ ├── dto/ # 数据传输对象 (请求参数)
│ ├── vo/ # 视图对象 (响应数据)
│ ├── common/ # 公共工具类
│ │ ├── Result.java # 统一响应封装
│ │ ├── StatusCode.java # 状态码定义
│ │ ├── BusinessException.java # 业务异常
│ │ ├── GlobalExceptionHandler.java # 全局异常处理
│ │ ├── OrderStatusMachine.java # 订单状态机
│ │ └── FileUploadUtil.java # 文件上传工具
│ └── interceptor/ # 拦截器
│ ├── AuthInterceptor.java # 登录认证拦截器
│ └── AdminInterceptor.java # 管理员权限拦截器
└── resources/
├── application.yaml # 应用配置文件
└── mapper/ # MyBatis XML 映射文件
订单状态流转:
PENDING → CONFIRMED → DELIVERED → COMPLETED
↓
CANCELLED (卖家拒单)
买家视角:我买到的订单
卖家视角:我卖出的订单
订单操作:接单、拒单、确认交货、确认收货
| 表名 | 说明 | 主要字段 |
|---|---|---|
user |
用户表 | id, student_id, name, password_hash, auth_status, role, status |
category |
分类表 | id, name, status, sort_order |
item |
物品表 | id, seller_id, category_id, title, description, price, images, status |
order |
订单表 | id, item_id, buyer_id, seller_id, trade_method, status |
message |
消息表 | id, from_user_id, to_user_id, item_id, content, is_read |
review |
审核记录表 | id, admin_id, review_type, target_id, result, reason |
用户认证状态 (auth_status)
UNAUTHENTICATED - 未认证PENDING - 审核中AUTHENTICATED - 已认证用户账号状态 (status)
NORMAL - 正常BANNED - 已封禁物品状态 (status)
PENDING - 待审核ON_SALE - 在售中OFF_SHELF - 已下架SOLD - 已售出订单状态 (status)
PENDING - 待确认CONFIRMED - 已接单DELIVERED - 已交货COMPLETED - 已完成CANCELLED - 已取消分类状态 (status)
ENABLED - 启用DISABLED - 禁用# 登录 MySQL
mysql -u root -p
# 执行初始化脚本
source sql/init.sql
默认数据库配置:
campus_idle_item_trading_platformrootroot编辑 src/main/resources/application.yaml:
spring:
datasource:
url: jdbc:mysql://localhost:3306/campus_idle_item_trading_platform?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
username: your_username
password: your_password
# 编译项目
./mvnw compile
# 开发模式运行(热部署)
./mvnw spring-boot:run
# 打包
./mvnw package
# 运行 jar 包
java -jar target/CampusIdleItemTradingPlatform-0.0.1-SNAPSHOT.jar
adminadmin (MD5: e10adc3949ba59abbe56e057f20f883e)| 接口 | 方法 | 说明 |
|---|---|---|
/auth/register |
POST | 用户注册 |
/auth/login |
POST | 用户登录 |
/items |
GET | 物品列表 |
/items/{id} |
GET | 物品详情 |
/items/search |
GET | 搜索物品 |
/items/category/{id} |
GET | 按分类筛选 |
/categories |
GET | 分类列表 |
| 接口前缀 | 说明 |
|---|---|
/auth/logout |
用户登出 |
/auth/submit-auth |
提交实名认证 |
/auth/change-password |
修改密码 |
/user/profile |
个人资料管理 |
/items (POST) |
发布物品 |
/items/my |
我的发布 |
/orders/** |
订单相关 |
/messages/** |
站内消息 |
| 接口前缀 | 说明 |
|---|---|
/admin/users/** |
用户管理 |
/admin/reviews/** |
审核管理 |
/admin/categories/** |
分类管理 |
统一使用 Result<T> 包装:
{
"code": 200,
"message": "success",
"data": { ... }
}
| 状态码 | 说明 |
|---|---|
| 200 | 成功 |
| 400 | 参数错误 |
| 401 | 未登录 |
| 403 | 无权限 |
| 404 | 资源不存在 |
| 409 | 业务冲突(如学号已注册) |
| 500 | 服务器内部错误 |
OrderStatusMachine 统一管理#{} 参数绑定PENDING, ON_SALE)本项目仅供学习交流使用。