銷售微服務主要是對商戶銷售數據和業務的管理,包括銷售付款方式管理和銷售數據錄入單管理。
1. 銷售付款方式
銷售付款方式資料主要用於記錄每筆銷售使用的付款方式是什麼,比如現金、銀行卡等。
1.1 業務功能
(1)付款方式的屬性很簡單,主要包括代碼和名稱,其中代碼全局唯一。
(2)兩種業務狀態:使用中、已停用。
(3)兩種業務操作:啓用、停用。已停用業務狀態的付款方式可以重新被啓用,已啓用業務狀態的項目可以被停用。
1.2 數據結構
CREATE TABLE `sales_paymenttype` (
`uuid` varchar(38) NOT NULL COMMENT '唯一標識',
`code` varchar(32) NOT NULL COMMENT '代碼',
`name` varchar(64) NOT NULL COMMENT '名稱',
`state` varchar(16) NOT NULL COMMENT '狀態',
`remark` varchar(1024) NULL COMMENT '說明',
PRIMARY KEY (`uuid`),
INDEX `idx_paytype_1`(`code`)
) COMMENT = '付款方式表';
2. 銷售數據錄入單
銷售數據錄入單顧名思義就是用於記錄銷售數據的,比如哪天哪個商品銷售了幾件,銷售額是多少,付款方式是什麼。
2.1 業務功能
(1)兩種業務狀態:未生效、已生效。未生效是指新建保存成功之後,還處於草稿狀態,此時錄入單可以被重複修改和刪除。而已生效是指錄入單真正生效,此時代表商品已經確認被銷售,故需要從基礎微服務的庫存模塊減去指定商品的庫存數量。這裏會涉及到分佈式事務問題。
2.2 數據結構
- 主表
CREATE TABLE `sales_input` (
`uuid` varchar(38) NOT NULL COMMENT '唯一標識',
`bill_number` varchar(32) NOT NULL COMMENT '單號',
`state` varchar(16) NOT NULL COMMENT '狀態',
`store_uuid` varchar(38) NOT NULL COMMENT '項目uuid',
`tenant_uuid` varchar(38) NOT NULL COMMENT '商戶uuid',
`contract_uuid` varchar(38) NOT NULL COMMENT '合同uuid',
`payment_type_uuid` varchar(38) NOT NULL COMMENT '付款方式uuid',
`pay_total` numeric(19, 2) NOT NULL COMMENT '付款金額',
`goods_uuids` varchar(4096) NOT NULL COMMENT '商品uuid集合',
`remark` varchar(1024) NULL COMMENT '說明',
PRIMARY KEY (`uuid`),
INDEX `idx_input_1`(`bill_number`),
INDEX `idx_input_2`(`store_uuid`)
) COMMENT = '銷售數據錄入表';
- 明細表
CREATE TABLE `sales_input_detail` (
`uuid` varchar(38) NOT NULL COMMENT '唯一標識',
`input_uuid` varchar(38) NOT NULL COMMENT '主表uuid',
`line_number` int(8) NOT NULL COMMENT '行號',
`sales_date` date NOT NULL COMMENT '銷售日期',
`goods_uuid` varchar(38) NOT NULL COMMENT '商品uuid',
`warehouse_qty` int(11) NOT NULL COMMENT '商品倉庫庫存',
`warehouse` varchar(255) NOT NULL COMMENT '倉庫',
`quantity` int(11) NOT NULL COMMENT '本次銷售數量',
`total` numeric(19, 2) NOT NULL COMMENT '銷售金額',
`remark` varchar(1024) NULL COMMENT '說明',
PRIMARY KEY (`uuid`),
INDEX `idx_inputdetail_1`(`input_uuid`)
) COMMENT = '銷售明細表';