券碼是各種營(yíng)銷(xiāo)案例中經(jīng)常使用到的一種功能,不同使用場(chǎng)景下券碼的種類(lèi)也不盡相同,不過(guò)體現(xiàn)在數(shù)據(jù)形式上每個(gè)券碼都是數(shù)據(jù)庫(kù)中的一條數(shù)據(jù),應(yīng)該有唯一的券碼號(hào)字段作為區(qū)分標(biāo)識(shí),另外通過(guò)其它字段判斷使用場(chǎng)景、用途、歸屬用戶和是否使用等等。今天我們制作一個(gè)券碼模型。
1.數(shù)據(jù)庫(kù)
這個(gè)模型中我們使用微信公眾號(hào)登錄,所以需要一個(gè)用戶組件,另外添加一個(gè)字段存放該用戶的券數(shù)。然后再添加一個(gè)數(shù)據(jù)庫(kù)存放券碼,包含券碼、是否兌換、兌換用戶(登錄用戶openID)、用戶姓名和手機(jī)號(hào)等字段。初始狀態(tài)時(shí),是否兌換為0,而兌換用戶,姓名和手機(jī)字段為空。

這里的券碼值比較簡(jiǎn)單,實(shí)際案例中我們可以利用循環(huán)和文本變量批量生成和導(dǎo)入更加復(fù)雜的券碼。如下圖所示,循環(huán)中利用文本變量生成隨機(jī)字符串,這里選擇了字符串長(zhǎng)度為20,類(lèi)型為字母與數(shù)組任意組合,最后將結(jié)果添加到對(duì)象數(shù)組中提交給數(shù)據(jù)庫(kù)即可。


還需要一個(gè)數(shù)據(jù)庫(kù)用來(lái)儲(chǔ)存券碼的兌換記錄,我們添加券碼,是否成功,姓名和手機(jī)等字段。另外,通過(guò)限制此數(shù)據(jù)庫(kù)的提交次數(shù)我們就可以限制每位用戶能夠兌換的券碼數(shù)量。

2.服務(wù)
在此模型中我們需要添加兩個(gè)服務(wù),一是提交兌換券碼,二是將可兌換券碼輸出。兌換券碼服務(wù)中我們需要提交券碼的券碼號(hào)以及用戶的姓名和手機(jī),首先到券碼庫(kù)更新該券碼的是否兌換字段,更新完成后向兌換記錄中提交一條數(shù)據(jù)并且更新用戶表中該用戶的可用券數(shù)字段,最后返回操作結(jié)果。

輸出券碼的服務(wù)比較簡(jiǎn)單,只是普通的數(shù)據(jù)庫(kù)輸出動(dòng)作,這里我們輸出3個(gè)還未兌換的券碼并且只輸出券碼字段。

3.事件
在前臺(tái)初始化時(shí)我們令用戶組件發(fā)起微信公眾號(hào)登錄,獲取用戶的頭像、昵稱(chēng)和券數(shù),如果是第一次登錄的用戶其用戶表中字段可用券數(shù)的值會(huì)為空,我們就將其設(shè)置為初始值0。

前臺(tái)的第一個(gè)頁(yè)面用于兌換券碼,用戶得到券碼號(hào)后填入輸入框并輸入姓名和手機(jī)號(hào)就可以點(diǎn)擊Exchange按鈕進(jìn)行兌換。案例會(huì)先判斷輸入框的內(nèi)容是否為標(biāo)準(zhǔn)類(lèi)型,如果不是則進(jìn)行一個(gè)提示,如果符合輸入標(biāo)準(zhǔn)就調(diào)用兌換服務(wù)并返回服務(wù)結(jié)果。注意要保持前后臺(tái)數(shù)據(jù)一致,兌換成功后前臺(tái)保存用戶券數(shù)的數(shù)值變量需要加1。

點(diǎn)擊文本組件My discount code頁(yè)面會(huì)跳轉(zhuǎn)到第二個(gè)頁(yè)面,然后調(diào)用輸出券碼服務(wù)輸出三個(gè)還未兌換的券碼供用戶取用。用戶點(diǎn)擊copy按鈕就會(huì)將券碼號(hào)復(fù)制到手機(jī)的粘貼板上然后返回首頁(yè)輸入進(jìn)行兌換了。


