閱讀只需要一分鐘,轉載請注明出處.
(未完成. v0.1.0)
api.qrder.dotnet.sdao
=============
訂單微服務 接口設計說明
-
文檔介紹###
訂單:是一個用戶產生購買商品行為的快照/定格
側重看 用戶 購買 商品 行為 快照
-
設計思路概要描述###
先用用戶主體入手,一個訂單一般默認會有一個下單的用戶,第一種是匿名用戶,第二種是注冊用戶。匿名代表輸入手機號就可以購買。這里設計的時候應該有一個用戶Id.
這里有另外的主體,用戶購買商品,商品在訂單里面通常是一個合集。它有產品的Id,名稱,價格,數量,shopId(哪個商店購買的),店
名。購買商品這個行為除了本身,怎么才能產生商品的購買行為呢?寫自己的配送信息,一個支付行為,還有一個物流。另外還有一個促銷行為(滿500-10等等)。
關注 快照 。一旦這個訂單發生了,它的所有信息都必須被記錄,而不是只保持一個關系,比如說某一款商品,我們拿到它的價格和它的名稱這些,那一旦產生訂單后,在商城里的商品是可變的,它一會調價,一會修改名稱,訂單一旦產生后就是不變的。
Order都是一個行為的快照,這個快照有另外的概念,用的什么支付,用的什么物流,用的什么促銷都是不變的。但是有幾個:是不是支付完成(不確定),物流狀態不確定,等等這些都是由狀態可修改的。促銷和商品都不能改,除非從新下單。
訂單具備狀態:
劃分狀態,最好是劃分為互斥的,原子化的東西,互不相關的東西。
下單:是否
是:存在數據庫中,默認下單狀態就是:是。不允許再修改商品,價格等等的信息了。
否:存為草稿狀態(是否存在數據庫中.前期存草稿不放到數據庫中,但是保留這個能力。)
支付:是否支付(一旦確認完成,支付完成,下單狀態才修改未是)
物流:發貨(是否) 收貨(是否)。(不用關注第三方物流的狀態)
評論
退貨:
發起退貨(是否)
接受退貨(是否)
退貨已發送(是否)
退貨已收(是否)
發票:是否已開發票(是否)
其他待定...
進過設計,一下是它的數據庫,但是總覺得有很大的瑕疵,但也說不上來,我項目是用的EF Core code firrst寫的。以下待修改。
數據庫表:Order ,一開始做的時候我只需要先著重寫 ”快照這個“
{
id:自增Id
in_trade_no:平臺內部訂單號
ProductItems: 下單商品合集(訂單(一) 對 產品(多))
//以下是收貨信息
ReceiveUserName:收貨人名稱
ReceiveUserAddressId:收貨人地址編號
ReceiveUserAddressName:收貨人地址名稱
receiveUserPhone:收貨人手機號
receiveZipCode:收貨郵政編碼
totalFee:訂單總額
comments:補充留言
//支付信息(未確定)
paymentMethodId:支付方式
//促銷信息(未確定)
//訂單具備狀態
orderStatus:下單狀態(草稿,下單)
payStatus:支付狀態(已支付,未支付)
logisticsStatus:物流狀態(發貨:未發貨,已發貨; 收貨:未收貨,已收貨)
salesReturnStatus:退貨狀態:(退貨寄送:已寄送,未寄送.退貨收取:已收取,未收取)
invoiceStatus:發票狀態:已開發票,未開發票
order_Time_Expired:訂單預支付失效時間要大于五分鐘,目前商家服務器端未設置(需要在預支付請求中設置。)
isdelete:是否刪除:1刪除,0未刪除
createuserid:創建用戶編號(誰下的訂單)
createtime: 創建時間(下單時間)
updateuserid:更新用戶編號
updatetime:更新時間
}
--商品合集:ProductItem
商品合集:ProductItem
{
id:自增Id
orderId:屬于哪個訂單
packageName:包裹名稱(可以為空)每款商品可能發不同的包裹
productName:產品名稱
shopId:商店編號
shopName:商店名稱
price:價格
quantity:產品購買數量
properties:產品屬性:食品口味:混合口味 剩余保質期:6個月以上
service:服務:7天內質量問題可退款
discounts:優惠信息:促銷價:省 4.90 元
isdelete:是否刪除:1刪除,0未刪除
createuserid:創建用戶編號
createtime: 創建時間
updateuserid:更新用戶編號
updatetime:更新時間
}
--支付方式:PaymentMethod
支付方式:PaymentMethod
{
id:自增編號
name:名稱
displayName:顯示的名稱
isdelete:是否刪除:1刪除,0未刪除
createuserid:創建用戶編號
createtime: 創建時間
updateuserid:更新用戶編號
updatetime:更新時間
}