formula project

This commit is contained in:
colden
2025-12-20 12:20:43 +08:00
commit 28e1507889
156 changed files with 7444 additions and 0 deletions

View File

@@ -0,0 +1,4 @@
spring.datasource.url=jdbc:mysql://124.70.86.207:3306/h_db23373332
spring.datasource.username=u23373332
spring.datasource.password=
jwt.secret=

View File

@@ -0,0 +1,6 @@
spring.datasource.url=jdbc:mysql://your-host:3306/your-db
spring.datasource.username=your-username
spring.datasource.password=your-password
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
jwt.secret=24VSSNj6bDX7mwjIsidnJQYg3Lk6Ht9YvqYZYj7aDTc=
jwt.secret=your-base64-encoded-secret-key-min-32-bytes

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

148
backend/target/classes/init.sql Executable file
View File

@@ -0,0 +1,148 @@
-- 车手表
CREATE TABLE IF NOT EXISTS driver(
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100),
country VARCHAR(100),
birthday DATE
);
-- 车队表
CREATE TABLE IF NOT EXISTS team(
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100),
country VARCHAR(100),
engine_supplier VARCHAR(100),
setup_time YEAR
);
-- 合同表
CREATE TABLE IF NOT EXISTS contract(
id INT AUTO_INCREMENT PRIMARY KEY,
driver_id INT,
team_id INT,
season YEAR,
car_num INT,
is_reserve BOOLEAN,
FOREIGN KEY(driver_id) REFERENCES driver(id),
FOREIGN KEY(team_id) REFERENCES team(id)
);
-- 赛道表
CREATE TABLE IF NOT EXISTS circuit(
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100),
location VARCHAR(100),
country VARCHAR(100),
drs_zones INT
);
-- 赛事表
CREATE TABLE IF NOT EXISTS prix(
id INT AUTO_INCREMENT PRIMARY KEY,
season YEAR,
round INT,
name VARCHAR(100),
circuit_id INT,
have_sprint BOOLEAN,
FOREIGN KEY(circuit_id) REFERENCES circuit(id)
);
-- 排位赛结果表
CREATE TABLE IF NOT EXISTS qualifying_result(
prix_id INT,
driver_id INT,
team_id INT,
fastest_time VARCHAR(20),
position INT,
is_sprint BOOLEAN,
section INT,
FOREIGN KEY(prix_id) REFERENCES prix(id),
FOREIGN KEY(driver_id) REFERENCES driver(id),
FOREIGN KEY(team_id) REFERENCES team(id)
);
-- 正赛结果表
CREATE TABLE IF NOT EXISTS race_result(
prix_id INT,
driver_id INT,
team_id INT,
start_position INT,
end_position INT,
finish_time VARCHAR(20),
fastest_time VARCHAR(20),
score INT,
is_sprint BOOLEAN,
FOREIGN KEY(prix_id) REFERENCES prix(id),
FOREIGN KEY(driver_id) REFERENCES driver(id),
FOREIGN KEY(team_id) REFERENCES team(id)
);
-- 用户表
CREATE TABLE IF NOT EXISTS user(
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(100) UNIQUE,
password VARCHAR(100),
email VARCHAR(100),
country VARCHAR(100),
avatar VARCHAR(500)
);
-- 评论表
CREATE TABLE IF NOT EXISTS comment(
id INT AUTO_INCREMENT PRIMARY KEY,
user_id INT,
response_id INT,
root_id INT,
content VARCHAR(500),
FOREIGN KEY(user_id) REFERENCES user(id),
FOREIGN KEY(response_id) REFERENCES comment(id) ON DELETE CASCADE,
FOREIGN KEY(root_id) REFERENCES comment(id) ON DELETE CASCADE
);
-- 赛季车手信息视图
CREATE OR REPLACE VIEW season_driver(
id, name, team, country, birthday, car_num, season
) AS
SELECT D.id,
D.name,
T.name,
D.country,
D.birthday,
C.car_num,
C.season
FROM contract C
JOIN team T ON T.id = C.team_id
JOIN driver D ON C.driver_id = D.id;
-- 赛季车队积分榜视图
CREATE OR REPLACE VIEW season_team_standings AS
SELECT
p.season,
rr.team_id,
SUM(rr.score) AS total_score,
RANK() OVER (PARTITION BY p.season ORDER BY SUM(rr.score) DESC) AS ranking
FROM race_result rr
JOIN prix p ON rr.prix_id = p.id
GROUP BY p.season, rr.team_id;
CREATE OR REPLACE VIEW prix_result AS
SELECT
p.season,
p.id AS prix_id,
rr.driver_id,
rr.team_id,
p.name AS prix_name,
p.round,
sd.name AS driver_name,
sd.car_num,
sd.team AS team_name,
rr.end_position AS pos,
rr.finish_time,
rr.score,
rr.is_sprint
FROM
race_result rr
JOIN
prix p ON rr.prix_id = p.id
JOIN
season_driver sd ON rr.driver_id = sd.id AND sd.season = p.season;

View File

@@ -0,0 +1,27 @@
/Users/colden/编程/web/formula1/backend/src/main/java/f1/entity/Driver.java
/Users/colden/编程/web/formula1/backend/src/main/java/f1/entity/QualifyingResultItem.java
/Users/colden/编程/web/formula1/backend/src/main/java/f1/controller/UserController.java
/Users/colden/编程/web/formula1/backend/src/main/java/f1/db/Database.java
/Users/colden/编程/web/formula1/backend/src/main/java/f1/security/SecurityConfig.java
/Users/colden/编程/web/formula1/backend/src/main/java/f1/security/JwtFilter.java
/Users/colden/编程/web/formula1/backend/src/main/java/f1/Main.java
/Users/colden/编程/web/formula1/backend/src/main/java/f1/db/TeamDao.java
/Users/colden/编程/web/formula1/backend/src/main/java/f1/entity/User.java
/Users/colden/编程/web/formula1/backend/src/main/java/f1/AppConfig.java
/Users/colden/编程/web/formula1/backend/src/main/java/f1/entity/SeasonDriver.java
/Users/colden/编程/web/formula1/backend/src/main/java/f1/security/JwtUtil.java
/Users/colden/编程/web/formula1/backend/src/main/java/f1/entity/CommentItem.java
/Users/colden/编程/web/formula1/backend/src/main/java/f1/entity/RaceResultItem.java
/Users/colden/编程/web/formula1/backend/src/main/java/f1/controller/AuthController.java
/Users/colden/编程/web/formula1/backend/src/main/java/f1/entity/DriverStatistic.java
/Users/colden/编程/web/formula1/backend/src/main/java/f1/db/UserDao.java
/Users/colden/编程/web/formula1/backend/src/main/java/f1/entity/TeamHistoryItem.java
/Users/colden/编程/web/formula1/backend/src/main/java/f1/entity/Team.java
/Users/colden/编程/web/formula1/backend/src/main/java/f1/db/DriverDao.java
/Users/colden/编程/web/formula1/backend/src/main/java/f1/entity/TeamStatistic.java
/Users/colden/编程/web/formula1/backend/src/main/java/f1/entity/SeasonScheduleItem.java
/Users/colden/编程/web/formula1/backend/src/main/java/f1/entity/DriverHistoryItem.java
/Users/colden/编程/web/formula1/backend/src/main/java/f1/controller/CommentController.java
/Users/colden/编程/web/formula1/backend/src/main/java/f1/db/RaceDao.java
/Users/colden/编程/web/formula1/backend/src/main/java/f1/controller/F1Controller.java
/Users/colden/编程/web/formula1/backend/src/main/java/f1/db/BaseDao.java