作者s861175 (s861175)
看板PHP
标题[心得] 会员系统的红利点数有效期限机制
时间Thu Mar 29 14:24:10 2012
要在目前网站的会员红利点数系统上,增加点数期限的机制,
参考Happygo的点数期限规则
http://www.gohappy.com.tw/intro/card_intro.jsp
大概是以年份做切割,有效期限为一年,简单说就是,2000年
期间得到的点数,有效期限就是到2001/12/31,加上两个月的
展延时间,则2002/2/28就是点数到期日。
以这个规则来説,程式人员只需要在每年的3/1进行一次过期
点数的结算。
资料库已经有一个资料表专门纪录每位使用者的每一次的点数
纪录(不论"扣点"或"加点",类似log纪录),如下:
id | name | date | point | memo
001 | 小王 | 2000/7/1 | +20 | 入会礼
002 | 老李 | 2000/7/5 | +10 | 生日礼
003 | 小王 | 2000/7/9 | -15 | 购物抵扣
...
假设现在的时间点是【2002/3/1】,要做的结算工作就是,
利用会员清单去跑回圈,透过点数纪录资料表,计算每位会员
的相关点数统计,再放到变数中,如下:(为求方便辨识用中文)
$过期点数
代表 2000/12/31 之前,该会员所有"加点"的加总。
$有效点数
代表 2001/1/1 到 2002/2/28 期间,该会员所有"加点"的加总。
$所有扣点
代表 2002/2/28之前,该会员所有"扣点"的加总。
if(($过期点数+$所有扣点)>=0){
//因为剩余过期点数已经失效了,所以要新增扣点纪录
//扣点纪录point的栏位值为【-($过期点数+$所有扣点)】
(INSERT过程省略)
}
else if(($过期点数+$所有扣点)<0){
//因为过期点数已经被用完了,所以没有任何点数失效。
}
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.67.145.120
※ 编辑: s861175 来自: 61.67.145.120 (03/29 14:28)