考拉IM-紅包功能的實(shí)現(xiàn)
紅包功能是目前眾多聊天APP中不可或缺的功能,巧了,考拉IM也有這個功能,本文將帶你了解考拉IM紅包的實(shí)現(xiàn)。
紅包類型
考拉IM目前支持紅包類型包括以下三種:
1、群專屬紅包(紅包金額不能超過200元)
2、群拼手氣紅包(紅包個數(shù)不能大于群成員,紅包金額/紅包個數(shù)不大于200元)
3、群普通紅包(紅包個數(shù)不能大于群成員,紅包金額/紅包個數(shù)不大于200元)
這里需要強(qiáng)調(diào)一點(diǎn),按照國家相關(guān)法律標(biāo)準(zhǔn),單個/單人平均紅包金額不能超過200元,除卻特殊節(jié)日外。
紅包算法
這邊說的紅包算法,主要是群拼手氣紅包算法。分為以下兩種:
1、用戶發(fā)出紅包之后,程序根據(jù)紅包個數(shù)已經(jīng)分配好紅包的金額,只是沒有具體對應(yīng)到搶包的用戶。
2、用戶發(fā)出紅包,用戶實(shí)時(shí)搶紅包。
具體的算法實(shí)現(xiàn),我們假設(shè)一個業(yè)務(wù)場景,群聊成員10個人,群成員A發(fā)送拼手氣紅包100元,5個包,具體紅包算法如下:
total = 100元 = 100 * 100 分
min = 1分
count = 5
balance = total - min * (count - 1)
開包 = [1, balance)
balance = balance - 開包
循環(huán)count ,可以計(jì)算出 每次的開包數(shù),和剩余的錢數(shù)。
這樣做真的就是隨機(jī)算法了,最低保證最小紅包金額是1分錢。如果為了更加公平期間我們可以適當(dāng)改變一下算法,比如我們把紅包金額的百分之多少拿出來平均分配,然后再使用這個紅包算法。
警惕
從程序可以看到,我們所有的APP上的業(yè)務(wù)都是可控的,所以謹(jǐn)防紅包詐騙!