feat(backend): 库存三态落库(stock/on_sale/sold)——挂售可控 + 卖光留痕
- inventories 加 status 枚举列(默认 stock,AutoMigrate 存量即全部「库存」)+ 索引 - 出库审核扣光置 sold 不再软删(留痕台账);退单恢复行置回 stock;盘亏仍软删 - 新接口 PUT /inventory/:id/status(仅收 stock/on_sale,已售行拒改,租户校验) - List 默认排除已售(显式 status=sold 才显示)+ status 多值筛选 - Summary:SKU/货值/数量排除已售,新增 sold_count - 公开店铺页/API 只列 on_sale——酒单从全量裸奔改为人工精选 - 测试:卖光置售/部分不改/退单回库/接口边界/跨租户/汇总口径 8 用例 - 设计方案 docs/design/inventory-sale-status.html + db-schema/CLAUDE.md 同步 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JJ1g8XV1YhhmHRzhwWEW7o
This commit is contained in:
@@ -414,6 +414,7 @@ CREATE TABLE IF NOT EXISTS `inventories` (
|
||||
`stock_in_item_id` BIGINT UNSIGNED DEFAULT NULL,
|
||||
`inventory_check_id` BIGINT UNSIGNED DEFAULT NULL,
|
||||
`quantity` DECIMAL(12,3) NOT NULL DEFAULT 0,
|
||||
`status` ENUM('stock','on_sale','sold') NOT NULL DEFAULT 'stock' COMMENT '库存/在售(公开)/已售(卖光留痕)',
|
||||
`product_code` VARCHAR(50) DEFAULT NULL,
|
||||
`product_name` VARCHAR(200) DEFAULT NULL,
|
||||
`series` VARCHAR(100) DEFAULT NULL,
|
||||
@@ -434,7 +435,8 @@ CREATE TABLE IF NOT EXISTS `inventories` (
|
||||
KEY `idx_shop_wh_product` (`shop_id`, `warehouse_id`, `product_id`),
|
||||
KEY `idx_stock_in_item` (`stock_in_item_id`),
|
||||
KEY `idx_inventory_check` (`inventory_check_id`),
|
||||
KEY `idx_deleted_at` (`deleted_at`)
|
||||
KEY `idx_deleted_at` (`deleted_at`),
|
||||
KEY `idx_inv_status` (`status`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='库存批次记录';
|
||||
|
||||
-- ------------------------------------------------------------
|
||||
|
||||
Reference in New Issue
Block a user