处理后台新需求
Build Backend JAR / build (push) Failing after 16m58s

This commit is contained in:
supernijia
2026-08-09 20:08:39 +08:00
parent f7e26ee266
commit 38216a1885
42 changed files with 3425 additions and 424 deletions
@@ -0,0 +1,33 @@
CREATE TABLE IF NOT EXISTS biz_shop_data_crawl_daily_file (
id BIGINT NOT NULL AUTO_INCREMENT,
user_id BIGINT NOT NULL,
shop_key_hash CHAR(64) NOT NULL,
shop_key VARCHAR(1000) NOT NULL,
business_date DATE NOT NULL,
latest_task_id BIGINT NULL,
latest_result_id BIGINT NULL,
result_filename VARCHAR(255) NULL,
result_file_url VARCHAR(1000) NULL,
result_file_size BIGINT NULL,
result_content_type VARCHAR(128) NULL,
row_count INT NULL,
version BIGINT NOT NULL DEFAULT 0,
last_success_at DATETIME NULL,
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (id),
UNIQUE KEY uk_shop_data_crawl_daily_file (user_id, shop_key_hash, business_date),
KEY idx_shop_data_crawl_daily_result (latest_result_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS biz_shop_data_crawl_daily_member (
id BIGINT NOT NULL AUTO_INCREMENT,
daily_file_id BIGINT NOT NULL,
task_id BIGINT NOT NULL,
result_id BIGINT NOT NULL,
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (id),
UNIQUE KEY uk_shop_data_crawl_daily_member_result (result_id),
KEY idx_shop_data_crawl_daily_member_file_result (daily_file_id, result_id),
KEY idx_shop_data_crawl_daily_member_task (task_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
@@ -0,0 +1,74 @@
SET @invalid_asin_group_id_col_exists := (
SELECT COUNT(*)
FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = DATABASE()
AND TABLE_NAME = 'biz_invalid_asin_data'
AND COLUMN_NAME = 'group_id'
);
SET @sql_add_invalid_asin_group_id := IF(
@invalid_asin_group_id_col_exists = 0,
'ALTER TABLE biz_invalid_asin_data ADD COLUMN group_id BIGINT NULL AFTER brand',
'SELECT 1'
);
PREPARE stmt_add_invalid_asin_group_id FROM @sql_add_invalid_asin_group_id;
EXECUTE stmt_add_invalid_asin_group_id;
DEALLOCATE PREPARE stmt_add_invalid_asin_group_id;
SET @invalid_asin_record_source_col_exists := (
SELECT COUNT(*)
FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = DATABASE()
AND TABLE_NAME = 'biz_invalid_asin_data'
AND COLUMN_NAME = 'record_source'
);
SET @sql_add_invalid_asin_record_source := IF(
@invalid_asin_record_source_col_exists = 0,
'ALTER TABLE biz_invalid_asin_data ADD COLUMN record_source VARCHAR(16) NOT NULL DEFAULT ''AUTO'' AFTER group_id',
'SELECT 1'
);
PREPARE stmt_add_invalid_asin_record_source FROM @sql_add_invalid_asin_record_source;
EXECUTE stmt_add_invalid_asin_record_source;
DEALLOCATE PREPARE stmt_add_invalid_asin_record_source;
-- Historical rows have no reliable origin marker. Treat them as automatic rows.
UPDATE biz_invalid_asin_data
SET record_source = 'AUTO'
WHERE record_source IS NULL
OR TRIM(record_source) = ''
OR UPPER(TRIM(record_source)) NOT IN ('AUTO', 'MANUAL');
SET @invalid_asin_source_group_index_exists := (
SELECT COUNT(*)
FROM information_schema.STATISTICS
WHERE TABLE_SCHEMA = DATABASE()
AND TABLE_NAME = 'biz_invalid_asin_data'
AND INDEX_NAME = 'idx_invalid_asin_source_group_id'
);
SET @sql_add_invalid_asin_source_group_index := IF(
@invalid_asin_source_group_index_exists = 0,
'ALTER TABLE biz_invalid_asin_data ADD INDEX idx_invalid_asin_source_group_id (record_source, group_id, id)',
'SELECT 1'
);
PREPARE stmt_add_invalid_asin_source_group_index FROM @sql_add_invalid_asin_source_group_index;
EXECUTE stmt_add_invalid_asin_source_group_index;
DEALLOCATE PREPARE stmt_add_invalid_asin_source_group_index;
SET @invalid_asin_group_index_exists := (
SELECT COUNT(*)
FROM information_schema.STATISTICS
WHERE TABLE_SCHEMA = DATABASE()
AND TABLE_NAME = 'biz_invalid_asin_data'
AND INDEX_NAME = 'idx_invalid_asin_group_id'
);
SET @sql_add_invalid_asin_group_index := IF(
@invalid_asin_group_index_exists = 0,
'ALTER TABLE biz_invalid_asin_data ADD INDEX idx_invalid_asin_group_id (group_id)',
'SELECT 1'
);
PREPARE stmt_add_invalid_asin_group_index FROM @sql_add_invalid_asin_group_index;
EXECUTE stmt_add_invalid_asin_group_index;
DEALLOCATE PREPARE stmt_add_invalid_asin_group_index;
@@ -0,0 +1,53 @@
SET @dedupe_group_id_col_exists := (
SELECT COUNT(*)
FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = DATABASE()
AND TABLE_NAME = 'biz_dedupe_total_data'
AND COLUMN_NAME = 'group_id'
);
SET @sql_add_dedupe_group_id := IF(
@dedupe_group_id_col_exists = 0,
'ALTER TABLE biz_dedupe_total_data ADD COLUMN group_id BIGINT NULL AFTER data_value',
'SELECT 1'
);
PREPARE stmt_add_dedupe_group_id FROM @sql_add_dedupe_group_id;
EXECUTE stmt_add_dedupe_group_id;
DEALLOCATE PREPARE stmt_add_dedupe_group_id;
UPDATE biz_dedupe_total_data d
JOIN (
SELECT matched.id, MIN(matched.group_id) AS group_id
FROM (
SELECT d0.id, g.id AS group_id
FROM biz_dedupe_total_data d0
INNER JOIN biz_shop_manage_group g
ON COALESCE(g.created_by_id, g.user_id) = d0.uploader_user_id
UNION
SELECT d1.id, gm.group_id
FROM biz_dedupe_total_data d1
INNER JOIN biz_shop_manage_group_member gm
ON gm.user_id = d1.uploader_user_id
) matched
GROUP BY matched.id
HAVING COUNT(DISTINCT matched.group_id) = 1
) resolved ON resolved.id = d.id
SET d.group_id = resolved.group_id
WHERE d.group_id IS NULL;
SET @dedupe_group_idx_exists := (
SELECT COUNT(*)
FROM information_schema.STATISTICS
WHERE TABLE_SCHEMA = DATABASE()
AND TABLE_NAME = 'biz_dedupe_total_data'
AND INDEX_NAME = 'idx_dedupe_total_data_group_id'
);
SET @sql_add_dedupe_group_idx := IF(
@dedupe_group_idx_exists = 0,
'ALTER TABLE biz_dedupe_total_data ADD INDEX idx_dedupe_total_data_group_id (group_id, id)',
'SELECT 1'
);
PREPARE stmt_add_dedupe_group_idx FROM @sql_add_dedupe_group_idx;
EXECUTE stmt_add_dedupe_group_idx;
DEALLOCATE PREPARE stmt_add_dedupe_group_idx;