[心得] 會員系統的紅利點數有效期限機制

看板PHP作者 (s861175)時間13年前 (2012/03/29 14:24), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
要在目前網站的會員紅利點數系統上,增加點數期限的機制, 參考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)
文章代碼(AID): #1FT00DMI (PHP)
文章代碼(AID): #1FT00DMI (PHP)