423 lines
20 KiB
SQL
423 lines
20 KiB
SQL
-----------shop-user-trade 2026-08-28 12:00:00--------------
|
||
|
||
--------------------pgsql创建knapsack表语句---------------------------
|
||
|
||
-- 背包表
|
||
CREATE TABLE IF NOT EXISTS knapsack (
|
||
-- 基础字段(继承 SQLBaseCol 通用字段,与 SQLBaseDO 对齐)
|
||
id BIGINT PRIMARY KEY,
|
||
tenant_id BIGINT NOT NULL DEFAULT 0,
|
||
creator VARCHAR(64) NOT NULL,
|
||
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
updater VARCHAR(64) NOT NULL,
|
||
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
deleted_at timestamp(6),
|
||
|
||
-- 背包核心字段
|
||
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);
|
||
|
||
-- 表和字段注释
|
||
COMMENT ON TABLE knapsack IS '背包表';
|
||
COMMENT ON COLUMN knapsack.id IS '主键ID(非自增)';
|
||
COMMENT ON COLUMN knapsack.tenant_id IS '租户ID';
|
||
COMMENT ON COLUMN knapsack.creator IS '创建人';
|
||
COMMENT ON COLUMN knapsack.created_at IS '创建时间';
|
||
COMMENT ON COLUMN knapsack.updater IS '更新人';
|
||
COMMENT ON COLUMN knapsack.updated_at IS '更新时间';
|
||
COMMENT ON COLUMN knapsack.deleted_at IS '删除时间(软删)';
|
||
COMMENT ON COLUMN knapsack.user_id IS '用户ID';
|
||
COMMENT ON COLUMN knapsack.asset_id IS '资产ID';
|
||
COMMENT ON COLUMN knapsack.asset_name IS '资产名称';
|
||
COMMENT ON COLUMN knapsack.sku_id IS 'SKU ID';
|
||
COMMENT ON COLUMN knapsack.sku_name IS 'SKU名称';
|
||
COMMENT ON COLUMN knapsack.spec_values IS '规格值(JSONB)';
|
||
COMMENT ON COLUMN knapsack.image_url IS '资产图片URL';
|
||
COMMENT ON COLUMN knapsack.type IS '资产类型:physical/virtual/service';
|
||
COMMENT ON COLUMN knapsack.stock_detail_id IS '库存明细ID(明细模式)';
|
||
COMMENT ON COLUMN knapsack.batch_id IS '批次ID(批次模式)';
|
||
COMMENT ON COLUMN knapsack.batch_no IS '批次号(批次模式)';
|
||
COMMENT ON COLUMN knapsack.stock_mode IS '库存管理模式:1-明细模式,2-批次模式';
|
||
COMMENT ON COLUMN knapsack.status IS '状态:0禁用/1启用/2已使用/3已上架/4已过期';
|
||
COMMENT ON COLUMN knapsack.used_at IS '使用时间(时间戳)';
|
||
COMMENT ON COLUMN knapsack.expire_at IS '过期时间(时间戳)';
|
||
COMMENT ON COLUMN knapsack.physical_asset_config IS '实物资产配置(JSONB)';
|
||
COMMENT ON COLUMN knapsack.service_asset_config IS '服务资产配置(JSONB)';
|
||
COMMENT ON COLUMN knapsack.virtual_asset_config IS '虚拟资产配置(JSONB)';
|
||
|
||
--------------------pgsql创建knapsack表语句---------------------------
|
||
|
||
--------------------pgsql创建knapsack_log表语句---------------------------
|
||
|
||
-- 背包日志表
|
||
CREATE TABLE IF NOT EXISTS knapsack_log (
|
||
-- 基础字段(继承 SQLBaseCol 通用字段,与 SQLBaseDO 对齐)
|
||
id BIGINT PRIMARY KEY,
|
||
tenant_id BIGINT NOT NULL DEFAULT 0,
|
||
creator VARCHAR(64) NOT NULL,
|
||
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
updater VARCHAR(64) NOT NULL,
|
||
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
deleted_at timestamp(6),
|
||
|
||
-- 日志核心字段
|
||
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);
|
||
|
||
-- 表和字段注释
|
||
COMMENT ON TABLE knapsack_log IS '背包日志表';
|
||
COMMENT ON COLUMN knapsack_log.id IS '主键ID(非自增)';
|
||
COMMENT ON COLUMN knapsack_log.tenant_id IS '租户ID';
|
||
COMMENT ON COLUMN knapsack_log.creator IS '创建人';
|
||
COMMENT ON COLUMN knapsack_log.created_at IS '创建时间';
|
||
COMMENT ON COLUMN knapsack_log.updater IS '更新人';
|
||
COMMENT ON COLUMN knapsack_log.updated_at IS '更新时间';
|
||
COMMENT ON COLUMN knapsack_log.deleted_at IS '删除时间(软删)';
|
||
COMMENT ON COLUMN knapsack_log.knapsack_id IS '背包项ID';
|
||
COMMENT ON COLUMN knapsack_log.user_id IS '用户ID';
|
||
COMMENT ON COLUMN knapsack_log.action IS '操作类型';
|
||
COMMENT ON COLUMN knapsack_log.operator_id IS '操作者ID';
|
||
COMMENT ON COLUMN knapsack_log.operator_name IS '操作者名称';
|
||
COMMENT ON COLUMN knapsack_log.description IS '操作描述';
|
||
|
||
--------------------pgsql创建knapsack_log表语句---------------------------
|
||
|
||
--------------------pgsql创建market表语句---------------------------
|
||
|
||
-- 市场表
|
||
CREATE TABLE IF NOT EXISTS market (
|
||
-- 基础字段(继承 SQLBaseCol 通用字段,与 SQLBaseDO 对齐)
|
||
id BIGINT PRIMARY KEY,
|
||
tenant_id BIGINT NOT NULL DEFAULT 0,
|
||
creator VARCHAR(64) NOT NULL,
|
||
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
updater VARCHAR(64) NOT NULL,
|
||
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
deleted_at timestamp(6),
|
||
|
||
-- 市场核心字段
|
||
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);
|
||
|
||
-- 表和字段注释
|
||
COMMENT ON TABLE market IS '市场表';
|
||
COMMENT ON COLUMN market.id IS '主键ID(非自增)';
|
||
COMMENT ON COLUMN market.tenant_id IS '租户ID';
|
||
COMMENT ON COLUMN market.creator IS '创建人';
|
||
COMMENT ON COLUMN market.created_at IS '创建时间';
|
||
COMMENT ON COLUMN market.updater IS '更新人';
|
||
COMMENT ON COLUMN market.updated_at IS '更新时间';
|
||
COMMENT ON COLUMN market.deleted_at IS '删除时间(软删)';
|
||
COMMENT ON COLUMN market.knapsack_id IS '背包项ID';
|
||
COMMENT ON COLUMN market.user_id IS '卖家用户ID';
|
||
COMMENT ON COLUMN market.asset_id IS '资产ID';
|
||
COMMENT ON COLUMN market.asset_name IS '资产名称';
|
||
COMMENT ON COLUMN market.sku_id IS 'SKU ID';
|
||
COMMENT ON COLUMN market.sku_name IS 'SKU名称';
|
||
COMMENT ON COLUMN market.image_url IS '资产图片URL';
|
||
COMMENT ON COLUMN market.type IS '资产类型:physical/virtual/service';
|
||
COMMENT ON COLUMN market.stock_detail_id IS '库存明细ID(明细模式)';
|
||
COMMENT ON COLUMN market.batch_id IS '批次ID(批次模式)';
|
||
COMMENT ON COLUMN market.batch_no IS '批次号(批次模式)';
|
||
COMMENT ON COLUMN market.stock_mode IS '库存管理模式:1-明细模式,2-批次模式';
|
||
COMMENT ON COLUMN market.price IS '售价(分)';
|
||
COMMENT ON COLUMN market.original_price IS '原价(分)';
|
||
COMMENT ON COLUMN market.description IS '描述信息';
|
||
COMMENT ON COLUMN market.status IS '状态:1活跃/2已售/3下架/4过期';
|
||
COMMENT ON COLUMN market.list_expire_at IS '上架过期时间(时间戳)';
|
||
|
||
--------------------pgsql创建market表语句---------------------------
|
||
|
||
--------------------pgsql创建market_log表语句---------------------------
|
||
|
||
-- 市场日志表
|
||
CREATE TABLE IF NOT EXISTS market_log (
|
||
-- 基础字段(继承 SQLBaseCol 通用字段,与 SQLBaseDO 对齐)
|
||
id BIGINT PRIMARY KEY,
|
||
tenant_id BIGINT NOT NULL DEFAULT 0,
|
||
creator VARCHAR(64) NOT NULL,
|
||
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
updater VARCHAR(64) NOT NULL,
|
||
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
deleted_at timestamp(6),
|
||
|
||
-- 日志核心字段
|
||
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);
|
||
|
||
-- 表和字段注释
|
||
COMMENT ON TABLE market_log IS '市场日志表';
|
||
COMMENT ON COLUMN market_log.id IS '主键ID(非自增)';
|
||
COMMENT ON COLUMN market_log.tenant_id IS '租户ID';
|
||
COMMENT ON COLUMN market_log.creator IS '创建人';
|
||
COMMENT ON COLUMN market_log.created_at IS '创建时间';
|
||
COMMENT ON COLUMN market_log.updater IS '更新人';
|
||
COMMENT ON COLUMN market_log.updated_at IS '更新时间';
|
||
COMMENT ON COLUMN market_log.deleted_at IS '删除时间(软删)';
|
||
COMMENT ON COLUMN market_log.market_id IS '市场物品ID';
|
||
COMMENT ON COLUMN market_log.knapsack_id IS '背包项ID';
|
||
COMMENT ON COLUMN market_log.user_id IS '用户ID';
|
||
COMMENT ON COLUMN market_log.action IS '操作类型';
|
||
COMMENT ON COLUMN market_log.operator_id IS '操作者ID';
|
||
COMMENT ON COLUMN market_log.operator_name IS '操作者名称';
|
||
COMMENT ON COLUMN market_log.description IS '操作描述';
|
||
|
||
--------------------pgsql创建market_log表语句---------------------------
|
||
|
||
--------------------pgsql创建wallet_account表语句---------------------------
|
||
|
||
-- 钱包表
|
||
CREATE TABLE IF NOT EXISTS wallet_account (
|
||
-- 基础字段(继承 SQLBaseCol 通用字段,与 SQLBaseDO 对齐)
|
||
id BIGINT PRIMARY KEY,
|
||
tenant_id BIGINT NOT NULL DEFAULT 0,
|
||
creator VARCHAR(64) NOT NULL,
|
||
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
updater VARCHAR(64) NOT NULL,
|
||
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
deleted_at timestamp(6),
|
||
|
||
-- 钱包核心字段
|
||
user_id BIGINT NOT NULL,
|
||
user_name VARCHAR(64) NOT NULL DEFAULT '',
|
||
balance NUMERIC(15,2) NOT NULL DEFAULT 0,
|
||
currency VARCHAR(16) NOT NULL DEFAULT 'CNY',
|
||
status SMALLINT NOT NULL DEFAULT 1
|
||
);
|
||
|
||
-- 索引
|
||
CREATE UNIQUE INDEX IF NOT EXISTS uk_account_user_id ON wallet_account(user_id);
|
||
CREATE INDEX IF NOT EXISTS idx_account_user_id ON wallet_account(user_id);
|
||
CREATE INDEX IF NOT EXISTS idx_account_tenant_id ON wallet_account(tenant_id);
|
||
|
||
-- 表和字段注释
|
||
COMMENT ON TABLE wallet_account IS '钱包表';
|
||
COMMENT ON COLUMN wallet_account.id IS '主键ID(非自增)';
|
||
COMMENT ON COLUMN wallet_account.tenant_id IS '租户ID';
|
||
COMMENT ON COLUMN wallet_account.creator IS '创建人';
|
||
COMMENT ON COLUMN wallet_account.created_at IS '创建时间';
|
||
COMMENT ON COLUMN wallet_account.updater IS '更新人';
|
||
COMMENT ON COLUMN wallet_account.updated_at IS '更新时间';
|
||
COMMENT ON COLUMN wallet_account.deleted_at IS '删除时间(软删)';
|
||
COMMENT ON COLUMN wallet_account.user_id IS '用户ID(唯一)';
|
||
COMMENT ON COLUMN wallet_account.user_name IS '用户名';
|
||
COMMENT ON COLUMN wallet_account.balance IS '可用余额(元,保留2位小数),可为负=欠费';
|
||
COMMENT ON COLUMN wallet_account.currency IS '货币类型:CNY-人民币';
|
||
COMMENT ON COLUMN wallet_account.status IS '状态:1启用/0禁用/-1冻结';
|
||
|
||
--------------------pgsql创建wallet_account表语句---------------------------
|
||
|
||
--------------------pgsql创建wallet_account_log表语句---------------------------
|
||
|
||
-- 钱包日志表
|
||
CREATE TABLE IF NOT EXISTS wallet_account_log (
|
||
-- 基础字段(继承 SQLBaseCol 通用字段,与 SQLBaseDO 对齐)
|
||
id BIGINT PRIMARY KEY,
|
||
tenant_id BIGINT NOT NULL DEFAULT 0,
|
||
creator VARCHAR(64) NOT NULL,
|
||
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
updater VARCHAR(64) NOT NULL,
|
||
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
deleted_at timestamp(6),
|
||
|
||
-- 流水核心字段
|
||
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 NUMERIC(15,2) NOT NULL DEFAULT 0,
|
||
balance_before NUMERIC(15,2) NOT NULL DEFAULT 0,
|
||
balance_after NUMERIC(15,2) 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_account_log_user_id ON wallet_account_log(user_id);
|
||
CREATE INDEX IF NOT EXISTS idx_account_log_wallet_id ON wallet_account_log(wallet_id);
|
||
CREATE INDEX IF NOT EXISTS idx_account_log_order_no ON wallet_account_log(order_no);
|
||
CREATE UNIQUE INDEX IF NOT EXISTS uk_account_log_transaction ON wallet_account_log(transaction_no) WHERE transaction_no <> '';
|
||
|
||
-- 表和字段注释
|
||
COMMENT ON TABLE wallet_account_log IS '钱包日志表';
|
||
COMMENT ON COLUMN wallet_account_log.id IS '主键ID(非自增)';
|
||
COMMENT ON COLUMN wallet_account_log.tenant_id IS '租户ID';
|
||
COMMENT ON COLUMN wallet_account_log.creator IS '创建人';
|
||
COMMENT ON COLUMN wallet_account_log.created_at IS '创建时间';
|
||
COMMENT ON COLUMN wallet_account_log.updater IS '更新人';
|
||
COMMENT ON COLUMN wallet_account_log.updated_at IS '更新时间';
|
||
COMMENT ON COLUMN wallet_account_log.deleted_at IS '删除时间(软删)';
|
||
COMMENT ON COLUMN wallet_account_log.user_id IS '用户ID';
|
||
COMMENT ON COLUMN wallet_account_log.wallet_id IS '钱包ID';
|
||
COMMENT ON COLUMN wallet_account_log.order_no IS '业务单据号(计费单号/充值单号)';
|
||
COMMENT ON COLUMN wallet_account_log.transaction_no IS '账务流水号(唯一,幂等)';
|
||
COMMENT ON COLUMN wallet_account_log.type IS '账务类型:income/expense';
|
||
COMMENT ON COLUMN wallet_account_log.amount IS '本次变动金额(元,保留2位小数,正数)';
|
||
COMMENT ON COLUMN wallet_account_log.balance_before IS '可用余额变动前(元)';
|
||
COMMENT ON COLUMN wallet_account_log.balance_after IS '可用余额变动后(元)';
|
||
COMMENT ON COLUMN wallet_account_log.currency IS '货币类型';
|
||
COMMENT ON COLUMN wallet_account_log.description IS '描述';
|
||
COMMENT ON COLUMN wallet_account_log.extra_data IS '额外数据(JSONB)';
|
||
|
||
--------------------pgsql创建wallet_account_log表语句---------------------------
|
||
|
||
--------------------pgsql创建wallet_pricing_config表语句---------------------------
|
||
|
||
-- 计价配置表(费率全 DB 配置,改价/加档只改 rules,代码不写死金额)
|
||
CREATE TABLE IF NOT EXISTS wallet_pricing_config (
|
||
-- 基础字段(继承 SQLBaseCol 通用字段,与 SQLBaseDO 对齐)
|
||
id BIGINT PRIMARY KEY,
|
||
tenant_id BIGINT NOT NULL DEFAULT 0,
|
||
creator VARCHAR(64) NOT NULL,
|
||
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
updater VARCHAR(64) NOT NULL,
|
||
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
deleted_at timestamp(6),
|
||
|
||
-- 计价配置核心字段
|
||
subject_type VARCHAR(16) NOT NULL, -- workflow | model | business
|
||
subject_id VARCHAR(64) NOT NULL, -- workflow | 模型ID | 业务模块标识
|
||
rules JSONB NOT NULL DEFAULT '{}', -- 费率JSON对象(见设计§4,rules 自描述)
|
||
min_balance NUMERIC(15,2) NOT NULL DEFAULT 0,
|
||
currency VARCHAR(16) NOT NULL DEFAULT 'CNY',
|
||
enabled SMALLINT NOT NULL DEFAULT 1
|
||
);
|
||
|
||
-- 索引
|
||
CREATE UNIQUE INDEX IF NOT EXISTS uk_pricing_config_subject ON wallet_pricing_config(subject_type, subject_id);
|
||
CREATE INDEX IF NOT EXISTS idx_pricing_config_enabled ON wallet_pricing_config(enabled);
|
||
|
||
-- 表和字段注释
|
||
COMMENT ON TABLE wallet_pricing_config IS '计价配置表(计价对象固定枚举,费率全 DB 配置)';
|
||
COMMENT ON COLUMN wallet_pricing_config.id IS '主键ID(非自增)';
|
||
COMMENT ON COLUMN wallet_pricing_config.tenant_id IS '租户ID';
|
||
COMMENT ON COLUMN wallet_pricing_config.creator IS '创建人';
|
||
COMMENT ON COLUMN wallet_pricing_config.created_at IS '创建时间';
|
||
COMMENT ON COLUMN wallet_pricing_config.updater IS '更新人';
|
||
COMMENT ON COLUMN wallet_pricing_config.updated_at IS '更新时间';
|
||
COMMENT ON COLUMN wallet_pricing_config.deleted_at IS '删除时间(软删)';
|
||
COMMENT ON COLUMN wallet_pricing_config.subject_type IS '计价对象类型:workflow/model/business';
|
||
COMMENT ON COLUMN wallet_pricing_config.subject_id IS '计价对象ID(workflow/模型ID/业务模块标识)';
|
||
COMMENT ON COLUMN wallet_pricing_config.rules IS '费率JSON(workflow三模式容器/model自适应/business周期)';
|
||
COMMENT ON COLUMN wallet_pricing_config.min_balance IS '门禁:调用前可用余额须>=该值(元),0=不校验';
|
||
COMMENT ON COLUMN wallet_pricing_config.currency IS '货币类型';
|
||
COMMENT ON COLUMN wallet_pricing_config.enabled IS '1启用 0停用';
|
||
|
||
--------------------pgsql创建wallet_pricing_config表语句---------------------------
|
||
|
||
--------------------pgsql创建wallet_charge_order表语句---------------------------
|
||
|
||
-- 计费单表(一次计价调用 = 一张计费单,幂等键 subject_type + subject_id + biz_order_no)
|
||
CREATE TABLE IF NOT EXISTS wallet_charge_order (
|
||
-- 基础字段(继承 SQLBaseCol 通用字段,与 SQLBaseDO 对齐)
|
||
id BIGINT PRIMARY KEY,
|
||
tenant_id BIGINT NOT NULL DEFAULT 0,
|
||
creator VARCHAR(64) NOT NULL,
|
||
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
updater VARCHAR(64) NOT NULL,
|
||
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
deleted_at timestamp(6),
|
||
|
||
-- 计费单核心字段
|
||
subject_type VARCHAR(16) NOT NULL,
|
||
subject_id VARCHAR(64) NOT NULL,
|
||
biz_order_no VARCHAR(128) NOT NULL,
|
||
user_id BIGINT NOT NULL,
|
||
charge_mode VARCHAR(32) NOT NULL,
|
||
status SMALLINT NOT NULL DEFAULT 1,
|
||
actual_amount NUMERIC(15,2) NOT NULL DEFAULT 0,
|
||
usage JSONB NOT NULL DEFAULT '{}',
|
||
rule_snapshot JSONB NOT NULL DEFAULT '{}',
|
||
settle_time TIMESTAMP
|
||
);
|
||
|
||
-- 索引
|
||
CREATE UNIQUE INDEX IF NOT EXISTS uk_charge_order_subject ON wallet_charge_order(subject_type, subject_id, biz_order_no);
|
||
CREATE INDEX IF NOT EXISTS idx_charge_order_user_id ON wallet_charge_order(user_id);
|
||
CREATE INDEX IF NOT EXISTS idx_charge_order_status ON wallet_charge_order(status);
|
||
|
||
-- 表和字段注释
|
||
COMMENT ON TABLE wallet_charge_order IS '计费单表(一次计价调用 = 一张计费单)';
|
||
COMMENT ON COLUMN wallet_charge_order.id IS '主键ID(非自增)';
|
||
COMMENT ON COLUMN wallet_charge_order.tenant_id IS '租户ID';
|
||
COMMENT ON COLUMN wallet_charge_order.creator IS '创建人';
|
||
COMMENT ON COLUMN wallet_charge_order.created_at IS '创建时间';
|
||
COMMENT ON COLUMN wallet_charge_order.updater IS '更新人';
|
||
COMMENT ON COLUMN wallet_charge_order.updated_at IS '更新时间';
|
||
COMMENT ON COLUMN wallet_charge_order.deleted_at IS '删除时间(软删)';
|
||
COMMENT ON COLUMN wallet_charge_order.subject_type IS '计价对象类型';
|
||
COMMENT ON COLUMN wallet_charge_order.subject_id IS '计价对象ID';
|
||
COMMENT ON COLUMN wallet_charge_order.biz_order_no IS '业务单据号(幂等键,如工作流 execId)';
|
||
COMMENT ON COLUMN wallet_charge_order.user_id IS '扣费用户ID';
|
||
COMMENT ON COLUMN wallet_charge_order.charge_mode IS '计费方式(建单快照)';
|
||
COMMENT ON COLUMN wallet_charge_order.status IS '状态:1已建单 2已结算 3已失败';
|
||
COMMENT ON COLUMN wallet_charge_order.actual_amount IS '实收金额(元,保留2位小数)';
|
||
COMMENT ON COLUMN wallet_charge_order.usage IS '实际用量JSON';
|
||
COMMENT ON COLUMN wallet_charge_order.rule_snapshot IS '结算用费率快照JSON(防改价影响在途单)';
|
||
COMMENT ON COLUMN wallet_charge_order.settle_time IS '结算时间';
|
||
|
||
--------------------pgsql创建wallet_charge_order表语句--------------------------- |