一種紅包數(shù)據(jù)處理方法和裝置的制造方法
【專利摘要】本發(fā)明提供了紅包數(shù)據(jù)處理方法和裝置,該方法包括:根據(jù)發(fā)紅包請求創(chuàng)建紅包數(shù)據(jù),所述紅包數(shù)據(jù)包括緩存于分布式緩存的紅包個數(shù);根據(jù)一個或多個搶紅包請求查詢所述紅包數(shù)據(jù)的紅包個數(shù),若紅包個數(shù)不大于零,則返回?fù)尲t包失敗信息,若紅包個數(shù)大于零,則將所述紅包個數(shù)減一,并將成功被搶的紅包的關(guān)聯(lián)信息插入到數(shù)據(jù)庫。根據(jù)本發(fā)明,能夠提高紅包數(shù)據(jù)的處理效率,改善請求響應(yīng)速度。
【專利說明】
一種紅包數(shù)據(jù)處理方法和裝置
技術(shù)領(lǐng)域
[0001 ]本發(fā)明涉及數(shù)據(jù)處理領(lǐng)域,更為具體而言,涉及一種紅包數(shù)據(jù)處理方法和裝置。
【背景技術(shù)】
[0002]電子紅包是可以在網(wǎng)絡(luò)平臺上發(fā)送的無形的紅包,用戶只需要輸入金額等相關(guān)信息就可以將紅包分為一個或多個發(fā)送給一個或多個其他用戶,或者由一個或多個用戶搶至IJ?,F(xiàn)有的紅包數(shù)據(jù)發(fā)送過程中,接收或者搶紅包的客戶的數(shù)量比較大,而且搶的瞬間的并發(fā)量非常大,如何在瞬間并發(fā)量非常大的情形下保持較高的響應(yīng)速度成為亟需解決的重要技術(shù)問題之一,此外,在保持較好的并發(fā)性的前提下,保持紅包的發(fā)送記錄等相關(guān)數(shù)據(jù)的一致性也成為亟需解決的重要技術(shù)問題之一。
【發(fā)明內(nèi)容】
[0003]為解決上述技術(shù)問題,本發(fā)明提供了一種紅包數(shù)據(jù)處理方法和裝置,能夠提高紅包數(shù)據(jù)的處理效率,改善請求響應(yīng)速度。
[0004]根據(jù)本發(fā)明實施方式的第一方面,提供了一種紅包數(shù)據(jù)處理方法,該方法包括:根據(jù)發(fā)紅包請求創(chuàng)建紅包數(shù)據(jù),所述紅包數(shù)據(jù)包括緩存于分布式緩存的紅包個數(shù);根據(jù)一個或多個搶紅包請求查詢所述紅包數(shù)據(jù)中的紅包個數(shù),若紅包個數(shù)不大于零,則返回?fù)尲t包失敗信息,若紅包個數(shù)大于零,則將所述紅包個數(shù)減一,并將成功被搶的紅包的關(guān)聯(lián)信息插入到數(shù)據(jù)庫。
[0005]根據(jù)本發(fā)明實施方式的第二方面,提供了一種紅包數(shù)據(jù)處理裝置,所述裝置包括:發(fā)紅包模塊,用于根據(jù)發(fā)紅包請求創(chuàng)建紅包數(shù)據(jù),所述紅包數(shù)據(jù)包括緩存于分布式緩存的紅包個數(shù);搶紅包模塊,用于:根據(jù)一個或多個搶紅包請求查詢所述紅包數(shù)據(jù)中的紅包個數(shù),若紅包個數(shù)不大于零,則返回?fù)尲t包失敗信息,若紅包個數(shù)大于零,則將所述紅包個數(shù)減一,并將成功被搶的紅包的關(guān)聯(lián)信息插入到數(shù)據(jù)庫。
[0006]本發(fā)明實施的紅包數(shù)據(jù)處理方法和裝置,將紅包個數(shù)作為紅包數(shù)據(jù)中的關(guān)鍵信息緩存于分布式緩存中,有利于提升搶紅包過程中的數(shù)據(jù)訪問效率;而且,在搶紅包的過程中,首先查詢紅包個數(shù),在剩余個數(shù)不大于零的情形下,直接返回失敗信息,不再進(jìn)行其他紅包關(guān)聯(lián)的數(shù)據(jù)操作,能夠改善對搶紅包請求的響應(yīng)速度;而在確定紅包個數(shù)大于零的情形下,才進(jìn)行紅包的相關(guān)數(shù)據(jù)處理,能夠?qū)尲t包請求進(jìn)行有效的流量控制,改善對搶紅包請求的響應(yīng)速度。
【附圖說明】
[0007]圖1是根據(jù)本發(fā)明一種實施方式的積分紅包的整體架構(gòu)圖;
[0008]圖2是根據(jù)本發(fā)明一種實施方式的紅包數(shù)據(jù)處理方法的流程示意圖;
[0009]圖3是根據(jù)本發(fā)明一種實施方式的發(fā)紅包的流程示意圖;
[0010]圖4是根據(jù)本發(fā)明一種實施方式的查詢搶紅包的流程示意圖;
[0011]圖5是根據(jù)本發(fā)明一種實施方式的拆紅包的流程示意圖;
[0012]圖6是根據(jù)本發(fā)明一種實施方式的領(lǐng)取紅包的流程示意圖;
[0013]圖7是根據(jù)本發(fā)明一種實施方式的紅包數(shù)據(jù)處理裝置的結(jié)構(gòu)示意圖。
【具體實施方式】
[0014]以下結(jié)合附圖和【具體實施方式】對本發(fā)明的各個方面進(jìn)行詳細(xì)闡述。其中,眾所周知的模塊、單元及其相互之間的連接、鏈接、通信或操作沒有示出或未作詳細(xì)說明。并且,所描述的特征、架構(gòu)或功能可在一個或一個以上實施方式中以任何方式組合。本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,下述的各種實施方式只用于舉例說明,而非用于限制本發(fā)明的保護(hù)范圍。還可以容易理解,本文所述和附圖所示的各實施方式中的模塊或單元或處理方式可以按各種不同配置進(jìn)行組合和設(shè)計。
[0015]本發(fā)明實施方式的紅包可以是積分的形式或與積分類似的其他產(chǎn)品,例如,在某一機構(gòu)(例如,銀行等金融機構(gòu))累積的積分(例如,儲蓄卡、信用卡的積分等),也可以是除了積分之外的其他形式,例如,貨幣等。在下文的實施方式中,主要以積分形式的紅包為例進(jìn)行描述,但本發(fā)明的紅包還可以適用于非積分形式的情形,非積分形式的紅包的數(shù)據(jù)處理過程,與積分形式的紅包數(shù)據(jù)處理的流程類似,不同點主要在于對紅包所涉及的積分或貨幣的數(shù)量調(diào)整,對于積分紅包而言,可以通過積分系統(tǒng)的余額調(diào)整交易進(jìn)行調(diào)整,對于貨幣紅包而言,可以通過相應(yīng)的貨幣管理系統(tǒng)對余額等進(jìn)行調(diào)整。
[0016]對于積分形式的紅包數(shù)據(jù)處理,紅包的信息為積分。在發(fā)送紅包的過程中,需要調(diào)用綜合積分系統(tǒng)的積分余額調(diào)整交易,扣除發(fā)送紅包的客戶的相應(yīng)的積分。客戶在搶到紅包,領(lǐng)取紅包的過程中,需要調(diào)用綜合積分系統(tǒng)的余額調(diào)整交易,將搶到的紅包積分轉(zhuǎn)到搶到紅包的客戶積分賬戶中。以建行銀行的積分紅包為例,客戶發(fā)送、搶紅包的都是積分紅包,發(fā)送紅包的客戶需要為建設(shè)銀行的客戶,搶到紅包的客戶在成為建設(shè)銀行的客戶后,才能成功地將搶到的積分紅包轉(zhuǎn)到自身的積分賬戶中。
[0017]下面以圖1為例,對積分紅包的整體架構(gòu)進(jìn)行簡單的說明。微信銀行11,可以用于發(fā)起積分紅包相關(guān)操作請求,并將搶紅包消息通知發(fā)送給指定的聯(lián)系人,例如,指定的微信朋友圈的聯(lián)系人。分布式緩存12,用于保存紅包數(shù)據(jù)的關(guān)鍵信息,例如,紅包個數(shù)等,在本發(fā)明的一些實施方式中,紅包的個數(shù)也可以通過紅包的剩余個數(shù)進(jìn)行描述;還用于將每個紅包積分值計算邏輯串行化。綜合積分紅包模塊13,可以接收前端客戶積分紅包請求,并對請求進(jìn)行調(diào)度。數(shù)據(jù)庫14,可以用于保存紅包、紅包發(fā)放及領(lǐng)取等紅包的關(guān)聯(lián)信息。綜合積分系統(tǒng)15,可以接收綜合積分紅包模塊余額調(diào)整交易請求,實現(xiàn)發(fā)紅包扣除積分、領(lǐng)取紅包增加積分等處理邏輯。綜合積分紅包模塊13綜合積分系統(tǒng)15之間可以基于超文本傳輸協(xié)議(Hyper Text Transfer Protocol ,HTTP)進(jìn)行調(diào)用通信,還可以采用Netty的遠(yuǎn)程過程調(diào)用(Remote Procedure Call,RPC)協(xié)議,從而提高通信的通信效率和調(diào)用的并發(fā)度。
[0018]圖2是根據(jù)本發(fā)明一種實施方式的紅包數(shù)據(jù)處理方法的流程示意圖。
[0019]如圖2所示,本發(fā)明的紅包數(shù)據(jù)處理方法可包括:步驟S11、SI2、S13和SI4。接下來,對上述的步驟進(jìn)行具體的說明。
[0020]步驟Sll,根據(jù)發(fā)紅包請求創(chuàng)建紅包數(shù)據(jù),其中,所述紅包數(shù)據(jù)可包括緩存于分布式緩存的紅包個數(shù)。例如,用戶可以通過微信銀行等接口發(fā)送發(fā)紅包請求,例如,可包括積分的數(shù)量等。在接收到用戶的發(fā)紅包請求之后,根據(jù)發(fā)紅包請求對請求涉及的積分狀態(tài)、累積發(fā)送積分上限進(jìn)行校驗,如果校驗未通過,在返回校驗失敗的提示信息,如果校驗通過,則在數(shù)據(jù)庫中創(chuàng)建發(fā)送的紅包數(shù)據(jù),紅包狀態(tài)為已提交。紅包數(shù)據(jù)可包括:紅包ID、發(fā)紅包人/用戶/客戶的ID、法紅包人/用戶/客戶的渠道ID、發(fā)紅包人//用戶/客戶的渠道名稱、發(fā)紅包人/用戶/客戶的紅包祝語、紅包發(fā)布時間、紅包類型、紅包個數(shù)、紅包總金額、積分失效日期、紅包狀態(tài)、搶紅包消耗時間、最大紅包金額、手機最佳紅包客戶ID、手氣最佳紅包微信ID中的一項或多項。然后,扣除發(fā)布紅包的客戶發(fā)紅包所使用的積分值,該扣除操作是通過調(diào)用綜合積分系統(tǒng)的積分余額調(diào)整交易進(jìn)行。接著,判斷扣除積分是否成功,若不成功,則更新紅包狀態(tài),并通知客戶未成功扣除積分;若成功扣除積分,則更新紅包狀態(tài)為余額調(diào)整成功。接著,在分布式緩存中創(chuàng)建紅包記錄,例如,可包括紅包個數(shù)(或者剩余紅包個數(shù))以及剩余紅包積分信息等,若緩存創(chuàng)建成功,則更新紅包狀態(tài)為以完成,若緩存創(chuàng)建未成功,則更新紅包狀態(tài)為緩存創(chuàng)建失敗,拋出異常。本發(fā)明的分布式緩存可采用oraclecoherence,其能夠基于key-value對數(shù)據(jù)進(jìn)行分布式存儲,具有較高的基于key的查詢效率。
[0021]需要說明的是,本發(fā)明的紅包數(shù)據(jù)處理方法不是必須包含上面描述的每個步驟,而是可以省去其中的一個或多個步驟。例如,客戶的要發(fā)送的積分紅包的積分充足的情形下,可以省去對積分狀態(tài)和積分上限的驗證步驟。
[0022]步驟S12,根據(jù)一個或多個搶紅包請求查詢所述紅包數(shù)據(jù)的紅包個數(shù),若紅包個數(shù)不大于零,即小于或等于零,則執(zhí)行步驟S13,返回?fù)尲t包失敗信息,若紅包個數(shù)大于零,則執(zhí)行步驟S14,將所述紅包個數(shù)減一,并將成功被搶的紅包的關(guān)聯(lián)信息插入數(shù)據(jù)庫。
[0023I 本發(fā)明的紅包數(shù)據(jù)處理方法還可包括:在步驟S12之前,對搶紅包請求的流量進(jìn)行控制,例如,可以基于交易碼進(jìn)行控制,并且可以在每臺服務(wù)器上進(jìn)行流量控制,例如,將每臺服務(wù)器的搶紅包請求的并發(fā)交易的個數(shù)設(shè)置為預(yù)定數(shù)量,例如,20、15、25等。在對搶紅包請求的流量進(jìn)行控制之后,本發(fā)明的紅包數(shù)據(jù)處理方法還可包括:判斷發(fā)送搶紅包請求的客戶是否已經(jīng)搶到過紅包,若該客戶已經(jīng)搶到過紅包,則返回該用戶搶到的紅包信息,若未搶到過紅包,則在分布式緩存中查詢紅包個數(shù),若沒有剩余紅包或剩余紅包個數(shù)不大于零,則執(zhí)行S13,直接返回?fù)尲t包失敗的信息。其中,根據(jù)一個或多個搶紅包請求在分布式緩存中查詢紅包數(shù)據(jù)的紅包個數(shù)可包括:對一個或多個搶紅包請求進(jìn)行串行化處理,其中,串行化處理可通過分布式緩存的接口進(jìn)行,例如,Enty processor接口 inty processor接口能夠?qū)⒉l(fā)的搶紅包請求基于請求的主鍵(Key)進(jìn)行串行化調(diào)度,先將客戶的請求存于一個隊列中,然后進(jìn)行串行化調(diào)度、執(zhí)行指定的處理邏輯。本發(fā)明利用enty processor接口的特性對搶紅包請求進(jìn)行串行化調(diào)度,保證了紅包數(shù)據(jù)的一致性。
[0024]本發(fā)明的實施方式在確定客戶未搶到過紅包的情形下,根據(jù)搶紅包請求查詢紅包個數(shù),在紅包個數(shù)不大于零的情形下,直接向客戶返回失敗信息,不再進(jìn)行其他數(shù)據(jù)操作,對搶紅包請求的并發(fā)流量進(jìn)行限制,顯著改善了對搶紅包請求的響應(yīng)速度;而且,通過將紅包個數(shù)等關(guān)鍵信息緩存于分布式緩存,在搶紅包請求瞬間高并發(fā)的情形下,能夠顯著改善紅包個數(shù)等數(shù)據(jù)的讀取效率,提高對用戶的搶紅包請求的響應(yīng)速度。
[0025]在查詢分布式緩存后,確定紅包個數(shù)大于零的情形下,在執(zhí)行步驟S14之前,本發(fā)明的紅包數(shù)據(jù)處理方法還可包括:判斷發(fā)送搶紅包請求的客戶是否具有搶紅包的權(quán)限,若沒有搶紅包的權(quán)限,則向該客戶返回其不具有搶紅包的權(quán)限;若有搶紅包的權(quán)限,則進(jìn)一步判斷該客戶當(dāng)月?lián)尩降募t包的積分是否超過預(yù)定的限值,若超過預(yù)定的限值,則向該客戶返回已經(jīng)超過預(yù)定的限值的消息,若未超過預(yù)定的限值,則返回?fù)尲t包的信息,彈出拆紅包的界面。
[0026]在步驟S14中,將紅包個數(shù)減一,并將成功被搶到的紅包的關(guān)聯(lián)信息插入到數(shù)據(jù)庫。具體而言,可包括:在將紅包個數(shù)減一之后,獲取減一之后的紅包個數(shù),計算搶到的紅包積分,并對分布式緩存中的紅包的個數(shù)和積分進(jìn)行相應(yīng)的更新;接著,判斷減一之后的紅包個數(shù)是否大于或等于零,若否,則返回紅包已被搶完的消息,而不再接收其他搶紅包請求,有利于降低搶紅包請求的并發(fā)量,改善對請求的響應(yīng)速率。若是,也就是說,減一之后的紅包個數(shù)大于或等于零,則向所述數(shù)據(jù)庫中插入成功搶到的紅包的關(guān)聯(lián)信息,例如,成功拆紅包的記錄,該記錄可包括紅包ID、搶紅包人的客戶ID、搶紅包人的渠道ID、搶紅包人的渠道名稱、紅包金額、紅包狀態(tài)、搶紅包時間、留言信息、手氣最佳標(biāo)志中的一種或多種等。搶到的紅包狀態(tài)初始標(biāo)記為未領(lǐng)取。數(shù)據(jù)庫為cassandra數(shù)據(jù)庫。在插入成功的情形下,可以更新該用戶本月已經(jīng)搶到的積分值。在插入失敗的情形下,更新分布式緩存中的紅包個數(shù),將紅包個數(shù)加一,保證紅包數(shù)據(jù)的一致性。
[0027]本發(fā)明采用cassandra數(shù)據(jù)庫,對于紅包個數(shù)較多并且紅包發(fā)送明細(xì)記錄較多的情形,可以滿足從大量的數(shù)據(jù)中進(jìn)行基于聯(lián)合主鍵查詢的查詢性能,改善數(shù)據(jù)查詢的處理效率。
[0028]本發(fā)明的紅包數(shù)據(jù)處理方法還可包括:向數(shù)據(jù)庫(例如,cassandra數(shù)據(jù)庫)插入紅包的關(guān)聯(lián)信息之后,根據(jù)用戶的紅包領(lǐng)取請求查詢成功被搶的紅包的領(lǐng)取狀態(tài),若領(lǐng)取狀態(tài)為未領(lǐng)取,則將所述領(lǐng)取請求所要領(lǐng)取的紅包的領(lǐng)取狀態(tài)更新為領(lǐng)取中,并向oraclecoherence數(shù)據(jù)庫中插入所要領(lǐng)取的紅包的領(lǐng)取流水,所述領(lǐng)取流水包括紅包ID和領(lǐng)取紅包的客戶ID。若領(lǐng)取狀態(tài)為已領(lǐng)取,則向用戶返回紅包已經(jīng)領(lǐng)取的提示信息。在本發(fā)明的實施方式中,采用cassandra數(shù)據(jù)庫保存紅包發(fā)送的明細(xì)數(shù)據(jù),例如,紅包ID、搶紅包人客戶ID、渠道ID等,但cassandra數(shù)據(jù)庫無法對插入主鍵相同的數(shù)據(jù)進(jìn)行重復(fù)性判斷,或者并發(fā)更新同一條數(shù)據(jù)時無法進(jìn)行并發(fā)控制,在極端的情況下,無法對兩個或多個并發(fā)地領(lǐng)取同一紅包的紅包領(lǐng)取請求進(jìn)行并發(fā)控制,所以要向oracle coherene數(shù)據(jù)中插入一條領(lǐng)取流水,以進(jìn)行紅包領(lǐng)取請求進(jìn)行并發(fā)控制。本發(fā)明的方法還包括:向向oracle coherence數(shù)據(jù)庫中插入所要領(lǐng)取的紅包的領(lǐng)取流水之后,判斷流水插入是否成功,若否,則返回領(lǐng)取失敗信息或者將所要領(lǐng)取的紅包的領(lǐng)取狀態(tài)恢復(fù)為未領(lǐng)取。具體而言,在流水插入未成功的情形下,若返回的信息是主鍵沖突異常,則返回領(lǐng)取失敗信息;若返回的是其他異常信息,則將所要領(lǐng)取的紅包的領(lǐng)取狀態(tài)恢復(fù)為未領(lǐng)取。在流水插入成功的情形下,執(zhí)行積分余額調(diào)整操作,在余額調(diào)整操作成功的情形下,更新紅包狀態(tài)為已領(lǐng)取,在不成功的情況下,更新狀態(tài)為領(lǐng)取失敗,拋出領(lǐng)取失敗的異常信息。
[0029]下面結(jié)合具體的流程圖說明本發(fā)明的紅包數(shù)據(jù)處理的各個流程。
[0030]圖3是根據(jù)本發(fā)明一種實施方式的發(fā)紅包的流程示意圖;圖4是根據(jù)本發(fā)明一種實施方式的查詢搶紅包的流程示意圖;圖5是根據(jù)本發(fā)明一種實施方式的拆紅包的流程示意圖;以及圖6是根據(jù)本發(fā)明一種實施方式的領(lǐng)取紅包的流程示意圖。
[0031]如圖3所示,發(fā)紅包的流程可包括:SlOl,發(fā)送發(fā)紅包請求;S102,對積分狀態(tài)、累積發(fā)放積分上限等進(jìn)行校驗,如果校驗未通過,則執(zhí)行步驟S103,返回相應(yīng)的錯誤信息,若通過校驗,則執(zhí)行步驟S104,在數(shù)據(jù)庫中創(chuàng)建發(fā)布的紅包信息,狀態(tài)為已提交;S105,扣除發(fā)布紅包的客戶的相應(yīng)的積分,例如,可通過內(nèi)部構(gòu)件調(diào)用積分余額調(diào)整交易;S106,扣除積分成功,若不成功,則執(zhí)行步驟S107,更新紅包狀態(tài),通知客戶,若成功,則執(zhí)行步驟S108,更新紅包狀態(tài)為余額調(diào)整成功;S109,緩存中創(chuàng)建發(fā)布紅包記錄;S110,緩存創(chuàng)建成功,如果創(chuàng)建不成功,則執(zhí)行步驟SI 11,更新紅包狀態(tài)為緩存創(chuàng)建失敗,拋出異常,如果創(chuàng)建成功,則執(zhí)行步驟S112,更新紅包狀態(tài)為已完成。
[0032]如圖4所示,查詢搶紅包的流程可包括:S201,發(fā)送搶紅包請求,S202,流量控制通過,若未通過流量控制,則執(zhí)行步驟S203,返回系統(tǒng)繁忙信息,若通過,在執(zhí)行步驟S204,判斷客戶是否已經(jīng)搶到過紅包,若搶到過,則執(zhí)行步驟S205,返回?fù)尩降募t包信息,若未搶到過紅包,則執(zhí)行步驟S206,判斷是否還剩紅包,若沒有剩余紅包,則執(zhí)行步驟S207,返回已經(jīng)被搶完的信息,若還有剩余紅包,則執(zhí)行步驟S208,判斷客戶權(quán)限,若沒有權(quán)限,則執(zhí)行步驟S209,返回客戶沒有搶紅包的權(quán)限,若有權(quán)限,則執(zhí)行步驟S210,判斷客戶當(dāng)月?lián)尲t包積分是否超過最大值,若超過,則執(zhí)行步驟S211,返回客戶當(dāng)月?lián)尲t包積分已經(jīng)超過最大值,若沒有超過,則執(zhí)行步驟S212,返回?fù)尲t包信息,彈出拆紅包界面。
[0033]如圖5所示,拆紅包的流程可包括:S301,發(fā)送拆紅包請求,S302,判斷是否還有剩余紅包,若沒有,則執(zhí)行步驟S303,返回紅包已經(jīng)被搶完信息,若還有,則執(zhí)行步驟S304,剩余紅包個數(shù)減一,并獲取減一之后的數(shù)值,計算搶到的紅包積分值,S305,判斷剩余紅包個數(shù)是否大于或等于零,若否,則執(zhí)行步驟S303,若是,則執(zhí)行步驟S306,插入成功拆開紅包記錄,S307,是否插入失敗,若插入失敗,則執(zhí)行步驟S308,更新分布式緩存剩余紅包信息,若否,執(zhí)行步驟S309,更新本月已搶到的積分值,S310,返回成功搶到的紅包信息。
[0034]如圖6所示,領(lǐng)取紅包的流程可包括:S401,發(fā)送領(lǐng)取紅包的請求,S402,判斷紅包是否有效,若失效,則執(zhí)行步驟S403,返回紅包已失效的信息,若有效,則執(zhí)行步驟S404,檢查紅包領(lǐng)取狀態(tài),若不是未領(lǐng)取,則執(zhí)行步驟S405,返回已領(lǐng)取、領(lǐng)取中等狀態(tài)信息,若未領(lǐng)取,則執(zhí)行步驟S406,將紅包狀態(tài)更新為領(lǐng)取中,S407,插入紅包領(lǐng)取流水,S408,插入狀態(tài)判斷,若失敗,則執(zhí)行步驟S409,如果返回主鍵沖突異常,返回領(lǐng)取失敗信息,如果返回其他的異常信息,則恢復(fù)紅包狀態(tài)為未領(lǐng)取,若插入成功,則執(zhí)行步驟S410,執(zhí)行積分余額調(diào)整操作,S411,余額調(diào)整結(jié)果,若不成功,則執(zhí)行步驟S412,更新狀態(tài)為領(lǐng)取失敗,拋出領(lǐng)取失敗的異常信息,若成功,則執(zhí)行步驟S413,更新紅包狀態(tài)為已領(lǐng)取。
[0035]下面以建設(shè)銀行的積分紅包發(fā)送為例,說明本發(fā)明的積分紅包發(fā)送的流程,其中,包括用戶通過終端設(shè)備(例如,手機等)的操作??蛻舭l(fā)積分紅包的流程可包括:1,用打開手機微信建行公眾號;2,系統(tǒng)顯示微信首頁界面;3,用戶選擇悅生活中,并點擊“綜合積分”菜單,按照系統(tǒng)提示點擊“發(fā)紅包”;4,系統(tǒng)顯示微信提示導(dǎo)航界面系統(tǒng)校驗是否綁定卡,卡狀態(tài)、積分賬戶狀態(tài)是否正常,并顯示校驗結(jié)果(所有綁定微信建行卡的尾號列表及綜合積分余額),查詢積分賬戶信息交易,輸入:客戶編號;輸出:是否綁定卡,積分余額,綁定微信建行卡的尾號列表,積分賬戶狀態(tài)、有效日期、余額列表信息,綁定銀行卡交易輸入:客戶編號,銀行卡編號,輸出:客戶銀行卡綁定結(jié)果;5,用戶點擊“點擊這里,進(jìn)行操作”;6,系統(tǒng)顯示積分紅包界面;7,用戶輸入紅包數(shù)量、紅包積分值及紅包發(fā)放方式等信息點擊“塞積分進(jìn)紅包”;8,系統(tǒng)顯示積分紅包信息確認(rèn)界面;9,客戶點擊發(fā)送動態(tài)驗證短信。客戶收到短信后輸入動態(tài)驗證碼,點擊“確認(rèn)”;10,系統(tǒng)顯示發(fā)送紅包界面,發(fā)紅包交易,輸入:客戶編號、#微信ID、微信名稱、紅包類型、紅包個數(shù)、積分總數(shù)、積分紅包祝語,輸出:發(fā)紅包編號。
[0036]搶積分紅包的流程可包括:I,用戶打開搶紅包界面;2,系統(tǒng)顯示搶紅包界面;3,用戶點擊積分紅包;4,系統(tǒng)顯示拆紅包界面(備用事件流“系統(tǒng)顯示紅包已搶完界面”),查詢搶紅包信息交易:輸入:客戶ID,紅包ID,輸出:紅包編號,剩余紅包份數(shù);5,用戶點擊“拆紅包”;6,系統(tǒng)顯示拆他人紅包結(jié)果界面(備用事件流“系統(tǒng)顯示拆本人紅包結(jié)果界面”)(異常事件流“本月?lián)尩姆e分已超過月累計的最高值”)(異常事件流“積分賬戶狀態(tài)異常”),搶紅包交易:輸入:搶紅包人客戶ID,紅包ID,搶紅包人微信ID,搶紅包人微信名稱,輸出:拆紅包成功標(biāo)志,發(fā)紅包微信ID,發(fā)紅包微信名稱,積分紅包祝語,搶到紅包的積分值,紅包總個數(shù),搶紅包總用時間,已被搶紅包列表信息(微信名稱,搶到紅包的積分值,搶紅包時間,留言,手氣最佳標(biāo)志);7,用戶可選擇自己“發(fā)紅包”或者查看“我的紅包記錄”;8,系統(tǒng)顯示查看紅包界面(備用事件流“系統(tǒng)發(fā)紅包界面”),查看發(fā)送的紅包交易,輸入:客戶編號,微信ID,微信名稱,輸出:已發(fā)送積分額、累計發(fā)送的紅包個數(shù)、發(fā)送的紅包列表(紅包積分總額、已發(fā)送積分額、發(fā)送日期、紅包狀態(tài));9,客戶點擊我收到的紅包;10,系統(tǒng)顯示客戶收到紅包記錄界面,查看客戶收到的紅包交易:輸入:客戶ID、微信ID、微信名稱,輸出:累計收到的積分值,累計收到的紅包個數(shù),手氣最佳次數(shù),搶到的紅包列表信息(紅包發(fā)布客戶微信名稱、搶到的紅包積分值、搶紅包日期、紅包領(lǐng)取狀態(tài));11,客戶點擊“待領(lǐng)取” ;12,系統(tǒng)顯示領(lǐng)取紅包結(jié)果界面(備選事件流“領(lǐng)取搶紅包積分需綁建行卡”)(異常事件流“積分賬戶狀態(tài)異?!?,領(lǐng)取積分紅包交易:輸入:客戶編號,微信ID,微信名稱,紅包ID,搶到的紅包積分值輸出:領(lǐng)取紅包結(jié)果。
[0037]上面結(jié)合附圖和具體實施例描述了本發(fā)明的紅包數(shù)據(jù)處理方法,下面將描述與上述方法對應(yīng)的紅包數(shù)據(jù)處理裝置。
[0038]圖7是根據(jù)本發(fā)明一種實施方式的紅包數(shù)據(jù)處理裝置的結(jié)構(gòu)示意圖。
[0039]如圖7所示,紅包數(shù)據(jù)處理裝置可包括發(fā)紅包模塊71和搶紅包模塊72,其中發(fā)紅包模塊71和搶紅包模塊72之間可以進(jìn)行數(shù)據(jù)通信,并且這些模塊還可以與相關(guān)的其他數(shù)據(jù)處理模塊(例如,銀行的綜合積分系統(tǒng)或者核心業(yè)務(wù)系統(tǒng))等進(jìn)行數(shù)據(jù)通信。本發(fā)明的紅包數(shù)據(jù)處理裝置除了包括發(fā)紅包模塊71和搶紅包模塊72之外,還可以包括領(lǐng)取模塊。下面對各個模塊進(jìn)行具體的說明。
[0040]發(fā)紅包模塊71可根據(jù)發(fā)紅包請求創(chuàng)建紅包數(shù)據(jù),所述紅包數(shù)據(jù)包括緩存于分布式緩存的紅包個數(shù),其中,分布式緩存可采用oracle coherences數(shù)據(jù)庫。其中,創(chuàng)建的具體內(nèi)容可參見方法部分的描述。
[0041]搶紅包模塊72可用于根據(jù)一個或多個搶紅包請求查詢所述紅包數(shù)據(jù)中的紅包個數(shù),若紅包個數(shù)不大于零,即小于或等于零,則返回?fù)尲t包失敗信息,若紅包個數(shù)大于零,則將所述紅包個數(shù)減一,并將成功被搶的紅包的關(guān)聯(lián)信息插入到數(shù)據(jù)庫。其中,搶紅包模塊根據(jù)一個或多個搶紅包請求查詢所述紅包數(shù)據(jù)中的紅包個數(shù)包括:對一個或多個搶紅包請求進(jìn)行串行化處理,其中,所述串行化處理通過分布式緩存的接口進(jìn)行。紅包的關(guān)聯(lián)信息包括紅包ID、搶紅包人的客戶ID、搶紅包人的渠道ID、搶紅包人的渠道名稱、紅包金額、紅包狀態(tài)、搶紅包時間、留言信息、手氣最佳標(biāo)志中的一種或多種,所述數(shù)據(jù)庫為cassandra數(shù)據(jù)庫。搶紅包模塊72在將所述紅包個數(shù)減一之后,還判斷減一之后的紅包個數(shù)是否大于或等于零,若是,則將成功被搶的紅包的關(guān)聯(lián)信息插入到數(shù)據(jù)庫,若否,則返回紅包已被搶完的信息。搶紅包模塊72在插入所述紅包的關(guān)聯(lián)信息失敗的情形下,還更新所述分布式緩存中的紅包個數(shù)。關(guān)于搶紅包模塊的具體內(nèi)容可參見上面方法部分的描述。
[0042]領(lǐng)取模塊根據(jù)紅包領(lǐng)取請求查詢所述成功被搶的紅包的領(lǐng)取狀態(tài),若領(lǐng)取狀態(tài)為未領(lǐng)取,則將所述領(lǐng)取請求所要領(lǐng)取的紅包的領(lǐng)取狀態(tài)更新為領(lǐng)取中,并向oraclecoherence數(shù)據(jù)庫中插入所要領(lǐng)取的紅包的領(lǐng)取流水,所述領(lǐng)取流水包括紅包ID和領(lǐng)取紅包的客戶ID。還可用于在向oracle coherence數(shù)據(jù)庫中插入所要領(lǐng)取的紅包的領(lǐng)取流水之后,判斷流水插入是否成功,若否,則返回領(lǐng)取失敗信息或者將所要領(lǐng)取的紅包的領(lǐng)取狀態(tài)恢復(fù)為未領(lǐng)取。關(guān)于紅包領(lǐng)取的具體內(nèi)容可參見上面方法部分的描述。
[0043]通過以上的實施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā)明可借助軟件結(jié)合硬件平臺的方式來實現(xiàn)?;谶@樣的理解,本發(fā)明的技術(shù)方案對【背景技術(shù)】做出貢獻(xiàn)的全部或者部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品可以存儲在存儲介質(zhì)中,如R0M/RAM、磁碟、光盤等,包括若干指令用以使得一臺計算機設(shè)備(可以是個人計算機,服務(wù)器,智能手機或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實施例或者實施例的某些部分所述的方法。
[0044]本發(fā)明說明書中使用的術(shù)語和措辭僅僅為了舉例說明,并不意味構(gòu)成限定。本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,在不脫離所公開的實施方式的基本原理的前提下,對上述實施方式中的各細(xì)節(jié)可進(jìn)行各種變化。因此,本發(fā)明的范圍只由權(quán)利要求確定,在權(quán)利要求中,除非另有說明,所有的術(shù)語應(yīng)按最寬泛合理的意思進(jìn)行理解。
【主權(quán)項】
1.一種紅包數(shù)據(jù)處理方法,其特征在于,所述方法包括: 根據(jù)發(fā)紅包請求創(chuàng)建紅包數(shù)據(jù),所述紅包數(shù)據(jù)包括緩存于分布式緩存的紅包個數(shù); 根據(jù)一個或多個搶紅包請求查詢所述紅包數(shù)據(jù)中的紅包個數(shù), 若紅包個數(shù)不大于零,則返回?fù)尲t包失敗信息, 若紅包個數(shù)大于零,則將所述紅包個數(shù)減一,并將成功被搶的紅包的關(guān)聯(lián)信息插入到數(shù)據(jù)庫。2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述分布式緩存采用oraclecoherences數(shù)據(jù)庫。3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述根據(jù)一個或多個搶紅包請求查詢所述紅包數(shù)據(jù)中的紅包個數(shù)包括: 對一個或多個搶紅包請求進(jìn)行串行化處理,其中,所述串行化處理通過分布式緩存的接口進(jìn)行。4.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述紅包的關(guān)聯(lián)信息包括紅包ID、搶紅包人的客戶ID、搶紅包人的渠道ID、搶紅包人的渠道名稱、紅包金額、紅包狀態(tài)、搶紅包時間、留言信息、手氣最佳標(biāo)志中的一種或多種,所述數(shù)據(jù)庫為cassandra數(shù)據(jù)庫。5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述方法還包括: 根據(jù)紅包領(lǐng)取請求查詢所述成功被搶的紅包的領(lǐng)取狀態(tài),若領(lǐng)取狀態(tài)為未領(lǐng)取,則將所述領(lǐng)取請求所要領(lǐng)取的紅包的領(lǐng)取狀態(tài)更新為領(lǐng)取中,并向oracle coherence數(shù)據(jù)庫中插入所要領(lǐng)取的紅包的領(lǐng)取流水,所述領(lǐng)取流水包括紅包ID和領(lǐng)取紅包的客戶ID。6.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述方法還包括: 向oracle coherence數(shù)據(jù)庫中插入所要領(lǐng)取的紅包的領(lǐng)取流水之后,判斷流水插入是否成功,若否,則返回領(lǐng)取失敗信息或者將所要領(lǐng)取的紅包的領(lǐng)取狀態(tài)恢復(fù)為未領(lǐng)取。7.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括: 在將所述紅包個數(shù)減一之后,判斷減一之后的紅包個數(shù)是否大于或等于零,若是,則將成功被搶的紅包的關(guān)聯(lián)信息插入到數(shù)據(jù)庫,若否,則返回紅包已被搶完的信息。8.根據(jù)權(quán)利要求7所述的方法,其特征在于,所述方法還包括: 在插入所述紅包的關(guān)聯(lián)信息失敗的情形下,更新所述分布式緩存中的紅包個數(shù)。9.一種紅包數(shù)據(jù)處理裝置,其特征在于,所述裝置包括: 發(fā)紅包模塊,用于根據(jù)發(fā)紅包請求創(chuàng)建紅包數(shù)據(jù),所述紅包數(shù)據(jù)包括緩存于分布式緩存的紅包個數(shù); 搶紅包模塊,用于:根據(jù)一個或多個搶紅包請求查詢所述紅包數(shù)據(jù)中的紅包個數(shù),若紅包個數(shù)不大于零,則返回?fù)尲t包失敗信息,若紅包個數(shù)大于零,則將所述紅包個數(shù)減一,并將成功被搶的紅包的關(guān)聯(lián)信息插入到數(shù)據(jù)庫。10.根據(jù)權(quán)利要求9所述的裝置,其特征在于,所述分布式緩存采用oraclecoherences數(shù)據(jù)庫。11.根據(jù)權(quán)利要求10所述的裝置,其特征在于,所述搶紅包模塊根據(jù)一個或多個搶紅包請求查詢所述紅包數(shù)據(jù)中的紅包個數(shù)包括: 對一個或多個搶紅包請求進(jìn)行串行化處理,其中,所述串行化處理通過分布式緩存的接口進(jìn)行。12.根據(jù)權(quán)利要求10所述的裝置,其特征在于,所述紅包的關(guān)聯(lián)信息包括紅包ID、搶紅包人的客戶ID、搶紅包人的渠道ID、搶紅包人的渠道名稱、紅包金額、紅包狀態(tài)、搶紅包時間、留言信息、手氣最佳標(biāo)志中的一種或多種,所述數(shù)據(jù)庫為cassandra數(shù)據(jù)庫。13.根據(jù)權(quán)利要求12所述的裝置,其特征在于,所述裝置還包括: 領(lǐng)取模塊,用于根據(jù)紅包領(lǐng)取請求查詢所述成功被搶的紅包的領(lǐng)取狀態(tài),若領(lǐng)取狀態(tài)為未領(lǐng)取,則將所述領(lǐng)取請求所要領(lǐng)取的紅包的領(lǐng)取狀態(tài)更新為領(lǐng)取中,并向oraclecoherence數(shù)據(jù)庫中插入所要領(lǐng)取的紅包的領(lǐng)取流水,所述領(lǐng)取流水包括紅包ID和領(lǐng)取紅包的客戶ID。14.根據(jù)權(quán)利要求13所述的裝置,其特征在于,所述領(lǐng)取模塊,還用于向oraclecoherence數(shù)據(jù)庫中插入所要領(lǐng)取的紅包的領(lǐng)取流水之后,判斷流水插入是否成功,若否,則返回領(lǐng)取失敗信息或者將所要領(lǐng)取的紅包的領(lǐng)取狀態(tài)恢復(fù)為未領(lǐng)取。15.根據(jù)權(quán)利要求9所述的裝置,其特征在于,所述搶紅包模塊,還用于在將所述紅包個數(shù)減一之后,判斷減一之后的紅包個數(shù)是否大于或等于零,若是,則將成功被搶的紅包的關(guān)聯(lián)信息插入到數(shù)據(jù)庫,若否,則返回紅包已被搶完的信息。16.根據(jù)權(quán)利要求15所述的裝置,其特征在于,所述搶紅包模塊,還用于在插入所述紅包的關(guān)聯(lián)信息失敗的情形下,更新所述分布式緩存中的紅包個數(shù)。
【文檔編號】G06F17/30GK106095877SQ201610395873
【公開日】2016年11月9日
【申請日】2016年6月7日 公開號201610395873.6, CN 106095877 A, CN 106095877A, CN 201610395873, CN-A-106095877, CN106095877 A, CN106095877A, CN201610395873, CN201610395873.6
【發(fā)明人】安興朝, 舒展, 邢磊, 楊濤, 倪一鳴, 谷林
【申請人】中國建設(shè)銀行股份有限公司