feat: 部署配置完成,添加 MySQL 和 Docker 支持

This commit is contained in:
likingcode
2026-03-02 00:15:32 +00:00
parent 3aa68a4de7
commit 95d1b5e070
12 changed files with 370 additions and 58 deletions

5
backend/Dockerfile Normal file
View File

@@ -0,0 +1,5 @@
FROM eclipse-temurin:21-jdk-alpine
WORKDIR /app
COPY target/*.jar app.jar
EXPOSE 8080
ENTRYPOINT ["java", "-jar", "app.jar"]

View File

@@ -3,45 +3,26 @@ server:
spring:
datasource:
url: jdbc:mysql://mysql:3306/innovation_platform?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
username: innovation
password: innovation123
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/innovation_platform?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
username: root
password: root123456
jackson:
date-format: yyyy-MM-dd HH:mm:ss
time-zone: GMT+8
sql:
init:
mode: always
schema-locations: classpath:schema.sql
data-locations: classpath:data.sql
mybatis-plus:
mapper-locations: classpath*:/mapper/**/*.xml
type-aliases-package: com.innovation.platform.entity
global-config:
db-config:
id-type: auto
logic-delete-field: deleted
logic-delete-value: 1
logic-not-delete-value: 0
configuration:
map-underscore-to-camel-case: true
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
sa-token:
token-name: Authorization
token-name: satoken
timeout: 86400
active-timeout: -1
is-concurrent: true
is-share: true
token-style: uuid
is-log: true
knife4j:
enable: true
openapi:
title: 高校创新创业项目孵化平台API
description: 高校创新创业项目孵化平台接口文档
version: v1.0.0
group:
default:
group-name: default
api-rule: package
api-rule-resources:
- com.innovation.platform.controller
is-log: false

View File

@@ -0,0 +1,133 @@
-- 创建用户表
CREATE TABLE IF NOT EXISTS sys_user (
id BIGINT NOT NULL AUTO_INCREMENT,
username VARCHAR(50) NOT NULL,
password VARCHAR(100) NOT NULL,
real_name VARCHAR(50) NOT NULL,
gender TINYINT DEFAULT 0,
phone VARCHAR(20) DEFAULT NULL,
email VARCHAR(100) DEFAULT NULL,
avatar VARCHAR(255) DEFAULT NULL,
status TINYINT DEFAULT 1,
role_type TINYINT NOT NULL,
create_time DATETIME DEFAULT CURRENT_TIMESTAMP,
update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
create_by BIGINT DEFAULT NULL,
update_by BIGINT DEFAULT NULL,
deleted TINYINT DEFAULT 0,
PRIMARY KEY (id),
UNIQUE KEY uk_username (username)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 创建学生信息表
CREATE TABLE IF NOT EXISTS stu_info (
id BIGINT NOT NULL AUTO_INCREMENT,
user_id BIGINT NOT NULL,
student_no VARCHAR(20) NOT NULL,
college VARCHAR(100) NOT NULL,
major VARCHAR(100) NOT NULL,
grade VARCHAR(10) NOT NULL,
class_name VARCHAR(50) DEFAULT NULL,
advisor_id BIGINT DEFAULT NULL,
create_time DATETIME DEFAULT CURRENT_TIMESTAMP,
update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
deleted TINYINT DEFAULT 0,
PRIMARY KEY (id),
UNIQUE KEY uk_student_no (student_no),
UNIQUE KEY uk_user_id (user_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 创建教师信息表
CREATE TABLE IF NOT EXISTS teacher_info (
id BIGINT NOT NULL AUTO_INCREMENT,
user_id BIGINT NOT NULL,
teacher_no VARCHAR(20) NOT NULL,
college VARCHAR(100) NOT NULL,
title VARCHAR(50) DEFAULT NULL,
research_field VARCHAR(255) DEFAULT NULL,
create_time DATETIME DEFAULT CURRENT_TIMESTAMP,
update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
deleted TINYINT DEFAULT 0,
PRIMARY KEY (id),
UNIQUE KEY uk_teacher_no (teacher_no),
UNIQUE KEY uk_user_id (user_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 创建项目表
CREATE TABLE IF NOT EXISTS project (
id BIGINT NOT NULL AUTO_INCREMENT,
project_no VARCHAR(30) NOT NULL,
project_name VARCHAR(200) NOT NULL,
project_type TINYINT NOT NULL,
project_level TINYINT NOT NULL,
leader_id BIGINT NOT NULL,
advisor_id BIGINT NOT NULL,
description TEXT,
research_plan TEXT,
expected_result TEXT,
budget DECIMAL(10,2) DEFAULT 0.00,
status TINYINT DEFAULT 1,
start_time DATE DEFAULT NULL,
end_time DATE DEFAULT NULL,
college VARCHAR(100) DEFAULT NULL,
create_time DATETIME DEFAULT CURRENT_TIMESTAMP,
update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
create_by BIGINT DEFAULT NULL,
update_by BIGINT DEFAULT NULL,
deleted TINYINT DEFAULT 0,
PRIMARY KEY (id),
UNIQUE KEY uk_project_no (project_no)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 创建项目成员表
CREATE TABLE IF NOT EXISTS project_member (
id BIGINT NOT NULL AUTO_INCREMENT,
project_id BIGINT NOT NULL,
user_id BIGINT NOT NULL,
member_order INT DEFAULT 1,
role TINYINT DEFAULT 1,
join_time DATETIME DEFAULT CURRENT_TIMESTAMP,
create_time DATETIME DEFAULT CURRENT_TIMESTAMP,
deleted TINYINT DEFAULT 0,
PRIMARY KEY (id),
UNIQUE KEY uk_project_user (project_id, user_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 创建成果表
CREATE TABLE IF NOT EXISTS achievement (
id BIGINT NOT NULL AUTO_INCREMENT,
project_id BIGINT NOT NULL,
achievement_type TINYINT NOT NULL,
achievement_name VARCHAR(200) NOT NULL,
achievement_level TINYINT DEFAULT NULL,
author_names VARCHAR(500) DEFAULT NULL,
publish_time DATE DEFAULT NULL,
publish_org VARCHAR(200) DEFAULT NULL,
description TEXT,
status TINYINT DEFAULT 1,
auditor_id BIGINT DEFAULT NULL,
audit_time DATETIME DEFAULT NULL,
audit_opinion VARCHAR(500) DEFAULT NULL,
create_time DATETIME DEFAULT CURRENT_TIMESTAMP,
update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
create_by BIGINT DEFAULT NULL,
deleted TINYINT DEFAULT 0,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 创建评审表
CREATE TABLE IF NOT EXISTS review (
id BIGINT NOT NULL AUTO_INCREMENT,
project_id BIGINT NOT NULL,
reviewer_id BIGINT NOT NULL,
review_type TINYINT NOT NULL,
score DECIMAL(5,1) DEFAULT NULL,
opinion TEXT,
result TINYINT DEFAULT NULL,
status TINYINT DEFAULT 1,
review_time DATETIME DEFAULT NULL,
create_time DATETIME DEFAULT CURRENT_TIMESTAMP,
update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
deleted TINYINT DEFAULT 0,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

View File

@@ -3,45 +3,26 @@ server:
spring:
datasource:
url: jdbc:mysql://mysql:3306/innovation_platform?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
username: innovation
password: innovation123
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/innovation_platform?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
username: root
password: root123456
jackson:
date-format: yyyy-MM-dd HH:mm:ss
time-zone: GMT+8
sql:
init:
mode: always
schema-locations: classpath:schema.sql
data-locations: classpath:data.sql
mybatis-plus:
mapper-locations: classpath*:/mapper/**/*.xml
type-aliases-package: com.innovation.platform.entity
global-config:
db-config:
id-type: auto
logic-delete-field: deleted
logic-delete-value: 1
logic-not-delete-value: 0
configuration:
map-underscore-to-camel-case: true
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
sa-token:
token-name: Authorization
token-name: satoken
timeout: 86400
active-timeout: -1
is-concurrent: true
is-share: true
token-style: uuid
is-log: true
knife4j:
enable: true
openapi:
title: 高校创新创业项目孵化平台API
description: 高校创新创业项目孵化平台接口文档
version: v1.0.0
group:
default:
group-name: default
api-rule: package
api-rule-resources:
- com.innovation.platform.controller
is-log: false

View File

@@ -0,0 +1,39 @@
-- 预埋测试数据
-- 1. 管理员账号 (密码: admin123)
INSERT INTO sys_user (username, password, real_name, gender, role_type, status) VALUES
('admin', '$2a$10$N.zmdr9k7uOCQb376NoUnuTJ8iAt6Z5EHsM8lE9lBOsl7iAt9hQIu', '系统管理员', 1, 3, 1);
-- 2. 教师账号 (密码: teacher123)
INSERT INTO sys_user (username, password, real_name, gender, role_type, status) VALUES
('teacher001', '$2a$10$N.zmdr9k7uOCQb376NoUnuTJ8iAt6Z5EHsM8lE9lBOsl7iAt9hQIu', '张教授', 1, 2, 1),
('teacher002', '$2a$10$N.zmdr9k7uOCQb376NoUnuTJ8iAt6Z5EHsM8lE9lBOsl7iAt9hQIu', '李老师', 2, 2, 1);
-- 3. 学生账号 (密码: student123)
INSERT INTO sys_user (username, password, real_name, gender, role_type, status) VALUES
('student001', '$2a$10$N.zmdr9k7uOCQb376NoUnuTJ8iAt6Z5EHsM8lE9lBOsl7iAt9hQIu', '王小明', 1, 1, 1),
('student002', '$2a$10$N.zmdr9k7uOCQb376NoUnuTJ8iAt6Z5EHsM8lE9lBOsl7iAt9hQIu', '李小红', 2, 1, 1),
('student003', '$2a$10$N.zmdr9k7uOCQb376NoUnuTJ8iAt6Z5EHsM8lE9lBOsl7iAt9hQIu', '张小华', 1, 1, 1);
-- 4. 教师信息
INSERT INTO teacher_info (user_id, teacher_no, college, title, research_field) VALUES
(2, 'T2024001', '计算机学院', '教授', '人工智能'),
(3, 'T2024002', '计算机学院', '副教授', '大数据');
-- 5. 学生信息
INSERT INTO stu_info (user_id, student_no, college, major, grade, class_name, advisor_id) VALUES
(4, 'S2021001', '计算机学院', '计算机科学与技术', '2021', '计科2101', 2),
(5, 'S2021002', '计算机学院', '软件工程', '2021', '软工2101', 2),
(6, 'S2022001', '计算机学院', '计算机科学与技术', '2022', '计科2201', 3);
-- 6. 测试项目
INSERT INTO project (project_no, project_name, project_type, project_level, leader_id, advisor_id, description, status) VALUES
('PRJ2024001', '基于AI的智能问答系统', 1, 2, 4, 2, '本项目旨在开发一个基于大语言模型的智能问答系统', 3),
('PRJ2024002', '校园二手交易平台', 2, 1, 5, 3, '搭建一个面向高校学生的二手物品交易平台', 1);
-- 7. 项目成员
INSERT INTO project_member (project_id, user_id, member_order, role) VALUES
(1, 4, 1, 2),
(1, 5, 2, 1),
(2, 5, 1, 2),
(2, 6, 2, 1);

View File

@@ -0,0 +1,133 @@
-- 创建用户表
CREATE TABLE IF NOT EXISTS sys_user (
id BIGINT NOT NULL AUTO_INCREMENT,
username VARCHAR(50) NOT NULL,
password VARCHAR(100) NOT NULL,
real_name VARCHAR(50) NOT NULL,
gender TINYINT DEFAULT 0,
phone VARCHAR(20) DEFAULT NULL,
email VARCHAR(100) DEFAULT NULL,
avatar VARCHAR(255) DEFAULT NULL,
status TINYINT DEFAULT 1,
role_type TINYINT NOT NULL,
create_time DATETIME DEFAULT CURRENT_TIMESTAMP,
update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
create_by BIGINT DEFAULT NULL,
update_by BIGINT DEFAULT NULL,
deleted TINYINT DEFAULT 0,
PRIMARY KEY (id),
UNIQUE KEY uk_username (username)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 创建学生信息表
CREATE TABLE IF NOT EXISTS stu_info (
id BIGINT NOT NULL AUTO_INCREMENT,
user_id BIGINT NOT NULL,
student_no VARCHAR(20) NOT NULL,
college VARCHAR(100) NOT NULL,
major VARCHAR(100) NOT NULL,
grade VARCHAR(10) NOT NULL,
class_name VARCHAR(50) DEFAULT NULL,
advisor_id BIGINT DEFAULT NULL,
create_time DATETIME DEFAULT CURRENT_TIMESTAMP,
update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
deleted TINYINT DEFAULT 0,
PRIMARY KEY (id),
UNIQUE KEY uk_student_no (student_no),
UNIQUE KEY uk_user_id (user_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 创建教师信息表
CREATE TABLE IF NOT EXISTS teacher_info (
id BIGINT NOT NULL AUTO_INCREMENT,
user_id BIGINT NOT NULL,
teacher_no VARCHAR(20) NOT NULL,
college VARCHAR(100) NOT NULL,
title VARCHAR(50) DEFAULT NULL,
research_field VARCHAR(255) DEFAULT NULL,
create_time DATETIME DEFAULT CURRENT_TIMESTAMP,
update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
deleted TINYINT DEFAULT 0,
PRIMARY KEY (id),
UNIQUE KEY uk_teacher_no (teacher_no),
UNIQUE KEY uk_user_id (user_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 创建项目表
CREATE TABLE IF NOT EXISTS project (
id BIGINT NOT NULL AUTO_INCREMENT,
project_no VARCHAR(30) NOT NULL,
project_name VARCHAR(200) NOT NULL,
project_type TINYINT NOT NULL,
project_level TINYINT NOT NULL,
leader_id BIGINT NOT NULL,
advisor_id BIGINT NOT NULL,
description TEXT,
research_plan TEXT,
expected_result TEXT,
budget DECIMAL(10,2) DEFAULT 0.00,
status TINYINT DEFAULT 1,
start_time DATE DEFAULT NULL,
end_time DATE DEFAULT NULL,
college VARCHAR(100) DEFAULT NULL,
create_time DATETIME DEFAULT CURRENT_TIMESTAMP,
update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
create_by BIGINT DEFAULT NULL,
update_by BIGINT DEFAULT NULL,
deleted TINYINT DEFAULT 0,
PRIMARY KEY (id),
UNIQUE KEY uk_project_no (project_no)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 创建项目成员表
CREATE TABLE IF NOT EXISTS project_member (
id BIGINT NOT NULL AUTO_INCREMENT,
project_id BIGINT NOT NULL,
user_id BIGINT NOT NULL,
member_order INT DEFAULT 1,
role TINYINT DEFAULT 1,
join_time DATETIME DEFAULT CURRENT_TIMESTAMP,
create_time DATETIME DEFAULT CURRENT_TIMESTAMP,
deleted TINYINT DEFAULT 0,
PRIMARY KEY (id),
UNIQUE KEY uk_project_user (project_id, user_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 创建成果表
CREATE TABLE IF NOT EXISTS achievement (
id BIGINT NOT NULL AUTO_INCREMENT,
project_id BIGINT NOT NULL,
achievement_type TINYINT NOT NULL,
achievement_name VARCHAR(200) NOT NULL,
achievement_level TINYINT DEFAULT NULL,
author_names VARCHAR(500) DEFAULT NULL,
publish_time DATE DEFAULT NULL,
publish_org VARCHAR(200) DEFAULT NULL,
description TEXT,
status TINYINT DEFAULT 1,
auditor_id BIGINT DEFAULT NULL,
audit_time DATETIME DEFAULT NULL,
audit_opinion VARCHAR(500) DEFAULT NULL,
create_time DATETIME DEFAULT CURRENT_TIMESTAMP,
update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
create_by BIGINT DEFAULT NULL,
deleted TINYINT DEFAULT 0,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 创建评审表
CREATE TABLE IF NOT EXISTS review (
id BIGINT NOT NULL AUTO_INCREMENT,
project_id BIGINT NOT NULL,
reviewer_id BIGINT NOT NULL,
review_type TINYINT NOT NULL,
score DECIMAL(5,1) DEFAULT NULL,
opinion TEXT,
result TINYINT DEFAULT NULL,
status TINYINT DEFAULT 1,
review_time DATETIME DEFAULT NULL,
create_time DATETIME DEFAULT CURRENT_TIMESTAMP,
update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
deleted TINYINT DEFAULT 0,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,3 @@
artifactId=innovation-platform
groupId=com.innovation
version=1.0.0