From 2c2ff602b033ae7c5950ac2af955f4339e5851bb Mon Sep 17 00:00:00 2001 From: zhonghua Date: Tue, 14 Apr 2026 14:29:07 +0800 Subject: [PATCH] =?UTF-8?q?fix:=E5=8E=BB=E9=99=A4=E6=B4=BB=E5=8A=A8?= =?UTF-8?q?=E5=90=8D=E7=A7=B0=E5=94=AF=E4=B8=80=E5=88=A4=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...__drop_biz_contest_contest_name_unique.sql | 43 +++++++++++++++++++ lesingle-creation-frontend/tsconfig.json | 4 +- 2 files changed, 45 insertions(+), 2 deletions(-) create mode 100644 lesingle-creation-backend/src/main/resources/db/migration/V20__drop_biz_contest_contest_name_unique.sql diff --git a/lesingle-creation-backend/src/main/resources/db/migration/V20__drop_biz_contest_contest_name_unique.sql b/lesingle-creation-backend/src/main/resources/db/migration/V20__drop_biz_contest_contest_name_unique.sql new file mode 100644 index 0000000..9ce5abb --- /dev/null +++ b/lesingle-creation-backend/src/main/resources/db/migration/V20__drop_biz_contest_contest_name_unique.sql @@ -0,0 +1,43 @@ +-- V20: 去除活动名称唯一约束 — 删除 t_biz_contest 上包含 contest_name 的唯一索引(保留主键) +-- 背景: 允许同一租户/系统内创建同名活动,不再强制活动名称全局或联合唯一 + +DROP PROCEDURE IF EXISTS tmp_drop_biz_contest_name_uniques; + +DELIMITER // +CREATE PROCEDURE tmp_drop_biz_contest_name_uniques() +BEGIN + DECLARE done INT DEFAULT FALSE; + DECLARE ix VARCHAR(128); + DECLARE cur CURSOR FOR + SELECT DISTINCT s.INDEX_NAME + FROM information_schema.STATISTICS s + WHERE s.TABLE_SCHEMA = DATABASE() + AND s.TABLE_NAME = 't_biz_contest' + AND s.NON_UNIQUE = 0 + AND s.INDEX_NAME <> 'PRIMARY' + AND EXISTS ( + SELECT 1 FROM information_schema.STATISTICS s2 + WHERE s2.TABLE_SCHEMA = DATABASE() + AND s2.TABLE_NAME = 't_biz_contest' + AND s2.INDEX_NAME = s.INDEX_NAME + AND s2.COLUMN_NAME = 'contest_name' + ); + DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE; + + OPEN cur; + ix_loop: LOOP + FETCH cur INTO ix; + IF done THEN + LEAVE ix_loop; + END IF; + SET @dsql = CONCAT('ALTER TABLE t_biz_contest DROP INDEX `', REPLACE(ix, '`', '``'), '`'); + PREPARE ps FROM @dsql; + EXECUTE ps; + DEALLOCATE PREPARE ps; + END LOOP; + CLOSE cur; +END // +DELIMITER ; + +CALL tmp_drop_biz_contest_name_uniques(); +DROP PROCEDURE IF EXISTS tmp_drop_biz_contest_name_uniques; diff --git a/lesingle-creation-frontend/tsconfig.json b/lesingle-creation-frontend/tsconfig.json index c0175cc..5a02498 100644 --- a/lesingle-creation-frontend/tsconfig.json +++ b/lesingle-creation-frontend/tsconfig.json @@ -20,10 +20,10 @@ "noUnusedParameters": true, "noFallthroughCasesInSwitch": true, - /* Path alias */ + /* paths 需配合 baseUrl,否则 IDE 无法稳定解析 @/ 与「查找引用」「转到定义」 */ "baseUrl": ".", "paths": { - "@/*": ["src/*"] + "@/*": ["./src/*"] } }, "include": ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx", "src/**/*.vue"],