搜索

首页  >  问答  >  正文

php - 邀请好友机制的设计思路

网站需要邀请好友的功能模块,流程是这样的:

用户中心生成每个人(A)的邀请链接,然后被邀请人(B)点击注册之后,B的注册字段后面插入A的ID作为标记。

目前这样可以统计出每个人邀请的好友列表,但是后续存在以下问题:

被邀请人B首次下单,会奖励A 10%的积分奖励,非首次下单,不于奖励
(我自己笨方法是这么想的,每一个用户下单时候,都先判断是否有上级A用户,如果没有就直接下单,如果有上级A用户,就要再判断一次是否首次下单,然后再将积分增加给上级,并且同时进行B用户的下单操作)

那么问题就是,我自的笨方法需要对每一个用户的每一次下单进行首次下单的判断,感觉这样的过于累赘,容易出现问题,不知道大神有没有优化思路

滿天的星座滿天的星座2771 天前1079

全部回复(5)我来回复

  • 世界只因有你

    世界只因有你2017-06-05 11:09:59

    我觉得可以这样搞:

    1. 好友关系:可以单独搞一个表,好友关系表,里面存两个字段 uid(用户ID), contact_uid(关联好友ID)

    2. 下单是否是首次并增加推荐好友积分操作:可以在用户相关表增加个是否下过单的字段(楼上也有提过),默认为0为没有下过单,每次下单都会先查询这个字段,如果是1则走正常下单逻辑;如果为0,表示从未下过单,然后执行你将要用到的逻辑,就是用户是否有推荐人,给推荐人增加积分等的处理

    回复
    0
  • 伊谢尔伦

    伊谢尔伦2017-06-05 11:09:59

    一个用户下单时候,都先判断是否有上级A用户,如果没有就直接下单

    不要这样做,会影响性能。

    统计积分在每天凌晨统计。

    回复
    0
  • 某草草

    某草草2017-06-05 11:09:59

    可以提出一张表,这张表有id,B的id,C的id,以及字段buystate,buystate的值可以取1或者0,0代表不是第一次购买,1代表是第一次购买

    回复
    0
  • 漂亮男人

    漂亮男人2017-06-05 11:09:59

    直接加一个字段,是否下单过,默认为0,反正下单的时候会获取这个用户的信息,顺便判断一下是不是等于0就知道是不是首单了。积分方面,如果担心性能,可以考虑存到redis里,固定一个时间修改数据库。

    回复
    0
  • 过去多啦不再A梦

    过去多啦不再A梦2017-06-05 11:09:59

    我觉得思路没问题
    有一点提一下,奖励积分应该要在订单完成后吧,而不是下单的时候。
    在用户表加一个字段表示历史完结单次数就好了,后续如果需求改变为前N次返积分也很容易。而且通常下单或者完成订单的过程中本身就需要查询用户表,并不显得繁杂。

    回复
    0
  • 取消回复