diff --git a/docker-compose.yml b/docker-compose.yml index e31562e..bb41339 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -42,6 +42,48 @@ services: networks: - martial-network + # MinIO 对象存储 + minio: + image: minio/minio:RELEASE.2024-12-18T13-15-44Z + container_name: minio + environment: + MINIO_ROOT_USER: "JohnSion" + MINIO_ROOT_PASSWORD: "v!*BTket4oagDdw" + TZ: "Asia/Shanghai" + command: server /data --console-address ":9001" + volumes: + - ./minio_data:/data + ports: + - "9000:9000" + - "9001:9001" + healthcheck: + test: ["CMD", "curl", "-f", "http://127.0.0.1:9000/minio/health/live"] + interval: 10s + timeout: 5s + retries: 5 + restart: unless-stopped + networks: + - martial-network + + # MinIO 初始化 - 创建桶和设置策略 + minio-init: + image: minio/mc:latest + depends_on: + minio: + condition: service_healthy + entrypoint: > + sh -c " + mc alias set local http://minio:9000 $${MINIO_ROOT_USER} $${MINIO_ROOT_PASSWORD} && + mc mb -p local/assets || true && + mc anonymous set download local/assets || true + " + environment: + MINIO_ROOT_USER: "JohnSion" + MINIO_ROOT_PASSWORD: "v!*BTket4oagDdw" + restart: "no" + networks: + - martial-network + # 后端应用 martial-api: build: @@ -52,11 +94,9 @@ services: environment: SPRING_PROFILE: dev JAVA_OPTS: "-Xms512m -Xmx1024m -XX:+UseG1GC" - # 覆盖数据库连接配置 SPRING_DATASOURCE_URL: jdbc:mysql://mysql:3306/martial_db?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true SPRING_DATASOURCE_USERNAME: root SPRING_DATASOURCE_PASSWORD: 123456 - # 覆盖 Redis 连接配置 SPRING_DATA_REDIS_HOST: redis SPRING_DATA_REDIS_PORT: 6379 SPRING_DATA_REDIS_PASSWORD: 123456 diff --git a/minio_data/.minio.sys/buckets/.bloomcycle.bin/xl.meta b/minio_data/.minio.sys/buckets/.bloomcycle.bin/xl.meta new file mode 100644 index 0000000..606d16e Binary files /dev/null and b/minio_data/.minio.sys/buckets/.bloomcycle.bin/xl.meta differ diff --git a/minio_data/.minio.sys/buckets/.usage-cache.bin.bkp/xl.meta b/minio_data/.minio.sys/buckets/.usage-cache.bin.bkp/xl.meta new file mode 100644 index 0000000..18f931f Binary files /dev/null and b/minio_data/.minio.sys/buckets/.usage-cache.bin.bkp/xl.meta differ diff --git a/minio_data/.minio.sys/buckets/.usage-cache.bin/xl.meta b/minio_data/.minio.sys/buckets/.usage-cache.bin/xl.meta new file mode 100644 index 0000000..d913e4d Binary files /dev/null and b/minio_data/.minio.sys/buckets/.usage-cache.bin/xl.meta differ diff --git a/minio_data/.minio.sys/buckets/.usage.json/xl.meta b/minio_data/.minio.sys/buckets/.usage.json/xl.meta new file mode 100644 index 0000000..90a6320 Binary files /dev/null and b/minio_data/.minio.sys/buckets/.usage.json/xl.meta differ diff --git a/minio_data/.minio.sys/buckets/000000-assets/.metadata.bin/xl.meta b/minio_data/.minio.sys/buckets/000000-assets/.metadata.bin/xl.meta new file mode 100644 index 0000000..2aa570b Binary files /dev/null and b/minio_data/.minio.sys/buckets/000000-assets/.metadata.bin/xl.meta differ diff --git a/minio_data/.minio.sys/buckets/000000-assets/.usage-cache.bin.bkp/xl.meta b/minio_data/.minio.sys/buckets/000000-assets/.usage-cache.bin.bkp/xl.meta new file mode 100644 index 0000000..c85d9fa Binary files /dev/null and b/minio_data/.minio.sys/buckets/000000-assets/.usage-cache.bin.bkp/xl.meta differ diff --git a/minio_data/.minio.sys/buckets/000000-assets/.usage-cache.bin/xl.meta b/minio_data/.minio.sys/buckets/000000-assets/.usage-cache.bin/xl.meta new file mode 100644 index 0000000..6a1085d Binary files /dev/null and b/minio_data/.minio.sys/buckets/000000-assets/.usage-cache.bin/xl.meta differ diff --git a/minio_data/.minio.sys/buckets/assets/.metadata.bin/xl.meta b/minio_data/.minio.sys/buckets/assets/.metadata.bin/xl.meta new file mode 100644 index 0000000..ef8c49f Binary files /dev/null and b/minio_data/.minio.sys/buckets/assets/.metadata.bin/xl.meta differ diff --git a/minio_data/.minio.sys/buckets/assets/.usage-cache.bin.bkp/xl.meta b/minio_data/.minio.sys/buckets/assets/.usage-cache.bin.bkp/xl.meta new file mode 100644 index 0000000..74818a4 Binary files /dev/null and b/minio_data/.minio.sys/buckets/assets/.usage-cache.bin.bkp/xl.meta differ diff --git a/minio_data/.minio.sys/buckets/assets/.usage-cache.bin/xl.meta b/minio_data/.minio.sys/buckets/assets/.usage-cache.bin/xl.meta new file mode 100644 index 0000000..8c8cb6a Binary files /dev/null and b/minio_data/.minio.sys/buckets/assets/.usage-cache.bin/xl.meta differ diff --git a/minio_data/.minio.sys/config/config.json/xl.meta b/minio_data/.minio.sys/config/config.json/xl.meta new file mode 100644 index 0000000..71e30d0 Binary files /dev/null and b/minio_data/.minio.sys/config/config.json/xl.meta differ diff --git a/minio_data/.minio.sys/config/iam/format.json/xl.meta b/minio_data/.minio.sys/config/iam/format.json/xl.meta new file mode 100644 index 0000000..685a31c Binary files /dev/null and b/minio_data/.minio.sys/config/iam/format.json/xl.meta differ diff --git a/minio_data/.minio.sys/format.json b/minio_data/.minio.sys/format.json new file mode 100644 index 0000000..6ca6b3a --- /dev/null +++ b/minio_data/.minio.sys/format.json @@ -0,0 +1 @@ +{"version":"1","format":"xl-single","id":"7aa712c5-97fa-4608-aafd-5e91b82dcaaa","xl":{"version":"3","this":"a0620b80-1f59-4689-8995-4d5bcde4044d","sets":[["a0620b80-1f59-4689-8995-4d5bcde4044d"]],"distributionAlgo":"SIPMOD+PARITY"}} \ No newline at end of file diff --git a/minio_data/.minio.sys/pool.bin/xl.meta b/minio_data/.minio.sys/pool.bin/xl.meta new file mode 100644 index 0000000..e896037 Binary files /dev/null and b/minio_data/.minio.sys/pool.bin/xl.meta differ diff --git a/minio_data/.minio.sys/tmp/.trash/0141f8a9-8b32-4f90-b8a6-996a0937f2a7/xl.meta.bkp b/minio_data/.minio.sys/tmp/.trash/0141f8a9-8b32-4f90-b8a6-996a0937f2a7/xl.meta.bkp new file mode 100644 index 0000000..454bc42 Binary files /dev/null and b/minio_data/.minio.sys/tmp/.trash/0141f8a9-8b32-4f90-b8a6-996a0937f2a7/xl.meta.bkp differ diff --git a/minio_data/.minio.sys/tmp/.trash/04a043c0-ccf1-4eaf-ab6c-cb45c2cb73d1/xl.meta.bkp b/minio_data/.minio.sys/tmp/.trash/04a043c0-ccf1-4eaf-ab6c-cb45c2cb73d1/xl.meta.bkp new file mode 100644 index 0000000..cd34539 Binary files /dev/null and b/minio_data/.minio.sys/tmp/.trash/04a043c0-ccf1-4eaf-ab6c-cb45c2cb73d1/xl.meta.bkp differ diff --git a/minio_data/.minio.sys/tmp/.trash/05c934d2-facd-4eaa-80e2-89999f90eeea/xl.meta.bkp b/minio_data/.minio.sys/tmp/.trash/05c934d2-facd-4eaa-80e2-89999f90eeea/xl.meta.bkp new file mode 100644 index 0000000..27ae4c3 Binary files /dev/null and b/minio_data/.minio.sys/tmp/.trash/05c934d2-facd-4eaa-80e2-89999f90eeea/xl.meta.bkp differ diff --git a/minio_data/.minio.sys/tmp/.trash/131230cf-2658-4088-b28f-68e8e18379a5/xl.meta.bkp b/minio_data/.minio.sys/tmp/.trash/131230cf-2658-4088-b28f-68e8e18379a5/xl.meta.bkp new file mode 100644 index 0000000..0a9e104 Binary files /dev/null and b/minio_data/.minio.sys/tmp/.trash/131230cf-2658-4088-b28f-68e8e18379a5/xl.meta.bkp differ diff --git a/minio_data/.minio.sys/tmp/.trash/13fa4fcd-1406-45fd-b156-12db04c4bbc0/xl.meta.bkp b/minio_data/.minio.sys/tmp/.trash/13fa4fcd-1406-45fd-b156-12db04c4bbc0/xl.meta.bkp new file mode 100644 index 0000000..0e4d51e Binary files /dev/null and b/minio_data/.minio.sys/tmp/.trash/13fa4fcd-1406-45fd-b156-12db04c4bbc0/xl.meta.bkp differ diff --git a/minio_data/.minio.sys/tmp/.trash/1b9541b5-0134-49f5-abc9-8a4efd5a2039/xl.meta.bkp b/minio_data/.minio.sys/tmp/.trash/1b9541b5-0134-49f5-abc9-8a4efd5a2039/xl.meta.bkp new file mode 100644 index 0000000..07b5f62 Binary files /dev/null and b/minio_data/.minio.sys/tmp/.trash/1b9541b5-0134-49f5-abc9-8a4efd5a2039/xl.meta.bkp differ diff --git a/minio_data/.minio.sys/tmp/.trash/3339f637-1dfb-4414-aedc-ff3c8593301e/xl.meta.bkp b/minio_data/.minio.sys/tmp/.trash/3339f637-1dfb-4414-aedc-ff3c8593301e/xl.meta.bkp new file mode 100644 index 0000000..1cdbb68 Binary files /dev/null and b/minio_data/.minio.sys/tmp/.trash/3339f637-1dfb-4414-aedc-ff3c8593301e/xl.meta.bkp differ diff --git a/minio_data/.minio.sys/tmp/.trash/38b2c5ff-1857-45f3-a4e9-9d3daf5e0d11/xl.meta.bkp b/minio_data/.minio.sys/tmp/.trash/38b2c5ff-1857-45f3-a4e9-9d3daf5e0d11/xl.meta.bkp new file mode 100644 index 0000000..c3b4c0e Binary files /dev/null and b/minio_data/.minio.sys/tmp/.trash/38b2c5ff-1857-45f3-a4e9-9d3daf5e0d11/xl.meta.bkp differ diff --git a/minio_data/.minio.sys/tmp/.trash/406891fb-8b3f-483b-bb41-e9ffc23d3411/xl.meta.bkp b/minio_data/.minio.sys/tmp/.trash/406891fb-8b3f-483b-bb41-e9ffc23d3411/xl.meta.bkp new file mode 100644 index 0000000..b0475db Binary files /dev/null and b/minio_data/.minio.sys/tmp/.trash/406891fb-8b3f-483b-bb41-e9ffc23d3411/xl.meta.bkp differ diff --git a/minio_data/.minio.sys/tmp/.trash/42bb28b3-8cca-40d2-8570-c7d8f471020a/xl.meta.bkp b/minio_data/.minio.sys/tmp/.trash/42bb28b3-8cca-40d2-8570-c7d8f471020a/xl.meta.bkp new file mode 100644 index 0000000..4db1397 Binary files /dev/null and b/minio_data/.minio.sys/tmp/.trash/42bb28b3-8cca-40d2-8570-c7d8f471020a/xl.meta.bkp differ diff --git a/minio_data/.minio.sys/tmp/.trash/456e0b14-c3ab-4ddd-b649-7d013ded79ef/xl.meta.bkp b/minio_data/.minio.sys/tmp/.trash/456e0b14-c3ab-4ddd-b649-7d013ded79ef/xl.meta.bkp new file mode 100644 index 0000000..0368c2f Binary files /dev/null and b/minio_data/.minio.sys/tmp/.trash/456e0b14-c3ab-4ddd-b649-7d013ded79ef/xl.meta.bkp differ diff --git a/minio_data/.minio.sys/tmp/.trash/58ec1699-911b-401a-8ad7-d59a1217329b/xl.meta.bkp b/minio_data/.minio.sys/tmp/.trash/58ec1699-911b-401a-8ad7-d59a1217329b/xl.meta.bkp new file mode 100644 index 0000000..2a1f30c Binary files /dev/null and b/minio_data/.minio.sys/tmp/.trash/58ec1699-911b-401a-8ad7-d59a1217329b/xl.meta.bkp differ diff --git a/minio_data/.minio.sys/tmp/.trash/5c023916-9171-4562-9ea0-32f45e598f07/xl.meta.bkp b/minio_data/.minio.sys/tmp/.trash/5c023916-9171-4562-9ea0-32f45e598f07/xl.meta.bkp new file mode 100644 index 0000000..afb6c1b Binary files /dev/null and b/minio_data/.minio.sys/tmp/.trash/5c023916-9171-4562-9ea0-32f45e598f07/xl.meta.bkp differ diff --git a/minio_data/.minio.sys/tmp/.trash/5fe93e61-2053-4f65-b00f-c2d375d8bced/xl.meta.bkp b/minio_data/.minio.sys/tmp/.trash/5fe93e61-2053-4f65-b00f-c2d375d8bced/xl.meta.bkp new file mode 100644 index 0000000..bcfa61b Binary files /dev/null and b/minio_data/.minio.sys/tmp/.trash/5fe93e61-2053-4f65-b00f-c2d375d8bced/xl.meta.bkp differ diff --git a/minio_data/.minio.sys/tmp/.trash/6621bcaa-405d-4cd3-aab1-ab5b5329f4ad/xl.meta.bkp b/minio_data/.minio.sys/tmp/.trash/6621bcaa-405d-4cd3-aab1-ab5b5329f4ad/xl.meta.bkp new file mode 100644 index 0000000..344fc33 Binary files /dev/null and b/minio_data/.minio.sys/tmp/.trash/6621bcaa-405d-4cd3-aab1-ab5b5329f4ad/xl.meta.bkp differ diff --git a/minio_data/.minio.sys/tmp/.trash/6f97f943-a5cc-4489-94c8-b1fda6274210/xl.meta.bkp b/minio_data/.minio.sys/tmp/.trash/6f97f943-a5cc-4489-94c8-b1fda6274210/xl.meta.bkp new file mode 100644 index 0000000..4928e1a Binary files /dev/null and b/minio_data/.minio.sys/tmp/.trash/6f97f943-a5cc-4489-94c8-b1fda6274210/xl.meta.bkp differ diff --git a/minio_data/.minio.sys/tmp/.trash/75fa3510-7c44-4f6c-84c0-54f956f6f57a/xl.meta.bkp b/minio_data/.minio.sys/tmp/.trash/75fa3510-7c44-4f6c-84c0-54f956f6f57a/xl.meta.bkp new file mode 100644 index 0000000..7e830e5 Binary files /dev/null and b/minio_data/.minio.sys/tmp/.trash/75fa3510-7c44-4f6c-84c0-54f956f6f57a/xl.meta.bkp differ diff --git a/minio_data/.minio.sys/tmp/.trash/7a01aaa7-fc28-4444-a893-202b4677db4f/xl.meta.bkp b/minio_data/.minio.sys/tmp/.trash/7a01aaa7-fc28-4444-a893-202b4677db4f/xl.meta.bkp new file mode 100644 index 0000000..7405710 Binary files /dev/null and b/minio_data/.minio.sys/tmp/.trash/7a01aaa7-fc28-4444-a893-202b4677db4f/xl.meta.bkp differ diff --git a/minio_data/.minio.sys/tmp/.trash/84508747-f81e-4668-a014-db7e51cf5fc5/xl.meta.bkp b/minio_data/.minio.sys/tmp/.trash/84508747-f81e-4668-a014-db7e51cf5fc5/xl.meta.bkp new file mode 100644 index 0000000..309217a Binary files /dev/null and b/minio_data/.minio.sys/tmp/.trash/84508747-f81e-4668-a014-db7e51cf5fc5/xl.meta.bkp differ diff --git a/minio_data/.minio.sys/tmp/.trash/8c892abd-7b2f-43f1-ad50-9e75dc1139fc/xl.meta.bkp b/minio_data/.minio.sys/tmp/.trash/8c892abd-7b2f-43f1-ad50-9e75dc1139fc/xl.meta.bkp new file mode 100644 index 0000000..f6b040c Binary files /dev/null and b/minio_data/.minio.sys/tmp/.trash/8c892abd-7b2f-43f1-ad50-9e75dc1139fc/xl.meta.bkp differ diff --git a/minio_data/.minio.sys/tmp/.trash/8e142d9d-290a-4237-8c88-cc217a4cbc07/xl.meta.bkp b/minio_data/.minio.sys/tmp/.trash/8e142d9d-290a-4237-8c88-cc217a4cbc07/xl.meta.bkp new file mode 100644 index 0000000..9653589 Binary files /dev/null and b/minio_data/.minio.sys/tmp/.trash/8e142d9d-290a-4237-8c88-cc217a4cbc07/xl.meta.bkp differ diff --git a/minio_data/.minio.sys/tmp/.trash/9517be34-e22a-40a1-a48b-e8ea9adc7a44/xl.meta.bkp b/minio_data/.minio.sys/tmp/.trash/9517be34-e22a-40a1-a48b-e8ea9adc7a44/xl.meta.bkp new file mode 100644 index 0000000..3e57044 Binary files /dev/null and b/minio_data/.minio.sys/tmp/.trash/9517be34-e22a-40a1-a48b-e8ea9adc7a44/xl.meta.bkp differ diff --git a/minio_data/.minio.sys/tmp/.trash/cebc0949-3271-45fe-8035-9d85f567017a/xl.meta.bkp b/minio_data/.minio.sys/tmp/.trash/cebc0949-3271-45fe-8035-9d85f567017a/xl.meta.bkp new file mode 100644 index 0000000..b24c54f Binary files /dev/null and b/minio_data/.minio.sys/tmp/.trash/cebc0949-3271-45fe-8035-9d85f567017a/xl.meta.bkp differ diff --git a/minio_data/.minio.sys/tmp/.trash/db0da32b-7906-4316-b148-d2af1d6152af/xl.meta.bkp b/minio_data/.minio.sys/tmp/.trash/db0da32b-7906-4316-b148-d2af1d6152af/xl.meta.bkp new file mode 100644 index 0000000..820bba0 Binary files /dev/null and b/minio_data/.minio.sys/tmp/.trash/db0da32b-7906-4316-b148-d2af1d6152af/xl.meta.bkp differ diff --git a/minio_data/.minio.sys/tmp/840ecd84-f68f-43d3-93e2-726006f15654 b/minio_data/.minio.sys/tmp/840ecd84-f68f-43d3-93e2-726006f15654 new file mode 100644 index 0000000..e36ee44 Binary files /dev/null and b/minio_data/.minio.sys/tmp/840ecd84-f68f-43d3-93e2-726006f15654 differ diff --git a/minio_data/000000-assets/upload/20251226/32a99f973fa389d68f0de833a0665d56.png/2da38e50-bdf2-4362-b08a-80ae46200f3c/part.1 b/minio_data/000000-assets/upload/20251226/32a99f973fa389d68f0de833a0665d56.png/2da38e50-bdf2-4362-b08a-80ae46200f3c/part.1 new file mode 100644 index 0000000..669a13f Binary files /dev/null and b/minio_data/000000-assets/upload/20251226/32a99f973fa389d68f0de833a0665d56.png/2da38e50-bdf2-4362-b08a-80ae46200f3c/part.1 differ diff --git a/minio_data/000000-assets/upload/20251226/32a99f973fa389d68f0de833a0665d56.png/xl.meta b/minio_data/000000-assets/upload/20251226/32a99f973fa389d68f0de833a0665d56.png/xl.meta new file mode 100644 index 0000000..754aa85 Binary files /dev/null and b/minio_data/000000-assets/upload/20251226/32a99f973fa389d68f0de833a0665d56.png/xl.meta differ diff --git a/minio_data/000000-assets/upload/20251226/623d919d3a022a9e36d0a3f2a315d8f5.png/4e78b4ca-3672-4680-9ee5-9d3337b83940/part.1 b/minio_data/000000-assets/upload/20251226/623d919d3a022a9e36d0a3f2a315d8f5.png/4e78b4ca-3672-4680-9ee5-9d3337b83940/part.1 new file mode 100644 index 0000000..b5bda19 Binary files /dev/null and b/minio_data/000000-assets/upload/20251226/623d919d3a022a9e36d0a3f2a315d8f5.png/4e78b4ca-3672-4680-9ee5-9d3337b83940/part.1 differ diff --git a/minio_data/000000-assets/upload/20251226/623d919d3a022a9e36d0a3f2a315d8f5.png/xl.meta b/minio_data/000000-assets/upload/20251226/623d919d3a022a9e36d0a3f2a315d8f5.png/xl.meta new file mode 100644 index 0000000..d5947bd Binary files /dev/null and b/minio_data/000000-assets/upload/20251226/623d919d3a022a9e36d0a3f2a315d8f5.png/xl.meta differ diff --git a/minio_data/000000-assets/upload/20251226/69ef598d063e3aef23f401bf3f0b47b5.pdf/11748001-5b64-47ae-990f-e35f5303ad0c/part.1 b/minio_data/000000-assets/upload/20251226/69ef598d063e3aef23f401bf3f0b47b5.pdf/11748001-5b64-47ae-990f-e35f5303ad0c/part.1 new file mode 100644 index 0000000..1313852 Binary files /dev/null and b/minio_data/000000-assets/upload/20251226/69ef598d063e3aef23f401bf3f0b47b5.pdf/11748001-5b64-47ae-990f-e35f5303ad0c/part.1 differ diff --git a/minio_data/000000-assets/upload/20251226/69ef598d063e3aef23f401bf3f0b47b5.pdf/xl.meta b/minio_data/000000-assets/upload/20251226/69ef598d063e3aef23f401bf3f0b47b5.pdf/xl.meta new file mode 100644 index 0000000..bdfe8a4 Binary files /dev/null and b/minio_data/000000-assets/upload/20251226/69ef598d063e3aef23f401bf3f0b47b5.pdf/xl.meta differ diff --git a/minio_data/000000-assets/upload/20251226/7ae9e4b5b4c4ef82d2badec26463c28b.pdf/150618d1-9df2-40b9-847c-874d34f1226c/part.1 b/minio_data/000000-assets/upload/20251226/7ae9e4b5b4c4ef82d2badec26463c28b.pdf/150618d1-9df2-40b9-847c-874d34f1226c/part.1 new file mode 100644 index 0000000..adb9127 Binary files /dev/null and b/minio_data/000000-assets/upload/20251226/7ae9e4b5b4c4ef82d2badec26463c28b.pdf/150618d1-9df2-40b9-847c-874d34f1226c/part.1 differ diff --git a/minio_data/000000-assets/upload/20251226/7ae9e4b5b4c4ef82d2badec26463c28b.pdf/xl.meta b/minio_data/000000-assets/upload/20251226/7ae9e4b5b4c4ef82d2badec26463c28b.pdf/xl.meta new file mode 100644 index 0000000..bd60d9e Binary files /dev/null and b/minio_data/000000-assets/upload/20251226/7ae9e4b5b4c4ef82d2badec26463c28b.pdf/xl.meta differ diff --git a/minio_data/000000-assets/upload/20251226/931a57dbecd515f1663b63ca947c644b.png/fa6528d7-3620-4157-ae54-c3c6976631ac/part.1 b/minio_data/000000-assets/upload/20251226/931a57dbecd515f1663b63ca947c644b.png/fa6528d7-3620-4157-ae54-c3c6976631ac/part.1 new file mode 100644 index 0000000..f2853df Binary files /dev/null and b/minio_data/000000-assets/upload/20251226/931a57dbecd515f1663b63ca947c644b.png/fa6528d7-3620-4157-ae54-c3c6976631ac/part.1 differ diff --git a/minio_data/000000-assets/upload/20251226/931a57dbecd515f1663b63ca947c644b.png/xl.meta b/minio_data/000000-assets/upload/20251226/931a57dbecd515f1663b63ca947c644b.png/xl.meta new file mode 100644 index 0000000..d9af4cc Binary files /dev/null and b/minio_data/000000-assets/upload/20251226/931a57dbecd515f1663b63ca947c644b.png/xl.meta differ diff --git a/minio_data/000000-assets/upload/20251226/9d7c8dc2a04489f20d71c93e43e97b3e.pdf/5548fe7f-8ba7-4107-9a99-67a2be51536b/part.1 b/minio_data/000000-assets/upload/20251226/9d7c8dc2a04489f20d71c93e43e97b3e.pdf/5548fe7f-8ba7-4107-9a99-67a2be51536b/part.1 new file mode 100644 index 0000000..adb9127 Binary files /dev/null and b/minio_data/000000-assets/upload/20251226/9d7c8dc2a04489f20d71c93e43e97b3e.pdf/5548fe7f-8ba7-4107-9a99-67a2be51536b/part.1 differ diff --git a/minio_data/000000-assets/upload/20251226/9d7c8dc2a04489f20d71c93e43e97b3e.pdf/xl.meta b/minio_data/000000-assets/upload/20251226/9d7c8dc2a04489f20d71c93e43e97b3e.pdf/xl.meta new file mode 100644 index 0000000..4683e76 Binary files /dev/null and b/minio_data/000000-assets/upload/20251226/9d7c8dc2a04489f20d71c93e43e97b3e.pdf/xl.meta differ diff --git a/minio_data/000000-assets/upload/20251226/ac6fab44685418a16639a106d663c3ff.pdf/42d9548d-31f0-48a6-b49b-9e9943ae3941/part.1 b/minio_data/000000-assets/upload/20251226/ac6fab44685418a16639a106d663c3ff.pdf/42d9548d-31f0-48a6-b49b-9e9943ae3941/part.1 new file mode 100644 index 0000000..1778ebc Binary files /dev/null and b/minio_data/000000-assets/upload/20251226/ac6fab44685418a16639a106d663c3ff.pdf/42d9548d-31f0-48a6-b49b-9e9943ae3941/part.1 differ diff --git a/minio_data/000000-assets/upload/20251226/ac6fab44685418a16639a106d663c3ff.pdf/xl.meta b/minio_data/000000-assets/upload/20251226/ac6fab44685418a16639a106d663c3ff.pdf/xl.meta new file mode 100644 index 0000000..d001485 Binary files /dev/null and b/minio_data/000000-assets/upload/20251226/ac6fab44685418a16639a106d663c3ff.pdf/xl.meta differ diff --git a/minio_data/000000-assets/upload/20251226/b5c4287f512d6fe0a5001184b8b70bd0.pdf/80aa10ac-2994-4d93-93b1-5be42e714b6d/part.1 b/minio_data/000000-assets/upload/20251226/b5c4287f512d6fe0a5001184b8b70bd0.pdf/80aa10ac-2994-4d93-93b1-5be42e714b6d/part.1 new file mode 100644 index 0000000..1778ebc Binary files /dev/null and b/minio_data/000000-assets/upload/20251226/b5c4287f512d6fe0a5001184b8b70bd0.pdf/80aa10ac-2994-4d93-93b1-5be42e714b6d/part.1 differ diff --git a/minio_data/000000-assets/upload/20251226/b5c4287f512d6fe0a5001184b8b70bd0.pdf/xl.meta b/minio_data/000000-assets/upload/20251226/b5c4287f512d6fe0a5001184b8b70bd0.pdf/xl.meta new file mode 100644 index 0000000..ff3185a Binary files /dev/null and b/minio_data/000000-assets/upload/20251226/b5c4287f512d6fe0a5001184b8b70bd0.pdf/xl.meta differ diff --git a/minio_data/000000-assets/upload/20251226/bac254a1dbd7b5f680dfdf3918e5be71.png/96ea5582-e05c-4f20-8012-0cd5c2befcf6/part.1 b/minio_data/000000-assets/upload/20251226/bac254a1dbd7b5f680dfdf3918e5be71.png/96ea5582-e05c-4f20-8012-0cd5c2befcf6/part.1 new file mode 100644 index 0000000..669a13f Binary files /dev/null and b/minio_data/000000-assets/upload/20251226/bac254a1dbd7b5f680dfdf3918e5be71.png/96ea5582-e05c-4f20-8012-0cd5c2befcf6/part.1 differ diff --git a/minio_data/000000-assets/upload/20251226/bac254a1dbd7b5f680dfdf3918e5be71.png/xl.meta b/minio_data/000000-assets/upload/20251226/bac254a1dbd7b5f680dfdf3918e5be71.png/xl.meta new file mode 100644 index 0000000..efaf118 Binary files /dev/null and b/minio_data/000000-assets/upload/20251226/bac254a1dbd7b5f680dfdf3918e5be71.png/xl.meta differ diff --git a/minio_data/000000-assets/upload/20251226/dfdc03b041151340f639aa3ce8b8d129.pdf/977b7ec2-ba57-4b38-9352-333b98740c9a/part.1 b/minio_data/000000-assets/upload/20251226/dfdc03b041151340f639aa3ce8b8d129.pdf/977b7ec2-ba57-4b38-9352-333b98740c9a/part.1 new file mode 100644 index 0000000..1778ebc Binary files /dev/null and b/minio_data/000000-assets/upload/20251226/dfdc03b041151340f639aa3ce8b8d129.pdf/977b7ec2-ba57-4b38-9352-333b98740c9a/part.1 differ diff --git a/minio_data/000000-assets/upload/20251226/dfdc03b041151340f639aa3ce8b8d129.pdf/xl.meta b/minio_data/000000-assets/upload/20251226/dfdc03b041151340f639aa3ce8b8d129.pdf/xl.meta new file mode 100644 index 0000000..24430bd Binary files /dev/null and b/minio_data/000000-assets/upload/20251226/dfdc03b041151340f639aa3ce8b8d129.pdf/xl.meta differ diff --git a/minio_data/000000-assets/upload/20251226/ee20666e7e047b00b60464f9dbacb5b5.pdf/321c0369-2864-44a6-ad2e-f6813fb5d54d/part.1 b/minio_data/000000-assets/upload/20251226/ee20666e7e047b00b60464f9dbacb5b5.pdf/321c0369-2864-44a6-ad2e-f6813fb5d54d/part.1 new file mode 100644 index 0000000..1313852 Binary files /dev/null and b/minio_data/000000-assets/upload/20251226/ee20666e7e047b00b60464f9dbacb5b5.pdf/321c0369-2864-44a6-ad2e-f6813fb5d54d/part.1 differ diff --git a/minio_data/000000-assets/upload/20251226/ee20666e7e047b00b60464f9dbacb5b5.pdf/xl.meta b/minio_data/000000-assets/upload/20251226/ee20666e7e047b00b60464f9dbacb5b5.pdf/xl.meta new file mode 100644 index 0000000..2e8bc42 Binary files /dev/null and b/minio_data/000000-assets/upload/20251226/ee20666e7e047b00b60464f9dbacb5b5.pdf/xl.meta differ diff --git a/src/main/java/org/springblade/modules/martial/controller/MartialCompetitionRulesController.java b/src/main/java/org/springblade/modules/martial/controller/MartialCompetitionRulesController.java index 02d14fc..0cae54f 100644 --- a/src/main/java/org/springblade/modules/martial/controller/MartialCompetitionRulesController.java +++ b/src/main/java/org/springblade/modules/martial/controller/MartialCompetitionRulesController.java @@ -5,7 +5,7 @@ import io.swagger.v3.oas.annotations.tags.Tag; import lombok.AllArgsConstructor; import org.springblade.core.boot.ctrl.BladeController; import org.springblade.core.tool.api.R; -import org.springblade.modules.martial.pojo.entity.MartialCompetitionRulesAttachment; +import org.springblade.modules.martial.pojo.entity.MartialCompetitionAttachment; import org.springblade.modules.martial.pojo.entity.MartialCompetitionRulesChapter; import org.springblade.modules.martial.pojo.entity.MartialCompetitionRulesContent; import org.springblade.modules.martial.pojo.vo.MartialCompetitionRulesVO; @@ -45,8 +45,8 @@ public class MartialCompetitionRulesController extends BladeController { */ @GetMapping("/attachment/list") @Operation(summary = "获取附件列表", description = "管理端获取附件列表") - public R> getAttachmentList(@RequestParam Long competitionId) { - List list = rulesService.getAttachmentList(competitionId); + public R> getAttachmentList(@RequestParam Long competitionId) { + List list = rulesService.getAttachmentList(competitionId); return R.data(list); } @@ -55,7 +55,7 @@ public class MartialCompetitionRulesController extends BladeController { */ @PostMapping("/attachment/save") @Operation(summary = "保存附件", description = "新增或修改附件") - public R saveAttachment(@RequestBody MartialCompetitionRulesAttachment attachment) { + public R saveAttachment(@RequestBody MartialCompetitionAttachment attachment) { return R.status(rulesService.saveAttachment(attachment)); } diff --git a/src/main/java/org/springblade/modules/martial/controller/MartialMiniController.java b/src/main/java/org/springblade/modules/martial/controller/MartialMiniController.java index 24f203d..8467dbc 100644 --- a/src/main/java/org/springblade/modules/martial/controller/MartialMiniController.java +++ b/src/main/java/org/springblade/modules/martial/controller/MartialMiniController.java @@ -328,6 +328,7 @@ public class MartialMiniController extends BladeController { @RequestParam Integer refereeType, @RequestParam(required = false) Long projectId, @RequestParam(required = false) Long venueId, + @RequestParam(required = false) Long competitionId, @RequestParam(defaultValue = "1") Integer current, @RequestParam(defaultValue = "10") Integer size ) { @@ -335,6 +336,11 @@ public class MartialMiniController extends BladeController { LambdaQueryWrapper athleteQuery = new LambdaQueryWrapper<>(); athleteQuery.eq(MartialAthlete::getIsDeleted, 0); + // 按比赛ID过滤(重要:确保只显示当前比赛的选手) + if (competitionId != null) { + athleteQuery.eq(MartialAthlete::getCompetitionId, competitionId); + } + if (projectId != null) { athleteQuery.eq(MartialAthlete::getProjectId, projectId); } diff --git a/src/main/java/org/springblade/modules/martial/controller/MartialRegistrationOrderController.java b/src/main/java/org/springblade/modules/martial/controller/MartialRegistrationOrderController.java index 25381b4..4d0c216 100644 --- a/src/main/java/org/springblade/modules/martial/controller/MartialRegistrationOrderController.java +++ b/src/main/java/org/springblade/modules/martial/controller/MartialRegistrationOrderController.java @@ -1,23 +1,34 @@ package org.springblade.modules.martial.controller; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; import org.springblade.core.boot.ctrl.BladeController; -import org.springblade.core.mp.support.Condition; import org.springblade.core.mp.support.Query; +import org.springblade.core.secure.utils.AuthUtil; import org.springblade.core.tool.api.R; import org.springblade.core.tool.utils.Func; +import org.springblade.modules.martial.pojo.entity.MartialAthlete; import org.springblade.modules.martial.pojo.entity.MartialRegistrationOrder; +import org.springblade.modules.martial.pojo.dto.RegistrationSubmitDTO; +import org.springblade.modules.martial.service.IMartialAthleteService; import org.springblade.modules.martial.service.IMartialRegistrationOrderService; +import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; +import java.util.List; + /** * 报名订单 控制器 * * @author BladeX */ +@Slf4j @RestController @AllArgsConstructor @RequestMapping("/martial/registrationOrder") @@ -25,6 +36,7 @@ import org.springframework.web.bind.annotation.*; public class MartialRegistrationOrderController extends BladeController { private final IMartialRegistrationOrderService registrationOrderService; + private final IMartialAthleteService athleteService; /** * 详情 @@ -37,22 +49,93 @@ public class MartialRegistrationOrderController extends BladeController { } /** - * 分页列表 + * 分页列表 - 只返回当前用户的报名记录 */ @GetMapping("/list") - @Operation(summary = "分页列表", description = "分页查询") + @Operation(summary = "分页列表", description = "分页查询当前用户的报名记录") public R> list(MartialRegistrationOrder registrationOrder, Query query) { - IPage pages = registrationOrderService.page(Condition.getPage(query), Condition.getQueryWrapper(registrationOrder)); + // 获取当前登录用户ID + Long userId = AuthUtil.getUserId(); + + // 构建查询条件 - 只查询当前用户的订单 + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(MartialRegistrationOrder::getUserId, userId); + + // 如果传入了状态参数,添加状态过滤 + if (registrationOrder.getStatus() != null) { + queryWrapper.eq(MartialRegistrationOrder::getStatus, registrationOrder.getStatus()); + } + + // 按创建时间倒序 + queryWrapper.orderByDesc(MartialRegistrationOrder::getCreateTime); + + // 分页查询 + IPage page = new Page<>(query.getCurrent(), query.getSize()); + IPage pages = registrationOrderService.page(page, queryWrapper); + return R.data(pages); } /** - * 新增或修改 + * 提交报名订单 + * 接收前端传来的 athleteIds 和 projectIds,更新选手的 orderId */ @PostMapping("/submit") - @Operation(summary = "新增或修改", description = "传入实体") - public R submit(@RequestBody MartialRegistrationOrder registrationOrder) { - return R.status(registrationOrderService.saveOrUpdate(registrationOrder)); + @Operation(summary = "提交报名", description = "提交报名订单并关联选手") + @Transactional(rollbackFor = Exception.class) + public R submit(@RequestBody RegistrationSubmitDTO dto) { + log.info("=== 提交报名订单 ==="); + log.info("订单号: {}", dto.getOrderNo()); + log.info("赛事ID: {}", dto.getCompetitionId()); + log.info("项目IDs: {}", dto.getProjectIds()); + log.info("选手IDs: {}", dto.getAthleteIds()); + log.info("联系电话: {}", dto.getContactPhone()); + log.info("总金额: {}", dto.getTotalAmount()); + + // 1. 创建订单实体 + MartialRegistrationOrder order = new MartialRegistrationOrder(); + order.setOrderNo(dto.getOrderNo()); + order.setCompetitionId(dto.getCompetitionId()); + order.setContactPhone(dto.getContactPhone()); + order.setTotalAmount(dto.getTotalAmount()); + order.setUserId(AuthUtil.getUserId()); + order.setUserName(AuthUtil.getUserName()); + + // 解析选手ID列表 + List athleteIds = Func.toLongList(dto.getAthleteIds()); + order.setTotalParticipants(athleteIds.size()); + + // 2. 保存订单 + boolean saved = registrationOrderService.save(order); + if (!saved) { + return R.fail("创建订单失败"); + } + + Long orderId = order.getId(); + log.info("订单创建成功,订单ID: {}", orderId); + + // 3. 解析项目ID列表 + List projectIds = Func.toLongList(dto.getProjectIds()); + Long firstProjectId = projectIds.isEmpty() ? null : projectIds.get(0); + + // 4. 更新选手的 orderId、competitionId 和 projectId + if (!athleteIds.isEmpty()) { + LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); + updateWrapper.in(MartialAthlete::getId, athleteIds) + .set(MartialAthlete::getOrderId, orderId) + .set(MartialAthlete::getCompetitionId, dto.getCompetitionId()); + + // 如果只有一个项目,设置项目ID + if (firstProjectId != null) { + updateWrapper.set(MartialAthlete::getProjectId, firstProjectId); + } + + boolean updated = athleteService.update(updateWrapper); + log.info("更新选手关联,选手数量: {}, 更新结果: {}", athleteIds.size(), updated); + } + + // 5. 返回订单信息 + return R.data(order); } /** diff --git a/src/main/java/org/springblade/modules/martial/pojo/dto/BatchGenerateInviteDTO.java b/src/main/java/org/springblade/modules/martial/pojo/dto/BatchGenerateInviteDTO.java index 9c8866a..3dabd61 100644 --- a/src/main/java/org/springblade/modules/martial/pojo/dto/BatchGenerateInviteDTO.java +++ b/src/main/java/org/springblade/modules/martial/pojo/dto/BatchGenerateInviteDTO.java @@ -25,4 +25,10 @@ public class BatchGenerateInviteDTO { @Schema(description = "过期天数(默认30天)") private Integer expireDays = 30; + + @Schema(description = "场地ID") + private Long venueId; + + @Schema(description = "项目ID列表JSON字符串") + private String projects; } diff --git a/src/main/java/org/springblade/modules/martial/pojo/dto/RegistrationSubmitDTO.java b/src/main/java/org/springblade/modules/martial/pojo/dto/RegistrationSubmitDTO.java new file mode 100644 index 0000000..6d7de4c --- /dev/null +++ b/src/main/java/org/springblade/modules/martial/pojo/dto/RegistrationSubmitDTO.java @@ -0,0 +1,53 @@ +package org.springblade.modules.martial.pojo.dto; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.math.BigDecimal; + +/** + * 报名提交DTO + * + * @author BladeX + */ +@Data +@Schema(description = "报名提交数据") +public class RegistrationSubmitDTO { + + /** + * 订单号 + */ + @Schema(description = "订单号") + private String orderNo; + + /** + * 赛事ID + */ + @Schema(description = "赛事ID") + private Long competitionId; + + /** + * 项目ID列表(逗号分隔) + */ + @Schema(description = "项目ID列表") + private String projectIds; + + /** + * 选手ID列表(逗号分隔) + */ + @Schema(description = "选手ID列表") + private String athleteIds; + + /** + * 联系电话 + */ + @Schema(description = "联系电话") + private String contactPhone; + + /** + * 总金额 + */ + @Schema(description = "总金额") + private BigDecimal totalAmount; + +} diff --git a/src/main/java/org/springblade/modules/martial/service/IMartialCompetitionRulesService.java b/src/main/java/org/springblade/modules/martial/service/IMartialCompetitionRulesService.java index 2f2f7ed..8092553 100644 --- a/src/main/java/org/springblade/modules/martial/service/IMartialCompetitionRulesService.java +++ b/src/main/java/org/springblade/modules/martial/service/IMartialCompetitionRulesService.java @@ -16,7 +16,7 @@ */ package org.springblade.modules.martial.service; -import org.springblade.modules.martial.pojo.entity.MartialCompetitionRulesAttachment; +import org.springblade.modules.martial.pojo.entity.MartialCompetitionAttachment; import org.springblade.modules.martial.pojo.entity.MartialCompetitionRulesChapter; import org.springblade.modules.martial.pojo.entity.MartialCompetitionRulesContent; import org.springblade.modules.martial.pojo.vo.MartialCompetitionRulesVO; @@ -44,7 +44,7 @@ public interface IMartialCompetitionRulesService { * @param competitionId 赛事ID * @return 附件列表 */ - List getAttachmentList(Long competitionId); + List getAttachmentList(Long competitionId); /** * 保存附件 @@ -52,7 +52,7 @@ public interface IMartialCompetitionRulesService { * @param attachment 附件信息 * @return 是否成功 */ - boolean saveAttachment(MartialCompetitionRulesAttachment attachment); + boolean saveAttachment(MartialCompetitionAttachment attachment); /** * 删除附件 diff --git a/src/main/java/org/springblade/modules/martial/service/impl/MartialCompetitionRulesServiceImpl.java b/src/main/java/org/springblade/modules/martial/service/impl/MartialCompetitionRulesServiceImpl.java index 5cb18a4..ed26b57 100644 --- a/src/main/java/org/springblade/modules/martial/service/impl/MartialCompetitionRulesServiceImpl.java +++ b/src/main/java/org/springblade/modules/martial/service/impl/MartialCompetitionRulesServiceImpl.java @@ -21,11 +21,11 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; import org.springblade.core.tool.utils.DateUtil; import org.springblade.modules.martial.mapper.MartialCompetitionMapper; -import org.springblade.modules.martial.mapper.MartialCompetitionRulesAttachmentMapper; +import org.springblade.modules.martial.mapper.MartialCompetitionAttachmentMapper; import org.springblade.modules.martial.mapper.MartialCompetitionRulesChapterMapper; import org.springblade.modules.martial.mapper.MartialCompetitionRulesContentMapper; import org.springblade.modules.martial.pojo.entity.MartialCompetition; -import org.springblade.modules.martial.pojo.entity.MartialCompetitionRulesAttachment; +import org.springblade.modules.martial.pojo.entity.MartialCompetitionAttachment; import org.springblade.modules.martial.pojo.entity.MartialCompetitionRulesChapter; import org.springblade.modules.martial.pojo.entity.MartialCompetitionRulesContent; import org.springblade.modules.martial.pojo.vo.MartialCompetitionRulesVO; @@ -47,7 +47,7 @@ import java.util.stream.Collectors; public class MartialCompetitionRulesServiceImpl implements IMartialCompetitionRulesService { private final MartialCompetitionMapper competitionMapper; - private final MartialCompetitionRulesAttachmentMapper attachmentMapper; + private final MartialCompetitionAttachmentMapper attachmentMapper; private final MartialCompetitionRulesChapterMapper chapterMapper; private final MartialCompetitionRulesContentMapper contentMapper; @@ -63,7 +63,7 @@ public class MartialCompetitionRulesServiceImpl implements IMartialCompetitionRu } // 获取附件列表 - List attachments = getAttachmentList(competitionId); + List attachments = getAttachmentList(competitionId); List attachmentVOList = attachments.stream() .map(this::convertToAttachmentVO) .collect(Collectors.toList()); @@ -89,16 +89,17 @@ public class MartialCompetitionRulesServiceImpl implements IMartialCompetitionRu } @Override - public List getAttachmentList(Long competitionId) { - LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); - wrapper.eq(MartialCompetitionRulesAttachment::getCompetitionId, competitionId) - .eq(MartialCompetitionRulesAttachment::getStatus, 1) - .orderByAsc(MartialCompetitionRulesAttachment::getOrderNum); + public List getAttachmentList(Long competitionId) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(MartialCompetitionAttachment::getCompetitionId, competitionId) + .eq(MartialCompetitionAttachment::getAttachmentType, "rules") + .eq(MartialCompetitionAttachment::getStatus, 1) + .orderByAsc(MartialCompetitionAttachment::getOrderNum); return attachmentMapper.selectList(wrapper); } @Override - public boolean saveAttachment(MartialCompetitionRulesAttachment attachment) { + public boolean saveAttachment(MartialCompetitionAttachment attachment) { if (attachment.getId() == null) { return attachmentMapper.insert(attachment) > 0; } else { @@ -186,7 +187,7 @@ public class MartialCompetitionRulesServiceImpl implements IMartialCompetitionRu /** * 转换为附件VO */ - private MartialCompetitionRulesVO.AttachmentVO convertToAttachmentVO(MartialCompetitionRulesAttachment attachment) { + private MartialCompetitionRulesVO.AttachmentVO convertToAttachmentVO(MartialCompetitionAttachment attachment) { MartialCompetitionRulesVO.AttachmentVO vo = new MartialCompetitionRulesVO.AttachmentVO(); vo.setId(attachment.getId()); vo.setName(attachment.getFileName()); diff --git a/src/main/java/org/springblade/modules/martial/service/impl/MartialJudgeInviteServiceImpl.java b/src/main/java/org/springblade/modules/martial/service/impl/MartialJudgeInviteServiceImpl.java index 78dadf0..770a2a5 100644 --- a/src/main/java/org/springblade/modules/martial/service/impl/MartialJudgeInviteServiceImpl.java +++ b/src/main/java/org/springblade/modules/martial/service/impl/MartialJudgeInviteServiceImpl.java @@ -167,6 +167,8 @@ public class MartialJudgeInviteServiceImpl extends ServiceImpl