# Talent Card Server 人才卡项目后端服务,基于 Spring Boot、MySQL、Redis 初始化。 ## 技术栈 - Java 17 - Spring Boot 4.1 - Spring Web MVC - Spring Data JPA - Spring Data Redis - MySQL 8.4 - Flyway - Maven ## 本地启动 默认连**共享开发库**:`192.168.110.13:3306/talent_card`(MySQL 5.7,`root`/`123456`, `flyway.enabled=false`)。本机不需要再起 MySQL。 下面的初始化脚本与 `D:\MySQL\MySQL Server 5.7\...` 那套做法是**并入共享库之前的历史**,只在自己搭一套 全新的库时才需要(本机那份 mysql 客户端已不存在)。库的归属与版本以 [`docs/agents/testing.md`](../docs/agents/testing.md) 的「环境一览」为准。 ```powershell & "<本机 mysql 客户端>\bin\mysql.exe" -uroot -p < scripts\init-local-mysql.sql ``` ```bash docker compose up -d redis ./mvnw spring-boot:run ``` Windows PowerShell: ```powershell docker compose up -d redis .\mvnw.cmd spring-boot:run ``` 服务默认地址:`http://localhost:8080` HBuilderX 浏览器运行的人才端(7893)和商户端(7894)直接请求后端时,后端允许 `http://localhost:7893`、`http://localhost:7894` 及对应的 `127.0.0.1` 来源访问 `/api/**`。 如果使用其他前端域名或端口,通过 `CORS_ALLOWED_ORIGINS` 配置逗号分隔的完整来源地址 (协议、主机、端口,不含路径),然后重启后端。部署时使用实际前端来源替换本机默认值。 ### 本机旧库迁移修复 如果启动日志提示 `V9__operation_management.sql` 失败,且原因是旧的 `movie_ticket_record` 表缺少 `package_name`,先执行一次兼容修复脚本,再重新启动服务: ```powershell $env:MYSQL_PWD = '123456' Get-Content .\scripts\repair-local-mysql-v9.sql -Raw | & "D:\MySQL\MySQL Server 5.7\bin\mysql.exe" -uroot -D talent_card Remove-Item Env:MYSQL_PWD ``` 该脚本仅用于已中断 V9 的旧本机数据库;它保留历史电影票记录,并让 Flyway 重新执行 V9 及后续迁移。新建数据库不需要执行。 (命令里的本机客户端路径已失效,换成任意可用的 mysql 客户端即可;共享开发库不涉及这套修复。) 如果临时想用 Docker MySQL,compose 已经避开本机 3306,映射为 `localhost:3307`: ```powershell $env:MYSQL_URL="jdbc:mysql://localhost:3307/talent_card?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&useSSL=false" $env:MYSQL_USERNAME="talent_card" $env:MYSQL_PASSWORD="talent_card" docker compose up -d mysql redis .\mvnw.cmd spring-boot:run ``` ## 常用接口 - `GET /api/health`:应用健康检查 - `POST /api/talent-cards`:创建人才卡 - `GET /api/talent-cards/{id}`:查询人才卡 - `GET /api/talent-cards`:分页查询人才卡 创建人才卡示例: ```json { "talentId": 1, "cardNo": "TC202607170001", "cardType": "PERSONAL", "cardLevel": "A" } ``` ## 环境变量 | 变量 | 默认值 | | --- | --- | | `SERVER_PORT` | `8080` | | `MYSQL_URL` | `jdbc:mysql://192.168.110.13:3306/talent_card...`(共享开发库;可用环境变量覆盖) | | `MYSQL_USERNAME` | `root` | | `MYSQL_PASSWORD` | `123456` | | `REDIS_HOST` | `localhost` | | `REDIS_PORT` | `6379` | | `REDIS_PASSWORD` | 空 | | `REDIS_DATABASE` | `0` |