MiniMall:銷售微服務業務和數據結構

銷售微服務主要是對商戶銷售數據和業務的管理,包括銷售付款方式管理和銷售數據錄入單管理。

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 = '銷售明細表';
——End——
更多精彩分享,可掃碼關注微信公衆號哦。

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章