feat: 1.uni-ad广告回调接入 2.广告奖励免费观看时长
This commit is contained in:
@@ -8,7 +8,7 @@ import cn.hutool.core.date.DateUtil;
|
||||
*/
|
||||
public class RedisKeys {
|
||||
|
||||
public static final String PAY_FREE_WATCH_KEY = "pay:free:watch:";
|
||||
public static final String FREE_WATCH_KEY = "free:watch:";
|
||||
|
||||
public static String getSysConfigKey(String key){
|
||||
return "sys:config:" + key;
|
||||
@@ -18,8 +18,11 @@ public class RedisKeys {
|
||||
return "date:" + key;
|
||||
}
|
||||
|
||||
public static String getPayFreeWatchKey(Long userId) {
|
||||
return PAY_FREE_WATCH_KEY + DateUtil.today() + ":" + userId;
|
||||
public static String getFreeWatchKey(Long userId, boolean isPermanently) {
|
||||
if (isPermanently) {
|
||||
return FREE_WATCH_KEY + userId;
|
||||
}
|
||||
return FREE_WATCH_KEY + DateUtil.today() + ":" + userId;
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
@@ -134,6 +134,10 @@ public class RedisUtils {
|
||||
set(key, value, DEFAULT_EXPIRE);
|
||||
}
|
||||
|
||||
public void expire(String key, long seconds){
|
||||
redisTemplate.expire(key, seconds, TimeUnit.SECONDS);
|
||||
}
|
||||
|
||||
public <T> T get(String key, Class<T> clazz, long expire) {
|
||||
String value = valueOperations.get(key);
|
||||
if (expire != NOT_EXPIRE) {
|
||||
@@ -142,6 +146,47 @@ public class RedisUtils {
|
||||
return value == null ? null : fromJson(value, clazz);
|
||||
}
|
||||
|
||||
// 判断键是否设置了过期时间
|
||||
public boolean isExpiredSet(String key) {
|
||||
// 获取过期时间,单位是秒
|
||||
Long expireTime = redisTemplate.getExpire(key);
|
||||
|
||||
if (expireTime == null) {
|
||||
return false; // 如果返回 null,表示键不存在
|
||||
}
|
||||
|
||||
return expireTime != -1; // 如果是 -1,说明没有设置过期时间
|
||||
}
|
||||
|
||||
public Long getExpire(String key) {
|
||||
Long currentExpireTime = redisTemplate.getExpire(key);
|
||||
if (currentExpireTime == null || currentExpireTime == -2 || currentExpireTime == -1) {
|
||||
return null;
|
||||
}
|
||||
return currentExpireTime;
|
||||
}
|
||||
|
||||
// 累加过期时间
|
||||
public boolean extendExpireTime(String key, long additionalTimeInSeconds) {
|
||||
// 获取当前键的剩余过期时间(单位:秒)
|
||||
Long currentExpireTime = redisTemplate.getExpire(key);
|
||||
|
||||
if (currentExpireTime == null || currentExpireTime == -2) {
|
||||
// 键不存在或已经过期,无法进行累加
|
||||
return false;
|
||||
}
|
||||
|
||||
if (currentExpireTime == -1) {
|
||||
redisTemplate.expire(key, additionalTimeInSeconds, java.util.concurrent.TimeUnit.SECONDS);
|
||||
}
|
||||
|
||||
// 累加剩余过期时间和新增时间
|
||||
long newExpireTime = currentExpireTime + additionalTimeInSeconds;
|
||||
|
||||
// 设置新的过期时间
|
||||
return Boolean.TRUE.equals(redisTemplate.expire(key, newExpireTime, TimeUnit.SECONDS));
|
||||
}
|
||||
|
||||
public <T> T get(String key, Class<T> clazz) {
|
||||
return get(key, clazz, NOT_EXPIRE);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user