diff --git a/docs/sql/create_match_live_table.sql b/docs/sql/create_match_live_table.sql index 3bee8a0..63b14a0 100644 --- a/docs/sql/create_match_live_table.sql +++ b/docs/sql/create_match_live_table.sql @@ -1,4 +1,4 @@ -CREATE TABLE `la_match_live` ( +CREATE TABLE IF NOT EXISTS `la_match_live` ( `id` int UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键', `match_id` int UNSIGNED NOT NULL DEFAULT 0 COMMENT '比赛ID', `title` varchar(255) NOT NULL DEFAULT '' COMMENT '直播标题', @@ -13,7 +13,7 @@ CREATE TABLE `la_match_live` ( `next_fetch_at` int UNSIGNED NOT NULL DEFAULT 0 COMMENT '下次抓取时间', `create_time` int UNSIGNED NOT NULL DEFAULT 0 COMMENT '创建时间', `update_time` int UNSIGNED NOT NULL DEFAULT 0 COMMENT '更新时间', - `delete_time` int UNSIGNED NOT NULL DEFAULT 0 COMMENT '删除时间', + `delete_time` int UNSIGNED DEFAULT NULL COMMENT '删除时间', PRIMARY KEY (`id`) USING BTREE, UNIQUE KEY `uk_match_source_url` (`match_id`, `source_url`) USING BTREE, KEY `idx_match_id` (`match_id`) USING BTREE, diff --git a/qa/backend/test_match_live_schema_static.php b/qa/backend/test_match_live_schema_static.php index 9a3cfd6..3d944cb 100644 --- a/qa/backend/test_match_live_schema_static.php +++ b/qa/backend/test_match_live_schema_static.php @@ -18,15 +18,26 @@ $sql = file_get_contents($sqlPath); $model = file_get_contents($modelPath); $requiredSql = [ - 'CREATE TABLE `la_match_live`', + 'CREATE TABLE IF NOT EXISTS `la_match_live`', '`match_id` int UNSIGNED NOT NULL', + '`title` varchar(255)', '`source_url` varchar(500)', '`play_url_m3u8` varchar(1000)', '`play_url_hd_m3u8` varchar(1000)', '`play_url_flv` varchar(1000)', '`play_url_hd_flv` varchar(1000)', '`fetch_status` tinyint', + '`fetch_error` varchar(255)', + '`last_fetch_at` int UNSIGNED NOT NULL', + '`next_fetch_at` int UNSIGNED NOT NULL', + '`create_time` int UNSIGNED NOT NULL', + '`update_time` int UNSIGNED NOT NULL', + '`delete_time` int UNSIGNED DEFAULT NULL', 'UNIQUE KEY `uk_match_source_url` (`match_id`, `source_url`)', + 'KEY `idx_match_id` (`match_id`)', + 'KEY `idx_next_fetch_at` (`next_fetch_at`)', + 'KEY `idx_fetch_status` (`fetch_status`)', + 'KEY `idx_match_create_time` (`match_id`, `create_time`)', ]; foreach ($requiredSql as $needle) { @@ -41,4 +52,19 @@ if (strpos($model, "protected \$name = 'match_live';") === false) { exit(1); } +if (strpos($model, 'extends BaseModel') === false) { + fwrite(STDERR, "model base class mismatch\n"); + exit(1); +} + +if (strpos($model, 'use SoftDelete;') === false) { + fwrite(STDERR, "model soft delete missing\n"); + exit(1); +} + +if (strpos($model, "protected \$deleteTime = 'delete_time';") === false) { + fwrite(STDERR, "model delete time mismatch\n"); + exit(1); +} + echo "schema static checks passed\n"; diff --git a/server/app/common/model/match/MatchLive.php b/server/app/common/model/match/MatchLive.php index 3c03002..d4d3eb1 100644 --- a/server/app/common/model/match/MatchLive.php +++ b/server/app/common/model/match/MatchLive.php @@ -3,8 +3,12 @@ namespace app\common\model\match; use app\common\model\BaseModel; +use think\model\concern\SoftDelete; class MatchLive extends BaseModel { + use SoftDelete; + protected $name = 'match_live'; + protected $deleteTime = 'delete_time'; }