代码初始化

This commit is contained in:
2026-04-02 10:22:36 +08:00
commit 7394983236
35 changed files with 3014 additions and 0 deletions

164
init.sql Normal file
View File

@@ -0,0 +1,164 @@
-- shop_user_trade 数据库初始化脚本
-- 背包表
CREATE TABLE IF NOT EXISTS knapsack (
id BIGINT PRIMARY KEY,
tenant_id BIGINT NOT NULL DEFAULT 0,
creator VARCHAR(64) NOT NULL DEFAULT '',
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
updater VARCHAR(64) NOT NULL DEFAULT '',
updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
deleted_at TIMESTAMPTZ,
is_deleted BOOLEAN NOT NULL DEFAULT FALSE,
user_id BIGINT NOT NULL,
asset_id BIGINT NOT NULL,
asset_name VARCHAR(255) NOT NULL DEFAULT '',
sku_id BIGINT NOT NULL DEFAULT 0,
sku_name VARCHAR(255) NOT NULL DEFAULT '',
spec_values JSONB,
image_url VARCHAR(512) NOT NULL DEFAULT '',
type VARCHAR(32) NOT NULL,
stock_detail_id BIGINT NOT NULL DEFAULT 0,
batch_id BIGINT NOT NULL DEFAULT 0,
batch_no VARCHAR(64) NOT NULL DEFAULT '',
stock_mode SMALLINT NOT NULL DEFAULT 1,
status SMALLINT NOT NULL DEFAULT 1,
used_at BIGINT,
expire_at BIGINT,
physical_asset_config JSONB,
service_asset_config JSONB,
virtual_asset_config JSONB
);
CREATE INDEX IF NOT EXISTS idx_knapsack_user_id ON knapsack(user_id);
CREATE INDEX IF NOT EXISTS idx_knapsack_asset_id ON knapsack(asset_id);
CREATE INDEX IF NOT EXISTS idx_knapsack_status ON knapsack(status);
CREATE INDEX IF NOT EXISTS idx_knapsack_tenant_id ON knapsack(tenant_id);
-- 背包日志表
CREATE TABLE IF NOT EXISTS knapsack_log (
id BIGINT PRIMARY KEY,
tenant_id BIGINT NOT NULL DEFAULT 0,
creator VARCHAR(64) NOT NULL DEFAULT '',
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
updater VARCHAR(64) NOT NULL DEFAULT '',
updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
deleted_at TIMESTAMPTZ,
is_deleted BOOLEAN NOT NULL DEFAULT FALSE,
knapsack_id BIGINT NOT NULL,
user_id BIGINT NOT NULL,
action VARCHAR(32) NOT NULL,
operator_id BIGINT NOT NULL DEFAULT 0,
operator_name VARCHAR(64) NOT NULL DEFAULT '',
description TEXT NOT NULL DEFAULT ''
);
CREATE INDEX IF NOT EXISTS idx_knapsack_log_knapsack_id ON knapsack_log(knapsack_id);
-- 市场表
CREATE TABLE IF NOT EXISTS market (
id BIGINT PRIMARY KEY,
tenant_id BIGINT NOT NULL DEFAULT 0,
creator VARCHAR(64) NOT NULL DEFAULT '',
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
updater VARCHAR(64) NOT NULL DEFAULT '',
updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
deleted_at TIMESTAMPTZ,
is_deleted BOOLEAN NOT NULL DEFAULT FALSE,
knapsack_id BIGINT NOT NULL,
user_id BIGINT NOT NULL,
asset_id BIGINT NOT NULL,
asset_name VARCHAR(255) NOT NULL DEFAULT '',
sku_id BIGINT NOT NULL DEFAULT 0,
sku_name VARCHAR(255) NOT NULL DEFAULT '',
image_url VARCHAR(512) NOT NULL DEFAULT '',
type VARCHAR(32) NOT NULL,
stock_detail_id BIGINT NOT NULL DEFAULT 0,
batch_id BIGINT NOT NULL DEFAULT 0,
batch_no VARCHAR(64) NOT NULL DEFAULT '',
stock_mode SMALLINT NOT NULL DEFAULT 1,
price BIGINT NOT NULL DEFAULT 0,
original_price BIGINT NOT NULL DEFAULT 0,
description TEXT NOT NULL DEFAULT '',
status SMALLINT NOT NULL DEFAULT 1,
list_expire_at BIGINT
);
CREATE INDEX IF NOT EXISTS idx_market_user_id ON market(user_id);
CREATE INDEX IF NOT EXISTS idx_market_knapsack_id ON market(knapsack_id);
CREATE INDEX IF NOT EXISTS idx_market_status ON market(status);
CREATE INDEX IF NOT EXISTS idx_market_tenant_id ON market(tenant_id);
-- 市场日志表
CREATE TABLE IF NOT EXISTS market_log (
id BIGINT PRIMARY KEY,
tenant_id BIGINT NOT NULL DEFAULT 0,
creator VARCHAR(64) NOT NULL DEFAULT '',
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
updater VARCHAR(64) NOT NULL DEFAULT '',
updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
deleted_at TIMESTAMPTZ,
is_deleted BOOLEAN NOT NULL DEFAULT FALSE,
market_id BIGINT NOT NULL,
knapsack_id BIGINT NOT NULL,
user_id BIGINT NOT NULL,
action VARCHAR(32) NOT NULL,
operator_id BIGINT NOT NULL DEFAULT 0,
operator_name VARCHAR(64) NOT NULL DEFAULT '',
description TEXT NOT NULL DEFAULT ''
);
CREATE INDEX IF NOT EXISTS idx_market_log_market_id ON market_log(market_id);
-- 钱包表
CREATE TABLE IF NOT EXISTS wallet (
id BIGINT PRIMARY KEY,
tenant_id BIGINT NOT NULL DEFAULT 0,
creator VARCHAR(64) NOT NULL DEFAULT '',
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
updater VARCHAR(64) NOT NULL DEFAULT '',
updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
deleted_at TIMESTAMPTZ,
is_deleted BOOLEAN NOT NULL DEFAULT FALSE,
user_id BIGINT NOT NULL UNIQUE,
balance BIGINT NOT NULL DEFAULT 0,
currency VARCHAR(16) NOT NULL DEFAULT 'CNY',
status SMALLINT NOT NULL DEFAULT 1,
version BIGINT NOT NULL DEFAULT 1
);
CREATE INDEX IF NOT EXISTS idx_wallet_user_id ON wallet(user_id);
CREATE INDEX IF NOT EXISTS idx_wallet_tenant_id ON wallet(tenant_id);
-- 钱包日志表
CREATE TABLE IF NOT EXISTS wallet_log (
id BIGINT PRIMARY KEY,
tenant_id BIGINT NOT NULL DEFAULT 0,
creator VARCHAR(64) NOT NULL DEFAULT '',
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
updater VARCHAR(64) NOT NULL DEFAULT '',
updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
deleted_at TIMESTAMPTZ,
is_deleted BOOLEAN NOT NULL DEFAULT FALSE,
user_id BIGINT NOT NULL,
wallet_id BIGINT NOT NULL,
order_no VARCHAR(64) NOT NULL DEFAULT '',
transaction_no VARCHAR(64) NOT NULL DEFAULT '',
type VARCHAR(16) NOT NULL,
amount BIGINT NOT NULL DEFAULT 0,
balance_before BIGINT NOT NULL DEFAULT 0,
balance_after BIGINT NOT NULL DEFAULT 0,
currency VARCHAR(16) NOT NULL DEFAULT 'CNY',
description TEXT NOT NULL DEFAULT '',
extra_data JSONB
);
CREATE INDEX IF NOT EXISTS idx_wallet_log_user_id ON wallet_log(user_id);
CREATE INDEX IF NOT EXISTS idx_wallet_log_wallet_id ON wallet_log(wallet_id);
CREATE INDEX IF NOT EXISTS idx_wallet_log_order_no ON wallet_log(order_no);