feat: 用户累计充值可得免费播放全集权限

This commit is contained in:
张松
2024-12-18 17:07:13 +08:00
parent 4184193ee6
commit 5a10f03a4a
7 changed files with 114 additions and 1 deletions

View File

@@ -8,4 +8,8 @@ public interface RedisService {
void setDiscSpinningAmounts(String key);
void setPayFreeWatchTime(Long userId, Integer time);
Boolean getPayFreeWatchTimeIsExpire(Long userId);
}

View File

@@ -1,6 +1,10 @@
package com.sqx.modules.redisService.impl;
import cn.hutool.core.date.DateUnit;
import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.sqx.common.utils.RedisKeys;
import com.sqx.common.utils.RedisUtils;
import com.sqx.modules.discSpinning.entity.DiscSpinningAmount;
import com.sqx.modules.discSpinning.service.DiscSpinningAmountService;
@@ -9,6 +13,8 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
@Service
public class RedisServiceImpl implements RedisService {
@@ -23,4 +29,23 @@ public class RedisServiceImpl implements RedisService {
List<DiscSpinningAmount> amounts = amountService.list(new QueryWrapper<DiscSpinningAmount>().eq("status", 1).orderByAsc("max_amount"));
redisUtils.set(key, amounts);
}
@Override
public void setPayFreeWatchTime(Long userId, Integer minute) {
Date now = DateUtil.date();
Date tomorrow = DateUtil.beginOfDay(DateUtil.offsetDay(now, 1));
long seconds = DateUtil.between(now, tomorrow, DateUnit.SECOND);
redisUtils.setIfAbsent(RedisKeys.getPayFreeWatchKey(userId), DateUtil.offsetMinute(now, minute).getTime(), seconds + 300);
}
@Override
public Boolean getPayFreeWatchTimeIsExpire(Long userId) {
String data = redisUtils.get(RedisKeys.getPayFreeWatchKey(userId));
if (data == null) {
return null;
}
long expireTime = Long.parseLong(data);
return DateUtil.current() > expireTime;
}
}