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 的「环境一览」为准。

& "<本机 mysql 客户端>\bin\mysql.exe" -uroot -p < scripts\init-local-mysql.sql
docker compose up -d redis
./mvnw spring-boot:run

Windows 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,先执行一次兼容修复脚本,再重新启动服务:

$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:

$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:分页查询人才卡

创建人才卡示例:

{
  "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