防疫物資預(yù)約的后臺(tái)邏輯
目前,各地陸續(xù)上線了防疫物資預(yù)約產(chǎn)品,用來(lái)同意調(diào)度防疫物資。本文按照時(shí)間維度,結(jié)合業(yè)務(wù)流程,對(duì)防疫物資預(yù)約的后臺(tái)邏輯、數(shù)據(jù)處理進(jìn)行說(shuō)明。
當(dāng)前,新型肺炎疫情嚴(yán)重,防疫物資緊缺。各地陸續(xù)上線防疫物資預(yù)約的產(chǎn)品,統(tǒng)一調(diào)配防疫物資,如廣州的穗康小程序等。
本人有幸參與某地市的預(yù)約防疫物資產(chǎn)品的項(xiàng)目。因?yàn)轫?xiàng)目時(shí)間緊、任務(wù)重、壓力大,所以該產(chǎn)品以簡(jiǎn)單可行為主,主要功能是預(yù)約防疫物資和查詢預(yù)約結(jié)果(原型設(shè)計(jì)部分相對(duì)簡(jiǎn)單,沒(méi)什么可說(shuō)的)。
整個(gè)預(yù)約業(yè)務(wù)可分為三部分,分別為主辦方創(chuàng)建活動(dòng)、用戶預(yù)約及查詢、藥店發(fā)放物資。本文按照時(shí)間維度,結(jié)合業(yè)務(wù)流程,對(duì)防疫物資預(yù)約的后臺(tái)邏輯、數(shù)據(jù)處理進(jìn)行說(shuō)明。
1. 第1天
1.1 主辦方填寫活動(dòng)創(chuàng)建表,系統(tǒng)導(dǎo)入該表
活動(dòng)創(chuàng)建表的信息包括:活動(dòng)名稱、主辦單位、領(lǐng)取時(shí)間、領(lǐng)取點(diǎn)、物資名稱、總物資數(shù)量、每人領(lǐng)取的數(shù)量。
為方便藥店管理,同一時(shí)間同一個(gè)領(lǐng)取點(diǎn)只派發(fā)一種或者一組物資(例如2個(gè)口罩+1瓶酒精)。同時(shí),同一時(shí)間同一個(gè)領(lǐng)取點(diǎn)只有一個(gè)活動(dòng),暫不考慮多個(gè)活動(dòng)(涉及同一時(shí)間段藥店對(duì)多個(gè)活動(dòng)物資的管理問(wèn)題)。
1.2 系統(tǒng)生成剩余物資表
剩余物資表的信息包括:領(lǐng)取時(shí)間、領(lǐng)取地點(diǎn)、物資名稱、剩余數(shù)量。
把活動(dòng)創(chuàng)建表的總物資數(shù)量均分到每個(gè)時(shí)間段。如果均分到每個(gè)時(shí)間段的數(shù)量不為整,則向下取整,最后一個(gè)時(shí)間段加上各時(shí)間段的小數(shù)部分,使得所以時(shí)間段的物資數(shù)之和等于總物資數(shù)。
舉個(gè)例子,對(duì)于以下這條記錄的生成的剩余物資表,應(yīng)該是下圖。
所以,活動(dòng)開(kāi)始前的總剩余物資表為:
第2天可預(yù)約的物資為:
需要注意的是,可能存在前一天沒(méi)預(yù)約滿,還有剩余物資可用的情況。所以,需先把前一天剩余的物資導(dǎo)入當(dāng)天的物資中(下文2.2節(jié)有詳細(xì)說(shuō)明)。
1.3 8:00-11:00,開(kāi)放預(yù)約,用戶預(yù)約防疫物資
當(dāng)前防疫物資緊缺,所以一個(gè)活動(dòng)一個(gè)用戶只能領(lǐng)取一次。因此,用戶選擇第2天預(yù)約物資后,系統(tǒng)先查詢用戶以前是否預(yù)約成功過(guò),沒(méi)有才緩存用戶預(yù)約記錄。
緩存的信息包括:姓名、身份證號(hào)、手機(jī)號(hào)、預(yù)約物資、預(yù)約數(shù)量、預(yù)約時(shí)間、預(yù)約地點(diǎn)。
按時(shí)間排序如下:
如果需要查看實(shí)時(shí)的剩余物資情況,則系統(tǒng)還需要實(shí)時(shí)更新剩余物資表。同時(shí),當(dāng)剩余物資數(shù)量<每人領(lǐng)取的數(shù)量時(shí),舉個(gè)例子,剩余1個(gè)口罩,而每人領(lǐng)取兩個(gè)口罩,此時(shí)需要關(guān)閉預(yù)約渠道。
1.4 11:00以后,關(guān)閉預(yù)約,系統(tǒng)篩選預(yù)約成功的用戶
常見(jiàn)的篩選機(jī)制有三種:
一是搖號(hào),給每條記錄配一個(gè)隨機(jī)數(shù)字,所有的隨機(jī)數(shù)字都不相同,按隨機(jī)數(shù)字的升序或者降序排列,排在前面的用戶預(yù)約成功,排在后面的用戶預(yù)約失敗,預(yù)約成功的用戶數(shù)量需等于可預(yù)約人數(shù)。對(duì)于這種方法,用戶需要等待一段時(shí)間,才能看到預(yù)約結(jié)果。不足之處是,邏輯可能較復(fù)雜。
二是按“先來(lái)后到”的規(guī)則篩選,先預(yù)約的用戶預(yù)約成功,到可預(yù)約的物資用完時(shí),后面的用戶預(yù)約失敗。這種方法可以馬上出結(jié)果,但用戶可能“擠爆”服務(wù)器。
三是第二種方法的變形,規(guī)則一樣,但是預(yù)約結(jié)果不是馬上公布,讓用戶產(chǎn)生“預(yù)約成功與否跟預(yù)約的先后順序無(wú)關(guān)”的錯(cuò)覺(jué),可防止服務(wù)器擠爆的現(xiàn)象。
本文選用第三種方法,篩選出預(yù)約成功用戶,保存新預(yù)約記錄表(增加預(yù)約號(hào))。此時(shí),李四的預(yù)約是失敗的。
第二天剩余的物資為:
1.5 系統(tǒng)導(dǎo)出預(yù)約成功的用戶信息給藥店
藥店拿到用戶預(yù)約信息后,準(zhǔn)備第2天所需的防疫物資。
1.6 12:00以后,開(kāi)放查詢,用戶查詢預(yù)約結(jié)果
用戶查詢預(yù)約結(jié)果,結(jié)果包括兩種:預(yù)約成功、無(wú)記錄或者預(yù)約失敗。預(yù)約成功的用戶第二天到藥店領(lǐng)取防疫物資。
2. 第2天
2.1 用戶到藥店領(lǐng)取防疫物資
藥店核對(duì)用戶身份證發(fā)放防疫物資,如果用戶沒(méi)來(lái),藥店人員電話聯(lián)系用戶,詢問(wèn)情況,協(xié)商處理。
暫不考慮現(xiàn)場(chǎng)憑身份證領(lǐng)取物資的情況。
2.2 重復(fù)1.2-1.6流程
同時(shí),預(yù)約失敗或者第一天未預(yù)約的用戶可以再次發(fā)起預(yù)約,流程與第一天相同(1.2節(jié)-1.6節(jié))。
第二天,總的剩余物資表為:
可以看到,A縣藥店在第2天下午派發(fā)的口罩有剩余,剩余2個(gè)。所以把剩余物資數(shù)量加入到第三天上午派發(fā),即A縣藥店在第3天上午派發(fā)的口罩為2+2=4個(gè)。
所以,第3天分配的物資為:
當(dāng)天預(yù)約成功的用戶有:
剩余的物資為:
3. 第3天
預(yù)約成功的用戶領(lǐng)取防疫物資,流程與第2天相同(2.1節(jié))。
3.1 系統(tǒng)導(dǎo)出剩余物資給主辦方
A縣活動(dòng)結(jié)束,剩余的物資為:
把最終A縣活動(dòng)的物資剩余情況匯報(bào)給主辦方。
總結(jié)
以上就是本人對(duì)預(yù)約物資的后臺(tái)邏輯以及數(shù)據(jù)處理的分析。
本文由 @產(chǎn)品小白 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載
題圖來(lái)自Unsplash,基于CC0協(xié)議
學(xué)到了