9 changed files with 290 additions and 5 deletions
-
6pom.xml
-
2src/main/java/org/hlrj/duobao_demo/DuobaoDemoApplication.java
-
91src/main/java/org/hlrj/duobao_demo/controller/RecommendationController.java
-
7src/main/java/org/hlrj/duobao_demo/mapper/RecommendationMapper.java
-
20src/main/java/org/hlrj/duobao_demo/service/IRecommendationService.java
-
57src/main/java/org/hlrj/duobao_demo/service/RedisService.java
-
22src/main/java/org/hlrj/duobao_demo/service/impl/RecommendationServiceImpl.java
-
58src/main/java/org/hlrj/duobao_demo/tool/RedisConfig.java
-
32src/main/resources/mapper/RecommendationMapper.xml
@ -0,0 +1,57 @@ |
|||||
|
package org.hlrj.duobao_demo.service; |
||||
|
|
||||
|
/** |
||||
|
* @program: duobao_demo |
||||
|
* @ClassName RedisService |
||||
|
* @description: |
||||
|
* @author:liuyusong |
||||
|
* @create: 2025−04-11 15:55 |
||||
|
* @Version 1.0 |
||||
|
**/ |
||||
|
|
||||
|
public interface RedisService { |
||||
|
/** |
||||
|
* 点赞。状态为1 |
||||
|
* @param likedUserId |
||||
|
* @param likedPostId |
||||
|
*/ |
||||
|
void saveLiked2Redis(String likedUserId, String likedPostId); |
||||
|
|
||||
|
/** |
||||
|
* 取消点赞。将状态改变为0 |
||||
|
* @param likedUserId |
||||
|
* @param likedPostId |
||||
|
*/ |
||||
|
void unlikeFromRedis(String likedUserId, String likedPostId); |
||||
|
|
||||
|
/** |
||||
|
* 从Redis中删除一条点赞数据 |
||||
|
* @param likedUserId |
||||
|
* @param likedPostId |
||||
|
*/ |
||||
|
void deleteLikedFromRedis(String likedUserId, String likedPostId); |
||||
|
|
||||
|
/** |
||||
|
* 该用户的点赞数加1 |
||||
|
* @param likedUserId |
||||
|
*/ |
||||
|
void incrementLikedCount(String likedUserId); |
||||
|
|
||||
|
/** |
||||
|
* 该用户的点赞数减1 |
||||
|
* @param likedUserId |
||||
|
*/ |
||||
|
void decrementLikedCount(String likedUserId); |
||||
|
|
||||
|
/** |
||||
|
* 获取Redis中存储的所有点赞数据 |
||||
|
* @return |
||||
|
*/ |
||||
|
// List<UserLike> getLikedDataFromRedis(); |
||||
|
|
||||
|
/** |
||||
|
* 获取Redis中存储的所有点赞数量 |
||||
|
* @return |
||||
|
*/ |
||||
|
// List<LikedCountDTO> getLikedCountFromRedis(); |
||||
|
} |
@ -0,0 +1,58 @@ |
|||||
|
package org.hlrj.duobao_demo.tool; |
||||
|
|
||||
|
import com.fasterxml.jackson.annotation.JsonAutoDetect; |
||||
|
import com.fasterxml.jackson.annotation.PropertyAccessor; |
||||
|
import com.fasterxml.jackson.databind.ObjectMapper; |
||||
|
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; |
||||
|
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.core.StringRedisTemplate; |
||||
|
import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer; |
||||
|
|
||||
|
import java.net.UnknownHostException; |
||||
|
|
||||
|
/** |
||||
|
* @program: duobao_demo |
||||
|
* @ClassName RedisConfig |
||||
|
* @description: |
||||
|
* @author:liuyusong |
||||
|
* @create: 2025−04-11 15:46 |
||||
|
* @Version 1.0 |
||||
|
**/ |
||||
|
@Configuration |
||||
|
public class RedisConfig { |
||||
|
@Bean |
||||
|
@ConditionalOnMissingBean(name = "redisTemplate") |
||||
|
public RedisTemplate<String, Object> redisTemplate( |
||||
|
RedisConnectionFactory redisConnectionFactory) |
||||
|
throws UnknownHostException { |
||||
|
|
||||
|
Jackson2JsonRedisSerializer<Object> jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer<Object>(Object.class); |
||||
|
ObjectMapper om = new ObjectMapper(); |
||||
|
om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY); |
||||
|
om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL); |
||||
|
jackson2JsonRedisSerializer.setObjectMapper(om); |
||||
|
|
||||
|
RedisTemplate<String, Object> template = new RedisTemplate<String, Object>(); |
||||
|
template.setConnectionFactory(redisConnectionFactory); |
||||
|
template.setKeySerializer(jackson2JsonRedisSerializer); |
||||
|
template.setValueSerializer(jackson2JsonRedisSerializer); |
||||
|
template.setHashKeySerializer(jackson2JsonRedisSerializer); |
||||
|
template.setHashValueSerializer(jackson2JsonRedisSerializer); |
||||
|
template.afterPropertiesSet(); |
||||
|
return template; |
||||
|
} |
||||
|
|
||||
|
|
||||
|
@Bean |
||||
|
@ConditionalOnMissingBean(StringRedisTemplate.class) |
||||
|
public StringRedisTemplate stringRedisTemplate( |
||||
|
RedisConnectionFactory redisConnectionFactory) |
||||
|
throws UnknownHostException { |
||||
|
StringRedisTemplate template = new StringRedisTemplate(); |
||||
|
template.setConnectionFactory(redisConnectionFactory); |
||||
|
return template; |
||||
|
} |
||||
|
} |
Write
Preview
Loading…
Cancel
Save
Reference in new issue