77 lines
5.2 KiB
SQL
77 lines
5.2 KiB
SQL
-- =============================================================
|
||
-- 角色额度池 + 客户信用额度有效期 改造
|
||
-- 1. customer_account 新增信用额度生效/失效日期(与临时额度口径一致,到期次日自动清零)
|
||
-- 2. customer_credit_apply 新增 approve_role_id,记录审批占用的额度池角色
|
||
-- 3. customer_credit_flow 新增 role_id,流水留痕额度池归属角色
|
||
-- 4. 新表 sys_role_credit_quota:管理员为角色设置的可分配额度总额(额度池)
|
||
-- 5. 新表 customer_credit_grant:审批增量额度的占用台账(池余额=该表remaining求和)
|
||
-- 2026-09-20
|
||
-- 说明:ALTER 语句非自动幂等,若字段/表已存在,对应语句会报 Duplicate/already exists,忽略即可
|
||
-- =============================================================
|
||
SET NAMES utf8mb4;
|
||
|
||
-- -------------------------------------------------------------
|
||
-- 1. customer_account:信用额度有效期
|
||
-- -------------------------------------------------------------
|
||
ALTER TABLE `customer_account`
|
||
ADD COLUMN `credit_effective_date` DATE DEFAULT NULL COMMENT '信用额度生效日期' AFTER `total_credit`,
|
||
ADD COLUMN `credit_expire_date` DATE DEFAULT NULL COMMENT '信用额度失效日期(空=长期;到期次日清零)' AFTER `credit_effective_date`;
|
||
|
||
-- -------------------------------------------------------------
|
||
-- 2. customer_credit_apply / customer_credit_flow:额度池归属
|
||
-- -------------------------------------------------------------
|
||
ALTER TABLE `customer_credit_apply`
|
||
ADD COLUMN `approve_role_id` BIGINT(20) DEFAULT NULL COMMENT '审批占用的额度池角色ID(NULL=超管审批不占池)' AFTER `approve_user_id`;
|
||
|
||
ALTER TABLE `customer_credit_flow`
|
||
ADD COLUMN `role_id` BIGINT(20) DEFAULT NULL COMMENT '额度池角色ID(审批调整流水留痕;NULL=超管/系统)' AFTER `operator_id`;
|
||
|
||
-- -------------------------------------------------------------
|
||
-- 3. 角色额度池
|
||
-- 一个角色一行;没有记录视为额度 0(该角色用户不能审批任何增量授信)
|
||
-- -------------------------------------------------------------
|
||
CREATE TABLE IF NOT EXISTS `sys_role_credit_quota` (
|
||
`role_id` BIGINT(20) NOT NULL COMMENT '角色ID(sys_role.role_id)',
|
||
`total_quota` DECIMAL(18,2) NOT NULL DEFAULT 0.00 COMMENT '可分配额度总额(CNY)',
|
||
`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 '备注',
|
||
PRIMARY KEY (`role_id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='角色可分配授信额度池';
|
||
|
||
-- -------------------------------------------------------------
|
||
-- 4. 额度分配台账
|
||
-- 审批通过的净增额度在此占一行(占用角色池);调减/到期按 FIFO 核销行余额。
|
||
-- 角色池已用 = SUM(remaining WHERE role_id=? AND status='0')
|
||
-- role_id 为 NULL 表示超管审批(不占池)或历史/建档直配额度。
|
||
-- -------------------------------------------------------------
|
||
CREATE TABLE IF NOT EXISTS `customer_credit_grant` (
|
||
`grant_id` BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT '台账ID',
|
||
`customer_id` BIGINT(20) NOT NULL COMMENT '客户ID',
|
||
`account_id` BIGINT(20) NOT NULL COMMENT '客户账户ID',
|
||
`role_id` BIGINT(20) DEFAULT NULL COMMENT '占用的额度池角色ID(NULL=超管/不占池)',
|
||
`approve_user_id` BIGINT(20) DEFAULT NULL COMMENT '审批人ID',
|
||
`apply_id` BIGINT(20) DEFAULT NULL COMMENT '额度申请单ID',
|
||
`flow_id` BIGINT(20) DEFAULT NULL COMMENT '额度流水ID',
|
||
`credit_type` VARCHAR(16) NOT NULL COMMENT '额度类型:CREDIT信用额度 TEMP临时额度',
|
||
`amount` DECIMAL(18,2) NOT NULL COMMENT '原始占用池金额',
|
||
`remaining` DECIMAL(18,2) NOT NULL COMMENT '仍占用池的待释放余额',
|
||
`effective_date` DATE DEFAULT NULL COMMENT '生效日期',
|
||
`expire_date` DATE DEFAULT NULL COMMENT '失效日期',
|
||
`status` CHAR(1) NOT NULL DEFAULT '0' COMMENT '状态:0占用中 1已释放',
|
||
`release_time` DATETIME 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存在 2删除)',
|
||
PRIMARY KEY (`grant_id`),
|
||
KEY `idx_role_status` (`role_id`, `status`),
|
||
KEY `idx_customer_type_status` (`customer_id`, `credit_type`, `status`),
|
||
KEY `idx_apply` (`apply_id`)
|
||
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='客户授信额度分配台账(角色池占用明细)';
|