添加会员时,需要给会员选择套餐(套餐有3/7/30/90/365天), 把选择的套餐天数存在day_remaining这个字段中(叫剩余天数有点不恰当,应该叫选择套餐天数),那么过期时间就是创建时间加上套餐天数。
给会员续费时,需要给会员选择套餐(套餐有3/7/30/90/365天), 仍然把选择的套餐天数存在day_remaining这个字段,中那么续费日期就是添加续费操作的时间,过期时间需要在原来的过期时间基础上再加上选择套餐的天数。
/*
*添加会员
*/
@Override
public BaseRes<String> addEntityInfo(CustomerVo customerVo) {
Date date = new Date(); //创建会员时间
customerVo.setCreateTime(date);
customerVo.setUpdateDate(date);
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); // 日期格式
Date newDate = addDate(date, customerVo.getDayRemaining()); //从前端传来的数据中获取选择的套餐天数,调用增加天数的方法
System.out.println("创建时间"+dateFormat.format(date));
System.out.println("续费后过期时间"+dateFormat.format(newDate));
customerVo.setExpireTime(newDate); //设置新的过期时间
customerMapper.insertSelective(customerVo);
return new BaseRes<>(ServiceCode.SUCCESS);
}
/*
*给会员续费
*/
@Override
public BaseRes<String> modifyXuFeiInfo(CustomerVo customerVo) throws ParseException {
customerVo.setRenewalTime(new Date());
customerVo.setUpdateDate(new Date());
customerVo.setDayRemaining(customerVo.getDayRemaining());
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); // 日期格式
Date date = customerVo.getExpireTime(); // 获取初始过期时间
Date newDate = addDate(date, customerVo.getDayRemaining());
System.out.println("初始过期时间"+dateFormat.format(date));
System.out.println("续费后过期时间"+dateFormat.format(newDate));
customerVo.setExpireTime(newDate);
customerMapper.updateByPrimaryKeySelective(customerVo);
return new BaseRes<>(ServiceCode.SUCCESS);
}
private Date addDate(Date date, long day) {
long time = date.getTime(); // 得到指定日期的毫秒数
day = day * 24 * 60 * 60 * 1000; // 要加上的天数转换成毫秒数
time += day; // 相加得到新的毫秒数
return new Date(time); // 将毫秒数转换成日期
}