feat: 最近动态

This commit is contained in:
zlg
2024-07-20 15:44:34 +08:00
parent 58b5430115
commit cf20e5c13f
5 changed files with 309 additions and 61 deletions

View File

@@ -2,22 +2,25 @@ package com.schisandra.share.application.controller;
import com.alibaba.fastjson.JSON;
import com.google.common.base.Preconditions;
import com.google.gson.Gson;
import com.schisandra.share.application.convert.SchisandraShareCircleDTOConverter;
import com.schisandra.share.application.dto.SchisandraShareCircleDTO;
import com.schisandra.share.common.entity.Result;
import com.schisandra.share.common.redis.RedisUtil;
import com.schisandra.share.domain.bo.SchisandraShareCircleBO;
import com.schisandra.share.domain.service.SchisandraShareCircleDomainService;
import lombok.extern.slf4j.Slf4j;
import org.apache.rocketmq.client.producer.SendCallback;
import org.apache.rocketmq.client.producer.SendResult;
import org.apache.rocketmq.spring.core.RocketMQTemplate;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.HashMap;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.concurrent.TimeUnit;
/**
* 分享圈 controller
@@ -29,7 +32,9 @@ import java.util.List;
@RequestMapping("/share/circle/")
@Slf4j
public class SchisandraShareCircleController {
private final String SHARE_USER_RECENT = "share:user:recent:situation";
@Resource
RedisUtil redisUtil;
@Resource
private SchisandraShareCircleDomainService schisandraShareCircleDomainService;
@Resource
@@ -48,7 +53,16 @@ public class SchisandraShareCircleController {
Preconditions.checkNotNull(schisandraShareCircleDTO.getIcon(), "图标不能为空");
Preconditions.checkNotNull(schisandraShareCircleDTO.getDescription(), "描述不能为空");
SchisandraShareCircleBO SchisandraShareCircleBO = SchisandraShareCircleDTOConverter.INSTANCE.convertDTOToBO(schisandraShareCircleDTO);
return Result.ok(schisandraShareCircleDomainService.add(SchisandraShareCircleBO));
if (schisandraShareCircleDomainService.add(SchisandraShareCircleBO)) {
String value = "您最近创建了一个圈子:" + schisandraShareCircleDTO.getName();
Date date = new Date();
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String formattedDate = dateFormat.format(date);
String key = redisUtil.buildKey(SHARE_USER_RECENT, schisandraShareCircleDTO.getUserId(), formattedDate);
redisUtil.setNx(key, value, 30L, TimeUnit.DAYS);
return Result.ok();
}
return Result.fail();
} catch (Exception e) {
log.error("SchisandraShareCircleController.register.error:{}", e.getMessage(), e);
return Result.fail("新增分享圈失败");
@@ -59,14 +73,14 @@ public class SchisandraShareCircleController {
/**
* 分享圈列表返回
*/
@Cacheable(value = "sharelist",key = "'sharelist'")
@Cacheable(value = "sharelist", key = "'sharelist'")
@GetMapping("sharelist")
public Result<List<SchisandraShareCircleDTO>> getShareList() {
try {
List<SchisandraShareCircleBO> result = schisandraShareCircleDomainService.queryAll();
List<SchisandraShareCircleDTO> schisandraShareCircleDTOS = SchisandraShareCircleDTOConverter.INSTANCE.convertBOToDTOList(result);
return Result.ok(schisandraShareCircleDTOS);
}catch (Exception e) {
} catch (Exception e) {
log.error("SchisandraShareCircleController.getShareList.error:{}", e.getMessage(), e);
return Result.fail("分享圈列表获取失败");
}
@@ -119,7 +133,17 @@ public class SchisandraShareCircleController {
Preconditions.checkNotNull(schisandraShareCircleDTO.getViews(), "不能为空");
SchisandraShareCircleBO schisandraShareCircleBO = SchisandraShareCircleDTOConverter.INSTANCE.convertDTOToBO(schisandraShareCircleDTO);
return Result.ok(schisandraShareCircleDomainService.delete(schisandraShareCircleBO));
if (schisandraShareCircleDomainService.delete(schisandraShareCircleBO)) {
String value = "您最近删除了一个圈子:" + schisandraShareCircleDTO.getName();
Date date = new Date();
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String formattedDate = dateFormat.format(date);
String key = redisUtil.buildKey(SHARE_USER_RECENT, schisandraShareCircleDTO.getUserId(), formattedDate);
redisUtil.setNx(key, value, 30L, TimeUnit.DAYS);
return Result.ok();
}
return Result.fail();
} catch (Exception e) {
log.error("SchisandraShareCircleController.delete.error:{}", e.getMessage(), e);
return Result.fail("删除分享圈信息失败");

View File

@@ -8,6 +8,7 @@ import com.schisandra.share.application.convert.SchisandraUserLikesCommentDTOCon
import com.schisandra.share.application.dto.SchisandraShareCommentReplyDTO;
import com.schisandra.share.application.dto.SchisandraUserLikesCommentDTO;
import com.schisandra.share.common.entity.Result;
import com.schisandra.share.common.redis.RedisUtil;
import com.schisandra.share.common.utils.CaffeineUtil;
import com.schisandra.share.domain.bo.SchisandraShareCommentReplyBO;
import com.schisandra.share.domain.bo.SchisandraUserLikesCommentBO;
@@ -19,8 +20,11 @@ import org.apache.rocketmq.spring.core.RocketMQTemplate;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.concurrent.TimeUnit;
/**
* 评论回复表 controller
@@ -32,20 +36,16 @@ import java.util.List;
@RequestMapping("/share/comment/reply/")
@Slf4j
public class SchisandraShareCommentReplyController {
/**
* 点赞
*
* @param Id
* @return
*/
private final String SHARE_USER_RECENT = "share:user:recent:situation";
@Resource
RocketMQTemplate rocketMQTemplate;
@Resource
CaffeineUtil caffeineUtil;
@Resource
private SchisandraShareCommentReplyDomainService schisandraShareCommentReplyDomainService;
@Resource
RedisUtil redisUtil;
/**
* @description: 点赞
* @param: [schisandraUserLikesCommentDTO]
@@ -218,6 +218,12 @@ public class SchisandraShareCommentReplyController {
}
}
);
String value = "您最近发表评论:" + schisandraShareCommentReplyDTO.getContent();
Date date = new Date();
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String formattedDate = dateFormat.format(date);
String key = redisUtil.buildKey(SHARE_USER_RECENT,schisandraShareCommentReplyDTO.getUserId(), formattedDate);
redisUtil.setNx(key, value, 30L, TimeUnit.DAYS);
return Result.ok();
}
return Result.fail();

View File

@@ -4,17 +4,16 @@ import com.alibaba.fastjson.JSON;
import com.google.common.base.Preconditions;
import com.google.gson.Gson;
import com.schisandra.share.application.convert.SchisandraShareDetailDTOConverter;
import com.schisandra.share.application.convert.SchisandraUserLikesCommentDTOConverter;
import com.schisandra.share.application.convert.SchisandraUserLikesDetailDTOConverter;
import com.schisandra.share.application.dto.SchisandraShareDetailDTO;
import com.schisandra.share.application.dto.SchisandraUserLikesCommentDTO;
import com.schisandra.share.application.dto.SchisandraUserLikesDetailDTO;
import com.schisandra.share.common.entity.Result;
import com.schisandra.share.common.redis.RedisUtil;
import com.schisandra.share.common.utils.CaffeineUtil;
import com.schisandra.share.domain.bo.SchisandraShareDetailBO;
import com.schisandra.share.domain.bo.SchisandraUserLikesCommentBO;
import com.schisandra.share.domain.bo.SchisandraUserLikesDetailBO;
import com.schisandra.share.domain.service.SchisandraShareDetailDomainService;
import feign.form.FormData;
import lombok.extern.slf4j.Slf4j;
import org.apache.rocketmq.client.producer.SendCallback;
import org.apache.rocketmq.client.producer.SendResult;
@@ -23,8 +22,11 @@ import org.springframework.cache.annotation.Cacheable;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.concurrent.TimeUnit;
/**
* 分享详情表 controller
@@ -37,13 +39,15 @@ import java.util.List;
@Slf4j
public class SchisandraShareDetailController {
private final String SHARE_USER_RECENT = "share:user:recent:situation";
@Resource
CaffeineUtil caffeineUtil;
@Resource
RedisUtil redisUtil;
@Resource
private SchisandraShareDetailDomainService schisandraShareDetailDomainService;
@Resource
private RocketMQTemplate rocketMQTemplate;
@Resource
CaffeineUtil caffeineUtil;
/**
@@ -56,7 +60,7 @@ public class SchisandraShareDetailController {
@GetMapping("addlike")
public void addLike(@RequestParam SchisandraUserLikesDetailDTO schisandraUserLikesDetailDTO) {
Preconditions.checkNotNull(schisandraUserLikesDetailDTO);
SchisandraUserLikesDetailBO schisandraUserLikesDetailBO= SchisandraUserLikesDetailDTOConverter.INSTANCE.convertDTOToBO(schisandraUserLikesDetailDTO);
SchisandraUserLikesDetailBO schisandraUserLikesDetailBO = SchisandraUserLikesDetailDTOConverter.INSTANCE.convertDTOToBO(schisandraUserLikesDetailDTO);
schisandraUserLikesDetailBO.setLike(true);
rocketMQTemplate.asyncSend("DetailLikes-topic", schisandraUserLikesDetailBO, new SendCallback() {
@Override
@@ -73,15 +77,16 @@ public class SchisandraShareDetailController {
}
@GetMapping("dellike")
public void delLike( @RequestParam SchisandraUserLikesDetailDTO schisandraUserLikesDetailDTO) {
public void delLike(@RequestParam SchisandraUserLikesDetailDTO schisandraUserLikesDetailDTO) {
Preconditions.checkNotNull(schisandraUserLikesDetailDTO);
SchisandraUserLikesDetailBO schisandraUserLikesDetailBO= SchisandraUserLikesDetailDTOConverter.INSTANCE.convertDTOToBO(schisandraUserLikesDetailDTO);
SchisandraUserLikesDetailBO schisandraUserLikesDetailBO = SchisandraUserLikesDetailDTOConverter.INSTANCE.convertDTOToBO(schisandraUserLikesDetailDTO);
schisandraUserLikesDetailBO.setLike(false);
rocketMQTemplate.asyncSend("DetailLikes-topic", schisandraUserLikesDetailBO, new SendCallback() {
@Override
public void onSuccess(SendResult sendResult) {
System.out.println(sendResult);
}
@Override
public void onException(Throwable e) {
e.printStackTrace();
@@ -105,6 +110,7 @@ public class SchisandraShareDetailController {
return Result.fail("获取评论数量失败!!!");
}
}
/**
* 获取我的分享
*/
@@ -112,7 +118,7 @@ public class SchisandraShareDetailController {
public Result mydetail(@RequestParam("userId") String userId) {
List<SchisandraShareDetailBO> result = (List<SchisandraShareDetailBO>) caffeineUtil
.caffeineBuild().getIfPresent("mydetail" + userId);
if(result == null) {
if (result == null) {
result = schisandraShareDetailDomainService.mydetail(userId);
caffeineUtil.caffeineBuild().put("list" + userId, result);
return Result.ok(SchisandraShareDetailDTOConverter.INSTANCE.convertBOToDTOList(result));
@@ -126,37 +132,44 @@ public class SchisandraShareDetailController {
* @param schisandraShareDetailDTO
* @return
*/
@PostMapping("add_detail")
public Result addDetail(@RequestBody SchisandraShareDetailDTO schisandraShareDetailDTO) {
Preconditions.checkNotNull(schisandraShareDetailDTO.getTitle(),"标题不能为空");
Preconditions.checkNotNull(schisandraShareDetailDTO.getIcon(),"图标不能为空");
Preconditions.checkNotNull(schisandraShareDetailDTO.getDescription(),"摘要不能为空");
Preconditions.checkNotNull(schisandraShareDetailDTO.getCircleId(),"摘要不能为空");
caffeineUtil.caffeineBuild().invalidate("list" + schisandraShareDetailDTO.getCircleId());
caffeineUtil.caffeineBuild().invalidate("mydetail" + schisandraShareDetailDTO.getUserId());
SchisandraShareDetailBO schisandraShareDetailBO = SchisandraShareDetailDTOConverter.INSTANCE.convertDTOToBO(schisandraShareDetailDTO);
if (schisandraShareDetailDomainService.addDetail(schisandraShareDetailBO)){
HashMap<String, Object> map = new HashMap<>();
map.put("Id", schisandraShareDetailDTO.getCircleId());
map.put("isCount", true);
Gson gson = new Gson();
String message = gson.toJson(map);
rocketMQTemplate.asyncSend("CircleCounts-topic", message, new SendCallback() {
@Override
public void onSuccess(SendResult sendResult) {
System.out.println(sendResult);
}
@Override
public void onException(Throwable e) {
e.printStackTrace();
}
}
);
return Result.ok();
}
return Result.fail();
@PostMapping("add_detail")
public Result addDetail(@RequestBody SchisandraShareDetailDTO schisandraShareDetailDTO) {
Preconditions.checkNotNull(schisandraShareDetailDTO.getTitle(), "标题不能为空");
Preconditions.checkNotNull(schisandraShareDetailDTO.getIcon(), "图标不能为空");
Preconditions.checkNotNull(schisandraShareDetailDTO.getDescription(), "摘要不能为空");
Preconditions.checkNotNull(schisandraShareDetailDTO.getCircleId(), "摘要不能为空");
caffeineUtil.caffeineBuild().invalidate("list" + schisandraShareDetailDTO.getCircleId());
caffeineUtil.caffeineBuild().invalidate("mydetail" + schisandraShareDetailDTO.getUserId());
SchisandraShareDetailBO schisandraShareDetailBO = SchisandraShareDetailDTOConverter.INSTANCE.convertDTOToBO(schisandraShareDetailDTO);
if (schisandraShareDetailDomainService.addDetail(schisandraShareDetailBO)) {
HashMap<String, Object> map = new HashMap<>();
map.put("Id", schisandraShareDetailDTO.getCircleId());
map.put("isCount", true);
Gson gson = new Gson();
String message = gson.toJson(map);
rocketMQTemplate.asyncSend("CircleCounts-topic", message, new SendCallback() {
@Override
public void onSuccess(SendResult sendResult) {
System.out.println(sendResult);
}
}
@Override
public void onException(Throwable e) {
e.printStackTrace();
}
}
);
String value="您最近创建了一个分享:"+schisandraShareDetailDTO.getTitle();
Date date = new Date();
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String formattedDate = dateFormat.format(date);
String key = redisUtil.buildKey(SHARE_USER_RECENT, schisandraShareDetailDTO.getUserId(),formattedDate);
redisUtil.setNx(key, value, 30L, TimeUnit.DAYS);
return Result.ok();
}
return Result.fail();
}
/**
@@ -177,6 +190,7 @@ public class SchisandraShareDetailController {
public void onSuccess(SendResult sendResult) {
System.out.println(sendResult);
}
@Override
public void onException(Throwable e) {
e.printStackTrace();
@@ -201,7 +215,7 @@ public class SchisandraShareDetailController {
public Result<List<SchisandraShareDetailDTO>> selectCircleList(@RequestParam("circleId") String circleId) {
List<SchisandraShareDetailBO> result = (List<SchisandraShareDetailBO>) caffeineUtil
.caffeineBuild().getIfPresent("list" + circleId);
if(result == null){
if (result == null) {
result = schisandraShareDetailDomainService.list(circleId);
caffeineUtil.caffeineBuild().put("list" + circleId, result);
return Result.ok(SchisandraShareDetailDTOConverter.INSTANCE.convertBOToDTOList(result));
@@ -216,6 +230,7 @@ public class SchisandraShareDetailController {
public void onSuccess(SendResult sendResult) {
System.out.println(sendResult);
}
@Override
public void onException(Throwable e) {
e.printStackTrace();
@@ -242,7 +257,7 @@ public class SchisandraShareDetailController {
Preconditions.checkNotNull(schisandraShareDetailDTO.getDescription(), "描述不能为空");
Preconditions.checkNotNull(schisandraShareDetailDTO.getContent(), "内容不能为空");
SchisandraShareDetailBO SchisandraShareDetailBO = SchisandraShareDetailDTOConverter.INSTANCE.convertDTOToBO(schisandraShareDetailDTO);
if(schisandraShareDetailDomainService.add(SchisandraShareDetailBO)){
if (schisandraShareDetailDomainService.add(SchisandraShareDetailBO)) {
caffeineUtil.caffeineBuild().invalidate("list" + schisandraShareDetailDTO.getCircleId());
caffeineUtil.caffeineBuild().invalidate("mydetail" + schisandraShareDetailDTO.getUserId());
}
@@ -301,7 +316,7 @@ public class SchisandraShareDetailController {
}
Preconditions.checkNotNull(schisandraShareDetailDTO.getId(), "详情id不能为空");
SchisandraShareDetailBO schisandraShareDetailBO = SchisandraShareDetailDTOConverter.INSTANCE.convertDTOToBO(schisandraShareDetailDTO);
if (schisandraShareDetailDomainService.delete(schisandraShareDetailBO)){
if (schisandraShareDetailDomainService.delete(schisandraShareDetailBO)) {
caffeineUtil.caffeineBuild().invalidate("list" + schisandraShareDetailDTO.getCircleId());
caffeineUtil.caffeineBuild().invalidate("mydetail" + schisandraShareDetailDTO.getUserId());
HashMap<String, Object> map = new HashMap<>();
@@ -314,12 +329,19 @@ public class SchisandraShareDetailController {
public void onSuccess(SendResult sendResult) {
System.out.println(sendResult);
}
@Override
public void onException(Throwable e) {
e.printStackTrace();
}
}
);
String value="您最近删除了一个分享:"+schisandraShareDetailDTO.getTitle();
Date date = new Date();
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String formattedDate = dateFormat.format(date);
String key = redisUtil.buildKey(SHARE_USER_RECENT, schisandraShareDetailDTO.getUserId(),formattedDate);
redisUtil.setNx(key, value, 30L, TimeUnit.DAYS);
return Result.ok();
}
return Result.fail();

View File

@@ -0,0 +1,46 @@
package com.schisandra.share.common.redis;
import com.fasterxml.jackson.annotation.JsonAutoDetect;
import com.fasterxml.jackson.annotation.JsonTypeInfo;
import com.fasterxml.jackson.annotation.PropertyAccessor;
import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer;
import org.springframework.data.redis.serializer.RedisSerializer;
import org.springframework.data.redis.serializer.StringRedisSerializer;
/**
* Redis的config处理
*
* @author: schisandra
*/
@Configuration
public class RedisConfig {
@Bean
public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) {
RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();
RedisSerializer<String> redisSerializer = new StringRedisSerializer();
redisTemplate.setConnectionFactory(redisConnectionFactory);
redisTemplate.setKeySerializer(redisSerializer);
redisTemplate.setHashKeySerializer(redisSerializer);
redisTemplate.setValueSerializer(jackson2JsonRedisSerializer());
redisTemplate.setHashValueSerializer(jackson2JsonRedisSerializer());
return redisTemplate;
}
private Jackson2JsonRedisSerializer<Object> jackson2JsonRedisSerializer() {
Jackson2JsonRedisSerializer<Object> jsonRedisSerializer = new Jackson2JsonRedisSerializer<>(Object.class);
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
objectMapper.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL, JsonTypeInfo.As.PROPERTY);
jsonRedisSerializer.setObjectMapper(objectMapper);
return jsonRedisSerializer;
}
}

View File

@@ -0,0 +1,150 @@
package com.schisandra.share.common.redis;
import lombok.extern.slf4j.Slf4j;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Set;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
import java.util.stream.Stream;
/**
* RedisUtil工具类
*
* @author: schisandra
* @date: 2024/2/19
*/
@Component
@Slf4j
public class RedisUtil {
@Resource
private RedisTemplate redisTemplate;
private static final String CACHE_KEY_SEPARATOR = ":";
public List<Object> getDataFromDirectory(String directory) {
Set<String>keys=redisTemplate.keys(directory+":*");
List<Object> keysList=new ArrayList<>();
keys.forEach(key->{
HashMap<String,String> map=new HashMap<>();
String value= (String) redisTemplate.opsForValue().get(key);
String keyName=key.substring(key.lastIndexOf(":")+1);
map.put(keyName,value);
keysList.add(map);
});
return keysList;
}
public List<HashMap<Object,Object>> getDataFromDir(String directory) {
Set<String>keys=redisTemplate.keys(directory);
List<HashMap<Object,Object>> keysList=new ArrayList<>();
keys.forEach(key->{
HashMap<Object,Object> map=new HashMap<>();
HashMap<Object,Object> value= (HashMap<Object, Object>) redisTemplate.opsForValue().get(key);
map.put(key,value);
keysList.add(map);
});
return keysList;
}
/**
* 构建缓存key
*/
public String buildKey(String... strObjs) {
return Stream.of(strObjs).collect(Collectors.joining(CACHE_KEY_SEPARATOR));
}
/**
* 是否存在key
*/
public boolean exist(String key) {
return redisTemplate.hasKey(key);
}
/**
* 删除key
*/
public boolean del(String key) {
return redisTemplate.delete(key);
}
/**
* set(不带过期)
*/
public void set(String key, String value) {
redisTemplate.opsForValue().set(key, value);
}
public void setJson(String key, Object value) {
redisTemplate.opsForValue().set(key, value);
}
public HashMap<String, String> getJson(String key) {
return (HashMap<String, String>) redisTemplate.opsForValue().get(key);
}
/**
* set(带过期)
*/
public boolean setNx(String key, String value, Long time, TimeUnit timeUnit) {
return redisTemplate.opsForValue().setIfAbsent(key, value, time, timeUnit);
}
/**
* 获取string类型缓存
*/
public String get(String key) {
return (String) redisTemplate.opsForValue().get(key);
}
public Boolean zAdd(String key, String value, Long score) {
return redisTemplate.opsForZSet().add(key, value, Double.valueOf(String.valueOf(score)));
}
public Long countZset(String key) {
return redisTemplate.opsForZSet().size(key);
}
public Set<String> rangeZset(String key, long start, long end) {
return redisTemplate.opsForZSet().range(key, start, end);
}
public Long removeZset(String key, Object value) {
return redisTemplate.opsForZSet().remove(key, value);
}
public void removeZsetList(String key, Set<String> value) {
value.stream().forEach((val) -> redisTemplate.opsForZSet().remove(key, val));
}
public Double score(String key, Object value) {
return redisTemplate.opsForZSet().score(key, value);
}
public Set<String> rangeByScore(String key, long start, long end) {
return redisTemplate.opsForZSet().rangeByScore(key, Double.valueOf(String.valueOf(start)), Double.valueOf(String.valueOf(end)));
}
public Object addScore(String key, Object obj, double score) {
return redisTemplate.opsForZSet().incrementScore(key, obj, score);
}
public Object rank(String key, Object obj) {
return redisTemplate.opsForZSet().rank(key, obj);
}
public void setNx(String key, HashMap<Object, Object> map, Long time, TimeUnit timeUnit) {
redisTemplate.opsForValue().set(key, map, time, timeUnit);
}
}