feat(count): 实现粉丝与关注计数服务
- 新增粉丝数与关注数的 MQ 消费逻辑 - 实现 Redis 计数更新与数据库落库操作 - 添加流量削峰限流机制提升系统稳定性 - 完善计数 DTO 与枚举类型定义 - 扩展 JsonUtils 工具类支持 Map 转换 - 更新 MQ 常量与 Redis Key 管理策略 -优化 MyBatis Mapper 支持计数插入或更新操作,Mybatis-plus操作起来属于硬编码,所以使用MyBatis的XML形式
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
package com.hanserwei.framework.common.utils;
|
||||
|
||||
import com.fasterxml.jackson.core.type.TypeReference;
|
||||
import com.fasterxml.jackson.databind.DeserializationFeature;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.fasterxml.jackson.databind.SerializationFeature;
|
||||
@@ -7,6 +8,8 @@ import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
|
||||
import lombok.SneakyThrows;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
public class JsonUtils {
|
||||
private static ObjectMapper OBJECT_MAPPER = new ObjectMapper();
|
||||
|
||||
@@ -51,4 +54,24 @@ public class JsonUtils {
|
||||
|
||||
return OBJECT_MAPPER.readValue(jsonStr, clazz);
|
||||
}
|
||||
|
||||
/**
|
||||
* 将 JSON 字符串转换为 Map
|
||||
*
|
||||
* @param jsonStr JSON 字符串
|
||||
* @param keyClass 键的类型
|
||||
* @param valueClass 值的类型
|
||||
* @param <K> 键的类型
|
||||
* @param <V> 值的类型
|
||||
* @return Map
|
||||
* @throws Exception 抛出异常
|
||||
*/
|
||||
public static <K, V> Map<K, V> parseMap(String jsonStr, Class<K> keyClass, Class<V> valueClass) throws Exception {
|
||||
// 创建 TypeReference,指定泛型类型
|
||||
TypeReference<Map<K, V>> typeRef = new TypeReference<Map<K, V>>() {
|
||||
};
|
||||
|
||||
// 将 JSON 字符串转换为 Map
|
||||
return OBJECT_MAPPER.readValue(jsonStr, OBJECT_MAPPER.getTypeFactory().constructMapType(Map.class, keyClass, valueClass));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user