提示:此文章仅用于记录工作上遇到的问题,见证一个菜鸡程序员的成长
前言
最近在工作中遇到了会员充值的功能,用户充值会员会添加对应的会员天数,其中用到了Date的LocalDateTime方法
具体操作
public AjaxResult rechargeVip(String userId, Double totalAmount, int vip) {
UserVip userVip = new UserVip();
iPayService.pay(userId, totalAmount);
//查出要充值vip用户的基本信息
QueryWrapper<UserVip> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("user_id", userId);
UserVip vip1 = userVipMapper.selectOne(queryWrapper);
//如果用户没有vip 从当前时间加时长
if (vip1.getRank() == null) {
if (vip == 1) {
userVip.setUserId(userId);
userVip.setEndTime(new Date(LocalDateTime.now().plusDays(30).toInstant(ZoneOffset.UTC).toEpochMilli()));
userVipMapper.insert(userVip);
} else if (vip == 2) {
//如果充值是年卡
userVipMapper.updateTime(userId);
//更新之后时间就是充值时间
//然后用sql语句 设置结束时间是当前充值时间往后推一年时间
} else if (vip == 3) {
userVip.setUserId(userId);
userVip.setRank(3);
userVipMapper.insert(userVip);
}
}
//如果用户要续费vip 从vip到期时间加时长
if (vip == 1) {
long time = vip1.getEndTime().getTime();
time = time + (1000L * 60 * 60 * 24 * 30);
userVip.setEndTime(new Date(time));
userVip.setRank(1);
userVipMapper.insert(userVip);
}else if(vip==2){
long time = vip1.getEndTime().getTime();
time=time+(1000L*60*60*24*365);
userVip.setEndTime(new Date(time));
userVip.setRank(2);
userVipMapper.insert(userVip);
} else if (vip == 3) {
userVip.setUserId(userId);
userVip.setRank(3);
userVipMapper.insert(userVip);
}
return AjaxResult.success();
}