feat: add local access control and managed point clouds
This commit is contained in:
@@ -16,15 +16,17 @@ USE pointcloud_db;
|
||||
-- 用户表
|
||||
CREATE TABLE IF NOT EXISTS users (
|
||||
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||
openId VARCHAR(64) NOT NULL UNIQUE,
|
||||
username VARCHAR(64) NOT NULL UNIQUE,
|
||||
passwordHash VARCHAR(255),
|
||||
name TEXT,
|
||||
email VARCHAR(320),
|
||||
loginMethod VARCHAR(64),
|
||||
role ENUM('user', 'admin') NOT NULL DEFAULT 'user',
|
||||
role ENUM('user', 'admin', 'super_admin') NOT NULL DEFAULT 'user',
|
||||
isActive INT NOT NULL DEFAULT 1,
|
||||
mustChangePassword INT NOT NULL DEFAULT 1,
|
||||
sessionVersion INT NOT NULL DEFAULT 0,
|
||||
createdAt TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
updatedAt TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
lastSignedIn TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
INDEX idx_openId (openId),
|
||||
lastLoginAt TIMESTAMP NULL,
|
||||
INDEX idx_email (email(255))
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
|
||||
@@ -124,6 +126,22 @@ CREATE TABLE IF NOT EXISTS `model_cad_files` (
|
||||
`createdAt` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `model_pointcloud_files` (
|
||||
`id` INT AUTO_INCREMENT PRIMARY KEY,
|
||||
`modelId` INT NOT NULL,
|
||||
`name` VARCHAR(255) NOT NULL,
|
||||
`fileSize` BIGINT NOT NULL,
|
||||
`filePath` VARCHAR(512) NOT NULL,
|
||||
`metadataStatus` ENUM('pending','ready','unsupported','error') NOT NULL DEFAULT 'pending',
|
||||
`pointCount` BIGINT NULL,
|
||||
`pointAttributes` JSON NULL,
|
||||
`pointDataFormat` VARCHAR(32) NULL,
|
||||
`bytesPerPoint` INT NULL,
|
||||
`metadataError` TEXT NULL,
|
||||
`createdAt` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
INDEX `idx_model_pointcloud_modelId` (`modelId`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `inspection_tasks` (
|
||||
`id` INT AUTO_INCREMENT PRIMARY KEY,
|
||||
`modelId` INT NOT NULL,
|
||||
@@ -143,6 +161,16 @@ CREATE TABLE IF NOT EXISTS `task_pointcloud_files` (
|
||||
`name` VARCHAR(255) NOT NULL,
|
||||
`fileSize` BIGINT NOT NULL,
|
||||
`filePath` VARCHAR(512) NOT NULL,
|
||||
`source` VARCHAR(32) NOT NULL DEFAULT 'uploaded',
|
||||
`sourceResultId` INT NULL,
|
||||
`sourcePointcloudFileId` INT NULL,
|
||||
`sourceModelPointcloudId` INT NULL,
|
||||
`metadataStatus` ENUM('pending','ready','unsupported','error') NOT NULL DEFAULT 'pending',
|
||||
`pointCount` BIGINT NULL,
|
||||
`pointAttributes` JSON NULL,
|
||||
`pointDataFormat` VARCHAR(32) NULL,
|
||||
`bytesPerPoint` INT NULL,
|
||||
`metadataError` TEXT NULL,
|
||||
`createdAt` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
|
||||
@@ -158,10 +186,5 @@ CREATE TABLE IF NOT EXISTS `task_analysis_results` (
|
||||
`updatedAt` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
|
||||
-- 创建默认管理员用户 (内网部署使用)
|
||||
INSERT INTO users (openId, name, email, role) VALUES
|
||||
('admin-local', '系统管理员', 'admin@localhost', 'admin')
|
||||
ON DUPLICATE KEY UPDATE name = VALUES(name);
|
||||
|
||||
-- 输出初始化完成信息
|
||||
SELECT 'Database initialization completed successfully!' AS message;
|
||||
|
||||
Reference in New Issue
Block a user