-- 毛利报表:提成比例配置表与计费日期查询索引。 -- 每位业务员维护一条固定比例;提成比例以百分数保存,例如 5 表示 5%。 CREATE TABLE IF NOT EXISTS `prc_profit_commission_rate` ( `rate_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '提成比例ID', `belong_saler_code` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '业务员编码', `belong_saler` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '业务员名称', `commission_rate` decimal(7,4) NOT NULL COMMENT '提成比例(百分数,例如5表示5%)', `status` char(1) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '0' COMMENT '状态:0正常 1停用', `remark` varchar(500) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '备注', `create_by` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '创建者', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_by` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '更新者', `update_time` datetime DEFAULT NULL COMMENT '更新时间', PRIMARY KEY (`rate_id`), UNIQUE KEY `uk_profit_commission_saler` (`belong_saler_code`), KEY `idx_profit_commission_status` (`status`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='毛利报表业务员固定提成比例'; -- 毛利分析产品、订单维度导出日志及历史文件索引。 CREATE TABLE IF NOT EXISTS `prc_profit_report_export` ( `export_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '毛利报表导出ID', `dimension` varchar(16) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'PRODUCT产品维度,ORDER订单维度', `file_name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '下载文件名', `storage_key` varchar(500) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '下载目录下的文件Key', `row_count` int(11) DEFAULT NULL COMMENT '导出记录数', `export_status` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'PROCESSING生成中,SUCCESS成功,FAILED失败', `export_user_id` bigint(20) DEFAULT NULL COMMENT '导出人用户ID', `export_by` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '导出人', `export_time` datetime NOT NULL COMMENT '导出时间', `remark` varchar(500) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '失败原因', PRIMARY KEY (`export_id`), KEY `idx_profit_report_export_user_time` (`export_by`, `export_time`), KEY `idx_profit_report_export_status` (`export_status`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='毛利报表导出日志'; SET @column_exists := ( SELECT COUNT(1) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'prc_profit_report_export' AND COLUMN_NAME = 'export_user_id' ); SET @sql := IF(@column_exists = 0, 'ALTER TABLE `prc_profit_report_export` ADD COLUMN `export_user_id` bigint(20) DEFAULT NULL COMMENT ''导出人用户ID'' AFTER `export_status`', 'ALTER TABLE `prc_profit_report_export` MODIFY COLUMN `export_user_id` bigint(20) DEFAULT NULL COMMENT ''导出人用户ID'' AFTER `export_status`' ); PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt; SET @index_exists := ( SELECT COUNT(1) FROM information_schema.STATISTICS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'prc_order_bill' AND INDEX_NAME = 'idx_bill_biz_date_report' ); SET @sql := IF(@index_exists = 0, 'ALTER TABLE `prc_order_bill` ADD INDEX `idx_bill_biz_date_report` (`biz_date`, `bill_id`)', 'SELECT 1' ); PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;