feat: 补充平台端库存管理模块

补齐平台端库存余额、流水、初始化和手工调整能力,并将快递发货接入库存扣减闭环,方便运营侧统一查账与审计。

Made-with: Cursor
This commit is contained in:
AriadenCaseblg
2026-04-19 23:43:46 +08:00
parent b097837aa3
commit 005bd968df
32 changed files with 61113 additions and 59368 deletions

View File

@@ -142,9 +142,36 @@ INSERT INTO `eb_system_role_menu` (`rid`, `menu_id`) VALUES (1, 1356);
-- ---------------------------------------------------------------------------
UPDATE `eb_system_role`
SET `rules` = CONCAT(`rules`, ',1320,1321,1322,1323,1324,1325,1326,1327,1328,1329,1330,1331,1332,1333,1334,1340,1341,1342,1343,1344,1345,1346,1347,1350,1351,1352,1353,1354,1355,1356')
SET `rules` = CONCAT(`rules`, ',1320,1321,1322,1323,1324,1325,1326,1327,1328,1329,1330,1331,1332,1333,1334,1340,1341,1342,1343,1344,1345,1346,1347,1350,1351,1352,1353,1354,1355,1356,1360,1361,1362,1363,1364,1365')
WHERE `id` = 1;
-- ============================================================================
-- 平台端库存管理菜单
-- 挂载到平台"商品"目录(pid=2)下
-- ============================================================================
INSERT INTO `eb_system_menu` (`id`, `pid`, `name`, `icon`, `perms`, `component`, `menu_type`, `sort`, `is_show`, `is_delte`, `type`)
VALUES (1360, 2, '库存管理', '', '', '/product/inventory', 'C', 98, 1, 0, 3);
INSERT INTO `eb_system_menu` (`id`, `pid`, `name`, `icon`, `perms`, `component`, `menu_type`, `sort`, `is_show`, `is_delte`, `type`)
VALUES (1361, 2, '库存流水', '', '', '/product/inventory/record', 'C', 97, 1, 0, 3);
INSERT INTO `eb_system_menu` (`id`, `pid`, `name`, `icon`, `perms`, `component`, `menu_type`, `sort`, `is_show`, `is_delte`, `type`)
VALUES (1362, 1360, '库存分页列表', '', 'platform:inventory:page:list', '', 'A', 1, 1, 0, 3);
INSERT INTO `eb_system_menu` (`id`, `pid`, `name`, `icon`, `perms`, `component`, `menu_type`, `sort`, `is_show`, `is_delte`, `type`)
VALUES (1363, 1361, '库存流水分页列表', '', 'platform:inventory:record:page:list', '', 'A', 1, 1, 0, 3);
INSERT INTO `eb_system_menu` (`id`, `pid`, `name`, `icon`, `perms`, `component`, `menu_type`, `sort`, `is_show`, `is_delte`, `type`)
VALUES (1364, 1360, '库存调整', '', 'platform:inventory:adjust', '', 'A', 1, 1, 0, 3);
INSERT INTO `eb_system_menu` (`id`, `pid`, `name`, `icon`, `perms`, `component`, `menu_type`, `sort`, `is_show`, `is_delte`, `type`)
VALUES (1365, 1360, '库存初始化', '', 'platform:inventory:init', '', 'A', 1, 1, 0, 3);
INSERT INTO `eb_system_role_menu` (`rid`, `menu_id`) VALUES (1, 1360);
INSERT INTO `eb_system_role_menu` (`rid`, `menu_id`) VALUES (1, 1361);
INSERT INTO `eb_system_role_menu` (`rid`, `menu_id`) VALUES (1, 1362);
INSERT INTO `eb_system_role_menu` (`rid`, `menu_id`) VALUES (1, 1363);
INSERT INTO `eb_system_role_menu` (`rid`, `menu_id`) VALUES (1, 1364);
INSERT INTO `eb_system_role_menu` (`rid`, `menu_id`) VALUES (1, 1365);
-- ---------------------------------------------------------------------------
-- 完成说明

View File

@@ -4429,9 +4429,6 @@ CREATE TABLE `wa_users` (
KEY `email` (`salt`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=93111 DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC COMMENT='用户表';
-- ----------------------------
-- Table structure for wa_withdraw
-- ----------------------------
DROP TABLE IF EXISTS `wa_withdraw`;
CREATE TABLE `wa_withdraw` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'ID',
@@ -4451,4 +4448,61 @@ CREATE TABLE `wa_withdraw` (
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=4948 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='提现表';
-- ----------------------------
-- Table structure for eb_product_inventory
-- ----------------------------
DROP TABLE IF EXISTS `eb_product_inventory`;
CREATE TABLE `eb_product_inventory` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`mer_id` int(11) NOT NULL DEFAULT '0' COMMENT '商户ID',
`product_id` int(11) NOT NULL DEFAULT '0' COMMENT '商品ID',
`attr_value_id` int(11) NOT NULL DEFAULT '0' COMMENT '商品规格值ID单规格时为0',
`sku` varchar(128) NOT NULL DEFAULT '' COMMENT '商品sku',
`product_name` varchar(255) NOT NULL DEFAULT '' COMMENT '商品名称快照',
`image` varchar(255) NOT NULL DEFAULT '' COMMENT '商品图片快照',
`stock` int(11) NOT NULL DEFAULT '0' COMMENT '可用库存',
`alert_stock` int(11) NOT NULL DEFAULT '0' COMMENT '预警库存',
`last_operate_time` timestamp NULL DEFAULT NULL COMMENT '最后操作时间',
`is_del` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否删除',
`create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE KEY `uq_mer_product_attr` (`mer_id`,`product_id`,`attr_value_id`) USING BTREE,
KEY `idx_mer_stock` (`mer_id`,`stock`) USING BTREE,
KEY `idx_product` (`product_id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC COMMENT='商品库存余额表';
-- ----------------------------
-- Table structure for eb_product_inventory_record
-- ----------------------------
DROP TABLE IF EXISTS `eb_product_inventory_record`;
CREATE TABLE `eb_product_inventory_record` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`inventory_id` int(11) NOT NULL DEFAULT '0' COMMENT '库存ID',
`mer_id` int(11) NOT NULL DEFAULT '0' COMMENT '商户ID',
`product_id` int(11) NOT NULL DEFAULT '0' COMMENT '商品ID',
`attr_value_id` int(11) NOT NULL DEFAULT '0' COMMENT '商品规格值ID',
`sku` varchar(128) NOT NULL DEFAULT '' COMMENT '商品sku',
`product_name` varchar(255) NOT NULL DEFAULT '' COMMENT '商品名称快照',
`pm` tinyint(4) NOT NULL DEFAULT '1' COMMENT '方向1入库 0出库',
`number` int(11) NOT NULL DEFAULT '0' COMMENT '变动数量',
`before_stock` int(11) NOT NULL DEFAULT '0' COMMENT '变动前库存',
`after_stock` int(11) NOT NULL DEFAULT '0' COMMENT '变动后库存',
`cost_price` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '成本价',
`source_type` varchar(64) NOT NULL DEFAULT '' COMMENT '来源类型',
`source_no` varchar(64) NOT NULL DEFAULT '' COMMENT '来源单号',
`source_id` int(11) NOT NULL DEFAULT '0' COMMENT '来源ID',
`source_detail_id` int(11) NOT NULL DEFAULT '0' COMMENT '来源详情ID',
`operate_admin_id` int(11) NOT NULL DEFAULT '0' COMMENT '操作人ID',
`operate_admin_type` int(11) NOT NULL DEFAULT '0' COMMENT '操作人类型',
`operate_admin_name` varchar(64) NOT NULL DEFAULT '' COMMENT '操作人名称',
`remark` varchar(255) NOT NULL DEFAULT '' COMMENT '备注',
`create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
PRIMARY KEY (`id`) USING BTREE,
KEY `idx_inventory` (`inventory_id`) USING BTREE,
KEY `idx_mer_product` (`mer_id`,`product_id`) USING BTREE,
KEY `idx_source_no` (`source_no`) USING BTREE,
KEY `idx_source_type` (`source_type`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC COMMENT='商品库存流水表';
SET FOREIGN_KEY_CHECKS = 1;

File diff suppressed because one or more lines are too long