DDD領域驅動設計-案例需求文件-Ⅱ
阿新 • • 發佈:2021-10-28
1.背景
為了更全面的說明DDD領域驅動設計相關的知識和技巧,先採用一個案例,通過案例分析,從領域建模,到系統編碼,完整的走一遍領域驅動設計流程。 本例所採用的案例為電商業務中的售後補償系統。基於DDD的模式,實現售後補償功能的設計和開發。 售後補償:使用者下單收到商品後,發現商品存在如包裝,外觀,質量等方面的瑕疵,通過補償申請介面,向電商平臺申請補償的一種業務。常見補償方案如補發紅包,代金卷,金幣,退款,重新補發問題商品等。售後補償簡易流程如下: 特別申明:本文所講案例為實際某平臺的售後補償系統,基於DDD模式重構後,已經發布上線。採用DDD領域驅動設計,對比歷史系統,在系統設計,程式碼規範性,程式碼質量,程式碼理解度方面均有本質的提升。本案例講解做了脫敏處理,簡化部分功能(實際售後補償業務偏複雜),詳情參看以下的需求說明文件。2.售後補償需求說明
- 選擇補償方案,生成售後補償單;
- 補償單審批;
- 補償單履約處理;
- 履約單處理完成,補償單完結;
- 客服人員後臺發起售後補償申請;
- 使用者基於app發起售後補償申請;
- 線下訂單,特殊補償申請;
- 基礎資訊:補償單的基礎資訊;
- 補償方案資訊:補償單到底用哪一種補償方案補償,如退款,紅包。
2.1 補償基礎資訊
欄目 | 說明 |
基礎資訊 | 欄位包括:操作人編碼,訂單號,補償原因,責任歸屬(公司原因,供應商原因,物流原因),描述,附件,補償方式(紅包,退款,代金券,補發),補償屬性(商品,非商品),理論補償金額,實際補償金額。其他非關鍵欄位。 |
校驗 |
|
業務處理 |
|
資料儲存 | 記錄補償單基礎資訊到相關的資料表。 |
2.2 補償方案
補償方案 | 欄目 | 說明 |
商品退款 | 基礎欄位 | 欄位包括:實際補償值,商品編碼,商品數量,商品理論補償值。 |
觸發條件 |
|
|
校驗 |
|
|
業務處理 | 彙總明細中的商品補償金額,記錄到補償單基礎資訊中。補償單基礎資訊的理論金額,實際補償金額為商品明細中合計資料。 | |
資料儲存 | 記錄補償策略資訊到相關資料表中。 | |
非商品 其他補償 | 基礎欄位 | 欄位包括:實際補償值,理論補償值。 |
觸發條件 |
|
|
校驗 |
|
|
資料儲存 | 記錄補償策略資訊到相關資料表中。 | |
補發補償 | 基礎欄位 | 補償商品編碼,發貨倉庫編碼,補償數量 |
觸發條件 |
|
|
校驗 |
|
|
業務處理 |
|
|
資料儲存 | 記錄補償策略資訊到相關資料表中。 |
2.3 補償單審批
- 自動審批:申請人員型別為後臺管理人員時,自動審批通過。
- 手動審批:申請人員型別為電商平臺使用者時,需相關的管理人員手動審批後,才能繼續走流程處理。
2.4 補償單其他資訊完善
- 補傳補償圖片資訊:在補償單處理過程中,系統支援使用者重新錄入補傳圖片資訊。
- 填寫備註資訊:在補償單處理過程中,支援相關的操作人員填寫備註資訊。
- 補償單終止:在補償單未發起處理或處理失敗時,支援終止補償單,作廢該筆補償申請資訊。
- 重新發起補償:補償履約處理失敗後,再次發起處理;
2.5 售後補償履約處理
- 補發處理:補償策略為補發補償時,重新補發商品,呼叫訂單中心介面,建立一個新的訂單。補發處理不能馬上獲取補發的訂單是否已經出庫了,需非同步等待訂單系統回覆資訊。
- 商品退款處理:補償模式為商品原因並退款時,呼叫退款系統,申請退款。退款是一個非同步過程,需等待退款系統回覆資訊。
- 商品其他模式退款處理:如紅包,代金券等直接呼叫使用者中心介面請求處理,能同步得到系統的處理結果。