| | |
| | | `age_range` VARCHAR(20) DEFAULT NULL COMMENT '年龄区间', |
| | | `work_year_range` VARCHAR(20) DEFAULT NULL COMMENT '工作年限区间', |
| | | `guide_type` VARCHAR(20) NOT NULL DEFAULT 'personal' COMMENT '导游类型:personal个人,team讲解队', |
| | | `team_id` BIGINT UNSIGNED DEFAULT NULL COMMENT '讲解队ID,为空表示个人导游', |
| | | `id_card_no` VARCHAR(32) DEFAULT NULL COMMENT '身份证号', |
| | | `certificate_no` VARCHAR(64) DEFAULT NULL COMMENT '导游资格证编号', |
| | | `id_card_front_url` VARCHAR(500) DEFAULT NULL COMMENT '身份证正面图片地址', |
| | |
| | | PRIMARY KEY (`id`), |
| | | UNIQUE KEY `uk_guide_application_no` (`application_no`), |
| | | KEY `idx_guide_application_mobile` (`mobile`), |
| | | KEY `idx_guide_application_team` (`team_id`), |
| | | KEY `idx_guide_application_id_card` (`id_card_no`), |
| | | KEY `idx_guide_application_bank_city` (`bank_city_id`), |
| | | KEY `idx_guide_application_status_created` (`audit_status`, `created_at`) |
| | |
| | | `guide_id` BIGINT UNSIGNED DEFAULT NULL COMMENT '接单导游ID', |
| | | `guide_name` VARCHAR(64) DEFAULT NULL COMMENT '导游姓名快照', |
| | | `guide_mobile` VARCHAR(20) DEFAULT NULL COMMENT '导游手机号快照', |
| | | `commission_source` VARCHAR(16) DEFAULT NULL COMMENT '抽成来源:PERSONAL个人平台配置、TEAM讲解队配置', |
| | | `commission_rate` DECIMAL(5,2) DEFAULT NULL COMMENT '接单时平台抽成比例快照,单位百分比', |
| | | `commission_team_id` BIGINT UNSIGNED DEFAULT NULL COMMENT '讲解队抽成来源ID,个人导游为空', |
| | | `guide_earning_amount` DECIMAL(10,2) DEFAULT NULL COMMENT '导游实际业绩金额快照', |
| | | `accepted_at` DATETIME DEFAULT NULL COMMENT '导游接单时间', |
| | | `arrived_at` DATETIME DEFAULT NULL COMMENT '导游到达汇合点时间', |
| | | `service_started_at` DATETIME DEFAULT NULL COMMENT '讲解开始时间', |
| | |
| | | UNIQUE KEY `uk_tour_order_no` (`order_no`), |
| | | KEY `idx_tour_order_visitor` (`visitor_id`), |
| | | KEY `idx_tour_order_guide` (`guide_id`), |
| | | KEY `idx_tour_order_guide_earning` (`guide_id`, `status`, `completed_at`), |
| | | KEY `idx_tour_order_scenic` (`scenic_name`), |
| | | KEY `idx_tour_order_status` (`status`), |
| | | KEY `idx_tour_order_created_at` (`created_at`), |
| | |
| | | CONSTRAINT `fk_guide_notice_read_notice` FOREIGN KEY (`notice_id`) REFERENCES `sys_notice` (`id`) ON DELETE CASCADE |
| | | ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Guide notification read records'; |
| | | |
| | | CREATE TABLE IF NOT EXISTS `guide_notification` ( |
| | | `id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 'Primary key', |
| | | `guide_id` BIGINT UNSIGNED NOT NULL COMMENT 'Guide user id', |
| | | `notification_type` VARCHAR(32) NOT NULL COMMENT 'Notification type', |
| | | `title` VARCHAR(100) NOT NULL COMMENT 'Notification title', |
| | | `content` VARCHAR(500) NOT NULL COMMENT 'Notification content', |
| | | `order_id` BIGINT UNSIGNED DEFAULT NULL COMMENT 'Related order id', |
| | | `target_url` VARCHAR(255) DEFAULT NULL COMMENT 'Guide app target page', |
| | | `read_at` DATETIME DEFAULT NULL COMMENT 'Read time', |
| | | `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 'Created time', |
| | | PRIMARY KEY (`id`), |
| | | KEY `idx_guide_notification_guide_time` (`guide_id`, `created_at`), |
| | | KEY `idx_guide_notification_guide_read` (`guide_id`, `read_at`), |
| | | KEY `idx_guide_notification_order` (`order_id`), |
| | | CONSTRAINT `fk_guide_notification_guide` FOREIGN KEY (`guide_id`) REFERENCES `guide_user` (`id`) ON DELETE CASCADE, |
| | | CONSTRAINT `fk_guide_notification_order` FOREIGN KEY (`order_id`) REFERENCES `tour_order` (`id`) ON DELETE SET NULL |
| | | ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Guide personal notifications'; |
| | | |
| | | CREATE TABLE IF NOT EXISTS `sys_login_log` ( |
| | | `id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '登录日志主键', |
| | | `username` VARCHAR(64) DEFAULT NULL COMMENT '登录用户名', |