Commit 2fae346c by chamberone

fix: 替换序列化

1 parent f6bbc580
......@@ -107,6 +107,11 @@
<version>2.5.1</version>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
</dependency>
</dependencies>
<build>
......
......@@ -15,16 +15,16 @@ import com.fasterxml.jackson.databind.ObjectMapper;
public class RedisConfig {
@Bean
public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory connectionFactory) {
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
objectMapper.activateDefaultTyping(objectMapper.getPolymorphicTypeValidator(),
ObjectMapper.DefaultTyping.EVERYTHING, JsonTypeInfo.As.PROPERTY);
public RedisTemplate<String, String> redisTemplate(RedisConnectionFactory connectionFactory) {
// ObjectMapper objectMapper = new ObjectMapper();
// objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
// objectMapper.activateDefaultTyping(objectMapper.getPolymorphicTypeValidator(),
// ObjectMapper.DefaultTyping.EVERYTHING, JsonTypeInfo.As.PROPERTY);
RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();
RedisTemplate<String, String> redisTemplate = new RedisTemplate<>();
redisTemplate.setConnectionFactory(connectionFactory);
redisTemplate.setKeySerializer(new StringRedisSerializer());
redisTemplate.setValueSerializer(new GenericJackson2JsonRedisSerializer(objectMapper));
redisTemplate.setValueSerializer(new StringRedisSerializer());
return redisTemplate;
}
......
......@@ -13,13 +13,12 @@ import java.util.concurrent.TimeUnit;
/**
* redis服务
*
* @author dk
*/
@Component
public class RedisService {
@Autowired
private RedisTemplate redisTemplate;
private RedisTemplate<String, String> redisTemplate;
/**
* 写入缓存
......@@ -28,10 +27,10 @@ public class RedisService {
* @param value
* @return
*/
public boolean set(final String key, Object value) {
public boolean set(final String key, String value) {
boolean result = false;
try {
ValueOperations<Serializable, Object> operations = redisTemplate.opsForValue();
ValueOperations<String, String> operations = redisTemplate.opsForValue();
operations.set(key, value);
result = true;
} catch (Exception e) {
......@@ -47,10 +46,10 @@ public class RedisService {
* @param value
* @return
*/
public boolean set(final String key, Object value, Long expireTime) {
public boolean set(final String key, String value, Long expireTime) {
boolean result = false;
try {
ValueOperations<Serializable, Object> operations = redisTemplate.opsForValue();
ValueOperations<String, String> operations = redisTemplate.opsForValue();
operations.set(key, value);
redisTemplate.expire(key, expireTime, TimeUnit.SECONDS);
result = true;
......@@ -61,166 +60,16 @@ public class RedisService {
}
/**
* 设置过期时间<br>
* 原始key
*
* @param key
* @param expriedDate
*/
public boolean setExpriedDate(String key, Date expriedDate) {
return redisTemplate.expireAt(key, expriedDate);
}
/**
* 批量删除对应的value
*
* @param keys
*/
public void remove(final String... keys) {
for (String key : keys) {
remove(key);
}
}
/**
* 批量删除key
*
* @param pattern
*/
public void removePattern(final String pattern) {
Set<Serializable> keys = redisTemplate.keys(pattern);
if (keys.size() > 0) {
redisTemplate.delete(keys);
}
}
/**
* 删除对应的value
*
* @param key
*/
public void remove(final String key) {
if (exists(key)) {
redisTemplate.delete(key);
}
}
/**
* 判断缓存中是否有对应的value
*
* @param key
* @return
*/
public boolean exists(final String key) {
return redisTemplate.hasKey(key);
}
/**
* 读取缓存
*
* @param key
* @return
*/
public Object get(final String key) {
Object result = null;
ValueOperations<Serializable, Object> operations = redisTemplate.opsForValue();
public String get(final String key) {
String result = null;
ValueOperations<String, String> operations = redisTemplate.opsForValue();
result = operations.get(key);
return result;
}
/**
* 哈希 添加
*
* @param key
* @param hashKey
* @param value
*/
public void hmSet(String key, Object hashKey, Object value) {
HashOperations<String, Object, Object> hash = redisTemplate.opsForHash();
hash.put(key, hashKey, value);
}
/**
* 哈希获取数据
*
* @param key
* @param hashKey
* @return
*/
public Object hmGet(String key, Object hashKey) {
HashOperations<String, Object, Object> hash = redisTemplate.opsForHash();
return hash.get(key, hashKey);
}
/**
* 列表添加
*
* @param k
* @param v
*/
public void lPush(String k, Object v) {
ListOperations<String, Object> list = redisTemplate.opsForList();
list.rightPush(k, v);
}
/**
* 列表获取
*
* @param k
* @param l
* @param l1
* @return
*/
public List<Object> lRange(String k, long l, long l1) {
ListOperations<String, Object> list = redisTemplate.opsForList();
return list.range(k, l, l1);
}
/**
* 集合添加
*
* @param key
* @param value
*/
public void add(String key, Object value) {
SetOperations<String, Object> set = redisTemplate.opsForSet();
set.add(key, value);
}
/**
* 集合获取
*
* @param key
* @return
*/
public Set<Object> setMembers(String key) {
SetOperations<String, Object> set = redisTemplate.opsForSet();
return set.members(key);
}
/**
* 有序集合添加
*
* @param key
* @param value
* @param scoure
*/
public void zAdd(String key, Object value, double scoure) {
ZSetOperations<String, Object> zset = redisTemplate.opsForZSet();
zset.add(key, value, scoure);
}
/**
* 有序集合获取
*
* @param key
* @param scoure
* @param scoure1
* @return
*/
public Set<Object> rangeByScore(String key, double scoure, double scoure1) {
ZSetOperations<String, Object> zset = redisTemplate.opsForZSet();
return zset.rangeByScore(key, scoure, scoure1);
}
}
......@@ -31,9 +31,6 @@ public class UserController implements IUser {
@Autowired
private UserService userService;
@Autowired
private RedisService redisService;
@Override
public Result<?> userLogin(UserLoginParam user) {
return userService.userLogin(user.getAccount(), user.getPassword());
......@@ -46,21 +43,7 @@ public class UserController implements IUser {
@Override
public WebResult<UserInfo> getCurrentUserInfo(String userToken, Boolean needTeamInfo) {
UserAuthInfo userInfoCache = getUserAuthInfoFromToken(userToken);
String userId = userInfoCache.getUserId();
UserInfo userInfo = userService.queryUserById(userId);
return WebResult.ok(userInfo);
}
/**
* 获取用户认证信息
*
* @param userToken
* @return
*/
private UserAuthInfo getUserAuthInfoFromToken(String userToken) {
UserAuthInfo userAuthInfo = (UserAuthInfo) redisService.get(RedisKeyGroup.authToken.toString() + ":" + userToken);
return userAuthInfo;
return null;
}
@Override
......
......@@ -45,6 +45,7 @@ import com.dituhui.pea.user.factory.ThirdStrategy;
import com.dituhui.pea.user.factory.ThirdStrategyFactory;
import com.dituhui.pea.user.utils.TextHelper;
import com.google.common.collect.Lists;
import com.google.gson.Gson;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
......@@ -66,6 +67,7 @@ public class UserService {
* 失效时间ms
*/
private static final int LIVE_TIME_MILLIS = 7200000;
private static final Gson gson = new Gson();
@Autowired
UserDao userDao;
......@@ -87,7 +89,7 @@ public class UserService {
@Autowired
ResourceDao resourceDao;
@Autowired
IOrganization organizationService;
......@@ -101,13 +103,13 @@ public class UserService {
String token = IdUtil.simpleUUID();
userDTO.setToken(token);
long timestamp = System.currentTimeMillis() + LIVE_TIME_MILLIS;
redisService.set(RedisKeyGroup.authToken + ":" + token, userDTO, timestamp / 1000);
redisService.set(RedisKeyGroup.authToken + ":" + token, gson.toJson(userDTO), timestamp / 1000);
log.info("test begin");
UserLoginDTO userDTO2 = (UserLoginDTO)redisService.get(RedisKeyGroup.authToken + ":" + token);
log.info("test {}",userDTO2);
String value = redisService.get(RedisKeyGroup.authToken + ":" + token);
UserLoginDTO userDTO2 = gson.fromJson(value, UserLoginDTO.class);
log.info("test {}", userDTO2);
return Result.success(userDTO);
} else {
return Result.failed("鉴权失败");
......@@ -164,7 +166,7 @@ public class UserService {
}
return orgs;
}).flatMap(a -> a.stream()).collect(Collectors.toList());
//userDTO.setAuths(allOrgs);
// userDTO.setAuths(allOrgs);
}
}
}
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!