首页新闻找找看学习计划

麻烦给提示点实现思路,关于阶段性给予用户奖励的。

0
悬赏园豆:15 [已解决问题] 解决于 2012-10-12 11:49

需求描述:用户每充值100元就给予3点积分奖励。

用例:

  • 用户A充值98元,获得0积分
  • 用户A再次充值10元,获得3积分
  • 用户A再次充值98元,获得3积分
  • 用户A再次充值194元,获得6积分

突然想不到什么实现思路,麻烦给说一说呗? 是不是需要一个额外的表来记录赠送历史?

wdwwtzy的主页 wdwwtzy | 菜鸟二级 | 园豆:226
提问于:2012-05-03 17:00
< >
分享
最佳答案
0

充值100元给予3点积分

  1. 第一次充值50元                 0点积分
  2. 第二次充值80元(加上原来充值记录的总和50元,此条充值总和130元充值)   上次充值送了0点积分,这次总和130所以就送3点积分(积分总和送了3分)
  3. 第三次充值180元(加上原来记录,就是历史记录离此条记录最近的那条是130元充值,加上这次180元就是310元,按道理来说要送9积分,就去查看上次记录离此次记录最近的一条记录有多少积分,发现有3点积分,所以此次要送6点积分)
  4. 依次类推进行……

充值记录表  ID    UserID   充值金额   历史金额  时间   积分表 ID  UserID  送的积分  历史赠送积分  时间

                  1        23        160            0        *                1      23        3              0           *

                  2        23         80             160    *                1      23        3              3           *

                  3        23         90             240    *                1      23        3              6            *

                  4       23          150           330     *               1       23       3               9             *

 

………………………………………………………………………………………………

收获园豆:15
xu_happy_you | 菜鸟二级 |园豆:222 | 2012-05-03 17:29

是不错。不过我在想有没有不需要增加/修改表的方法..哈哈哈

wdwwtzy | 园豆:226 (菜鸟二级) | 2012-05-03 18:23

@wdwwtzy: 也可以不要历史金额和历史积分,只是每次都要sum一下再比较,如果是我就会把这种逻辑放到存储过程中去操作

xu_happy_you | 园豆:222 (菜鸟二级) | 2012-05-03 18:57
其他回答(2)
0

是的。每次赠送的积分,等于你的所有金额,算出总积分,然后减去已经送出去的积分,就等于这次的积分。

無限遐想 | 园豆:3740 (老鸟四级) | 2012-05-03 17:37
0

建一个视图,里面加一个列叫做 未赠送积分金额,这个金额在创建视图的时候用总充值金额对100取模的方式计算,每次用户充值的时候检查视图里面用户的未赠送积分金额,加上本次充值金额计算积分即可。

xjyang | 园豆:212 (菜鸟二级) | 2012-05-04 09:33
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册