销售微服务主要是对商户销售数据和业务的管理,包括销售付款方式管理和销售数据录入单管理。
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 = '销售明细表';
网友评论