寫在前面
最近在開發(fā)的一個項目里,客戶要求加入一個“鎖庫存”的功能。一開始還沒太在意幅骄,覺得就是鎖定和解鎖,但當做起來后本今,對流程的檢查時發(fā)現(xiàn)這里面還是有不少的漏洞拆座。然后也去網(wǎng)上找了關于庫存的一些設計的文章,發(fā)現(xiàn)這里面確實大有學問冠息,自己還是too young挪凑。
背景
這是一個出行類的項目,主要是讓用戶根據(jù)自己的出行需求訂大巴服務逛艰,這有些類似于小豬巴士躏碳,嗒嗒巴士之類的。但是這里面除了普通的用戶外散怖,還有一個角色:業(yè)務員菇绵。業(yè)務員去洽談業(yè)務的時候肄渗,希望在之前能夠將需要的大巴庫存進行鎖住,然后在談完業(yè)務的時候進行下單或是解鎖咬最。
為什么需要這個功能翎嫡?
因為客戶反饋他們的業(yè)務問題是有時候業(yè)務員在談業(yè)務之前是看到有車的,但當談完后發(fā)現(xiàn)車輛已經(jīng)沒有了永乌,所以就希望能有這么一個功能惑申。
早前已經(jīng)開發(fā)好的設計
用戶在下單頁面先選擇出行時間,然后選擇自己需要的車型和數(shù)量(因為這里的庫存跟時間掛鉤翅雏,所以要先選擇)圈驼,在添加數(shù)量的時候還會跟獲取到的庫存進行比較,避免超過庫存的數(shù)量望几,然后用戶下單碗脊,完成庫存在該時間段里的減少。
那么這里我們有幾個點
1.每次進入圖1-3的時候都是一次新的車輛庫存列表的請求橄妆。
2.在圖1-3里增加車輛的時候衙伶,如果超過了庫存,那么就會提示已達到庫存最大量了害碾。
3.選擇完車輛后回到圖1-4矢劲,然后覺得需要修改,再重新進入圖1-3的時候慌随,會保存上一次已選的車型的數(shù)量芬沉,方便用戶修改。
4.后來加了“鎖庫存”的功能后阁猜,我們在點擊保存的時候丸逸,將選好的車輛列表提交進行鎖定
5.在下單頁面里點擊關閉按鈕和刪除某一車型時對庫存進行全部解鎖或單個解鎖。
就是在這讓我看似沒問題的修改后剃袍,仔細思考才發(fā)現(xiàn)還是有漏洞的黄刚。如下:
當我們開始測試庫存很少的時候(假設為1),發(fā)現(xiàn)了一個問題民效,就是當我第二次進入車型選擇頁面的時候憔维,“五層大巴”已經(jīng)消失了,因為庫存為0就不返回數(shù)據(jù)了畏邢。所以我的“五層大巴”的記錄就在這個頁面沒有展現(xiàn)业扒,然后當我選擇其它車型并保存的時候,雖然我沒對“五層大巴”進行操作舒萎,但還是由于原先的關系程储,會被清掉,而替換成新的車輛選擇列表。
待續(xù)章鲤。致板。。