feat: 迭代
This commit is contained in:
@@ -645,19 +645,14 @@ CREATE TABLE IF NOT EXISTS `merchant_accounts` (
|
||||
KEY `idx_last_settlement_at` (`last_settlement_at`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='商家账户表';
|
||||
|
||||
-- 3. 平台账户表
|
||||
CREATE TABLE IF NOT EXISTS `platform_accounts` (
|
||||
-- 3. 系统总账户表(记录整个系统的资金流入流出)
|
||||
CREATE TABLE IF NOT EXISTS `system_accounts` (
|
||||
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '账户ID',
|
||||
`account_name` VARCHAR(50) NOT NULL COMMENT '账户名称(如:主账户、备用账户)',
|
||||
`balance` DECIMAL(12,2) NOT NULL DEFAULT 0.00 COMMENT '可用余额',
|
||||
`frozen_balance` DECIMAL(12,2) NOT NULL DEFAULT 0.00 COMMENT '冻结余额(提现中)',
|
||||
`total_income` DECIMAL(12,2) NOT NULL DEFAULT 0.00 COMMENT '累计收入(订单收入)',
|
||||
`total_expense` DECIMAL(12,2) NOT NULL DEFAULT 0.00 COMMENT '累计支出(结算+返现+提现)',
|
||||
`total_order_income` DECIMAL(12,2) NOT NULL DEFAULT 0.00 COMMENT '累计订单收入',
|
||||
`total_service_fee` DECIMAL(12,2) NOT NULL DEFAULT 0.00 COMMENT '累计服务费收入',
|
||||
`total_settlement` DECIMAL(12,2) NOT NULL DEFAULT 0.00 COMMENT '累计商家结算支出',
|
||||
`total_cashback` DECIMAL(12,2) NOT NULL DEFAULT 0.00 COMMENT '累计返现支出',
|
||||
`total_withdraw` DECIMAL(12,2) NOT NULL DEFAULT 0.00 COMMENT '累计提现金额',
|
||||
`account_name` VARCHAR(50) NOT NULL COMMENT '账户名称(如:主账户)',
|
||||
`balance` DECIMAL(12,2) NOT NULL DEFAULT 0.00 COMMENT '可用余额(total_income - total_refund - total_withdrawn)',
|
||||
`total_income` DECIMAL(12,2) NOT NULL DEFAULT 0.00 COMMENT '累计收入(用户实付总额)',
|
||||
`total_refund` DECIMAL(12,2) NOT NULL DEFAULT 0.00 COMMENT '累计退款',
|
||||
`total_withdrawn` DECIMAL(12,2) NOT NULL DEFAULT 0.00 COMMENT '累计提现(所有提现)',
|
||||
`version` INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '乐观锁版本号',
|
||||
`status` ENUM('active','frozen','closed') NOT NULL DEFAULT 'active' COMMENT '账户状态',
|
||||
`created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
@@ -665,13 +660,53 @@ CREATE TABLE IF NOT EXISTS `platform_accounts` (
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uk_account_name` (`account_name`),
|
||||
KEY `idx_status` (`status`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='平台账户表';
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='系统总账户表(资金守恒验证:balance应等于所有用户账户+商家账户+平台账户余额之和)';
|
||||
|
||||
-- 4. 平台账户表(记录平台净收益)
|
||||
CREATE TABLE IF NOT EXISTS `platform_accounts` (
|
||||
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '账户ID',
|
||||
`account_name` VARCHAR(50) NOT NULL COMMENT '账户名称(如:主账户、备用账户)',
|
||||
`balance` DECIMAL(12,2) NOT NULL DEFAULT 0.00 COMMENT '可用余额(平台净收益 = total_income - total_expense)',
|
||||
`frozen_balance` DECIMAL(12,2) NOT NULL DEFAULT 0.00 COMMENT '冻结余额(提现中)',
|
||||
`total_income` DECIMAL(12,2) NOT NULL DEFAULT 0.00 COMMENT '累计收入(服务费收入)',
|
||||
`total_expense` DECIMAL(12,2) NOT NULL DEFAULT 0.00 COMMENT '累计支出(邀请返现支出)',
|
||||
`version` INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '乐观锁版本号',
|
||||
`status` ENUM('active','frozen','closed') NOT NULL DEFAULT 'active' COMMENT '账户状态',
|
||||
`created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`updated_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uk_account_name` (`account_name`),
|
||||
KEY `idx_status` (`status`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='平台账户表(平台净收益 = 服务费 - 邀请返现)';
|
||||
|
||||
-- ============================================================
|
||||
-- 第二部分:交易流水表(按角色拆分)
|
||||
-- ============================================================
|
||||
|
||||
-- 4. 用户交易流水表
|
||||
-- 4. 系统总账户交易流水表
|
||||
CREATE TABLE IF NOT EXISTS `system_transactions` (
|
||||
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '流水ID',
|
||||
`transaction_no` VARCHAR(32) NOT NULL COMMENT '交易流水号(全局唯一)',
|
||||
`account_id` BIGINT UNSIGNED NOT NULL COMMENT '系统账户ID',
|
||||
`direction` ENUM('income','expense') NOT NULL COMMENT '方向:income-收入/expense-支出',
|
||||
`amount` DECIMAL(12,2) NOT NULL COMMENT '金额(正数)',
|
||||
`balance_before` DECIMAL(12,2) NOT NULL COMMENT '交易前余额',
|
||||
`balance_after` DECIMAL(12,2) NOT NULL COMMENT '交易后余额',
|
||||
`transaction_type` VARCHAR(50) NOT NULL COMMENT '交易类型',
|
||||
`business_type` VARCHAR(50) NOT NULL COMMENT '业务类型:order_payment/refund/withdraw',
|
||||
`business_id` BIGINT UNSIGNED DEFAULT NULL COMMENT '业务ID(订单ID/退款ID/提现ID等)',
|
||||
`business_no` VARCHAR(32) DEFAULT NULL COMMENT '业务单号',
|
||||
`remark` VARCHAR(500) DEFAULT NULL COMMENT '备注',
|
||||
`created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uk_transaction_no` (`transaction_no`),
|
||||
KEY `idx_account_id` (`account_id`),
|
||||
KEY `idx_transaction_type` (`transaction_type`),
|
||||
KEY `idx_business` (`business_type`, `business_id`),
|
||||
KEY `idx_created_at` (`created_at`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='系统总账户交易流水表';
|
||||
|
||||
-- 5. 用户交易流水表
|
||||
CREATE TABLE IF NOT EXISTS `user_transactions` (
|
||||
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '流水ID',
|
||||
`transaction_no` VARCHAR(32) NOT NULL COMMENT '交易流水号(全局唯一)',
|
||||
@@ -698,7 +733,7 @@ CREATE TABLE IF NOT EXISTS `user_transactions` (
|
||||
KEY `idx_created_at` (`created_at`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户交易流水表';
|
||||
|
||||
-- 5. 商家交易流水表
|
||||
-- 6. 商家交易流水表
|
||||
CREATE TABLE IF NOT EXISTS `merchant_transactions` (
|
||||
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '流水ID',
|
||||
`transaction_no` VARCHAR(32) NOT NULL COMMENT '交易流水号(全局唯一)',
|
||||
@@ -725,7 +760,7 @@ CREATE TABLE IF NOT EXISTS `merchant_transactions` (
|
||||
KEY `idx_created_at` (`created_at`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='商家交易流水表';
|
||||
|
||||
-- 6. 平台交易流水表
|
||||
-- 7. 平台交易流水表
|
||||
CREATE TABLE IF NOT EXISTS `platform_transactions` (
|
||||
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '流水ID',
|
||||
`transaction_no` VARCHAR(32) NOT NULL COMMENT '交易流水号(全局唯一)',
|
||||
@@ -735,7 +770,7 @@ CREATE TABLE IF NOT EXISTS `platform_transactions` (
|
||||
`balance_before` DECIMAL(12,2) NOT NULL COMMENT '交易前余额',
|
||||
`balance_after` DECIMAL(12,2) NOT NULL COMMENT '交易后余额',
|
||||
`transaction_type` VARCHAR(50) NOT NULL COMMENT '交易类型',
|
||||
`business_type` VARCHAR(50) NOT NULL COMMENT '业务类型:order/settlement/cashback/withdraw/refund',
|
||||
`business_type` VARCHAR(50) NOT NULL COMMENT '业务类型:service_fee/cashback/withdraw',
|
||||
`business_id` BIGINT UNSIGNED DEFAULT NULL COMMENT '业务ID',
|
||||
`business_no` VARCHAR(32) DEFAULT NULL COMMENT '业务单号',
|
||||
`related_account_type` ENUM('user','merchant') DEFAULT NULL COMMENT '对方账户类型',
|
||||
|
||||
Reference in New Issue
Block a user