🎨 优化记录最后在线时间代码
This commit is contained in:
parent
a620d4664b
commit
f63ed152fc
@ -37,7 +37,7 @@ public class SecurityAspect {
|
|||||||
Logger logger = LoggerFactory.getLogger(SecurityAspect.class);
|
Logger logger = LoggerFactory.getLogger(SecurityAspect.class);
|
||||||
|
|
||||||
@Pointcut("@annotation(com.rymcu.forest.core.service.security.annotation.SecurityInterceptor)")
|
@Pointcut("@annotation(com.rymcu.forest.core.service.security.annotation.SecurityInterceptor)")
|
||||||
public void pointCut() {
|
public void securityPointCut() {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -47,7 +47,7 @@ public class SecurityAspect {
|
|||||||
* @return 方法执行结果
|
* @return 方法执行结果
|
||||||
* @throws Throwable 调用出错
|
* @throws Throwable 调用出错
|
||||||
*/
|
*/
|
||||||
@Before(value = "pointCut()")
|
@Before(value = "securityPointCut()")
|
||||||
public void doBefore(JoinPoint joinPoint) throws BaseApiException {
|
public void doBefore(JoinPoint joinPoint) throws BaseApiException {
|
||||||
logger.info("检查用户修改信息权限 start ...");
|
logger.info("检查用户修改信息权限 start ...");
|
||||||
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
|
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
|
||||||
|
@ -5,12 +5,12 @@ import com.rymcu.forest.jwt.def.JwtConstants;
|
|||||||
import com.rymcu.forest.jwt.model.TokenModel;
|
import com.rymcu.forest.jwt.model.TokenModel;
|
||||||
import io.jsonwebtoken.Jwts;
|
import io.jsonwebtoken.Jwts;
|
||||||
import io.jsonwebtoken.SignatureAlgorithm;
|
import io.jsonwebtoken.SignatureAlgorithm;
|
||||||
|
import org.apache.commons.lang.StringUtils;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.data.redis.core.StringRedisTemplate;
|
import org.springframework.data.redis.core.StringRedisTemplate;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.time.format.DateTimeFormatter;
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
@ -46,7 +46,7 @@ public class RedisTokenManager implements TokenManager {
|
|||||||
if (model == null) {
|
if (model == null) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
String token = (String) redisTemplate.boundValueOps(model.getUsername()).get();
|
String token = redisTemplate.boundValueOps(model.getUsername()).get();
|
||||||
if (token == null || !token.equals(model.getToken())) {
|
if (token == null || !token.equals(model.getToken())) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -54,7 +54,10 @@ public class RedisTokenManager implements TokenManager {
|
|||||||
redisTemplate.boundValueOps(model.getUsername()).expire(JwtConstants.TOKEN_EXPIRES_HOUR, TimeUnit.HOURS);
|
redisTemplate.boundValueOps(model.getUsername()).expire(JwtConstants.TOKEN_EXPIRES_HOUR, TimeUnit.HOURS);
|
||||||
StringBuilder key = new StringBuilder();
|
StringBuilder key = new StringBuilder();
|
||||||
key.append(JwtConstants.LAST_ONLINE).append(model.getUsername());
|
key.append(JwtConstants.LAST_ONLINE).append(model.getUsername());
|
||||||
redisTemplate.boundValueOps(key.toString()).set(LocalDateTime.now().toString(), JwtConstants.LAST_ONLINE_EXPIRES_MINUTE, TimeUnit.MINUTES);
|
String result = redisTemplate.boundValueOps(key.toString()).get();
|
||||||
|
if (StringUtils.isBlank(result)) {
|
||||||
|
redisTemplate.boundValueOps(key.toString()).set(LocalDateTime.now().toString(), JwtConstants.LAST_ONLINE_EXPIRES_MINUTE, TimeUnit.MINUTES);
|
||||||
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -27,7 +27,6 @@ import java.util.*;
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
|
||||||
* @author CodeGenerator
|
* @author CodeGenerator
|
||||||
* @date 2018/05/29
|
* @date 2018/05/29
|
||||||
*/
|
*/
|
||||||
@ -48,7 +47,7 @@ public class UserServiceImpl extends AbstractService<User> implements UserServic
|
|||||||
private final static String DEFAULT_AVATAR = "https://static.rymcu.com/article/1578475481946.png";
|
private final static String DEFAULT_AVATAR = "https://static.rymcu.com/article/1578475481946.png";
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public User findByAccount(String account) throws TooManyResultsException{
|
public User findByAccount(String account) throws TooManyResultsException {
|
||||||
return userMapper.findByAccount(account);
|
return userMapper.findByAccount(account);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -56,13 +55,13 @@ public class UserServiceImpl extends AbstractService<User> implements UserServic
|
|||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public Map register(String email, String password, String code) {
|
public Map register(String email, String password, String code) {
|
||||||
Map map = new HashMap(2);
|
Map map = new HashMap(2);
|
||||||
map.put("message","验证码无效!");
|
map.put("message", "验证码无效!");
|
||||||
String vCode = redisService.get(email);
|
String vCode = redisService.get(email);
|
||||||
if(StringUtils.isNotBlank(vCode)){
|
if (StringUtils.isNotBlank(vCode)) {
|
||||||
if(vCode.equals(code)){
|
if (vCode.equals(code)) {
|
||||||
User user = userMapper.findByAccount(email);
|
User user = userMapper.findByAccount(email);
|
||||||
if(user != null){
|
if (user != null) {
|
||||||
map.put("message","该邮箱已被注册!");
|
map.put("message", "该邮箱已被注册!");
|
||||||
} else {
|
} else {
|
||||||
user = new User();
|
user = new User();
|
||||||
String nickname = email.split("@")[0];
|
String nickname = email.split("@")[0];
|
||||||
@ -83,8 +82,8 @@ public class UserServiceImpl extends AbstractService<User> implements UserServic
|
|||||||
.nickname(user.getNickname())
|
.nickname(user.getNickname())
|
||||||
.signature(user.getSignature())
|
.signature(user.getSignature())
|
||||||
.build());
|
.build());
|
||||||
map.put("message","注册成功!");
|
map.put("message", "注册成功!");
|
||||||
map.put("flag",1);
|
map.put("flag", 1);
|
||||||
redisService.delete(email);
|
redisService.delete(email);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -106,19 +105,20 @@ public class UserServiceImpl extends AbstractService<User> implements UserServic
|
|||||||
public Map login(String account, String password) {
|
public Map login(String account, String password) {
|
||||||
Map map = new HashMap(1);
|
Map map = new HashMap(1);
|
||||||
User user = userMapper.findByAccount(account);
|
User user = userMapper.findByAccount(account);
|
||||||
if(user != null){
|
if (user != null) {
|
||||||
if(Utils.comparePwd(password, user.getPassword())){
|
if (Utils.comparePwd(password, user.getPassword())) {
|
||||||
userMapper.updateLastLoginTime(user.getIdUser());
|
userMapper.updateLastLoginTime(user.getIdUser());
|
||||||
|
userMapper.updateLastOnlineTimeByEmail(user.getEmail());
|
||||||
TokenUser tokenUser = new TokenUser();
|
TokenUser tokenUser = new TokenUser();
|
||||||
BeanCopierUtil.copy(user, tokenUser);
|
BeanCopierUtil.copy(user, tokenUser);
|
||||||
tokenUser.setToken(tokenManager.createToken(account));
|
tokenUser.setToken(tokenManager.createToken(account));
|
||||||
tokenUser.setWeights(userMapper.selectRoleWeightsByUser(user.getIdUser()));
|
tokenUser.setWeights(userMapper.selectRoleWeightsByUser(user.getIdUser()));
|
||||||
map.put("user", tokenUser);
|
map.put("user", tokenUser);
|
||||||
} else {
|
} else {
|
||||||
map.put("message","密码错误!");
|
map.put("message", "密码错误!");
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
map.put("message","该账号不存在!");
|
map.put("message", "该账号不存在!");
|
||||||
}
|
}
|
||||||
return map;
|
return map;
|
||||||
}
|
}
|
||||||
@ -133,12 +133,12 @@ public class UserServiceImpl extends AbstractService<User> implements UserServic
|
|||||||
public Map forgetPassword(String code, String password) {
|
public Map forgetPassword(String code, String password) {
|
||||||
Map map = new HashMap<>(2);
|
Map map = new HashMap<>(2);
|
||||||
String email = redisService.get(code);
|
String email = redisService.get(code);
|
||||||
if(StringUtils.isBlank(email)){
|
if (StringUtils.isBlank(email)) {
|
||||||
map.put("message","链接已失效");
|
map.put("message", "链接已失效");
|
||||||
} else {
|
} else {
|
||||||
userMapper.updatePasswordByEmail(email,Utils.entryptPassword(password));
|
userMapper.updatePasswordByEmail(email, Utils.entryptPassword(password));
|
||||||
map.put("message","修改成功,正在跳转登录登陆界面!");
|
map.put("message", "修改成功,正在跳转登录登陆界面!");
|
||||||
map.put("flag",1);
|
map.put("flag", 1);
|
||||||
}
|
}
|
||||||
return map;
|
return map;
|
||||||
}
|
}
|
||||||
@ -147,9 +147,9 @@ public class UserServiceImpl extends AbstractService<User> implements UserServic
|
|||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public Map updateUserRole(Integer idUser, Integer idRole) {
|
public Map updateUserRole(Integer idUser, Integer idRole) {
|
||||||
Map map = new HashMap(1);
|
Map map = new HashMap(1);
|
||||||
Integer result = userMapper.updateUserRole(idUser,idRole);
|
Integer result = userMapper.updateUserRole(idUser, idRole);
|
||||||
if(result == 0) {
|
if (result == 0) {
|
||||||
map.put("message","更新失败!");
|
map.put("message", "更新失败!");
|
||||||
}
|
}
|
||||||
return map;
|
return map;
|
||||||
}
|
}
|
||||||
@ -158,9 +158,9 @@ public class UserServiceImpl extends AbstractService<User> implements UserServic
|
|||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public Map updateStatus(Integer idUser, String status) {
|
public Map updateStatus(Integer idUser, String status) {
|
||||||
Map map = new HashMap(1);
|
Map map = new HashMap(1);
|
||||||
Integer result = userMapper.updateStatus(idUser,status);
|
Integer result = userMapper.updateStatus(idUser, status);
|
||||||
if(result == 0) {
|
if (result == 0) {
|
||||||
map.put("message","更新失败!");
|
map.put("message", "更新失败!");
|
||||||
}
|
}
|
||||||
return map;
|
return map;
|
||||||
}
|
}
|
||||||
@ -199,7 +199,7 @@ public class UserServiceImpl extends AbstractService<User> implements UserServic
|
|||||||
user.setAvatarUrl(avatarUrl);
|
user.setAvatarUrl(avatarUrl);
|
||||||
user.setAvatarType("0");
|
user.setAvatarType("0");
|
||||||
}
|
}
|
||||||
Integer result = userMapper.updateUserInfo(user.getIdUser(), user.getNickname(), user.getAvatarType(),user.getAvatarUrl(),user.getSignature(), user.getSex());
|
Integer result = userMapper.updateUserInfo(user.getIdUser(), user.getNickname(), user.getAvatarType(), user.getAvatarUrl(), user.getSignature(), user.getSex());
|
||||||
UserIndexUtil.addIndex(UserLucene.builder()
|
UserIndexUtil.addIndex(UserLucene.builder()
|
||||||
.idUser(user.getIdUser())
|
.idUser(user.getIdUser())
|
||||||
.nickname(user.getNickname())
|
.nickname(user.getNickname())
|
||||||
@ -209,7 +209,7 @@ public class UserServiceImpl extends AbstractService<User> implements UserServic
|
|||||||
map.put("message", "操作失败!");
|
map.put("message", "操作失败!");
|
||||||
return map;
|
return map;
|
||||||
}
|
}
|
||||||
map.put("user",user);
|
map.put("user", user);
|
||||||
return map;
|
return map;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -257,15 +257,15 @@ public class UserServiceImpl extends AbstractService<User> implements UserServic
|
|||||||
@Override
|
@Override
|
||||||
public Map updateEmail(ChangeEmailDTO changeEmailDTO) {
|
public Map updateEmail(ChangeEmailDTO changeEmailDTO) {
|
||||||
Map map = new HashMap(2);
|
Map map = new HashMap(2);
|
||||||
map.put("message","验证码无效!");
|
map.put("message", "验证码无效!");
|
||||||
Integer idUser = changeEmailDTO.getIdUser();
|
Integer idUser = changeEmailDTO.getIdUser();
|
||||||
String email = changeEmailDTO.getEmail();
|
String email = changeEmailDTO.getEmail();
|
||||||
String code = changeEmailDTO.getCode();
|
String code = changeEmailDTO.getCode();
|
||||||
String vCode = redisService.get(email);
|
String vCode = redisService.get(email);
|
||||||
if(StringUtils.isNotBlank(vCode) && StringUtils.isNotBlank(code)){
|
if (StringUtils.isNotBlank(vCode) && StringUtils.isNotBlank(code)) {
|
||||||
if(vCode.equals(code)){
|
if (vCode.equals(code)) {
|
||||||
userMapper.updateEmail(idUser, email);
|
userMapper.updateEmail(idUser, email);
|
||||||
map.put("message","更新成功!");
|
map.put("message", "更新成功!");
|
||||||
map.put("email", email);
|
map.put("email", email);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user