竞猜系统整体架构设计


项目说明

竞猜业务逻辑很简单、普遍用于各种赛事中、篮球赛、足球赛、包括最近兴起的游戏电竞赛事,对于社区产品来说;竞猜无疑是一个很好的润滑剂,可以更好地凝聚用户;

 

核心逻辑说明

用户下注逻辑

赛事为多个队伍PK,用户可以选择一个队伍进行押注;每个队伍的赔率都会随着用户的下注而改变;

举例:

赛事名称:英雄联盟LPL春季赛EDG对WE

EDG队伍胜利 赔率:1 下注金额:0

WE队伍胜利  赔率:1 下注金额:0

当下注人数较少时,赔率默认为1,不变化;当下注金额变得可计算时,每次下注触发修改下注赔率,如:

EDG队伍胜利 赔率:1.5 下注金额:1000

WE队伍胜利  赔率:3.0 下注金额:500

 

算法为:

A队伍赔率 = (A队伍金额+B队伍金额)/A队伍金额

B队伍赔率 = (A队伍金额+B队伍金额)/B队伍金额

以此类推

EDG队伍赔率 = (1000+500)/ 1000

WE队伍赔率 = (1000+500)/ 500

 

结果揭晓逻辑

结果揭晓为后台管理逻辑,管理人员根据赛事真实结果,揭晓正确选项;揭晓后竞猜成功的用户将会得到下注金额*赔率的货币返还,竞猜失败的用户货币直接吞掉;最后用消息通知赛事揭晓情况;

*揭晓结果时,可以分批处理,成功的分一批、失败的分一批;

*用户可能对多个项进行下注,可能同时收到成功和失败的消息,这是正常的;

 

 

数据结构设计

 

 

赛事信息表:gc_comp

记录赛事的基本信息、标题、起止时间等等

 

参赛队伍表:gc_team

记录了参数队伍的一些信息,队伍信息是可以复用的,可以挂靠在不同的赛事中

 

赛事队伍关联表:gc_comp_team

用于关联赛事和参赛队伍的,主要作用在于前端展示

 

 

竞猜结果项:gc_comp_result

配置竞猜的结果项目,如:A队胜利,B队胜利,AB平手,等等…

为什么这里要增加这个项、主要是为了后期的扩展性,用户竞猜是猜选项,而不是猜队伍;换句话说:队伍只是展现数据,而选项才是真正竞猜结算选项;

*以下teamId可以为空,只是预留项目;也可以去除

 

 

用户的竞猜记录:gc_comp_record

记录了用户每个选项投注的情况。

*一个项只会有一条数据,多次下注结果累加在beans里面

*整个设计缺少详细的下注历史,你们可以自行加上;

 

 

有任何问题或者好的建议,都可以和我聊一天:18365918

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值