package com.terra.common.service;
|
|
import com.terra.common.entity.all.RedisCacheKey;
|
import com.terra.common.entity.lf.TokenPo;
|
import com.terra.common.entity.lf.UserPo;
|
import com.terra.common.helper.StringHelper;
|
import com.terra.common.helper.WebHelper;
|
import com.terra.common.mapper.OperatePoMapper;
|
import org.springframework.stereotype.Component;
|
|
import javax.annotation.Resource;
|
import javax.servlet.http.HttpServletRequest;
|
import java.util.concurrent.TimeUnit;
|
|
/**
|
* 令牌帮助类
|
* @author WWW
|
*/
|
@Component
|
public class TokenHelper {
|
@Resource
|
RedisService redisService;
|
|
@Resource
|
OperatePoMapper mapper;
|
|
public static Integer getCurrentUserId(HttpServletRequest req) {
|
String token = WebHelper.getToken(req);
|
|
return null;
|
}
|
|
public UserPo getUserByToken(String token) {
|
if (StringHelper.isNull(token)) {
|
return null;
|
}
|
|
// redis
|
String userKey = RedisCacheKey.signUserKey(token);
|
Object obj = redisService.get(userKey);
|
if (obj instanceof UserPo) {
|
return (UserPo) obj;
|
}
|
|
// db
|
UserPo po = mapper.selectByToken(token);
|
if (null != po) {
|
getEntityByToken(token);
|
}
|
|
return po;
|
}
|
|
public TokenPo getEntityByToken(String token) {
|
String tokenKey = RedisCacheKey.signTokenKey(token);
|
|
// redis
|
Object obj = redisService.get(tokenKey);
|
if (obj instanceof TokenPo) {
|
return (TokenPo) obj;
|
}
|
|
// db
|
TokenPo te = mapper.selectOneByToken(token);
|
if (null != te) {
|
long min = StringHelper.getMinuteDifference(te.getExpire());
|
if (min > 0) {
|
redisService.put(tokenKey, te, min, TimeUnit.MINUTES);
|
}
|
}
|
|
return te;
|
}
|
|
public static String getCurrentUserName() {
|
return null;
|
}
|
}
|