# tbbysj **Repository Path**: cdulxy/tbbysj ## Basic Information - **Project Name**: tbbysj - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-20 - **Last Updated**: 2026-04-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 基于 SpringBoot 的马拉松信息管理平台(tbbysj) 本仓库按《项目设计与实现方案书(完整版 V5.0)》搭建后端骨架与核心闭环能力:**统一管理端动态菜单**、**JWT + RBAC**、**赛事级数据权限**、**报名/支付(模拟)/成绩/证书(PDF)/AI训练计划**。 ## 目录 - `marathon-platform/`:后端(Spring Boot 2.7.x + MyBatis-Plus + Security + JWT) ## 本地运行(Windows) ### 1) 准备环境 - **JDK**:1.8(本项目已按 JDK8 兼容编译) - **Maven**:3.6+ - **MySQL**:8.0 - **Redis**:可选(用于订单号递增;没有 Redis 也能跑,会降级为时间戳序列) ### 2) 初始化数据库 创建数据库并导入脚本(建议用 Navicat/Workbench,或 `mysql` 命令行执行)。 按顺序执行: 1. `marathon-platform/src/main/resources/db/init.sql` 2. `marathon-platform/src/main/resources/db/schema_business.sql` 3. `marathon-platform/src/main/resources/db/schema_material.sql` 4. `marathon-platform/src/main/resources/db/seed_menu.sql` > `init.sql` 会创建默认管理员:`admin / admin123`(密码为 bcrypt;若你修改了脚本请同步调整)。 ### 3) 修改配置 编辑 `marathon-platform/src/main/resources/application.yml`: - **MySQL**:`spring.datasource.*` - **Redis**:`spring.redis.*`(可选) - **证书存储路径**:`certificate.storage.path`(默认 `D:/marathon/certificates`) ### 4) 启动后端 在 `marathon-platform/` 目录执行: ```bash mvn -DskipTests spring-boot:run ``` 服务默认地址:`http://localhost:8080/api` ## 核心接口(最小闭环演示) ### 1) 登录获取 token `POST /api/auth/login` ```json {"username":"admin","password":"admin123"} ``` 返回 `token` 后,后续请求带请求头: - `Authorization: Bearer ` ### 2) 动态菜单 - `GET /api/menu/tree` - `GET /api/menu/permissions` ### 3) 系统管理员:创建赛事、分配赛事管理员 - `POST /api/admin/events`(系统管理员) - `POST /api/admin/events/{eventId}/assign-admin/{adminId}`(系统管理员) ### 4) 选手:浏览赛事、报名、支付(模拟) - `GET /api/events`(选手) - `POST /api/registrations`(选手) - `POST /api/pay/create`(选手创建订单) - `POST /api/pay/mock-success?orderNo=...`(选手模拟支付成功) ### 5) 管理端:审核报名、录入成绩、生成证书 - `GET /api/admin/registrations?eventId=...` - `PUT /api/admin/registrations/{id}/audit?eventId=...` - `POST /api/admin/results/upsert` - `POST /api/admin/certificates/generate?resultId=...` - `POST /api/admin/certificates/batch-generate?eventId=...` ### 6) 选手:查看成绩、证书、下载 PDF - `GET /api/results/me` - `GET /api/certificates/me` - `GET /api/files/cert?path=cert/cert_xxx.pdf` ### 7) AI 训练计划 - `POST /api/training/generate` - `GET /api/training/me` ## 关于支付宝沙箱 方案书要求对接支付宝沙箱,但你当前 Maven 环境可能被镜像源限制,导致 `alipay-sdk-java` 无法拉取。本项目暂时保留了**可跑通业务闭环的模拟支付**: - 创建订单:`/api/pay/create` - 模拟成功:`/api/pay/mock-success` 后续你希望接入真实沙箱时,我会把 `alipay-sdk-java` 依赖恢复,并补齐: - 支付表单/二维码下单 - 异步回调 `notify` 验签 - 幂等与订单状态机