refactor: 重构资产实体和DTO结构类型

将gjson.Json类型替换为具体的结构体和map类型,修正DAO层链式调用,启用SKU元数据校验逻辑
This commit is contained in:
2026-03-22 20:08:32 +08:00
parent 34a1ba79b6
commit 829dc07747
36 changed files with 932 additions and 793 deletions

View File

@@ -123,4 +123,73 @@ COMMENT ON COLUMN assets_asset.virtual_asset_config IS '虚拟资产配置(JSONB
COMMENT ON COLUMN assets_asset.metadata IS '动态元数据(JSONB)';
COMMENT ON COLUMN assets_asset.tenant_module_type IS '租户模块类型';
--------------------pgsql创建assets_asset表语句---------------------------
--------------------pgsql创建assets_asset表语句---------------------------
--------------------pgsql创建assets_asset_sku表语句---------------------------
-- 资产SKU表
CREATE TABLE IF NOT EXISTS assets_asset_sku (
-- 基础字段(继承 SQLBaseDO 通用字段)
id BIGINT PRIMARY KEY, -- 主键ID非自增
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),
-- SKU核心字段
asset_id BIGINT NOT NULL, -- 关联资产ID
asset_name VARCHAR(128) NOT NULL, -- 资产名称
sku_name VARCHAR(128) NOT NULL, -- SKU名称
image_url VARCHAR(256) DEFAULT '', -- SKU主图
spec_values JSONB NOT NULL DEFAULT '[]'::JSONB, -- 规格值:{"颜色":"红色","尺寸":"L"}
price INT NOT NULL DEFAULT 0, -- 价格(分为单位)
unlimited_stock BOOLEAN NOT NULL DEFAULT FALSE, -- 是否无库存限制
stock INT NOT NULL DEFAULT 0, -- 库存数量
specs_count INT NOT NULL DEFAULT 0, -- 规格数量
specs_unit JSONB DEFAULT '{}'::JSONB, -- 规格单位 SpecsUnitKeyValue
sort INT NOT NULL DEFAULT 0, -- 排序
status SMALLINT NOT NULL DEFAULT 1, -- 资产状态1启用/0停用
stock_mode SMALLINT NOT NULL DEFAULT 1, -- 库存管理模式1-明细模式 2-批次模式
category_id BIGINT NOT NULL DEFAULT 0, -- 分类ID
category_path VARCHAR(512) DEFAULT '', -- 分类路径
tenant_module_type VARCHAR(32) DEFAULT '', -- 租户模块类型
-- 外键约束(可选,根据业务需要启用)
CONSTRAINT fk_sku_asset_id FOREIGN KEY (asset_id) REFERENCES assets_asset(id) ON DELETE CASCADE,
CONSTRAINT fk_sku_category_id FOREIGN KEY (category_id) REFERENCES assets_category(id) ON DELETE SET DEFAULT
);
-- 索引(根据查询场景优化)
CREATE INDEX idx_sku_asset_id ON assets_asset_sku(asset_id);
CREATE INDEX idx_sku_category_id ON assets_asset_sku(category_id);
CREATE INDEX idx_sku_status ON assets_asset_sku(status);
CREATE INDEX idx_sku_stock_mode ON assets_asset_sku(stock_mode);
CREATE INDEX idx_sku_deleted_at ON assets_asset_sku(deleted_at); -- 软删字段索引
CREATE INDEX idx_sku_tenant_module_type ON assets_asset_sku(tenant_module_type);
-- 表和字段注释
COMMENT ON TABLE assets_asset_sku IS '资产SKU表';
COMMENT ON COLUMN assets_asset_sku.id IS '主键ID非自增';
COMMENT ON COLUMN assets_asset_sku.creator IS '创建人';
COMMENT ON COLUMN assets_asset_sku.created_at IS '创建时间';
COMMENT ON COLUMN assets_asset_sku.updater IS '更新人';
COMMENT ON COLUMN assets_asset_sku.updated_at IS '更新时间';
COMMENT ON COLUMN assets_asset_sku.deleted_at IS '删除时间(软删)';
COMMENT ON COLUMN assets_asset_sku.asset_id IS '关联资产ID';
COMMENT ON COLUMN assets_asset_sku.asset_name IS '资产名称';
COMMENT ON COLUMN assets_asset_sku.sku_name IS 'SKU名称';
COMMENT ON COLUMN assets_asset_sku.image_url IS 'SKU主图';
COMMENT ON COLUMN assets_asset_sku.spec_values IS '规格值:{"颜色":"红色","尺寸":"L","时长":"1个月","平台":"抖音"}';
COMMENT ON COLUMN assets_asset_sku.price IS '价格(分为单位)';
COMMENT ON COLUMN assets_asset_sku.unlimited_stock IS '是否无库存限制';
COMMENT ON COLUMN assets_asset_sku.stock IS '库存数量';
COMMENT ON COLUMN assets_asset_sku.specs_count IS '规格数量';
COMMENT ON COLUMN assets_asset_sku.specs_unit IS '规格单位 SpecsUnitKeyValue';
COMMENT ON COLUMN assets_asset_sku.sort IS '排序';
COMMENT ON COLUMN assets_asset_sku.status IS '状态active-启用/inactive-未启用/disabled-禁用';
COMMENT ON COLUMN assets_asset_sku.stock_mode IS '库存管理模式1-明细模式 2-批次模式';
COMMENT ON COLUMN assets_asset_sku.category_id IS '分类ID';
COMMENT ON COLUMN assets_asset_sku.category_path IS '分类路径';
COMMENT ON COLUMN assets_asset_sku.tenant_module_type IS '租户模块类型';
--------------------pgsql创建assets_sku表语句---------------------------