Java开通会员功能

您所在的位置:网站首页 会员的功能 Java开通会员功能

Java开通会员功能

2024-07-16 12:46| 来源: 网络整理| 查看: 265

近期负责的项目中有关于开通会员的功能。简单描述一下开通会员的流程:

调用第三方支付接口购买VIP成功后,修改订单相关信息,再远程调用订单信息表,根据已支付的订单,修改用户表中的会员的状态,和会员到期时间。

会员充值的工具类:

public class MemberTimeDate { /** * @param beginDate 会员开始的时间 * @param time 用户充值的月数 * @return map */ public static synchronized HashMap 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 map = new HashMap(); map.put("startTime", beginDate); map.put("endTime", date); return map; } /** * @param beginDate 会员开始的时间 * @param time 用户充值的月数 * @return date */ public static synchronized Date getVipTime(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); return date; } }

在购买VIP成功后,要判断该用户当前是否为会员:

1、如果用户之前没有充值过会员,就根据现在的系统时间,往后加相应的时长。

2、如果会员已过期,就根据现在的系统时间,往后加相应的时长。

3、如果用户已经是会员,需要获取之前的截止日期,再加上对应的月数作为最终的截止日期。

部分逻辑处理:

            //获取订单中开通会员的时间 Integer time = isBuyMemberOrder.getPackageTime(); UserAll userAll = baseMapper.selectById(userId); Date memberOutTime = userAll.getMemberOutTime(); Date date = new Date(); //开通会员 if (memberOutTime == null){ Date vipTime = MemberTimeDate.getVipTime(date, time); userAll.setMemberOutTime(vipTime); } //如果当前时间比会员时间晚,会员过期 else if (date.after(memberOutTime)){ Date vipTime = MemberTimeDate.getVipTime(date, time); userAll.setMemberOutTime(vipTime); } //在原会员时间基础上添加 else if (!date.after(memberOutTime)){ Date vipTime = MemberTimeDate.getVipTime(memberOutTime, time); userAll.setMemberOutTime(vipTime); }             //修改会员状态 int update = baseMapper.updateById(userAll);

功能设计的很简单,中间或许也存在着不足。希望可以得到大家的指导和建议。

参考原创博客:

https://blog.csdn.net/duan196_118/article/details/106870774



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3