-- ===================================================== -- 新增表结构:分账比例配置、分销订单分账记录、设备厂商 -- ===================================================== -- 1. 分账比例配置表 CREATE TABLE IF NOT EXISTS `settlement_ratio` ( `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID', `tenant_id` BIGINT DEFAULT NULL COMMENT '租户ID', `settlement_type` VARCHAR(32) NOT NULL COMMENT '分账类型:PLATFORM-平台抽成,CHAIN-连锁分账,STORE-门店留成', `biz_scene` VARCHAR(32) NOT NULL DEFAULT 'SALE' COMMENT '业务场景:SALE-销售,RECHARGE-充值,SERVICE-服务费', `target_name` VARCHAR(128) DEFAULT NULL COMMENT '分账方名称', `ratio` DECIMAL(10,2) DEFAULT NULL COMMENT '分账比例(百分比)', `fixed_amount` DECIMAL(12,2) DEFAULT NULL COMMENT '固定金额(优先于比例)', `min_amount` DECIMAL(12,2) DEFAULT NULL COMMENT '最小分账金额', `status` TINYINT DEFAULT 0 COMMENT '状态:0-启用 1-停用', `effective_time` DATETIME DEFAULT NULL COMMENT '生效时间', `expire_time` DATETIME DEFAULT NULL COMMENT '失效时间', `remark` VARCHAR(500) DEFAULT NULL COMMENT '备注', `create_by` VARCHAR(64) DEFAULT NULL COMMENT '创建人', `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_by` VARCHAR(64) DEFAULT NULL COMMENT '更新人', `update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', PRIMARY KEY (`id`), INDEX `idx_tenant_type` (`tenant_id`, `settlement_type`, `biz_scene`), INDEX `idx_status` (`status`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='分账比例配置表'; -- 2. 分销订单分账记录表 CREATE TABLE IF NOT EXISTS `distribution_order_split` ( `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID', `order_id` BIGINT NOT NULL COMMENT '订单ID', `order_no` VARCHAR(64) DEFAULT NULL COMMENT '订单编号', `tenant_id` BIGINT DEFAULT NULL COMMENT '租户ID', `store_id` BIGINT DEFAULT NULL COMMENT '门店ID', `store_name` VARCHAR(128) DEFAULT NULL COMMENT '门店名称', `total_amount` DECIMAL(12,2) NOT NULL COMMENT '订单总金额', `platform_amount` DECIMAL(12,2) DEFAULT 0.00 COMMENT '平台分账金额', `chain_amount` DECIMAL(12,2) DEFAULT 0.00 COMMENT '连锁总部分账金额', `store_amount` DECIMAL(12,2) DEFAULT 0.00 COMMENT '门店留成金额', `ratio_snapshot` TEXT DEFAULT NULL COMMENT '分账比例快照(JSON)', `status` TINYINT DEFAULT 0 COMMENT '分账状态:0-待分账 1-已分账 2-分账失败 3-已退款', `settle_time` DATETIME DEFAULT NULL COMMENT '分账时间', `trade_no` VARCHAR(64) DEFAULT NULL COMMENT '第三方流水号', `fail_reason` VARCHAR(500) DEFAULT NULL COMMENT '失败原因', `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', PRIMARY KEY (`id`), INDEX `idx_order_id` (`order_id`), INDEX `idx_tenant_id` (`tenant_id`), INDEX `idx_status` (`status`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='分销订单分账记录表'; -- 3. 设备厂商管理表 CREATE TABLE IF NOT EXISTS `device_manufacturer` ( `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '厂商ID', `name` VARCHAR(128) NOT NULL COMMENT '厂商名称', `credit_code` VARCHAR(64) DEFAULT NULL COMMENT '统一社会信用代码', `contact_person` VARCHAR(64) DEFAULT NULL COMMENT '联系人', `contact_phone` VARCHAR(32) DEFAULT NULL COMMENT '联系电话', `email` VARCHAR(128) DEFAULT NULL COMMENT '联系邮箱', `address` VARCHAR(256) DEFAULT NULL COMMENT '厂商地址', `main_category` VARCHAR(128) DEFAULT NULL COMMENT '主营产品类别', `bank_account` VARCHAR(64) DEFAULT NULL COMMENT '银行账户', `bank_name` VARCHAR(128) DEFAULT NULL COMMENT '开户行', `rating` INT DEFAULT 3 COMMENT '厂商评级(1-5)', `status` TINYINT DEFAULT 0 COMMENT '合作状态:0-合作中 1-已停止', `license_url` VARCHAR(256) DEFAULT NULL COMMENT '营业执照URL', `remark` VARCHAR(500) DEFAULT NULL COMMENT '备注', `create_by` VARCHAR(64) DEFAULT NULL COMMENT '创建人', `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_by` VARCHAR(64) DEFAULT NULL COMMENT '更新人', `update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', PRIMARY KEY (`id`), INDEX `idx_name` (`name`), INDEX `idx_status` (`status`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='设备厂商管理表';