91 lines
5.7 KiB
SQL
91 lines
5.7 KiB
SQL
DROP TABLE IF EXISTS `customer_account`;
|
||
CREATE TABLE `customer_account` (
|
||
`id` BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||
`customer_id` BIGINT(20) NOT NULL COMMENT '客户ID',
|
||
`currency` CHAR(3) NOT NULL DEFAULT 'CNY' COMMENT '币种,如 CNY/USD',
|
||
`balance` DECIMAL(18,2) NOT NULL DEFAULT 0.00 COMMENT '账户余额',
|
||
`frozen_balance` DECIMAL(18,2) NOT NULL DEFAULT 0.00 COMMENT '冻结余额',
|
||
`total_credit` DECIMAL(18,2) NOT NULL DEFAULT 0.00 COMMENT '总额度',
|
||
`extra_credit` DECIMAL(18,2) NOT NULL DEFAULT 0.00 COMMENT '额外额度',
|
||
`used_credit` DECIMAL(18,2) NOT NULL DEFAULT 0.00 COMMENT '已用额度',
|
||
`tax` DECIMAL(18,2) NOT NULL DEFAULT 0.00 COMMENT '税金',
|
||
`version` INT(11) NOT NULL DEFAULT 0 COMMENT '乐观锁版本号',
|
||
`create_by` VARCHAR(64) DEFAULT '' COMMENT '创建者',
|
||
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
`update_by` VARCHAR(64) DEFAULT '' COMMENT '更新者',
|
||
`update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
`remark` VARCHAR(500) DEFAULT NULL COMMENT '备注',
|
||
`del_flag` CHAR(1) DEFAULT '0' COMMENT '删除标志(0代表存在 1代表删除)',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_customer_currency` (`customer_id`, `currency`)
|
||
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='客户余额表';
|
||
|
||
|
||
DROP TABLE IF EXISTS `customer_receipt`;
|
||
CREATE TABLE `customer_receipt` (
|
||
`id` BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||
`receipt_no` VARCHAR(64) NOT NULL COMMENT '收款单号',
|
||
`customer_id` BIGINT(20) NOT NULL COMMENT '客户ID',
|
||
`account_id` BIGINT(20) DEFAULT NULL COMMENT '客户账户ID',
|
||
`receipt_type` VARCHAR(32) NOT NULL DEFAULT 'PREPAY' COMMENT '收款类型:PREPAY预充值/REPAY还款核销/MIXED混合',
|
||
`amount` DECIMAL(18,2) NOT NULL COMMENT '收款金额',
|
||
`allocated_amount` DECIMAL(18,2) NOT NULL DEFAULT 0.00 COMMENT '已核销金额',
|
||
`unallocated_amount` DECIMAL(18,2) NOT NULL DEFAULT 0.00 COMMENT '待核销金额',
|
||
`currency` CHAR(3) NOT NULL DEFAULT 'CNY' COMMENT '币种,如 CNY/USD',
|
||
`pay_method` VARCHAR(32) DEFAULT NULL COMMENT '收款方式:BANK_TRANSFER/ALIPAY/WECHAT/CASH/OTHER',
|
||
`bank_transaction_no` VARCHAR(64) DEFAULT NULL COMMENT '银行流水号/支付平台流水号',
|
||
`received_at` DATETIME NOT NULL COMMENT '收款日期',
|
||
`status` VARCHAR(16) NOT NULL DEFAULT 'PENDING' COMMENT '状态:PENDING待确认/CONFIRMED已确认/CANCELLED已取消',
|
||
`confirmed_at` DATETIME DEFAULT NULL COMMENT '确认时间',
|
||
`confirmed_by` BIGINT(20) DEFAULT NULL COMMENT '确认人',
|
||
`invoice_status` VARCHAR(16) NOT NULL DEFAULT 'NONE' COMMENT '开票状态:NONE未开/PART部分/ALL全部',
|
||
`version` INT(11) NOT NULL DEFAULT 0 COMMENT '乐观锁版本号',
|
||
`create_by` VARCHAR(64) DEFAULT '' COMMENT '创建者',
|
||
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
`update_by` VARCHAR(64) DEFAULT '' COMMENT '更新者',
|
||
`update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
`remark` VARCHAR(500) DEFAULT NULL COMMENT '备注',
|
||
`del_flag` CHAR(1) DEFAULT '0' COMMENT '删除标志(0代表存在 1代表删除)',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_receipt_no` (`receipt_no`),
|
||
KEY `idx_customer_time` (`customer_id`, `received_at`),
|
||
KEY `idx_account` (`account_id`),
|
||
KEY `idx_status` (`status`),
|
||
KEY `idx_bank_transaction_no` (`bank_transaction_no`)
|
||
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='客户收款表';
|
||
|
||
|
||
CREATE TABLE `customer_balance_flow` (
|
||
`id` BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||
`flow_no` VARCHAR(64) NOT NULL COMMENT '流水号',
|
||
`customer_id` BIGINT(20) NOT NULL COMMENT '客户ID',
|
||
`account_id` BIGINT(20) NOT NULL COMMENT '客户账户ID',
|
||
`currency` CHAR(3) NOT NULL DEFAULT 'CNY' COMMENT '币种',
|
||
`biz_type` VARCHAR(32) NOT NULL COMMENT '业务类型:RECEIPT收款/BILL_PAY账单支付/REFUND退款/ADJUST手工调整/FREEZE冻结/UNFREEZE解冻',
|
||
`biz_id` BIGINT(20) DEFAULT NULL COMMENT '关联业务ID,如收款单ID、账单ID',
|
||
`biz_no` VARCHAR(64) DEFAULT NULL COMMENT '关联业务单号',
|
||
`direction` TINYINT(1) NOT NULL COMMENT '变动方向:1增加,-1减少',
|
||
`amount` DECIMAL(18,2) NOT NULL COMMENT '变动金额',
|
||
`before_balance` DECIMAL(18,2) NOT NULL COMMENT '变动前余额',
|
||
`after_balance` DECIMAL(18,2) NOT NULL COMMENT '变动后余额',
|
||
`before_frozen_balance` DECIMAL(18,2) NOT NULL DEFAULT 0.00 COMMENT '变动前冻结余额',
|
||
`after_frozen_balance` DECIMAL(18,2) NOT NULL DEFAULT 0.00 COMMENT '变动后冻结余额',
|
||
`operator_id` BIGINT(20) DEFAULT NULL COMMENT '操作人',
|
||
`create_by` VARCHAR(64) DEFAULT '' COMMENT '创建者',
|
||
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
`update_by` VARCHAR(64) DEFAULT '' COMMENT '更新者',
|
||
`update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
`remark` VARCHAR(500) DEFAULT NULL COMMENT '备注',
|
||
`del_flag` CHAR(1) DEFAULT '0' COMMENT '删除标志(0代表存在 1代表删除)',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_flow_no` (`flow_no`),
|
||
KEY `idx_customer_time` (`customer_id`, `create_time`),
|
||
KEY `idx_account_time` (`account_id`, `create_time`),
|
||
KEY `idx_biz` (`biz_type`, `biz_id`)
|
||
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='余额流水表';
|
||
|
||
-- 收款单附件复用客户附件表:attachment_type='3'(其他),biz_id 关联 customer_receipt.id
|
||
ALTER TABLE `bms_customer_attachment`
|
||
ADD COLUMN `biz_id` BIGINT(20) DEFAULT NULL COMMENT '关联业务ID(如收款单ID,attachment_type=3时使用)' AFTER `attachment_type`,
|
||
ADD KEY `idx_biz_id` (`biz_id`);
|