Compare commits

..

6 Commits

Author SHA1 Message Date
67f01900d9 chore: 更新数据库连接地址为远程服务器
将本地数据库连接地址从 localhost 更改为远程服务器地址 67.209.178.202,以支持远程数据库连接。
2026-05-23 16:01:23 +08:00
3f5ea4bffd chore: add gitignore files and database fix admin user script
add root, server, client gitignore files for different environment ignore rules, and add sql script to fix or initialize admin user with bcrypt encrypted password
2026-05-23 15:12:56 +08:00
1c6599e50f chore: 清理项目编译产出的target目录文件
删除了server模块target下所有编译生成的class文件、Mapper xml配置文件、静态资源以及maven状态文件,这些都是编译临时产出文件,无需纳入版本控制
2026-05-23 15:12:19 +08:00
41c6d11197 fix(ContactPage): 修复联系信息显示时未去除空格的问题 2026-05-10 09:01:14 +08:00
5d2a1b2688 Merge branch 'main' of http://49.232.154.205:10100/DeXun/wuhan-saga into main 2026-05-08 15:53:20 +08:00
fc2510b567 fix(storage): 更新MinIO配置示例和应用配置
- 修改minio-spring-config.example.yml中的访问密钥和秘密密钥为默认值。
- 更新application.yml以使用环境变量覆盖MinIO密钥,并调整endpoint地址。
- 将上传存储类型更改为minio,并更新相关注释以提供更清晰的说明。
2026-05-08 15:49:46 +08:00
131 changed files with 181 additions and 2484 deletions

25
.gitignore vendored Normal file
View File

@@ -0,0 +1,25 @@
# IDE
.idea/
.vscode/
*.swp
*.swo
*~
# OS
.DS_Store
Thumbs.db
# Logs
logs/
*.log
npm-debug.log*
# Temp
tmp/
temp/
*.tmp
# Environment
.env
.env.local
.env.*.local

44
client/.gitignore vendored Normal file
View File

@@ -0,0 +1,44 @@
# Dependencies
node_modules/
.pnp
.pnp.js
# Build
dist/
dist-ssr/
*.local
# IDE
.idea/
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?
# Logs
logs/
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
lerna-debug.log*
# OS
.DS_Store
Thumbs.db
# Test
coverage/
*.lcov
# Environment
.env
.env.local
.env.*.local
# Cache
.cache/
.temp/
*.tmp

View File

@@ -14,11 +14,11 @@
<div class="info-card" v-if="contact">
<div class="info-item">
<h3>{{ t('contact.phone') }}</h3>
<p>{{ contact.phoneZh || contact.phoneEn || '-' }}</p>
<p>{{ contact.phone?.trim() || '-' }}</p>
</div>
<div class="info-item">
<h3>{{ t('contact.email') }}</h3>
<p>{{ contact.emailZh || contact.emailEn || '-' }}</p>
<p>{{ contact.email?.trim() || '-' }}</p>
</div>
<div class="info-item">
<h3>{{ t('contact.address') }}</h3>

View File

@@ -0,0 +1,11 @@
-- 检查是否存在 admin 用户
SELECT * FROM sys_user WHERE username = 'admin';
-- 如果不存在或密码错误,执行以下插入/更新
-- 密码是 admin123使用 BCrypt 加密
INSERT INTO sys_user (username, password, nickname, status, create_time, update_time)
VALUES ('admin', '$2a$10$N.zmdr9k7uOCQb376NoUnuTJ8iAt6Z5EHsM8lE9lBOsl7iAt6Z5EO', '管理员', 1, NOW(), NOW())
ON DUPLICATE KEY UPDATE
password = '$2a$10$N.zmdr9k7uOCQb376NoUnuTJ8iAt6Z5EHsM8lE9lBOsl7iAt6Z5EO',
status = 1,
update_time = NOW();

View File

@@ -0,0 +1,56 @@
# Sync repo-root uploads/ -> MinIO bucket prefix uploads/ (matches DB paths /uploads/...)
# Requires MinIO Client: https://min.io/docs/minio/linux/reference/minio-mc.html
# Run from repo root:
# .\scripts\sync-uploads-to-minio.ps1 -McPath "D:\tools\mc.exe"
# Optional params: -Endpoint -User -Password -Bucket -Alias
param(
[string] $Endpoint = "http://117.72.159.31:9000",
[string] $User = "minioadmin",
[string] $Password = "minioadmin",
[string] $Bucket = "wuhan-saga",
[string] $Alias = "wuhan-saga-remote",
[string] $McPath = ""
)
$ErrorActionPreference = "Stop"
[Console]::OutputEncoding = [System.Text.UTF8Encoding]::new($false)
$root = Split-Path -Parent $PSScriptRoot
if (-not (Test-Path -LiteralPath $root)) { $root = (Get-Location).Path }
$uploads = Join-Path $root "uploads"
if (-not (Test-Path -LiteralPath $uploads)) {
Write-Host "Skip: no folder $uploads"
exit 0
}
$mcExe = $McPath
if (-not [string]::IsNullOrWhiteSpace($mcExe)) {
if (-not (Test-Path -LiteralPath $mcExe)) {
throw "McPath not found: $mcExe"
}
}
else {
$tryLocal = Join-Path $root ".tools\mc.exe"
if (Test-Path -LiteralPath $tryLocal) { $mcExe = $tryLocal }
}
if ([string]::IsNullOrWhiteSpace($mcExe)) {
$mcCmd = Get-Command mc -ErrorAction SilentlyContinue
if ($mcCmd) { $mcExe = $mcCmd.Source }
}
if ([string]::IsNullOrWhiteSpace($mcExe)) {
throw "mc not found. Add to PATH, or place .tools/mc.exe, or pass -McPath. Download: https://dl.min.io/client/mc/release/windows-amd64/mc.exe"
}
Write-Host "Using mc: $mcExe"
& $mcExe alias set $Alias $Endpoint $User $Password
if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE }
& $mcExe mb "$Alias/$Bucket" --ignore-existing 2>$null
Write-Host "Mirror: $uploads -> $Alias/$Bucket/uploads/"
& $mcExe mirror --overwrite $uploads "$Alias/$Bucket/uploads"
if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE }
Write-Host "Done. Check bucket $Bucket for uploads/banner etc."

34
server/.gitignore vendored Normal file
View File

@@ -0,0 +1,34 @@
# Compiled
/target/
*.class
*.jar
*.war
*.ear
# Maven
.mvn/
mvnw
mvnw.cmd
# IDE
.idea/
*.iml
.classpath
.project
.settings/
# Logs
logs/
*.log
# Uploads (local storage files)
uploads/
# Temp
tmp/
temp/
# Environment
application-local.yml
application-dev.yml
application-prod.yml

View File

@@ -1,4 +1,4 @@
# Spring Boot 使用 MinIO 时,在「生产配置」里增加或改成以下内容。
# Spring Boot 使用 MinIO 时,在「生产配置」里增加或改成以下内容。
# 不要提交含真实生产密码的副本;交给运维时可另存为服务器上的 application-prod.yml。
#
# 启动示例java -jar wuhan-saga-server.jar --spring.profiles.active=prod
@@ -21,7 +21,7 @@ upload:
minio:
endpoint: http://127.0.0.1:9000
access-key: klp
secret-key: ruoyi123
access-key: minioadmin
secret-key: minioadmin
bucket: wuhan-saga
region: us-east-1

View File

@@ -7,7 +7,7 @@ spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/wuhan_saga?serverTimezone=Asia/Shanghai&useSSL=false&allowPublicKeyRetrieval=true&useUnicode=true&characterEncoding=UTF-8
url: jdbc:mysql://67.209.178.202:3306/wuhan_saga?serverTimezone=Asia/Shanghai&useSSL=false&allowPublicKeyRetrieval=true&useUnicode=true&characterEncoding=UTF-8
username: root
password: 135827
druid:
@@ -56,18 +56,18 @@ knife4j:
setting:
language: zh_cn
# 存储local=本机 uploads | minio=对象存储,见 server/deploy/minio-spring-config.example.yml
# 存储local=本机 uploads | minio=对象存储9000 为 API不是控制台 9001
# 密钥可用环境变量覆盖MINIO_ACCESS_KEY、MINIO_SECRET_KEY勿将生产密码提交到公开仓库
upload:
storage: minio
path: uploads/
allowed-types: image/jpeg,image/png,image/gif,image/webp,image/svg+xml,video/mp4,video/webm
max-size: 52428800
# 仅 upload.storage=minio 时生效;密钥用环境变量注入,勿提交生产明文
minio:
endpoint: http://minio:9000
access-key: minioadmin
secret-key: minioadmin
endpoint: http://117.72.159.31:9000
access-key: ${MINIO_ACCESS_KEY:minioadmin}
secret-key: ${MINIO_SECRET_KEY:minioadmin}
bucket: wuhan-saga
region: us-east-1

View File

@@ -1,78 +0,0 @@
server:
port: 8080
servlet:
context-path: /api
spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/wuhan_saga?serverTimezone=Asia/Shanghai&useSSL=false&allowPublicKeyRetrieval=true&useUnicode=true&characterEncoding=UTF-8
username: root
password: 135827
druid:
initial-size: 5
min-idle: 5
max-active: 20
max-wait: 60000
time-between-eviction-runs-millis: 60000
min-evictable-idle-time-millis: 300000
validation-query: SELECT 1
test-while-idle: true
test-on-borrow: false
test-on-return: false
sql:
init:
mode: never
data:
redis:
host: localhost
port: 6379
database: 0
timeout: 5000ms
servlet:
multipart:
max-file-size: 50MB
max-request-size: 100MB
mybatis:
mapper-locations: classpath:mapper/**/*.xml
type-aliases-package: com.wuhansaga.server.entity
configuration:
map-underscore-to-camel-case: true
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
sa-token:
token-name: Authorization
timeout: 86400
active-timeout: -1
is-concurrent: true
is-share: true
token-style: uuid
is-log: false
knife4j:
enable: true
setting:
language: zh_cn
# 存储local=本机 uploads | minio=对象存储,见 server/deploy/minio-spring-config.example.yml
upload:
storage: local
path: uploads/
allowed-types: image/jpeg,image/png,image/gif,image/webp,image/svg+xml,video/mp4,video/webm
max-size: 52428800
# 仅 upload.storage=minio 时生效;密钥用环境变量注入,勿提交生产明文
minio:
endpoint: http://127.0.0.1:9000
access-key: minioadmin
secret-key: minioadmin
bucket: wuhan-saga
region: us-east-1
# 新闻中心多站点:单部署实例默认站点;扩展编码时改 allowed-site-codes 与库内数据
app:
portal:
site-code: wuhansaga
allowed-site-codes: wuhansaga,saga-secondary

Some files were not shown because too many files have changed in this diff Show More