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