首页弹窗业务逻辑简单设计

1.业务描述
app首页会在不同时期、根据不同的需求弹出业务处理逻辑不同的弹窗,比如1v1外教课,奖学金红包,每日学弹窗等。

2.业务需求
app有ios,和android两个版本,因客户端需要发版,且发版后,并不一定所有人都会更新。所以首页弹窗需要尽量通用且在是服务端可配置的、或者服务端更新上线可以支持新的弹窗。

3.实现需求前的简单分析
弹框的共同点
a.弹框都是1-2张图+跳转route
b.都有自己的弹窗类型记为 gtype
c.都有一个弹窗的优先级,因为不管何种弹窗,用户每次只能看到一个弹窗 priority
d.都有弹出类型,从目前来看,弹窗弹出类型暂时有两种,一共只弹一次 和 一天弹一次 repeattype
e.都应该有一个开关 switch
f.都应该有安卓和ios对应的启用版本号。 因为对于未升级的老版本app并没有弹窗上说的那些内容。 iosversion,androidversion
g.都应该有测试账号列表。 方便线上测试 testuids
h.都应该有点击状态的记录,是点了关闭弹框,还是点了弹框内容

弹框的不同点
a.不同的弹框,弹出的条件不同。
b.弹框内容不同,也就是图片的url和route不同

4.需求的实现
根据上述的共同点和不同点,需求的实现逻辑为
a.将开关打开的弹框,根据优先级从高到低排序,遍历一遍
b.先根据共同的部分,包括弹窗类型,版本号,测试账号列表,过滤
c.再根据不同的gtype做不同的过滤逻辑
d.对符合条件的第一个弹框,针对不同的弹窗类型,处理并补充一些数据,返回给客户端
e.客户端展示弹框,用户点击后上报弹框点击状态