You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
digital-rmb-backend/src/main/resources/schema.sql

172 lines
5.3 KiB
SQL

DROP TABLE IF EXISTS sys_user_role;
DROP TABLE IF EXISTS sys_role;
CREATE TABLE IF NOT EXISTS sys_user (
user_id VARCHAR(36) PRIMARY KEY,
student_id VARCHAR(255) NULL,
password VARCHAR(255) NOT NULL,
user_name VARCHAR(100) NULL,
class_id VARCHAR(36) NULL,
class_name VARCHAR(100) NULL,
phone VARCHAR(100) NULL,
school_name VARCHAR(100) NULL,
school_id VARCHAR(36) NULL,
authorize_time DATE NULL,
authorize_end_time DATE NULL,
role_id TINYINT NULL,
create_time DATETIME NULL,
is_deleted TINYINT NOT NULL DEFAULT 0,
zy_user_id VARCHAR(50) NULL,
UNIQUE KEY uk_sys_user_student_id (student_id)
);
CREATE TABLE IF NOT EXISTS platform_user_snapshot (
platform_user_id VARCHAR(36) PRIMARY KEY,
account VARCHAR(64) NOT NULL,
display_name VARCHAR(64) NOT NULL,
source_updated_at TIMESTAMP NOT NULL,
synced_at TIMESTAMP NOT NULL,
school_id VARCHAR(64) NULL,
school_name VARCHAR(128) NULL,
college_id VARCHAR(64) NULL,
college_name VARCHAR(128) NULL,
major_id VARCHAR(64) NULL,
major_name VARCHAR(128) NULL,
class_id VARCHAR(64) NULL,
class_name VARCHAR(128) NULL,
student_id VARCHAR(64) NULL
);
CREATE TABLE IF NOT EXISTS auth_login_exchange_code (
code_hash CHAR(64) PRIMARY KEY,
platform_user_id VARCHAR(36) NOT NULL,
expires_at TIMESTAMP NOT NULL,
consumed_at TIMESTAMP NULL
);
CREATE TABLE IF NOT EXISTS auth_refresh_token (
token_hash CHAR(64) PRIMARY KEY,
platform_user_id VARCHAR(36) NOT NULL,
expires_at TIMESTAMP NOT NULL,
revoked_at TIMESTAMP NULL
);
CREATE TABLE IF NOT EXISTS institution_sm2_key (
id BIGINT PRIMARY KEY,
key_id VARCHAR(64) NOT NULL,
key_name VARCHAR(64) NOT NULL,
key_owner VARCHAR(32) NOT NULL,
key_purpose VARCHAR(32) NOT NULL,
user_id VARCHAR(36) NOT NULL,
school_id BIGINT NOT NULL,
class_id BIGINT NOT NULL,
public_key VARCHAR(256) NOT NULL,
encrypted_private_key VARCHAR(512) NOT NULL,
created_at TIMESTAMP NOT NULL,
updated_at TIMESTAMP NOT NULL,
created_by VARCHAR(64) NOT NULL,
updated_by VARCHAR(64) NOT NULL,
deleted BOOLEAN NOT NULL DEFAULT FALSE
);
CREATE TABLE IF NOT EXISTS institution_sm2_key_audit (
id BIGINT PRIMARY KEY,
key_record_id BIGINT NOT NULL,
key_id VARCHAR(64) NOT NULL,
operation VARCHAR(32) NOT NULL,
user_id VARCHAR(36) NOT NULL,
school_id BIGINT NOT NULL,
class_id BIGINT NOT NULL,
operation_detail VARCHAR(512) NOT NULL,
created_at TIMESTAMP NOT NULL,
created_by VARCHAR(64) NOT NULL,
CONSTRAINT fk_institution_key_audit_key
FOREIGN KEY (key_record_id) REFERENCES institution_sm2_key(id)
);
INSERT INTO sys_user (
user_id, student_id, password, user_name, role_id, is_deleted, zy_user_id
)
VALUES (
'00000000-0000-0000-0000-000000000487',
'tzs001',
'$2a$10$ufcw5KFHtOmLzxAsV4C.MuIDOErMlw0iw5J5hc8OMzaTx0u9QYxG6',
'tzs001',
4,
0,
'487'
)
ON DUPLICATE KEY UPDATE
student_id = VALUES(student_id),
password = VALUES(password),
user_name = VALUES(user_name),
role_id = VALUES(role_id),
is_deleted = 0;
CREATE TABLE IF NOT EXISTS issuance_bank_inventory (
bank_code VARCHAR(32) PRIMARY KEY,
current_balance DECIMAL(20, 2) NOT NULL,
warning_threshold DECIMAL(20, 2) NOT NULL,
updated_at TIMESTAMP NOT NULL
);
CREATE TABLE IF NOT EXISTS issuance_request (
id CHAR(36) PRIMARY KEY,
request_no VARCHAR(64) NOT NULL UNIQUE,
bank_code VARCHAR(32) NOT NULL,
organization_id VARCHAR(64) NOT NULL,
total_amount DECIMAL(20, 2) NOT NULL,
currency VARCHAR(16) NOT NULL,
request_timestamp VARCHAR(32),
message_text TEXT,
digest CHAR(64),
signature TEXT,
signing_key_ref VARCHAR(64),
payload_json TEXT,
status VARCHAR(32) NOT NULL,
central_receive_status VARCHAR(32) NOT NULL,
central_received_at TIMESTAMP NULL,
created_at TIMESTAMP NOT NULL,
updated_at TIMESTAMP NOT NULL,
created_by VARCHAR(64) NOT NULL,
updated_by VARCHAR(64) NOT NULL,
created_by_user_id BIGINT NOT NULL,
updated_by_user_id BIGINT NOT NULL,
deleted BOOLEAN NOT NULL DEFAULT FALSE
);
CREATE TABLE IF NOT EXISTS issuance_request_denomination (
request_id CHAR(36) NOT NULL,
denomination DECIMAL(10, 2) NOT NULL,
quantity INT NOT NULL,
created_at TIMESTAMP NOT NULL,
updated_at TIMESTAMP NOT NULL,
created_by VARCHAR(64) NOT NULL,
updated_by VARCHAR(64) NOT NULL,
created_by_user_id BIGINT NOT NULL,
updated_by_user_id BIGINT NOT NULL,
PRIMARY KEY (request_id, denomination)
);
INSERT INTO issuance_bank_inventory (bank_code, current_balance, warning_threshold, updated_at)
VALUES ('BKCHCNBJ00001', 49950000.00, 50000000.00, CURRENT_TIMESTAMP)
ON DUPLICATE KEY UPDATE current_balance = VALUES(current_balance),
warning_threshold = VALUES(warning_threshold),
updated_at = CURRENT_TIMESTAMP;
INSERT INTO platform_user_snapshot (
platform_user_id, account, display_name, source_updated_at, synced_at
)
VALUES (
'00000000-0000-0000-0000-000000000487',
'tzs001',
'tzs001',
CURRENT_TIMESTAMP,
CURRENT_TIMESTAMP
)
ON DUPLICATE KEY UPDATE
account = VALUES(account),
display_name = VALUES(display_name),
source_updated_at = CURRENT_TIMESTAMP,
synced_at = CURRENT_TIMESTAMP;