874 lines
47 KiB
SQL
874 lines
47 KiB
SQL
-- 数字债权服务系统数据库表结构
|
||
-- 创建数据库
|
||
CREATE DATABASE IF NOT EXISTS `anxin_digital_credit` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
|
||
|
||
USE `anxin_digital_credit`;
|
||
|
||
-- ===========================
|
||
-- 核心业务表 (ruoyi-credit模块)
|
||
-- ===========================
|
||
|
||
-- 1. 服务合同表
|
||
DROP TABLE IF EXISTS `dc_service_contract`;
|
||
CREATE TABLE `dc_service_contract` (
|
||
`contract_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '合同ID',
|
||
`contract_number` varchar(100) NOT NULL COMMENT '合同编号',
|
||
`security_company_id` bigint(20) NOT NULL COMMENT '安保公司ID',
|
||
`client_company_id` bigint(20) NOT NULL COMMENT '甲方单位ID',
|
||
`service_content` text COMMENT '服务内容(加密)',
|
||
`contract_amount` varchar(500) COMMENT '合同金额(加密)',
|
||
`start_date` datetime NOT NULL COMMENT '服务开始日期',
|
||
`end_date` datetime NOT NULL COMMENT '服务结束日期',
|
||
`payment_due_date` datetime NOT NULL COMMENT '付款到期日',
|
||
`contract_status` varchar(50) NOT NULL DEFAULT 'DRAFT' COMMENT '合同状态',
|
||
`blockchain_hash` varchar(255) COMMENT '区块链哈希',
|
||
`data_hash` varchar(255) COMMENT '敏感数据哈希',
|
||
`encryption_key_id` varchar(100) COMMENT '加密密钥ID',
|
||
`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 (`contract_id`),
|
||
UNIQUE KEY `uk_contract_number` (`contract_number`),
|
||
KEY `idx_security_company` (`security_company_id`),
|
||
KEY `idx_client_company` (`client_company_id`),
|
||
KEY `idx_contract_status` (`contract_status`),
|
||
KEY `idx_payment_due_date` (`payment_due_date`)
|
||
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='服务合同表';
|
||
|
||
-- 2. 数字债权凭证表
|
||
DROP TABLE IF EXISTS `dc_digital_credit`;
|
||
CREATE TABLE `dc_digital_credit` (
|
||
`credit_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '债权ID',
|
||
`credit_number` varchar(100) NOT NULL COMMENT '债权编号',
|
||
`contract_id` bigint(20) NOT NULL COMMENT '关联合同ID',
|
||
`credit_amount` varchar(500) COMMENT '债权金额(加密)',
|
||
`issue_date` datetime NOT NULL COMMENT '发行日期',
|
||
`maturity_date` datetime NOT NULL COMMENT '到期日期',
|
||
`credit_status` varchar(50) NOT NULL DEFAULT 'ACTIVE' COMMENT '债权状态',
|
||
`blockchain_hash` varchar(255) COMMENT '区块链哈希',
|
||
`digital_signature` text COMMENT '数字签名(加密)',
|
||
`encryption_key_id` varchar(100) COMMENT '加密密钥ID',
|
||
`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 (`credit_id`),
|
||
UNIQUE KEY `uk_credit_number` (`credit_number`),
|
||
KEY `idx_contract_id` (`contract_id`),
|
||
KEY `idx_credit_status` (`credit_status`),
|
||
KEY `idx_maturity_date` (`maturity_date`),
|
||
CONSTRAINT `fk_credit_contract` FOREIGN KEY (`contract_id`) REFERENCES `dc_service_contract` (`contract_id`)
|
||
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='数字债权凭证表';
|
||
|
||
-- 3. 融资申请表
|
||
DROP TABLE IF EXISTS `dc_financing_application`;
|
||
CREATE TABLE `dc_financing_application` (
|
||
`application_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '申请ID',
|
||
`application_number` varchar(100) NOT NULL COMMENT '申请编号',
|
||
`credit_id` bigint(20) NOT NULL COMMENT '债权ID',
|
||
`financial_institution_id` bigint(20) NOT NULL COMMENT '金融机构ID',
|
||
`request_amount` varchar(500) COMMENT '申请金额(加密)',
|
||
`approved_amount` varchar(500) COMMENT '批准金额(加密)',
|
||
`interest_rate` varchar(200) COMMENT '利率(加密)',
|
||
`application_status` varchar(50) NOT NULL DEFAULT 'PENDING' COMMENT '申请状态',
|
||
`application_date` datetime NOT NULL COMMENT '申请日期',
|
||
`approval_date` datetime COMMENT '审批日期',
|
||
`approval_comments` text COMMENT '审批意见(加密)',
|
||
`encryption_key_id` varchar(100) COMMENT '加密密钥ID',
|
||
`access_log` varchar(255) COMMENT '访问日志ID',
|
||
`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 (`application_id`),
|
||
UNIQUE KEY `uk_application_number` (`application_number`),
|
||
KEY `idx_credit_id` (`credit_id`),
|
||
KEY `idx_financial_institution` (`financial_institution_id`),
|
||
KEY `idx_application_status` (`application_status`),
|
||
CONSTRAINT `fk_financing_credit` FOREIGN KEY (`credit_id`) REFERENCES `dc_digital_credit` (`credit_id`)
|
||
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='融资申请表';
|
||
|
||
-- 4. 公司信息表
|
||
DROP TABLE IF EXISTS `dc_company_info`;
|
||
CREATE TABLE `dc_company_info` (
|
||
`company_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '公司ID',
|
||
`company_name` varchar(200) NOT NULL COMMENT '公司名称',
|
||
`company_type` varchar(50) NOT NULL COMMENT '公司类型',
|
||
`registration_number` varchar(100) COMMENT '注册号',
|
||
`legal_representative` varchar(100) COMMENT '法定代表人',
|
||
`contact_person` varchar(100) COMMENT '联系人',
|
||
`contact_phone` varchar(50) COMMENT '联系电话',
|
||
`contact_email` varchar(100) COMMENT '联系邮箱',
|
||
`address` varchar(500) COMMENT '地址',
|
||
`status` char(1) NOT NULL DEFAULT '0' COMMENT '状态(0正常 1停用)',
|
||
`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 (`company_id`),
|
||
KEY `idx_company_name` (`company_name`),
|
||
KEY `idx_company_type` (`company_type`)
|
||
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='公司信息表';
|
||
|
||
-- 5. 合同附件表
|
||
DROP TABLE IF EXISTS `dc_contract_attachment`;
|
||
CREATE TABLE `dc_contract_attachment` (
|
||
`attachment_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '附件ID',
|
||
`contract_id` bigint(20) NOT NULL COMMENT '合同ID',
|
||
`file_name` varchar(200) NOT NULL COMMENT '文件名',
|
||
`file_path` varchar(500) NOT NULL COMMENT '文件路径',
|
||
`file_size` bigint(20) NOT NULL COMMENT '文件大小',
|
||
`file_type` varchar(50) NOT NULL COMMENT '文件类型',
|
||
`file_hash` varchar(255) COMMENT '文件哈希',
|
||
`create_by` varchar(64) DEFAULT '' COMMENT '创建者',
|
||
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
PRIMARY KEY (`attachment_id`),
|
||
KEY `idx_contract_id` (`contract_id`),
|
||
CONSTRAINT `fk_attachment_contract` FOREIGN KEY (`contract_id`) REFERENCES `dc_service_contract` (`contract_id`)
|
||
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='合同附件表';
|
||
|
||
-- ===========================
|
||
-- 支付结算表 (ruoyi-payment模块)
|
||
-- ===========================
|
||
|
||
-- 6. 资金监管账户表
|
||
DROP TABLE IF EXISTS `dc_escrow_account`;
|
||
CREATE TABLE `dc_escrow_account` (
|
||
`account_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '账户ID',
|
||
`account_number` varchar(100) NOT NULL COMMENT '账户号码',
|
||
`application_id` bigint(20) NOT NULL COMMENT '关联融资申请ID',
|
||
`total_amount` decimal(15,2) NOT NULL DEFAULT 0.00 COMMENT '总金额',
|
||
`available_amount` decimal(15,2) NOT NULL DEFAULT 0.00 COMMENT '可用金额',
|
||
`frozen_amount` decimal(15,2) NOT NULL DEFAULT 0.00 COMMENT '冻结金额',
|
||
`account_status` varchar(50) NOT NULL DEFAULT 'ACTIVE' 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 (`account_id`),
|
||
UNIQUE KEY `uk_account_number` (`account_number`),
|
||
KEY `idx_application_id` (`application_id`),
|
||
KEY `idx_account_status` (`account_status`),
|
||
CONSTRAINT `fk_escrow_application` FOREIGN KEY (`application_id`) REFERENCES `dc_financing_application` (`application_id`)
|
||
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='资金监管账户表';
|
||
|
||
-- 7. 资金流转记录表
|
||
DROP TABLE IF EXISTS `dc_fund_transfer`;
|
||
CREATE TABLE `dc_fund_transfer` (
|
||
`transfer_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '流转ID',
|
||
`transfer_number` varchar(100) NOT NULL COMMENT '流转编号',
|
||
`from_account_id` bigint(20) COMMENT '转出账户ID',
|
||
`to_account_id` bigint(20) COMMENT '转入账户ID',
|
||
`transfer_amount` decimal(15,2) NOT NULL COMMENT '转账金额',
|
||
`transfer_type` varchar(50) NOT NULL COMMENT '转账类型',
|
||
`transfer_status` varchar(50) NOT NULL DEFAULT 'PENDING' COMMENT '转账状态',
|
||
`description` varchar(500) COMMENT '描述',
|
||
`transfer_time` datetime NOT NULL COMMENT '转账时间',
|
||
`blockchain_tx_hash` varchar(255) 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 '更新时间',
|
||
PRIMARY KEY (`transfer_id`),
|
||
UNIQUE KEY `uk_transfer_number` (`transfer_number`),
|
||
KEY `idx_from_account` (`from_account_id`),
|
||
KEY `idx_to_account` (`to_account_id`),
|
||
KEY `idx_transfer_status` (`transfer_status`),
|
||
KEY `idx_transfer_time` (`transfer_time`)
|
||
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='资金流转记录表';
|
||
|
||
-- 8. 支付记录表
|
||
DROP TABLE IF EXISTS `dc_payment_record`;
|
||
CREATE TABLE `dc_payment_record` (
|
||
`payment_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '支付ID',
|
||
`payment_number` varchar(100) NOT NULL COMMENT '支付编号',
|
||
`contract_id` bigint(20) NOT NULL COMMENT '合同ID',
|
||
`payer_id` bigint(20) NOT NULL COMMENT '付款方ID',
|
||
`payee_id` bigint(20) NOT NULL COMMENT '收款方ID',
|
||
`payment_amount` decimal(15,2) NOT NULL COMMENT '支付金额',
|
||
`payment_method` varchar(50) NOT NULL COMMENT '支付方式',
|
||
`payment_status` varchar(50) NOT NULL DEFAULT 'PENDING' COMMENT '支付状态',
|
||
`payment_time` datetime COMMENT '支付时间',
|
||
`confirmation_time` datetime 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 '更新时间',
|
||
PRIMARY KEY (`payment_id`),
|
||
UNIQUE KEY `uk_payment_number` (`payment_number`),
|
||
KEY `idx_contract_id` (`contract_id`),
|
||
KEY `idx_payment_status` (`payment_status`),
|
||
CONSTRAINT `fk_payment_contract` FOREIGN KEY (`contract_id`) REFERENCES `dc_service_contract` (`contract_id`)
|
||
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='支付记录表';
|
||
|
||
-- 9. 账户余额表
|
||
DROP TABLE IF EXISTS `dc_account_balance`;
|
||
CREATE TABLE `dc_account_balance` (
|
||
`balance_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '余额ID',
|
||
`account_id` bigint(20) NOT NULL COMMENT '账户ID',
|
||
`balance_date` date NOT NULL COMMENT '余额日期',
|
||
`opening_balance` decimal(15,2) NOT NULL DEFAULT 0.00 COMMENT '期初余额',
|
||
`closing_balance` decimal(15,2) NOT NULL DEFAULT 0.00 COMMENT '期末余额',
|
||
`total_income` decimal(15,2) NOT NULL DEFAULT 0.00 COMMENT '总收入',
|
||
`total_expense` decimal(15,2) NOT NULL DEFAULT 0.00 COMMENT '总支出',
|
||
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
PRIMARY KEY (`balance_id`),
|
||
UNIQUE KEY `uk_account_date` (`account_id`, `balance_date`),
|
||
KEY `idx_balance_date` (`balance_date`),
|
||
CONSTRAINT `fk_balance_account` FOREIGN KEY (`account_id`) REFERENCES `dc_escrow_account` (`account_id`)
|
||
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='账户余额表';
|
||
|
||
-- 10. 交易日志表
|
||
DROP TABLE IF EXISTS `dc_transaction_log`;
|
||
CREATE TABLE `dc_transaction_log` (
|
||
`log_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '日志ID',
|
||
`transaction_id` varchar(100) NOT NULL COMMENT '交易ID',
|
||
`transaction_type` varchar(50) NOT NULL COMMENT '交易类型',
|
||
`account_id` bigint(20) COMMENT '账户ID',
|
||
`amount` decimal(15,2) NOT NULL COMMENT '金额',
|
||
`balance_before` decimal(15,2) NOT NULL COMMENT '交易前余额',
|
||
`balance_after` decimal(15,2) NOT NULL COMMENT '交易后余额',
|
||
`transaction_time` datetime NOT NULL COMMENT '交易时间',
|
||
`description` varchar(500) COMMENT '描述',
|
||
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
PRIMARY KEY (`log_id`),
|
||
KEY `idx_transaction_id` (`transaction_id`),
|
||
KEY `idx_account_id` (`account_id`),
|
||
KEY `idx_transaction_time` (`transaction_time`)
|
||
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='交易日志表';
|
||
-- ===========================
|
||
-- 区块链集成表 (ruoyi-blockchain模块)
|
||
-- ===========================
|
||
|
||
-- 11. 区块链交易表
|
||
DROP TABLE IF EXISTS `dc_blockchain_transaction`;
|
||
CREATE TABLE `dc_blockchain_transaction` (
|
||
`tx_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '交易ID',
|
||
`tx_hash` varchar(255) NOT NULL COMMENT '交易哈希',
|
||
`block_number` bigint(20) COMMENT '区块号',
|
||
`block_hash` varchar(255) COMMENT '区块哈希',
|
||
`from_address` varchar(255) COMMENT '发送地址',
|
||
`to_address` varchar(255) COMMENT '接收地址',
|
||
`contract_address` varchar(255) COMMENT '合约地址',
|
||
`gas_used` bigint(20) COMMENT '消耗Gas',
|
||
`gas_price` bigint(20) COMMENT 'Gas价格',
|
||
`tx_status` varchar(50) NOT NULL DEFAULT 'PENDING' COMMENT '交易状态',
|
||
`business_type` varchar(50) NOT NULL COMMENT '业务类型',
|
||
`business_id` bigint(20) NOT NULL COMMENT '业务ID',
|
||
`data_hash` varchar(255) NOT NULL COMMENT '数据哈希',
|
||
`tx_time` datetime NOT NULL COMMENT '交易时间',
|
||
`confirmation_time` datetime COMMENT '确认时间',
|
||
`create_by` varchar(64) DEFAULT '' COMMENT '创建者',
|
||
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
`update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
PRIMARY KEY (`tx_id`),
|
||
UNIQUE KEY `uk_tx_hash` (`tx_hash`),
|
||
KEY `idx_business` (`business_type`, `business_id`),
|
||
KEY `idx_tx_status` (`tx_status`),
|
||
KEY `idx_tx_time` (`tx_time`)
|
||
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='区块链交易表';
|
||
|
||
-- 12. 智能合约表
|
||
DROP TABLE IF EXISTS `dc_smart_contract`;
|
||
CREATE TABLE `dc_smart_contract` (
|
||
`contract_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '合约ID',
|
||
`contract_name` varchar(100) NOT NULL COMMENT '合约名称',
|
||
`contract_address` varchar(255) NOT NULL COMMENT '合约地址',
|
||
`contract_abi` text COMMENT '合约ABI',
|
||
`contract_bytecode` text COMMENT '合约字节码',
|
||
`deploy_tx_hash` varchar(255) COMMENT '部署交易哈希',
|
||
`deploy_block_number` bigint(20) COMMENT '部署区块号',
|
||
`contract_version` varchar(50) NOT NULL COMMENT '合约版本',
|
||
`contract_status` varchar(50) NOT NULL DEFAULT 'ACTIVE' 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 (`contract_id`),
|
||
UNIQUE KEY `uk_contract_address` (`contract_address`),
|
||
KEY `idx_contract_name` (`contract_name`),
|
||
KEY `idx_contract_status` (`contract_status`)
|
||
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='智能合约表';
|
||
|
||
-- 13. 链上事件表
|
||
DROP TABLE IF EXISTS `dc_chain_event`;
|
||
CREATE TABLE `dc_chain_event` (
|
||
`event_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '事件ID',
|
||
`tx_hash` varchar(255) NOT NULL COMMENT '交易哈希',
|
||
`block_number` bigint(20) NOT NULL COMMENT '区块号',
|
||
`log_index` int(11) NOT NULL COMMENT '日志索引',
|
||
`contract_address` varchar(255) NOT NULL COMMENT '合约地址',
|
||
`event_name` varchar(100) NOT NULL COMMENT '事件名称',
|
||
`event_signature` varchar(255) NOT NULL COMMENT '事件签名',
|
||
`event_data` text COMMENT '事件数据',
|
||
`topics` text COMMENT '事件主题',
|
||
`event_time` datetime NOT NULL COMMENT '事件时间',
|
||
`processed` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否已处理',
|
||
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
PRIMARY KEY (`event_id`),
|
||
UNIQUE KEY `uk_event_unique` (`tx_hash`, `log_index`),
|
||
KEY `idx_contract_address` (`contract_address`),
|
||
KEY `idx_event_name` (`event_name`),
|
||
KEY `idx_processed` (`processed`),
|
||
KEY `idx_event_time` (`event_time`)
|
||
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='链上事件表';
|
||
|
||
-- 14. 哈希映射表
|
||
DROP TABLE IF EXISTS `dc_hash_mapping`;
|
||
CREATE TABLE `dc_hash_mapping` (
|
||
`mapping_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '映射ID',
|
||
`business_type` varchar(50) NOT NULL COMMENT '业务类型',
|
||
`business_id` bigint(20) NOT NULL COMMENT '业务ID',
|
||
`data_hash` varchar(255) NOT NULL COMMENT '数据哈希',
|
||
`blockchain_hash` varchar(255) COMMENT '区块链哈希',
|
||
`hash_algorithm` varchar(50) NOT NULL DEFAULT 'SHA256' COMMENT '哈希算法',
|
||
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
PRIMARY KEY (`mapping_id`),
|
||
UNIQUE KEY `uk_business_hash` (`business_type`, `business_id`),
|
||
KEY `idx_data_hash` (`data_hash`),
|
||
KEY `idx_blockchain_hash` (`blockchain_hash`)
|
||
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='哈希映射表';
|
||
|
||
-- ===========================
|
||
-- 安全管理表 (ruoyi-security模块)
|
||
-- ===========================
|
||
|
||
-- 15. 审计日志表
|
||
DROP TABLE IF EXISTS `dc_audit_log`;
|
||
CREATE TABLE `dc_audit_log` (
|
||
`log_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '日志ID',
|
||
`user_id` bigint(20) NOT NULL COMMENT '用户ID',
|
||
`user_name` varchar(50) NOT NULL COMMENT '用户名',
|
||
`operation_type` varchar(50) NOT NULL COMMENT '操作类型',
|
||
`resource_type` varchar(50) NOT NULL COMMENT '资源类型',
|
||
`resource_id` varchar(100) COMMENT '资源ID',
|
||
`operation_desc` varchar(500) COMMENT '操作描述',
|
||
`request_method` varchar(10) COMMENT '请求方法',
|
||
`request_url` varchar(500) COMMENT '请求URL',
|
||
`request_ip` varchar(50) COMMENT '请求IP',
|
||
`user_agent` varchar(500) COMMENT '用户代理',
|
||
`operation_result` varchar(50) NOT NULL COMMENT '操作结果',
|
||
`error_message` text COMMENT '错误信息',
|
||
`operation_time` datetime NOT NULL COMMENT '操作时间',
|
||
`cost_time` bigint(20) COMMENT '耗时(毫秒)',
|
||
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
PRIMARY KEY (`log_id`),
|
||
KEY `idx_user_id` (`user_id`),
|
||
KEY `idx_operation_type` (`operation_type`),
|
||
KEY `idx_resource_type` (`resource_type`),
|
||
KEY `idx_operation_time` (`operation_time`),
|
||
KEY `idx_request_ip` (`request_ip`)
|
||
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='审计日志表';
|
||
|
||
-- 16. 安全事件表
|
||
DROP TABLE IF EXISTS `dc_security_event`;
|
||
CREATE TABLE `dc_security_event` (
|
||
`event_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '事件ID',
|
||
`event_type` varchar(50) NOT NULL COMMENT '事件类型',
|
||
`event_level` varchar(20) NOT NULL COMMENT '事件级别',
|
||
`event_source` varchar(100) NOT NULL COMMENT '事件源',
|
||
`event_title` varchar(200) NOT NULL COMMENT '事件标题',
|
||
`event_desc` text COMMENT '事件描述',
|
||
`user_id` bigint(20) COMMENT '用户ID',
|
||
`user_name` varchar(50) COMMENT '用户名',
|
||
`source_ip` varchar(50) COMMENT '源IP',
|
||
`target_resource` varchar(200) COMMENT '目标资源',
|
||
`event_data` text COMMENT '事件数据',
|
||
`event_status` varchar(50) NOT NULL DEFAULT 'OPEN' COMMENT '事件状态',
|
||
`handled_by` varchar(50) COMMENT '处理人',
|
||
`handled_time` datetime COMMENT '处理时间',
|
||
`event_time` datetime NOT NULL COMMENT '事件时间',
|
||
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
PRIMARY KEY (`event_id`),
|
||
KEY `idx_event_type` (`event_type`),
|
||
KEY `idx_event_level` (`event_level`),
|
||
KEY `idx_event_status` (`event_status`),
|
||
KEY `idx_event_time` (`event_time`),
|
||
KEY `idx_source_ip` (`source_ip`)
|
||
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='安全事件表';
|
||
|
||
-- 17. 加密密钥表
|
||
DROP TABLE IF EXISTS `dc_encryption_key`;
|
||
CREATE TABLE `dc_encryption_key` (
|
||
`key_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '密钥ID',
|
||
`key_name` varchar(100) NOT NULL COMMENT '密钥名称',
|
||
`key_alias` varchar(100) NOT NULL COMMENT '密钥别名',
|
||
`key_type` varchar(50) NOT NULL COMMENT '密钥类型',
|
||
`algorithm` varchar(50) NOT NULL COMMENT '加密算法',
|
||
`key_length` int(11) NOT NULL COMMENT '密钥长度',
|
||
`key_data` text COMMENT '密钥数据(加密存储)',
|
||
`key_status` varchar(50) NOT NULL DEFAULT 'ACTIVE' COMMENT '密钥状态',
|
||
`expire_time` datetime COMMENT '过期时间',
|
||
`rotation_time` datetime COMMENT '轮换时间',
|
||
`usage_count` bigint(20) 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 '更新时间',
|
||
PRIMARY KEY (`key_id`),
|
||
UNIQUE KEY `uk_key_alias` (`key_alias`),
|
||
KEY `idx_key_type` (`key_type`),
|
||
KEY `idx_key_status` (`key_status`),
|
||
KEY `idx_expire_time` (`expire_time`)
|
||
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='加密密钥表';
|
||
|
||
-- 18. 多因素认证令牌表
|
||
DROP TABLE IF EXISTS `dc_mfa_token`;
|
||
CREATE TABLE `dc_mfa_token` (
|
||
`token_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '令牌ID',
|
||
`user_id` bigint(20) NOT NULL COMMENT '用户ID',
|
||
`token_type` varchar(50) NOT NULL COMMENT '令牌类型',
|
||
`token_value` varchar(200) NOT NULL COMMENT '令牌值',
|
||
`secret_key` varchar(200) COMMENT '密钥',
|
||
`token_status` varchar(50) NOT NULL DEFAULT 'ACTIVE' COMMENT '令牌状态',
|
||
`expire_time` datetime NOT NULL COMMENT '过期时间',
|
||
`used_time` datetime COMMENT '使用时间',
|
||
`verify_count` int(11) NOT NULL DEFAULT 0 COMMENT '验证次数',
|
||
`max_verify_count` int(11) NOT NULL DEFAULT 3 COMMENT '最大验证次数',
|
||
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
PRIMARY KEY (`token_id`),
|
||
KEY `idx_user_id` (`user_id`),
|
||
KEY `idx_token_type` (`token_type`),
|
||
KEY `idx_token_status` (`token_status`),
|
||
KEY `idx_expire_time` (`expire_time`)
|
||
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='多因素认证令牌表';
|
||
|
||
-- 19. 访问控制表
|
||
DROP TABLE IF EXISTS `dc_access_control`;
|
||
CREATE TABLE `dc_access_control` (
|
||
`control_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '控制ID',
|
||
`user_id` bigint(20) NOT NULL COMMENT '用户ID',
|
||
`resource_type` varchar(50) NOT NULL COMMENT '资源类型',
|
||
`resource_id` varchar(100) COMMENT '资源ID',
|
||
`permission_type` varchar(50) NOT NULL COMMENT '权限类型',
|
||
`access_level` varchar(50) NOT NULL COMMENT '访问级别',
|
||
`field_permissions` text COMMENT '字段权限配置',
|
||
`ip_whitelist` text COMMENT 'IP白名单',
|
||
`time_restrictions` text COMMENT '时间限制',
|
||
`access_status` varchar(50) NOT NULL DEFAULT 'ACTIVE' COMMENT '访问状态',
|
||
`effective_time` datetime COMMENT '生效时间',
|
||
`expire_time` datetime 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 '更新时间',
|
||
PRIMARY KEY (`control_id`),
|
||
KEY `idx_user_id` (`user_id`),
|
||
KEY `idx_resource` (`resource_type`, `resource_id`),
|
||
KEY `idx_access_status` (`access_status`)
|
||
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='访问控制表';
|
||
-- ===========================
|
||
-- 通知服务表 (ruoyi-notification模块)
|
||
-- ===========================
|
||
|
||
-- 20. 通知日志表
|
||
DROP TABLE IF EXISTS `dc_notification_log`;
|
||
CREATE TABLE `dc_notification_log` (
|
||
`log_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '日志ID',
|
||
`notification_id` varchar(100) NOT NULL COMMENT '通知ID',
|
||
`template_id` bigint(20) COMMENT '模板ID',
|
||
`recipient_type` varchar(50) NOT NULL COMMENT '接收者类型',
|
||
`recipient_id` varchar(100) NOT NULL COMMENT '接收者ID',
|
||
`recipient_address` varchar(200) NOT NULL COMMENT '接收地址',
|
||
`notification_type` varchar(50) NOT NULL COMMENT '通知类型',
|
||
`notification_channel` varchar(50) NOT NULL COMMENT '通知渠道',
|
||
`subject` varchar(200) COMMENT '主题',
|
||
`content` text NOT NULL COMMENT '内容',
|
||
`priority` varchar(20) NOT NULL DEFAULT 'NORMAL' COMMENT '优先级',
|
||
`send_status` varchar(50) NOT NULL DEFAULT 'PENDING' COMMENT '发送状态',
|
||
`send_time` datetime COMMENT '发送时间',
|
||
`delivery_time` datetime COMMENT '投递时间',
|
||
`retry_count` int(11) NOT NULL DEFAULT 0 COMMENT '重试次数',
|
||
`max_retry_count` int(11) NOT NULL DEFAULT 3 COMMENT '最大重试次数',
|
||
`error_message` text COMMENT '错误信息',
|
||
`business_type` varchar(50) COMMENT '业务类型',
|
||
`business_id` varchar(100) COMMENT '业务ID',
|
||
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
PRIMARY KEY (`log_id`),
|
||
UNIQUE KEY `uk_notification_id` (`notification_id`),
|
||
KEY `idx_recipient` (`recipient_type`, `recipient_id`),
|
||
KEY `idx_send_status` (`send_status`),
|
||
KEY `idx_notification_type` (`notification_type`),
|
||
KEY `idx_send_time` (`send_time`),
|
||
KEY `idx_business` (`business_type`, `business_id`)
|
||
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='通知日志表';
|
||
|
||
-- 21. 消息模板表
|
||
DROP TABLE IF EXISTS `dc_message_template`;
|
||
CREATE TABLE `dc_message_template` (
|
||
`template_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '模板ID',
|
||
`template_name` varchar(100) NOT NULL COMMENT '模板名称',
|
||
`template_code` varchar(100) NOT NULL COMMENT '模板编码',
|
||
`template_type` varchar(50) NOT NULL COMMENT '模板类型',
|
||
`notification_channel` varchar(50) NOT NULL COMMENT '通知渠道',
|
||
`subject_template` varchar(200) COMMENT '主题模板',
|
||
`content_template` text NOT NULL COMMENT '内容模板',
|
||
`template_variables` text COMMENT '模板变量',
|
||
`template_status` varchar(50) NOT NULL DEFAULT 'ACTIVE' 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 (`template_id`),
|
||
UNIQUE KEY `uk_template_code` (`template_code`),
|
||
KEY `idx_template_type` (`template_type`),
|
||
KEY `idx_notification_channel` (`notification_channel`),
|
||
KEY `idx_template_status` (`template_status`)
|
||
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='消息模板表';
|
||
|
||
-- 22. 定时任务表
|
||
DROP TABLE IF EXISTS `dc_scheduled_task`;
|
||
CREATE TABLE `dc_scheduled_task` (
|
||
`task_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '任务ID',
|
||
`task_name` varchar(100) NOT NULL COMMENT '任务名称',
|
||
`task_group` varchar(50) NOT NULL COMMENT '任务组',
|
||
`task_type` varchar(50) NOT NULL COMMENT '任务类型',
|
||
`cron_expression` varchar(100) COMMENT 'Cron表达式',
|
||
`trigger_time` datetime COMMENT '触发时间',
|
||
`task_class` varchar(200) COMMENT '任务类',
|
||
`task_method` varchar(100) COMMENT '任务方法',
|
||
`task_params` text COMMENT '任务参数',
|
||
`task_status` varchar(50) NOT NULL DEFAULT 'ACTIVE' COMMENT '任务状态',
|
||
`last_run_time` datetime COMMENT '上次运行时间',
|
||
`next_run_time` datetime COMMENT '下次运行时间',
|
||
`run_count` bigint(20) NOT NULL DEFAULT 0 COMMENT '运行次数',
|
||
`success_count` bigint(20) NOT NULL DEFAULT 0 COMMENT '成功次数',
|
||
`fail_count` bigint(20) 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 (`task_id`),
|
||
UNIQUE KEY `uk_task_name_group` (`task_name`, `task_group`),
|
||
KEY `idx_task_type` (`task_type`),
|
||
KEY `idx_task_status` (`task_status`),
|
||
KEY `idx_next_run_time` (`next_run_time`)
|
||
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='定时任务表';
|
||
|
||
-- 23. 投递状态表
|
||
DROP TABLE IF EXISTS `dc_delivery_status`;
|
||
CREATE TABLE `dc_delivery_status` (
|
||
`status_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '状态ID',
|
||
`notification_id` varchar(100) NOT NULL COMMENT '通知ID',
|
||
`delivery_channel` varchar(50) NOT NULL COMMENT '投递渠道',
|
||
`delivery_status` varchar(50) NOT NULL COMMENT '投递状态',
|
||
`delivery_time` datetime COMMENT '投递时间',
|
||
`read_time` datetime COMMENT '阅读时间',
|
||
`response_time` datetime COMMENT '响应时间',
|
||
`delivery_result` text COMMENT '投递结果',
|
||
`error_code` varchar(50) COMMENT '错误码',
|
||
`error_message` text COMMENT '错误信息',
|
||
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
PRIMARY KEY (`status_id`),
|
||
KEY `idx_notification_id` (`notification_id`),
|
||
KEY `idx_delivery_channel` (`delivery_channel`),
|
||
KEY `idx_delivery_status` (`delivery_status`),
|
||
KEY `idx_delivery_time` (`delivery_time`)
|
||
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='投递状态表';
|
||
|
||
-- ===========================
|
||
-- 报表分析表 (ruoyi-analytics模块)
|
||
-- ===========================
|
||
|
||
-- 24. 报表配置表
|
||
DROP TABLE IF EXISTS `dc_report_config`;
|
||
CREATE TABLE `dc_report_config` (
|
||
`config_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '配置ID',
|
||
`report_name` varchar(100) NOT NULL COMMENT '报表名称',
|
||
`report_code` varchar(100) NOT NULL COMMENT '报表编码',
|
||
`report_type` varchar(50) NOT NULL COMMENT '报表类型',
|
||
`data_source` varchar(100) NOT NULL COMMENT '数据源',
|
||
`query_sql` text COMMENT '查询SQL',
|
||
`report_template` text COMMENT '报表模板',
|
||
`output_format` varchar(50) NOT NULL DEFAULT 'EXCEL' COMMENT '输出格式',
|
||
`schedule_type` varchar(50) COMMENT '调度类型',
|
||
`cron_expression` varchar(100) COMMENT 'Cron表达式',
|
||
`report_status` varchar(50) NOT NULL DEFAULT 'ACTIVE' 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 (`config_id`),
|
||
UNIQUE KEY `uk_report_code` (`report_code`),
|
||
KEY `idx_report_type` (`report_type`),
|
||
KEY `idx_report_status` (`report_status`)
|
||
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='报表配置表';
|
||
|
||
-- 25. 报表实例表
|
||
DROP TABLE IF EXISTS `dc_report_instance`;
|
||
CREATE TABLE `dc_report_instance` (
|
||
`instance_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '实例ID',
|
||
`config_id` bigint(20) NOT NULL COMMENT '配置ID',
|
||
`report_name` varchar(100) NOT NULL COMMENT '报表名称',
|
||
`report_params` text COMMENT '报表参数',
|
||
`generate_status` varchar(50) NOT NULL DEFAULT 'PENDING' COMMENT '生成状态',
|
||
`file_path` varchar(500) COMMENT '文件路径',
|
||
`file_size` bigint(20) COMMENT '文件大小',
|
||
`record_count` bigint(20) COMMENT '记录数量',
|
||
`start_time` datetime COMMENT '开始时间',
|
||
`end_time` datetime COMMENT '结束时间',
|
||
`cost_time` bigint(20) COMMENT '耗时(毫秒)',
|
||
`error_message` text COMMENT '错误信息',
|
||
`create_by` varchar(64) DEFAULT '' COMMENT '创建者',
|
||
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
PRIMARY KEY (`instance_id`),
|
||
KEY `idx_config_id` (`config_id`),
|
||
KEY `idx_generate_status` (`generate_status`),
|
||
KEY `idx_create_time` (`create_time`),
|
||
CONSTRAINT `fk_instance_config` FOREIGN KEY (`config_id`) REFERENCES `dc_report_config` (`config_id`)
|
||
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='报表实例表';
|
||
|
||
-- 26. 仪表板组件表
|
||
DROP TABLE IF EXISTS `dc_dashboard_widget`;
|
||
CREATE TABLE `dc_dashboard_widget` (
|
||
`widget_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '组件ID',
|
||
`widget_name` varchar(100) NOT NULL COMMENT '组件名称',
|
||
`widget_type` varchar(50) NOT NULL COMMENT '组件类型',
|
||
`widget_title` varchar(200) NOT NULL COMMENT '组件标题',
|
||
`data_source` varchar(100) NOT NULL COMMENT '数据源',
|
||
`query_config` text COMMENT '查询配置',
|
||
`chart_config` text COMMENT '图表配置',
|
||
`refresh_interval` int(11) NOT NULL DEFAULT 300 COMMENT '刷新间隔(秒)',
|
||
`widget_order` int(11) NOT NULL DEFAULT 0 COMMENT '显示顺序',
|
||
`widget_status` varchar(50) NOT NULL DEFAULT 'ACTIVE' 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 (`widget_id`),
|
||
KEY `idx_widget_type` (`widget_type`),
|
||
KEY `idx_widget_status` (`widget_status`),
|
||
KEY `idx_widget_order` (`widget_order`)
|
||
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='仪表板组件表';
|
||
|
||
-- 27. 统计缓存表
|
||
DROP TABLE IF EXISTS `dc_statistics_cache`;
|
||
CREATE TABLE `dc_statistics_cache` (
|
||
`cache_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '缓存ID',
|
||
`cache_key` varchar(200) NOT NULL COMMENT '缓存键',
|
||
`cache_type` varchar(50) NOT NULL COMMENT '缓存类型',
|
||
`cache_data` text NOT NULL COMMENT '缓存数据',
|
||
`data_version` varchar(50) COMMENT '数据版本',
|
||
`expire_time` datetime NOT NULL COMMENT '过期时间',
|
||
`hit_count` bigint(20) NOT NULL DEFAULT 0 COMMENT '命中次数',
|
||
`last_hit_time` datetime COMMENT '最后命中时间',
|
||
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
`update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
PRIMARY KEY (`cache_id`),
|
||
UNIQUE KEY `uk_cache_key` (`cache_key`),
|
||
KEY `idx_cache_type` (`cache_type`),
|
||
KEY `idx_expire_time` (`expire_time`)
|
||
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='统计缓存表';
|
||
-- ===========================
|
||
-- 工作流管理表 (ruoyi-workflow模块)
|
||
-- ===========================
|
||
|
||
-- 28. 工作流定义表
|
||
DROP TABLE IF EXISTS `dc_workflow_definition`;
|
||
CREATE TABLE `dc_workflow_definition` (
|
||
`definition_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '定义ID',
|
||
`workflow_key` varchar(100) NOT NULL COMMENT '工作流键',
|
||
`workflow_name` varchar(100) NOT NULL COMMENT '工作流名称',
|
||
`workflow_version` int(11) NOT NULL DEFAULT 1 COMMENT '版本号',
|
||
`workflow_category` varchar(50) COMMENT '工作流分类',
|
||
`process_definition` text NOT NULL COMMENT '流程定义',
|
||
`deployment_id` varchar(100) COMMENT '部署ID',
|
||
`workflow_status` varchar(50) NOT NULL DEFAULT 'ACTIVE' 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 (`definition_id`),
|
||
UNIQUE KEY `uk_workflow_key_version` (`workflow_key`, `workflow_version`),
|
||
KEY `idx_workflow_category` (`workflow_category`),
|
||
KEY `idx_workflow_status` (`workflow_status`)
|
||
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='工作流定义表';
|
||
|
||
-- 29. 工作流实例表
|
||
DROP TABLE IF EXISTS `dc_workflow_instance`;
|
||
CREATE TABLE `dc_workflow_instance` (
|
||
`instance_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '实例ID',
|
||
`process_instance_id` varchar(100) NOT NULL COMMENT '流程实例ID',
|
||
`definition_id` bigint(20) NOT NULL COMMENT '定义ID',
|
||
`workflow_key` varchar(100) NOT NULL COMMENT '工作流键',
|
||
`business_key` varchar(100) COMMENT '业务键',
|
||
`business_type` varchar(50) COMMENT '业务类型',
|
||
`business_id` varchar(100) COMMENT '业务ID',
|
||
`instance_name` varchar(200) COMMENT '实例名称',
|
||
`current_activity` varchar(100) COMMENT '当前活动',
|
||
`instance_status` varchar(50) NOT NULL DEFAULT 'RUNNING' COMMENT '实例状态',
|
||
`start_time` datetime NOT NULL COMMENT '开始时间',
|
||
`end_time` datetime COMMENT '结束时间',
|
||
`duration` bigint(20) COMMENT '持续时间(毫秒)',
|
||
`start_user_id` bigint(20) COMMENT '启动用户ID',
|
||
`start_user_name` varchar(50) COMMENT '启动用户名',
|
||
`variables` text COMMENT '流程变量',
|
||
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
`update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
PRIMARY KEY (`instance_id`),
|
||
UNIQUE KEY `uk_process_instance_id` (`process_instance_id`),
|
||
KEY `idx_definition_id` (`definition_id`),
|
||
KEY `idx_business_key` (`business_key`),
|
||
KEY `idx_instance_status` (`instance_status`),
|
||
KEY `idx_start_time` (`start_time`),
|
||
CONSTRAINT `fk_instance_definition` FOREIGN KEY (`definition_id`) REFERENCES `dc_workflow_definition` (`definition_id`)
|
||
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='工作流实例表';
|
||
|
||
-- 30. 工作流任务表
|
||
DROP TABLE IF EXISTS `dc_workflow_task`;
|
||
CREATE TABLE `dc_workflow_task` (
|
||
`task_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '任务ID',
|
||
`task_def_key` varchar(100) NOT NULL COMMENT '任务定义键',
|
||
`task_name` varchar(200) NOT NULL COMMENT '任务名称',
|
||
`instance_id` bigint(20) NOT NULL COMMENT '实例ID',
|
||
`process_instance_id` varchar(100) NOT NULL COMMENT '流程实例ID',
|
||
`execution_id` varchar(100) COMMENT '执行ID',
|
||
`assignee` varchar(50) COMMENT '办理人',
|
||
`candidate_users` varchar(500) COMMENT '候选用户',
|
||
`candidate_groups` varchar(500) COMMENT '候选组',
|
||
`task_status` varchar(50) NOT NULL DEFAULT 'CREATED' COMMENT '任务状态',
|
||
`priority` int(11) NOT NULL DEFAULT 50 COMMENT '优先级',
|
||
`due_date` datetime COMMENT '到期时间',
|
||
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
`claim_time` datetime COMMENT '签收时间',
|
||
`complete_time` datetime COMMENT '完成时间',
|
||
`duration` bigint(20) COMMENT '持续时间(毫秒)',
|
||
`form_key` varchar(200) COMMENT '表单键',
|
||
`task_variables` text COMMENT '任务变量',
|
||
`comments` text COMMENT '任务备注',
|
||
PRIMARY KEY (`task_id`),
|
||
KEY `idx_instance_id` (`instance_id`),
|
||
KEY `idx_process_instance_id` (`process_instance_id`),
|
||
KEY `idx_assignee` (`assignee`),
|
||
KEY `idx_task_status` (`task_status`),
|
||
KEY `idx_due_date` (`due_date`),
|
||
CONSTRAINT `fk_task_instance` FOREIGN KEY (`instance_id`) REFERENCES `dc_workflow_instance` (`instance_id`)
|
||
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='工作流任务表';
|
||
|
||
-- 31. 审批记录表
|
||
DROP TABLE IF EXISTS `dc_approval_record`;
|
||
CREATE TABLE `dc_approval_record` (
|
||
`record_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '记录ID',
|
||
`task_id` bigint(20) NOT NULL COMMENT '任务ID',
|
||
`instance_id` bigint(20) NOT NULL COMMENT '实例ID',
|
||
`approver_id` bigint(20) NOT NULL COMMENT '审批人ID',
|
||
`approver_name` varchar(50) NOT NULL COMMENT '审批人姓名',
|
||
`approval_action` varchar(50) NOT NULL COMMENT '审批动作',
|
||
`approval_result` varchar(50) NOT NULL COMMENT '审批结果',
|
||
`approval_comments` text COMMENT '审批意见',
|
||
`approval_time` datetime NOT NULL COMMENT '审批时间',
|
||
`next_assignee` varchar(50) COMMENT '下一办理人',
|
||
`attachment_ids` varchar(500) COMMENT '附件ID列表',
|
||
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
PRIMARY KEY (`record_id`),
|
||
KEY `idx_task_id` (`task_id`),
|
||
KEY `idx_instance_id` (`instance_id`),
|
||
KEY `idx_approver_id` (`approver_id`),
|
||
KEY `idx_approval_time` (`approval_time`),
|
||
CONSTRAINT `fk_approval_task` FOREIGN KEY (`task_id`) REFERENCES `dc_workflow_task` (`task_id`),
|
||
CONSTRAINT `fk_approval_instance` FOREIGN KEY (`instance_id`) REFERENCES `dc_workflow_instance` (`instance_id`)
|
||
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='审批记录表';
|
||
|
||
-- ===========================
|
||
-- 集成适配表 (ruoyi-integration模块)
|
||
-- ===========================
|
||
|
||
-- 32. 外部系统表
|
||
DROP TABLE IF EXISTS `dc_external_system`;
|
||
CREATE TABLE `dc_external_system` (
|
||
`system_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '系统ID',
|
||
`system_name` varchar(100) NOT NULL COMMENT '系统名称',
|
||
`system_code` varchar(100) NOT NULL COMMENT '系统编码',
|
||
`system_type` varchar(50) NOT NULL COMMENT '系统类型',
|
||
`system_url` varchar(500) COMMENT '系统URL',
|
||
`api_version` varchar(50) COMMENT 'API版本',
|
||
`auth_type` varchar(50) COMMENT '认证类型',
|
||
`auth_config` text COMMENT '认证配置',
|
||
`connection_config` text COMMENT '连接配置',
|
||
`system_status` varchar(50) NOT NULL DEFAULT 'ACTIVE' COMMENT '系统状态',
|
||
`health_check_url` varchar(500) COMMENT '健康检查URL',
|
||
`last_health_check` datetime 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 (`system_id`),
|
||
UNIQUE KEY `uk_system_code` (`system_code`),
|
||
KEY `idx_system_type` (`system_type`),
|
||
KEY `idx_system_status` (`system_status`)
|
||
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='外部系统表';
|
||
|
||
-- ===========================
|
||
-- 系统监控表 (ruoyi-monitor模块)
|
||
-- ===========================
|
||
|
||
-- 33. 系统监控表
|
||
DROP TABLE IF EXISTS `dc_system_monitor`;
|
||
CREATE TABLE `dc_system_monitor` (
|
||
`monitor_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '监控ID',
|
||
`monitor_time` datetime NOT NULL COMMENT '监控时间',
|
||
`cpu_usage` decimal(5,2) COMMENT 'CPU使用率',
|
||
`memory_usage` decimal(5,2) COMMENT '内存使用率',
|
||
`disk_usage` decimal(5,2) COMMENT '磁盘使用率',
|
||
`network_in` bigint(20) COMMENT '网络入流量',
|
||
`network_out` bigint(20) COMMENT '网络出流量',
|
||
`active_connections` int(11) COMMENT '活跃连接数',
|
||
`thread_count` int(11) COMMENT '线程数',
|
||
`heap_memory_used` bigint(20) COMMENT '堆内存使用量',
|
||
`heap_memory_max` bigint(20) COMMENT '堆内存最大值',
|
||
`gc_count` bigint(20) COMMENT 'GC次数',
|
||
`gc_time` bigint(20) COMMENT 'GC时间',
|
||
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
PRIMARY KEY (`monitor_id`),
|
||
KEY `idx_monitor_time` (`monitor_time`)
|
||
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='系统监控表';
|
||
|
||
-- ===========================
|
||
-- 索引优化
|
||
-- ===========================
|
||
|
||
-- 为经常查询的字段添加复合索引
|
||
CREATE INDEX `idx_contract_company_status` ON `dc_service_contract` (`security_company_id`, `client_company_id`, `contract_status`);
|
||
CREATE INDEX `idx_credit_contract_status` ON `dc_digital_credit` (`contract_id`, `credit_status`);
|
||
CREATE INDEX `idx_financing_credit_status` ON `dc_financing_application` (`credit_id`, `application_status`);
|
||
CREATE INDEX `idx_payment_contract_status` ON `dc_payment_record` (`contract_id`, `payment_status`);
|
||
CREATE INDEX `idx_audit_user_time` ON `dc_audit_log` (`user_id`, `operation_time`);
|
||
CREATE INDEX `idx_notification_recipient_status` ON `dc_notification_log` (`recipient_type`, `recipient_id`, `send_status`);
|
||
|
||
-- ===========================
|
||
-- 初始化数据
|
||
-- ===========================
|
||
|
||
-- 插入系统配置数据
|
||
INSERT INTO `dc_company_info` (`company_id`, `company_name`, `company_type`, `registration_number`, `legal_representative`, `contact_person`, `contact_phone`, `contact_email`, `address`, `status`, `create_by`, `remark`) VALUES
|
||
(1, '安信数字债权服务平台', 'PLATFORM', 'REG001', '张三', '李四', '13800138000', 'admin@anxin.com', '北京市朝阳区', '0', 'admin', '平台运营方'),
|
||
(2, '示例安保公司', 'SECURITY', 'REG002', '王五', '赵六', '13800138001', 'security@example.com', '上海市浦东新区', '0', 'admin', '示例安保服务提供商'),
|
||
(3, '示例客户公司', 'CLIENT', 'REG003', '孙七', '周八', '13800138002', 'client@example.com', '广州市天河区', '0', 'admin', '示例客户单位'),
|
||
(4, '示例金融机构', 'FINANCIAL', 'REG004', '吴九', '郑十', '13800138003', 'finance@example.com', '深圳市南山区', '0', 'admin', '示例金融服务机构');
|
||
|
||
-- 插入消息模板数据
|
||
INSERT INTO `dc_message_template` (`template_name`, `template_code`, `template_type`, `notification_channel`, `subject_template`, `content_template`, `template_variables`, `template_status`, `create_by`, `remark`) VALUES
|
||
('合同确认通知', 'CONTRACT_CONFIRM', 'BUSINESS', 'EMAIL', '合同确认通知 - ${contractNumber}', '尊敬的${recipientName},您的合同${contractNumber}已确认,请及时查看。', 'contractNumber,recipientName', 'ACTIVE', 'admin', '合同确认业务通知模板'),
|
||
('付款提醒通知', 'PAYMENT_REMINDER', 'BUSINESS', 'SMS', '付款提醒', '您的合同${contractNumber}将于${dueDate}到期,请及时付款。', 'contractNumber,dueDate', 'ACTIVE', 'admin', '付款提醒业务通知模板'),
|
||
('融资审批通知', 'FINANCING_APPROVAL', 'BUSINESS', 'EMAIL', '融资审批结果通知', '您的融资申请${applicationNumber}审批结果:${result},详情请登录系统查看。', 'applicationNumber,result', 'ACTIVE', 'admin', '融资审批结果通知模板');
|
||
|
||
-- 插入加密密钥数据(示例,实际部署时需要生成真实密钥)
|
||
INSERT INTO `dc_encryption_key` (`key_name`, `key_alias`, `key_type`, `algorithm`, `key_length`, `key_status`, `create_by`, `remark`) VALUES
|
||
('主密钥', 'MASTER_KEY_001', 'MASTER', 'AES-256-GCM', 256, 'ACTIVE', 'admin', '系统主加密密钥'),
|
||
('数据加密密钥', 'DATA_KEY_001', 'DATA', 'AES-256-GCM', 256, 'ACTIVE', 'admin', '敏感数据加密密钥');
|
||
|
||
-- 提交事务
|
||
COMMIT; |