近期負責的項目中有關於開通會員的功能,特做一個會員充值流程小結,高手可以忽略,不喜勿噴。。。我們知道關於這種購買VIP類似的操作中,首先我們會有一張訂單表來記錄訂單的信息,在調用第三方接口支付時修改表的狀態(此處不做詳細闡述)。購買VIP成功後我們需要記錄相關的信息,具體要看項目中的要求,我記錄了會員開始時間,截止時間等,在用戶表中只記錄了該用戶是否爲會員的一個狀態。
在購買VIP成功後,要判斷該用戶當前是否爲會員:
如果用戶之前沒有充值過會員,就根據現在的系統時間,往後加相應的時長。
如果用戶已經是會員,需要獲取之前的截止日期,再加上對應的月數作爲最終的截止日期。
我在用戶表中記錄了用戶是否爲會員的狀態,在會員過期時會做出相應的狀態修改。而會員開始時間,截止時間要在開通時進行修改重新設置。
針對員開始時間,截止時間計算的方法如下:
/**
*
* @param beginDate 會員開始的時間
* @param time 用戶充值的月數
* @return map
*/
public static synchronized HashMap<String,Object> getVipTime2(Date beginDate,int time){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Calendar calendar = new GregorianCalendar();
calendar.setTime(beginDate);
calendar.add(Calendar.MONTH, time);//time,是用戶充值的月數
Date date = calendar.getTime();
String startDate=sdf.format(beginDate);
String endDate=sdf.format(date);
System.out.println("startDate: "+startDate+" ,"+"購買的會員月份爲: "+time+" ,"+"endDate: "+endDate);
HashMap<String, Object> map = new HashMap<String,Object>();
map.put("startTime", beginDate);
map.put("endTime", date);
return map;
}
在邏輯判斷後進行調用即可。目前是這麼處理會員充值問題的,這中間或許也存在着不足。希望可以得到大家的知道和建議。望不吝賜教!!!
另外關於會員到期提醒可以參考原創博客:https://blog.csdn.net/xiaoshuxgh/article/details/88049282