fix(backend): Restore service flow and admin management integration

This commit is contained in:
2026-04-18 18:20:58 +08:00
parent 92a139e470
commit 3adb088eca
83 changed files with 1696 additions and 703 deletions
+4
View File
@@ -0,0 +1,4 @@
#!/bin/sh
set -e
mysql --default-character-set=utf8mb4 -uroot -p"${MYSQL_ROOT_PASSWORD}" nacos_config < /init-sql/nacos-config-init.sql
@@ -0,0 +1,24 @@
USE `video_content`;
-- 修复历史初始化过程中被错误写入的分类中文名称
UPDATE `content_category`
SET `name` = CASE `code`
WHEN 'life' THEN CONVERT(0xE7949FE6B4BB USING utf8mb4)
WHEN 'tech' THEN CONVERT(0xE7A791E68A80 USING utf8mb4)
WHEN 'game' THEN CONVERT(0xE6B8B8E6888F USING utf8mb4)
WHEN 'food' THEN CONVERT(0xE7BE8EE9A39F USING utf8mb4)
WHEN 'music' THEN CONVERT(0xE99FB3E4B990 USING utf8mb4)
WHEN 'movie' THEN CONVERT(0xE5BDB1E8A786 USING utf8mb4)
WHEN 'knowledge' THEN CONVERT(0xE79FA5E8AF86 USING utf8mb4)
WHEN 'digital' THEN CONVERT(0xE695B0E7A081 USING utf8mb4)
WHEN 'software' THEN CONVERT(0xE8BDAFE4BBB6 USING utf8mb4)
WHEN 'hardware' THEN CONVERT(0xE7A1ACE4BBB6 USING utf8mb4)
WHEN 'mobile_game' THEN CONVERT(0xE6898BE69CBAE6B8B8E6888F USING utf8mb4)
WHEN 'pc_game' THEN CONVERT(0xE794B5E88491E6B8B8E6888F USING utf8mb4)
WHEN 'console_game' THEN CONVERT(0xE4B8BBE69CBAE6B8B8E6888F USING utf8mb4)
ELSE `name`
END
WHERE `code` IN (
'life', 'tech', 'game', 'food', 'music', 'movie', 'knowledge',
'digital', 'software', 'hardware', 'mobile_game', 'pc_game', 'console_game'
);
+17 -15
View File
@@ -1,3 +1,5 @@
SET NAMES utf8mb4;
-- 1. 创建数据库
CREATE DATABASE IF NOT EXISTS `video_auth` CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE DATABASE IF NOT EXISTS `video_user` CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
@@ -359,7 +361,7 @@ CREATE TABLE IF NOT EXISTS `content_video_review` (
KEY `idx_video` (`video_id`),
KEY `idx_reviewer` (`reviewer_id`),
CONSTRAINT `fk_cvr_video` FOREIGN KEY (`video_id`) REFERENCES `content_video` (`id`) ON DELETE CASCADE,
CONSTRAINT `fk_cvr_reviewer` FOREIGN KEY (`reviewer_id`) REFERENCES `video_auth`.`auth_user` (`id`)
CONSTRAINT `fk_cvr_reviewer` FOREIGN KEY (`reviewer_id`) REFERENCES `video_admin`.`admin_user` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='视频审核记录表';
-- 视频点赞表
@@ -458,19 +460,19 @@ CREATE TABLE IF NOT EXISTS `content_video_play_record` (
-- 初始化分类数据
INSERT IGNORE INTO `content_category` (`id`, `name`, `code`, `parent_id`, `level`, `sort`) VALUES
(1, '生活', 'life', 0, 1, 1),
(2, '科技', 'tech', 0, 1, 2),
(3, '游戏', 'game', 0, 1, 3),
(4, '美食', 'food', 0, 1, 4),
(5, '音乐', 'music', 0, 1, 5),
(6, '影视', 'movie', 0, 1, 6),
(7, '知识', 'knowledge', 0, 1, 7),
(8, '数码', 'digital', 2, 2, 1),
(9, '软件', 'software', 2, 2, 2),
(10, '硬件', 'hardware', 2, 2, 3),
(11, '手机游戏', 'mobile_game', 3, 2, 1),
(12, '电脑游戏', 'pc_game', 3, 2, 2),
(13, '主机游戏', 'console_game', 3, 2, 3);
(1, CONVERT(0xE7949FE6B4BB USING utf8mb4), 'life', 0, 1, 1),
(2, CONVERT(0xE7A791E68A80 USING utf8mb4), 'tech', 0, 1, 2),
(3, CONVERT(0xE6B8B8E6888F USING utf8mb4), 'game', 0, 1, 3),
(4, CONVERT(0xE7BE8EE9A39F USING utf8mb4), 'food', 0, 1, 4),
(5, CONVERT(0xE99FB3E4B990 USING utf8mb4), 'music', 0, 1, 5),
(6, CONVERT(0xE5BDB1E8A786 USING utf8mb4), 'movie', 0, 1, 6),
(7, CONVERT(0xE79FA5E8AF86 USING utf8mb4), 'knowledge', 0, 1, 7),
(8, CONVERT(0xE695B0E7A081 USING utf8mb4), 'digital', 2, 2, 1),
(9, CONVERT(0xE8BDAFE4BBB6 USING utf8mb4), 'software', 2, 2, 2),
(10, CONVERT(0xE7A1ACE4BBB6 USING utf8mb4), 'hardware', 2, 2, 3),
(11, CONVERT(0xE6898BE69CBAE6B8B8E6888F USING utf8mb4), 'mobile_game', 3, 2, 1),
(12, CONVERT(0xE794B5E88491E6B8B8E6888F USING utf8mb4), 'pc_game', 3, 2, 2),
(13, CONVERT(0xE4B8BBE69CBAE6B8B8E6888F USING utf8mb4), 'console_game', 3, 2, 3);
-- 5. 评论数据库(video_comment)
USE `video_comment`;
@@ -775,4 +777,4 @@ INSERT IGNORE INTO `admin_system_config` (`config_key`, `config_value`, `descrip
('video_upload_limit', '1024', '视频上传大小限制(MB)'),
('video_review_enabled', '1', '视频审核开关(0:关闭,1:开启)'),
('comment_review_enabled', '0', '评论审核开关(0:关闭,1:开启)'),
('user_register_enabled', '1', '用户注册开关(0:关闭,1:开启)');
('user_register_enabled', '1', '用户注册开关(0:关闭,1:开启)');
+59 -28
View File
@@ -3,6 +3,8 @@
-- 注意:tenant_id 为空字符串 '' 表示 public 命名空间
-- Nacos 2.x 版本需要 encrypted_data_key 字段
USE nacos_config;
-- ============================================
-- 1. 公共基础配置 (common.yaml)
-- ============================================
@@ -63,7 +65,11 @@ feign:
logging:
level:
com.nuaa.video: info
org.springframework.security: info', '', '', 'nacos', '');
org.springframework.security: info
service:
auth:
token: ${SERVICE_AUTH_TOKEN}', '', '', 'nacos', '');
-- ============================================
-- 2. 开发环境 Redis 配置 (common-redis-dev.yaml)
@@ -76,7 +82,7 @@ spring:
redis:
host: ${REDIS_HOST:5.180.253.115}
port: ${REDIS_PORT:6379}
password: ${REDIS_PASSWORD:redis_EsJ8FX}', '', '', 'nacos', '');
password: ${REDIS_PASSWORD}', '', '', 'nacos', '');
-- ============================================
-- 3. 高可用环境 Redis 配置 (common-redis-ha.yaml)
@@ -87,11 +93,11 @@ INSERT INTO config_info (data_id, group_id, content, tenant_id, app_name, src_us
spring:
data:
redis:
password: ${REDIS_PASSWORD:redis_HA_Cluster_2024}
password: ${REDIS_PASSWORD}
sentinel:
master: mymaster
nodes: ${REDIS_SENTINEL_NODES:192.168.1.101:26379,192.168.1.102:26379,192.168.1.103:26379}
password: ${REDIS_PASSWORD:redis_HA_Cluster_2024}', '', '', 'nacos', '');
nodes: ${REDIS_SENTINEL_NODES}
password: ${REDIS_PASSWORD}', '', '', 'nacos', '');
-- ============================================
-- 4. Gateway 服务配置 (video-gateway.yaml)
@@ -147,13 +153,28 @@ gateway:
- /**/auth/login
- /**/auth/register
- /**/auth/captcha
- /auth/username/**
- /content/video/public/**
- /content/category/tree
- /content/category/list
- /content/tag/list
- /content/tag/page
- /content/danmaku/all/**
- /content/danmaku/time
- /content/stat/**
- /user/profile/public/**
- /user/profile/search
- /user/follow/following/**
- /user/follow/followers/**
- /comment/reply/public/**
- /comment/public/**
- /admin/auth/captcha
- /admin/auth/login', '', '', 'nacos', '');
- /admin/auth/login
jwt:
secret: ${USER_JWT_SECRET}
token-header: Authorization
token-prefix: "Bearer "', '', '', 'nacos', '');
-- ============================================
-- 5. Auth 服务配置 (video-auth.yaml)
@@ -164,7 +185,7 @@ spring:
datasource:
url: jdbc:mysql://${MYSQL_HOST:mysql}:${MYSQL_PORT:3306}/video_auth?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&allowMultiQueries=true
username: root
password: ${MYSQL_ROOT_PASSWORD:root123456}
password: ${MYSQL_ROOT_PASSWORD}
data:
redis:
database: 0
@@ -180,8 +201,8 @@ mybatis-plus:
type-aliases-package: com.nuaa.video.auth.entity
jwt:
secret: video-platform-secret-key-2024-nuaa
expiration: 86400
secret: ${USER_JWT_SECRET}
expiration: ${JWT_EXPIRATION}
token-header: Authorization
token-prefix: "Bearer "', '', '', 'nacos', '');
@@ -194,7 +215,7 @@ spring:
datasource:
url: jdbc:mysql://${MYSQL_HOST:mysql}:${MYSQL_PORT:3306}/video_user?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&allowMultiQueries=true
username: root
password: ${MYSQL_ROOT_PASSWORD:root123456}
password: ${MYSQL_ROOT_PASSWORD}
data:
redis:
database: 1
@@ -215,10 +236,16 @@ auth:
- /user/profile/init
- /actuator/**
jwt:
secret: ${USER_JWT_SECRET}
expiration: ${JWT_EXPIRATION}
token-header: Authorization
token-prefix: "Bearer "
minio:
endpoint: http://${MINIO_HOST:minio}:${MINIO_PORT:9000}
accessKey: minioadmin
secretKey: minioadmin123
accessKey: ${MINIO_ACCESS_KEY}
secretKey: ${MINIO_SECRET_KEY}
bucketName: video-platform', '', '', 'nacos', '');
-- ============================================
@@ -230,7 +257,7 @@ spring:
datasource:
url: jdbc:mysql://${MYSQL_HOST:mysql}:${MYSQL_PORT:3306}/video_content?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&allowMultiQueries=true
username: root
password: ${MYSQL_ROOT_PASSWORD:root123456}
password: ${MYSQL_ROOT_PASSWORD}
data:
redis:
database: 2
@@ -259,9 +286,9 @@ mybatis-plus:
minio:
endpoint: http://${MINIO_HOST:minio}:${MINIO_PORT:9000}
accessKey: ${MINIO_ACCESS_KEY:minioadmin}
secretKey: ${MINIO_SECRET_KEY:minioadmin123}
bucketName: ${MINIO_BUCKET:video-platform}
accessKey: ${MINIO_ACCESS_KEY}
secretKey: ${MINIO_SECRET_KEY}
bucketName: ${MINIO_BUCKET}
ffmpeg:
binary:
@@ -279,8 +306,8 @@ auth:
- /actuator/**
jwt:
secret: video-platform-secret-key-2024-nuaa
expiration: 86400
secret: ${USER_JWT_SECRET}
expiration: ${JWT_EXPIRATION}
token-header: Authorization
token-prefix: "Bearer "', '', '', 'nacos', '');
@@ -293,7 +320,7 @@ spring:
datasource:
url: jdbc:mysql://${MYSQL_HOST:mysql}:${MYSQL_PORT:3306}/video_comment?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&allowMultiQueries=true
username: root
password: ${MYSQL_ROOT_PASSWORD:root123456}
password: ${MYSQL_ROOT_PASSWORD}
data:
redis:
database: 3
@@ -320,8 +347,8 @@ comment:
enabled: false
jwt:
secret: video-platform-secret-key-2024-nuaa
expiration: 86400
secret: ${USER_JWT_SECRET}
expiration: ${JWT_EXPIRATION}
token-header: Authorization
token-prefix: "Bearer "
@@ -339,7 +366,7 @@ spring:
datasource:
url: jdbc:mysql://${MYSQL_HOST:mysql}:${MYSQL_PORT:3306}/video_recommend?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&allowMultiQueries=true
username: root
password: ${MYSQL_ROOT_PASSWORD:root123456}
password: ${MYSQL_ROOT_PASSWORD}
data:
redis:
database: 4
@@ -381,8 +408,8 @@ recommend:
complete-watch: 4
jwt:
secret: video-platform-secret-key-2024-nuaa
expiration: 86400
secret: ${USER_JWT_SECRET}
expiration: ${JWT_EXPIRATION}
token-header: Authorization
token-prefix: "Bearer "
@@ -401,7 +428,7 @@ spring:
datasource:
url: jdbc:mysql://${MYSQL_HOST:mysql}:${MYSQL_PORT:3306}/video_admin?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&allowMultiQueries=true
username: root
password: ${MYSQL_ROOT_PASSWORD:root123456}
password: ${MYSQL_ROOT_PASSWORD}
data:
redis:
database: 5
@@ -422,8 +449,8 @@ mybatis-plus:
logic-not-delete-value: 1
jwt:
secret: video-platform-admin-secret-key-2024-nuaa
expiration: 86400
secret: ${ADMIN_JWT_SECRET}
expiration: ${JWT_EXPIRATION}
token-header: Authorization
token-prefix: "Bearer "
@@ -437,4 +464,8 @@ operation-log:
- /admin/auth/login
- /admin/auth/logout
- /admin/auth/captcha
- /actuator/**', '', '', 'nacos', '');
- /actuator/**
app:
init:
admin-password: ${ADMIN_INIT_PASSWORD}', '', '', 'nacos', '');