upd: 编码规范
This commit is contained in:
+2
-2
@@ -1,4 +1,4 @@
|
|||||||
package cn.odboy.model.system.response;
|
package cn.odboy.model.system.model;
|
||||||
|
|
||||||
import cn.odboy.base.MyObject;
|
import cn.odboy.base.MyObject;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
@@ -9,7 +9,7 @@ import lombok.EqualsAndHashCode;
|
|||||||
@Data
|
@Data
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
@EqualsAndHashCode(callSuper = false)
|
@EqualsAndHashCode(callSuper = false)
|
||||||
public class MenuMetaResponse extends MyObject {
|
public class MenuMetaModel extends MyObject {
|
||||||
|
|
||||||
@ApiModelProperty(value = "菜单标题")
|
@ApiModelProperty(value = "菜单标题")
|
||||||
private String title;
|
private String title;
|
||||||
+2
-2
@@ -1,4 +1,4 @@
|
|||||||
package cn.odboy.model.system.dto;
|
package cn.odboy.model.system.model;
|
||||||
|
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
@@ -12,7 +12,7 @@ import org.springframework.security.core.GrantedAuthority;
|
|||||||
@Data
|
@Data
|
||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
public class RoleCodeDto implements GrantedAuthority {
|
public class RoleCodeModel implements GrantedAuthority {
|
||||||
|
|
||||||
@ApiModelProperty(value = "角色名")
|
@ApiModelProperty(value = "角色名")
|
||||||
private String authority;
|
private String authority;
|
||||||
+2
-2
@@ -1,4 +1,4 @@
|
|||||||
package cn.odboy.model.system.response;
|
package cn.odboy.model.system.model;
|
||||||
|
|
||||||
import cn.odboy.base.MyObject;
|
import cn.odboy.base.MyObject;
|
||||||
import cn.odboy.model.system.domain.Dept;
|
import cn.odboy.model.system.domain.Dept;
|
||||||
@@ -12,7 +12,7 @@ import java.util.Set;
|
|||||||
|
|
||||||
@Data
|
@Data
|
||||||
@EqualsAndHashCode(callSuper = false)
|
@EqualsAndHashCode(callSuper = false)
|
||||||
public class SimpleUserResponse extends MyObject {
|
public class SimpleUserModel extends MyObject {
|
||||||
@ApiModelProperty(value = "ID", hidden = true)
|
@ApiModelProperty(value = "ID", hidden = true)
|
||||||
private Long id;
|
private Long id;
|
||||||
@ApiModelProperty(value = "用户角色")
|
@ApiModelProperty(value = "用户角色")
|
||||||
+4
-4
@@ -1,4 +1,4 @@
|
|||||||
package cn.odboy.model.system.dto;
|
package cn.odboy.model.system.model;
|
||||||
|
|
||||||
import cn.odboy.model.system.domain.User;
|
import cn.odboy.model.system.domain.User;
|
||||||
import com.alibaba.fastjson2.annotation.JSONField;
|
import com.alibaba.fastjson2.annotation.JSONField;
|
||||||
@@ -12,7 +12,7 @@ import java.util.stream.Collectors;
|
|||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
public class UserJwtDto implements UserDetails {
|
public class UserJwtModel implements UserDetails {
|
||||||
|
|
||||||
@ApiModelProperty(value = "用户")
|
@ApiModelProperty(value = "用户")
|
||||||
private final User user;
|
private final User user;
|
||||||
@@ -21,10 +21,10 @@ public class UserJwtDto implements UserDetails {
|
|||||||
private final List<Long> dataScopes;
|
private final List<Long> dataScopes;
|
||||||
|
|
||||||
@ApiModelProperty(value = "角色")
|
@ApiModelProperty(value = "角色")
|
||||||
private final List<RoleCodeDto> authorities;
|
private final List<RoleCodeModel> authorities;
|
||||||
|
|
||||||
public Set<String> getRoles() {
|
public Set<String> getRoles() {
|
||||||
return authorities.stream().map(RoleCodeDto::getAuthority).collect(Collectors.toSet());
|
return authorities.stream().map(RoleCodeModel::getAuthority).collect(Collectors.toSet());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
+2
-2
@@ -1,4 +1,4 @@
|
|||||||
package cn.odboy.model.system.response;
|
package cn.odboy.model.system.model;
|
||||||
|
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
@@ -8,7 +8,7 @@ import java.util.Date;
|
|||||||
* 在线用户
|
* 在线用户
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
public class UserOnlineResponse {
|
public class UserOnlineModel {
|
||||||
@ApiModelProperty(value = "Token编号")
|
@ApiModelProperty(value = "Token编号")
|
||||||
private String uid;
|
private String uid;
|
||||||
|
|
||||||
+2
-1
@@ -1,6 +1,7 @@
|
|||||||
package cn.odboy.model.system.response;
|
package cn.odboy.model.system.response;
|
||||||
|
|
||||||
import cn.odboy.base.MyObject;
|
import cn.odboy.base.MyObject;
|
||||||
|
import cn.odboy.model.system.model.MenuMetaModel;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
@@ -32,7 +33,7 @@ public class MenuResponse extends MyObject {
|
|||||||
private Boolean alwaysShow;
|
private Boolean alwaysShow;
|
||||||
|
|
||||||
@ApiModelProperty(value = "元数据")
|
@ApiModelProperty(value = "元数据")
|
||||||
private MenuMetaResponse meta;
|
private MenuMetaModel meta;
|
||||||
|
|
||||||
@ApiModelProperty(value = "子路由")
|
@ApiModelProperty(value = "子路由")
|
||||||
private List<MenuResponse> children;
|
private List<MenuResponse> children;
|
||||||
|
|||||||
+1
-1
@@ -7,7 +7,7 @@ import lombok.Data;
|
|||||||
* 修改密码
|
* 修改密码
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
public class UserPassResponse {
|
public class UpdateUserPasswordResponse {
|
||||||
|
|
||||||
@ApiModelProperty(value = "旧密码")
|
@ApiModelProperty(value = "旧密码")
|
||||||
private String oldPass;
|
private String oldPass;
|
||||||
+5
-4
@@ -1,7 +1,8 @@
|
|||||||
package cn.odboy.model.system.response;
|
package cn.odboy.model.system.response;
|
||||||
|
|
||||||
import cn.odboy.base.MyObject;
|
import cn.odboy.base.MyObject;
|
||||||
import cn.odboy.model.system.dto.RoleCodeDto;
|
import cn.odboy.model.system.model.RoleCodeModel;
|
||||||
|
import cn.odboy.model.system.model.SimpleUserModel;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -11,11 +12,11 @@ import java.util.stream.Collectors;
|
|||||||
@Data
|
@Data
|
||||||
@EqualsAndHashCode(callSuper = false)
|
@EqualsAndHashCode(callSuper = false)
|
||||||
public class UserInfoResponse extends MyObject {
|
public class UserInfoResponse extends MyObject {
|
||||||
private SimpleUserResponse user;
|
private SimpleUserModel user;
|
||||||
private List<Long> dataScopes;
|
private List<Long> dataScopes;
|
||||||
private List<RoleCodeDto> authorities;
|
private List<RoleCodeModel> authorities;
|
||||||
|
|
||||||
public Set<String> getRoles() {
|
public Set<String> getRoles() {
|
||||||
return authorities.stream().map(RoleCodeDto::getAuthority).collect(Collectors.toSet());
|
return authorities.stream().map(RoleCodeModel::getAuthority).collect(Collectors.toSet());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+3
-3
@@ -4,7 +4,7 @@ import cn.hutool.core.util.StrUtil;
|
|||||||
import cn.odboy.application.core.config.SecurityProperties;
|
import cn.odboy.application.core.config.SecurityProperties;
|
||||||
import cn.odboy.application.core.service.impl.UserOnlineServiceImpl;
|
import cn.odboy.application.core.service.impl.UserOnlineServiceImpl;
|
||||||
import cn.odboy.constant.SystemConst;
|
import cn.odboy.constant.SystemConst;
|
||||||
import cn.odboy.model.system.response.UserOnlineResponse;
|
import cn.odboy.model.system.model.UserOnlineModel;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.security.core.Authentication;
|
import org.springframework.security.core.Authentication;
|
||||||
import org.springframework.security.core.context.SecurityContextHolder;
|
import org.springframework.security.core.context.SecurityContextHolder;
|
||||||
@@ -43,9 +43,9 @@ public class TokenFilter extends GenericFilterBean {
|
|||||||
if (StrUtil.isNotBlank(token)) {
|
if (StrUtil.isNotBlank(token)) {
|
||||||
// 获取用户Token的Key
|
// 获取用户Token的Key
|
||||||
String loginKey = tokenProvider.loginKey(token);
|
String loginKey = tokenProvider.loginKey(token);
|
||||||
UserOnlineResponse userOnlineResponse = onlineUserService.getOnlineUserByKey(loginKey);
|
UserOnlineModel userOnlineModel = onlineUserService.getOnlineUserByKey(loginKey);
|
||||||
// 判断用户在线信息是否为空
|
// 判断用户在线信息是否为空
|
||||||
if (userOnlineResponse != null) {
|
if (userOnlineModel != null) {
|
||||||
// Token 续期判断
|
// Token 续期判断
|
||||||
tokenProvider.checkRenewal(token);
|
tokenProvider.checkRenewal(token);
|
||||||
// 获取认证信息,设置上下文
|
// 获取认证信息,设置上下文
|
||||||
|
|||||||
+2
-2
@@ -6,7 +6,7 @@ import cn.hutool.core.util.IdUtil;
|
|||||||
import cn.odboy.application.core.config.SecurityProperties;
|
import cn.odboy.application.core.config.SecurityProperties;
|
||||||
import cn.odboy.constant.SystemConst;
|
import cn.odboy.constant.SystemConst;
|
||||||
import cn.odboy.constant.SystemRedisKey;
|
import cn.odboy.constant.SystemRedisKey;
|
||||||
import cn.odboy.model.system.dto.UserJwtDto;
|
import cn.odboy.model.system.model.UserJwtModel;
|
||||||
import cn.odboy.redis.RedisHelper;
|
import cn.odboy.redis.RedisHelper;
|
||||||
import io.jsonwebtoken.Claims;
|
import io.jsonwebtoken.Claims;
|
||||||
import io.jsonwebtoken.JwtBuilder;
|
import io.jsonwebtoken.JwtBuilder;
|
||||||
@@ -61,7 +61,7 @@ public class TokenProvider implements InitializingBean {
|
|||||||
* @param user /
|
* @param user /
|
||||||
* @return /
|
* @return /
|
||||||
*/
|
*/
|
||||||
public String createToken(UserJwtDto user) {
|
public String createToken(UserJwtModel user) {
|
||||||
// 设置参数
|
// 设置参数
|
||||||
Map<String, Object> claims = new HashMap<>(6);
|
Map<String, Object> claims = new HashMap<>(6);
|
||||||
// 设置用户ID
|
// 设置用户ID
|
||||||
|
|||||||
+3
-3
@@ -15,7 +15,7 @@ import cn.odboy.constant.SystemConst;
|
|||||||
import cn.odboy.constant.SystemRedisKey;
|
import cn.odboy.constant.SystemRedisKey;
|
||||||
import cn.odboy.context.SecurityHelper;
|
import cn.odboy.context.SecurityHelper;
|
||||||
import cn.odboy.exception.BadRequestException;
|
import cn.odboy.exception.BadRequestException;
|
||||||
import cn.odboy.model.system.dto.UserJwtDto;
|
import cn.odboy.model.system.model.UserJwtModel;
|
||||||
import cn.odboy.model.system.request.UserLoginRequest;
|
import cn.odboy.model.system.request.UserLoginRequest;
|
||||||
import cn.odboy.model.system.response.UserInfoResponse;
|
import cn.odboy.model.system.response.UserInfoResponse;
|
||||||
import cn.odboy.properties.RsaProperties;
|
import cn.odboy.properties.RsaProperties;
|
||||||
@@ -76,7 +76,7 @@ public class AuthController {
|
|||||||
throw new BadRequestException("验证码错误");
|
throw new BadRequestException("验证码错误");
|
||||||
}
|
}
|
||||||
// 获取用户信息
|
// 获取用户信息
|
||||||
UserJwtDto jwtUser = userDetailsService.loadUserByUsername(loginRequest.getUsername());
|
UserJwtModel jwtUser = userDetailsService.loadUserByUsername(loginRequest.getUsername());
|
||||||
// 验证用户密码
|
// 验证用户密码
|
||||||
if (!passwordEncoder.matches(password, jwtUser.getPassword())) {
|
if (!passwordEncoder.matches(password, jwtUser.getPassword())) {
|
||||||
throw new BadRequestException("登录密码错误");
|
throw new BadRequestException("登录密码错误");
|
||||||
@@ -103,7 +103,7 @@ public class AuthController {
|
|||||||
@ApiOperation("获取用户信息")
|
@ApiOperation("获取用户信息")
|
||||||
@GetMapping(value = "/info")
|
@GetMapping(value = "/info")
|
||||||
public ResponseEntity<UserInfoResponse> getUserInfo() {
|
public ResponseEntity<UserInfoResponse> getUserInfo() {
|
||||||
UserJwtDto jwtUser = (UserJwtDto) SecurityHelper.getCurrentUser();
|
UserJwtModel jwtUser = (UserJwtModel) SecurityHelper.getCurrentUser();
|
||||||
UserInfoResponse userInfoResponse = BeanUtil.copyProperties(jwtUser, UserInfoResponse.class);
|
UserInfoResponse userInfoResponse = BeanUtil.copyProperties(jwtUser, UserInfoResponse.class);
|
||||||
return ResponseEntity.ok(userInfoResponse);
|
return ResponseEntity.ok(userInfoResponse);
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-2
@@ -2,7 +2,7 @@ package cn.odboy.application.core.rest;
|
|||||||
|
|
||||||
import cn.odboy.application.core.service.UserOnlineService;
|
import cn.odboy.application.core.service.UserOnlineService;
|
||||||
import cn.odboy.base.PageResult;
|
import cn.odboy.base.PageResult;
|
||||||
import cn.odboy.model.system.response.UserOnlineResponse;
|
import cn.odboy.model.system.model.UserOnlineModel;
|
||||||
import cn.odboy.util.DesEncryptUtil;
|
import cn.odboy.util.DesEncryptUtil;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
@@ -31,7 +31,7 @@ public class OnlineController {
|
|||||||
@ApiOperation("查询在线用户")
|
@ApiOperation("查询在线用户")
|
||||||
@GetMapping
|
@GetMapping
|
||||||
@PreAuthorize("@el.check()")
|
@PreAuthorize("@el.check()")
|
||||||
public ResponseEntity<PageResult<UserOnlineResponse>> queryOnlineUser(String username, Pageable pageable) {
|
public ResponseEntity<PageResult<UserOnlineModel>> queryOnlineUser(String username, Pageable pageable) {
|
||||||
return new ResponseEntity<>(userOnlineService.queryOnlineUserPage(username, pageable), HttpStatus.OK);
|
return new ResponseEntity<>(userOnlineService.queryOnlineUserPage(username, pageable), HttpStatus.OK);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+4
-4
@@ -1,6 +1,6 @@
|
|||||||
package cn.odboy.application.core.service;
|
package cn.odboy.application.core.service;
|
||||||
|
|
||||||
import cn.odboy.model.system.dto.UserJwtDto;
|
import cn.odboy.model.system.model.UserJwtModel;
|
||||||
import org.springframework.scheduling.annotation.Async;
|
import org.springframework.scheduling.annotation.Async;
|
||||||
|
|
||||||
public interface UserCacheService {
|
public interface UserCacheService {
|
||||||
@@ -8,9 +8,9 @@ public interface UserCacheService {
|
|||||||
* 返回用户缓存
|
* 返回用户缓存
|
||||||
*
|
*
|
||||||
* @param username 用户名
|
* @param username 用户名
|
||||||
* @return UserJwtDto
|
* @return UserJwtModel
|
||||||
*/
|
*/
|
||||||
UserJwtDto getUserCacheByUsername(String username);
|
UserJwtModel getUserCacheByUsername(String username);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 添加缓存到Redis
|
* 添加缓存到Redis
|
||||||
@@ -18,7 +18,7 @@ public interface UserCacheService {
|
|||||||
* @param userName 用户名
|
* @param userName 用户名
|
||||||
*/
|
*/
|
||||||
@Async
|
@Async
|
||||||
void addUserCache(String userName, UserJwtDto user);
|
void addUserCache(String userName, UserJwtModel user);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 清理用户缓存信息
|
* 清理用户缓存信息
|
||||||
|
|||||||
+8
-8
@@ -1,8 +1,8 @@
|
|||||||
package cn.odboy.application.core.service;
|
package cn.odboy.application.core.service;
|
||||||
|
|
||||||
import cn.odboy.base.PageResult;
|
import cn.odboy.base.PageResult;
|
||||||
import cn.odboy.model.system.dto.UserJwtDto;
|
import cn.odboy.model.system.model.UserJwtModel;
|
||||||
import cn.odboy.model.system.response.UserOnlineResponse;
|
import cn.odboy.model.system.model.UserOnlineModel;
|
||||||
import org.springframework.data.domain.Pageable;
|
import org.springframework.data.domain.Pageable;
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
@@ -13,11 +13,11 @@ public interface UserOnlineService {
|
|||||||
/**
|
/**
|
||||||
* 保存在线用户信息
|
* 保存在线用户信息
|
||||||
*
|
*
|
||||||
* @param userJwtDto /
|
* @param userJwtModel /
|
||||||
* @param token /
|
* @param token /
|
||||||
* @param request /
|
* @param request /
|
||||||
*/
|
*/
|
||||||
void save(UserJwtDto userJwtDto, String token, HttpServletRequest request);
|
void save(UserJwtModel userJwtModel, String token, HttpServletRequest request);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询全部数据
|
* 查询全部数据
|
||||||
@@ -26,7 +26,7 @@ public interface UserOnlineService {
|
|||||||
* @param pageable /
|
* @param pageable /
|
||||||
* @return /
|
* @return /
|
||||||
*/
|
*/
|
||||||
PageResult<UserOnlineResponse> queryOnlineUserPage(String username, Pageable pageable);
|
PageResult<UserOnlineModel> queryOnlineUserPage(String username, Pageable pageable);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询全部数据,不分页
|
* 查询全部数据,不分页
|
||||||
@@ -34,7 +34,7 @@ public interface UserOnlineService {
|
|||||||
* @param username /
|
* @param username /
|
||||||
* @return /
|
* @return /
|
||||||
*/
|
*/
|
||||||
List<UserOnlineResponse> selectOnlineUserByUsername(String username);
|
List<UserOnlineModel> selectOnlineUserByUsername(String username);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 退出登录
|
* 退出登录
|
||||||
@@ -50,7 +50,7 @@ public interface UserOnlineService {
|
|||||||
* @param response /
|
* @param response /
|
||||||
* @throws IOException /
|
* @throws IOException /
|
||||||
*/
|
*/
|
||||||
void downloadExcel(List<UserOnlineResponse> all, HttpServletResponse response) throws IOException;
|
void downloadExcel(List<UserOnlineModel> all, HttpServletResponse response) throws IOException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询用户
|
* 查询用户
|
||||||
@@ -58,7 +58,7 @@ public interface UserOnlineService {
|
|||||||
* @param key /
|
* @param key /
|
||||||
* @return /
|
* @return /
|
||||||
*/
|
*/
|
||||||
UserOnlineResponse getOnlineUserByKey(String key);
|
UserOnlineModel getOnlineUserByKey(String key);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 根据用户名强退用户
|
* 根据用户名强退用户
|
||||||
|
|||||||
+4
-4
@@ -3,7 +3,7 @@ package cn.odboy.application.core.service.impl;
|
|||||||
import cn.hutool.core.util.RandomUtil;
|
import cn.hutool.core.util.RandomUtil;
|
||||||
import cn.odboy.application.core.service.UserCacheService;
|
import cn.odboy.application.core.service.UserCacheService;
|
||||||
import cn.odboy.constant.SystemRedisKey;
|
import cn.odboy.constant.SystemRedisKey;
|
||||||
import cn.odboy.model.system.dto.UserJwtDto;
|
import cn.odboy.model.system.model.UserJwtModel;
|
||||||
import cn.odboy.redis.RedisHelper;
|
import cn.odboy.redis.RedisHelper;
|
||||||
import cn.odboy.util.StringUtil;
|
import cn.odboy.util.StringUtil;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
@@ -18,19 +18,19 @@ public class UserCacheServiceImpl implements UserCacheService {
|
|||||||
private RedisHelper redisHelper;
|
private RedisHelper redisHelper;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public UserJwtDto getUserCacheByUsername(String username) {
|
public UserJwtModel getUserCacheByUsername(String username) {
|
||||||
// 转小写
|
// 转小写
|
||||||
username = StringUtil.lowerCase(username);
|
username = StringUtil.lowerCase(username);
|
||||||
if (StringUtil.isNotEmpty(username)) {
|
if (StringUtil.isNotEmpty(username)) {
|
||||||
// 获取数据
|
// 获取数据
|
||||||
return redisHelper.get(SystemRedisKey.USER_INFO + username, UserJwtDto.class);
|
return redisHelper.get(SystemRedisKey.USER_INFO + username, UserJwtModel.class);
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void addUserCache(String userName, UserJwtDto user) {
|
public void addUserCache(String userName, UserJwtModel user) {
|
||||||
// 转小写
|
// 转小写
|
||||||
userName = StringUtil.lowerCase(userName);
|
userName = StringUtil.lowerCase(userName);
|
||||||
if (StringUtil.isNotEmpty(userName)) {
|
if (StringUtil.isNotEmpty(userName)) {
|
||||||
|
|||||||
+9
-9
@@ -6,8 +6,8 @@ import cn.odboy.application.system.service.RoleService;
|
|||||||
import cn.odboy.application.system.service.UserService;
|
import cn.odboy.application.system.service.UserService;
|
||||||
import cn.odboy.exception.BadRequestException;
|
import cn.odboy.exception.BadRequestException;
|
||||||
import cn.odboy.model.system.domain.User;
|
import cn.odboy.model.system.domain.User;
|
||||||
import cn.odboy.model.system.dto.RoleCodeDto;
|
import cn.odboy.model.system.model.UserJwtModel;
|
||||||
import cn.odboy.model.system.dto.UserJwtDto;
|
import cn.odboy.model.system.model.RoleCodeModel;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.security.core.userdetails.UserDetailsService;
|
import org.springframework.security.core.userdetails.UserDetailsService;
|
||||||
@@ -24,9 +24,9 @@ public class UserDetailsServiceImpl implements UserDetailsService {
|
|||||||
private final UserCacheService userCacheService;
|
private final UserCacheService userCacheService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public UserJwtDto loadUserByUsername(String username) {
|
public UserJwtModel loadUserByUsername(String username) {
|
||||||
UserJwtDto userJwtDto = userCacheService.getUserCacheByUsername(username);
|
UserJwtModel userJwtModel = userCacheService.getUserCacheByUsername(username);
|
||||||
if (userJwtDto == null) {
|
if (userJwtModel == null) {
|
||||||
User user = userService.getUserByUsername(username);
|
User user = userService.getUserByUsername(username);
|
||||||
if (user == null) {
|
if (user == null) {
|
||||||
throw new BadRequestException("用户不存在");
|
throw new BadRequestException("用户不存在");
|
||||||
@@ -35,13 +35,13 @@ public class UserDetailsServiceImpl implements UserDetailsService {
|
|||||||
throw new BadRequestException("账号未激活!");
|
throw new BadRequestException("账号未激活!");
|
||||||
}
|
}
|
||||||
// 获取用户的权限
|
// 获取用户的权限
|
||||||
List<RoleCodeDto> authorities = roleService.buildPermissions(user);
|
List<RoleCodeModel> authorities = roleService.buildPermissions(user);
|
||||||
// 初始化JwtUserDto
|
// 初始化JwtUserDto
|
||||||
userJwtDto = new UserJwtDto(user, dataService.selectDeptIdByUserIdWithDeptId(user), authorities);
|
userJwtModel = new UserJwtModel(user, dataService.selectDeptIdByUserIdWithDeptId(user), authorities);
|
||||||
// 添加缓存数据
|
// 添加缓存数据
|
||||||
userCacheService.addUserCache(username, userJwtDto);
|
userCacheService.addUserCache(username, userJwtModel);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return userJwtDto;
|
return userJwtModel;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+26
-26
@@ -5,8 +5,8 @@ import cn.odboy.application.core.context.TokenProvider;
|
|||||||
import cn.odboy.application.core.service.UserOnlineService;
|
import cn.odboy.application.core.service.UserOnlineService;
|
||||||
import cn.odboy.base.PageResult;
|
import cn.odboy.base.PageResult;
|
||||||
import cn.odboy.constant.SystemRedisKey;
|
import cn.odboy.constant.SystemRedisKey;
|
||||||
import cn.odboy.model.system.dto.UserJwtDto;
|
import cn.odboy.model.system.model.UserJwtModel;
|
||||||
import cn.odboy.model.system.response.UserOnlineResponse;
|
import cn.odboy.model.system.model.UserOnlineModel;
|
||||||
import cn.odboy.redis.RedisHelper;
|
import cn.odboy.redis.RedisHelper;
|
||||||
import cn.odboy.util.BrowserUtil;
|
import cn.odboy.util.BrowserUtil;
|
||||||
import cn.odboy.util.DesEncryptUtil;
|
import cn.odboy.util.DesEncryptUtil;
|
||||||
@@ -39,46 +39,46 @@ public class UserOnlineServiceImpl implements UserOnlineService {
|
|||||||
private final RedisHelper redisHelper;
|
private final RedisHelper redisHelper;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void save(UserJwtDto userJwtDto, String token, HttpServletRequest request) {
|
public void save(UserJwtModel userJwtModel, String token, HttpServletRequest request) {
|
||||||
String dept = userJwtDto.getUser().getDept().getName();
|
String dept = userJwtModel.getUser().getDept().getName();
|
||||||
String ip = BrowserUtil.getIp(request);
|
String ip = BrowserUtil.getIp(request);
|
||||||
String id = tokenProvider.getId(token);
|
String id = tokenProvider.getId(token);
|
||||||
String version = BrowserUtil.getVersion(request);
|
String version = BrowserUtil.getVersion(request);
|
||||||
String address = IpUtil.getCityInfo(ip);
|
String address = IpUtil.getCityInfo(ip);
|
||||||
UserOnlineResponse userOnlineResponse = null;
|
UserOnlineModel userOnlineModel = null;
|
||||||
try {
|
try {
|
||||||
userOnlineResponse = new UserOnlineResponse();
|
userOnlineModel = new UserOnlineModel();
|
||||||
userOnlineResponse.setUid(id);
|
userOnlineModel.setUid(id);
|
||||||
userOnlineResponse.setUserName(userJwtDto.getUsername());
|
userOnlineModel.setUserName(userJwtModel.getUsername());
|
||||||
userOnlineResponse.setNickName(userJwtDto.getUser().getNickName());
|
userOnlineModel.setNickName(userJwtModel.getUser().getNickName());
|
||||||
userOnlineResponse.setDept(dept);
|
userOnlineModel.setDept(dept);
|
||||||
userOnlineResponse.setBrowser(version);
|
userOnlineModel.setBrowser(version);
|
||||||
userOnlineResponse.setIp(ip);
|
userOnlineModel.setIp(ip);
|
||||||
userOnlineResponse.setAddress(address);
|
userOnlineModel.setAddress(address);
|
||||||
userOnlineResponse.setKey(DesEncryptUtil.desEncrypt(token));
|
userOnlineModel.setKey(DesEncryptUtil.desEncrypt(token));
|
||||||
userOnlineResponse.setLoginTime(new Date());
|
userOnlineModel.setLoginTime(new Date());
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error(e.getMessage(), e);
|
log.error(e.getMessage(), e);
|
||||||
}
|
}
|
||||||
String loginKey = tokenProvider.loginKey(token);
|
String loginKey = tokenProvider.loginKey(token);
|
||||||
redisHelper.set(loginKey, userOnlineResponse, properties.getTokenValidityInSeconds(), TimeUnit.MILLISECONDS);
|
redisHelper.set(loginKey, userOnlineModel, properties.getTokenValidityInSeconds(), TimeUnit.MILLISECONDS);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public PageResult<UserOnlineResponse> queryOnlineUserPage(String username, Pageable pageable) {
|
public PageResult<UserOnlineModel> queryOnlineUserPage(String username, Pageable pageable) {
|
||||||
List<UserOnlineResponse> onlineUserList = selectOnlineUserByUsername(username);
|
List<UserOnlineModel> onlineUserList = selectOnlineUserByUsername(username);
|
||||||
List<UserOnlineResponse> paging = PageUtil.softPaging(pageable.getPageNumber(), pageable.getPageSize(), onlineUserList);
|
List<UserOnlineModel> paging = PageUtil.softPaging(pageable.getPageNumber(), pageable.getPageSize(), onlineUserList);
|
||||||
return PageUtil.toPage(paging, onlineUserList.size());
|
return PageUtil.toPage(paging, onlineUserList.size());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<UserOnlineResponse> selectOnlineUserByUsername(String username) {
|
public List<UserOnlineModel> selectOnlineUserByUsername(String username) {
|
||||||
String loginKey = SystemRedisKey.ONLINE_USER + (StringUtil.isBlank(username) ? "" : "*" + username);
|
String loginKey = SystemRedisKey.ONLINE_USER + (StringUtil.isBlank(username) ? "" : "*" + username);
|
||||||
List<String> keys = redisHelper.scan(loginKey + "*");
|
List<String> keys = redisHelper.scan(loginKey + "*");
|
||||||
Collections.reverse(keys);
|
Collections.reverse(keys);
|
||||||
List<UserOnlineResponse> onlineUserList = new ArrayList<>();
|
List<UserOnlineModel> onlineUserList = new ArrayList<>();
|
||||||
for (String key : keys) {
|
for (String key : keys) {
|
||||||
onlineUserList.add(redisHelper.get(key, UserOnlineResponse.class));
|
onlineUserList.add(redisHelper.get(key, UserOnlineModel.class));
|
||||||
}
|
}
|
||||||
onlineUserList.sort((o1, o2) -> o2.getLoginTime().compareTo(o1.getLoginTime()));
|
onlineUserList.sort((o1, o2) -> o2.getLoginTime().compareTo(o1.getLoginTime()));
|
||||||
return onlineUserList;
|
return onlineUserList;
|
||||||
@@ -91,9 +91,9 @@ public class UserOnlineServiceImpl implements UserOnlineService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void downloadExcel(List<UserOnlineResponse> all, HttpServletResponse response) throws IOException {
|
public void downloadExcel(List<UserOnlineModel> all, HttpServletResponse response) throws IOException {
|
||||||
List<Map<String, Object>> list = new ArrayList<>();
|
List<Map<String, Object>> list = new ArrayList<>();
|
||||||
for (UserOnlineResponse user : all) {
|
for (UserOnlineModel user : all) {
|
||||||
Map<String, Object> map = new LinkedHashMap<>();
|
Map<String, Object> map = new LinkedHashMap<>();
|
||||||
map.put("用户名", user.getUserName());
|
map.put("用户名", user.getUserName());
|
||||||
map.put("部门", user.getDept());
|
map.put("部门", user.getDept());
|
||||||
@@ -107,8 +107,8 @@ public class UserOnlineServiceImpl implements UserOnlineService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public UserOnlineResponse getOnlineUserByKey(String key) {
|
public UserOnlineModel getOnlineUserByKey(String key) {
|
||||||
return redisHelper.get(key, UserOnlineResponse.class);
|
return redisHelper.get(key, UserOnlineModel.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
+2
-2
@@ -15,7 +15,7 @@ import cn.odboy.model.system.domain.Dept;
|
|||||||
import cn.odboy.model.system.domain.Role;
|
import cn.odboy.model.system.domain.Role;
|
||||||
import cn.odboy.model.system.domain.User;
|
import cn.odboy.model.system.domain.User;
|
||||||
import cn.odboy.model.system.request.QueryUserRequest;
|
import cn.odboy.model.system.request.QueryUserRequest;
|
||||||
import cn.odboy.model.system.response.UserPassResponse;
|
import cn.odboy.model.system.response.UpdateUserPasswordResponse;
|
||||||
import cn.odboy.properties.RsaProperties;
|
import cn.odboy.properties.RsaProperties;
|
||||||
import cn.odboy.util.PageUtil;
|
import cn.odboy.util.PageUtil;
|
||||||
import cn.odboy.util.RsaEncryptUtil;
|
import cn.odboy.util.RsaEncryptUtil;
|
||||||
@@ -145,7 +145,7 @@ public class UserController {
|
|||||||
|
|
||||||
@ApiOperation("修改密码")
|
@ApiOperation("修改密码")
|
||||||
@PostMapping(value = "/updatePass")
|
@PostMapping(value = "/updatePass")
|
||||||
public ResponseEntity<Object> updateUserPassword(@RequestBody UserPassResponse passVo) throws Exception {
|
public ResponseEntity<Object> updateUserPassword(@RequestBody UpdateUserPasswordResponse passVo) throws Exception {
|
||||||
String oldPass = RsaEncryptUtil.decryptByPrivateKey(RsaProperties.privateKey, passVo.getOldPass());
|
String oldPass = RsaEncryptUtil.decryptByPrivateKey(RsaProperties.privateKey, passVo.getOldPass());
|
||||||
String newPass = RsaEncryptUtil.decryptByPrivateKey(RsaProperties.privateKey, passVo.getNewPass());
|
String newPass = RsaEncryptUtil.decryptByPrivateKey(RsaProperties.privateKey, passVo.getNewPass());
|
||||||
User user = userService.getUserByUsername(SecurityHelper.getCurrentUsername());
|
User user = userService.getUserByUsername(SecurityHelper.getCurrentUsername());
|
||||||
|
|||||||
+2
-2
@@ -3,7 +3,7 @@ package cn.odboy.application.system.service;
|
|||||||
import cn.odboy.base.PageResult;
|
import cn.odboy.base.PageResult;
|
||||||
import cn.odboy.model.system.domain.Role;
|
import cn.odboy.model.system.domain.Role;
|
||||||
import cn.odboy.model.system.domain.User;
|
import cn.odboy.model.system.domain.User;
|
||||||
import cn.odboy.model.system.dto.RoleCodeDto;
|
import cn.odboy.model.system.model.RoleCodeModel;
|
||||||
import cn.odboy.model.system.request.CreateRoleRequest;
|
import cn.odboy.model.system.request.CreateRoleRequest;
|
||||||
import cn.odboy.model.system.request.QueryRoleRequest;
|
import cn.odboy.model.system.request.QueryRoleRequest;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
@@ -98,7 +98,7 @@ public interface RoleService extends IService<Role> {
|
|||||||
* @param user 用户信息
|
* @param user 用户信息
|
||||||
* @return 权限信息
|
* @return 权限信息
|
||||||
*/
|
*/
|
||||||
List<RoleCodeDto> buildPermissions(User user);
|
List<RoleCodeModel> buildPermissions(User user);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 导出数据
|
* 导出数据
|
||||||
|
|||||||
+2
-2
@@ -16,7 +16,7 @@ import cn.odboy.model.system.domain.Menu;
|
|||||||
import cn.odboy.model.system.domain.Role;
|
import cn.odboy.model.system.domain.Role;
|
||||||
import cn.odboy.model.system.domain.User;
|
import cn.odboy.model.system.domain.User;
|
||||||
import cn.odboy.model.system.request.QueryMenuRequest;
|
import cn.odboy.model.system.request.QueryMenuRequest;
|
||||||
import cn.odboy.model.system.response.MenuMetaResponse;
|
import cn.odboy.model.system.model.MenuMetaModel;
|
||||||
import cn.odboy.model.system.response.MenuResponse;
|
import cn.odboy.model.system.response.MenuResponse;
|
||||||
import cn.odboy.redis.RedisHelper;
|
import cn.odboy.redis.RedisHelper;
|
||||||
import cn.odboy.util.ClassUtil;
|
import cn.odboy.util.ClassUtil;
|
||||||
@@ -273,7 +273,7 @@ public class MenuServiceImpl extends ServiceImpl<MenuMapper, Menu> implements Me
|
|||||||
menuResponse.setComponent(menu.getComponent());
|
menuResponse.setComponent(menu.getComponent());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
menuResponse.setMeta(new MenuMetaResponse(menu.getTitle(), menu.getIcon(), !menu.getCache()));
|
menuResponse.setMeta(new MenuMetaModel(menu.getTitle(), menu.getIcon(), !menu.getCache()));
|
||||||
if (CollectionUtil.isNotEmpty(menuList)) {
|
if (CollectionUtil.isNotEmpty(menuList)) {
|
||||||
menuResponse.setAlwaysShow(true);
|
menuResponse.setAlwaysShow(true);
|
||||||
menuResponse.setRedirect("noredirect");
|
menuResponse.setRedirect("noredirect");
|
||||||
|
|||||||
+5
-5
@@ -16,7 +16,7 @@ import cn.odboy.exception.EntityExistException;
|
|||||||
import cn.odboy.model.system.domain.Menu;
|
import cn.odboy.model.system.domain.Menu;
|
||||||
import cn.odboy.model.system.domain.Role;
|
import cn.odboy.model.system.domain.Role;
|
||||||
import cn.odboy.model.system.domain.User;
|
import cn.odboy.model.system.domain.User;
|
||||||
import cn.odboy.model.system.dto.RoleCodeDto;
|
import cn.odboy.model.system.model.RoleCodeModel;
|
||||||
import cn.odboy.model.system.request.CreateRoleRequest;
|
import cn.odboy.model.system.request.CreateRoleRequest;
|
||||||
import cn.odboy.model.system.request.QueryRoleRequest;
|
import cn.odboy.model.system.request.QueryRoleRequest;
|
||||||
import cn.odboy.redis.RedisHelper;
|
import cn.odboy.redis.RedisHelper;
|
||||||
@@ -167,22 +167,22 @@ public class RoleServiceImpl extends ServiceImpl<RoleMapper, Role> implements Ro
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<RoleCodeDto> buildPermissions(User user) {
|
public List<RoleCodeModel> buildPermissions(User user) {
|
||||||
String key = SystemRedisKey.ROLE_AUTH + user.getId();
|
String key = SystemRedisKey.ROLE_AUTH + user.getId();
|
||||||
List<RoleCodeDto> authorityList = redisHelper.getList(key, RoleCodeDto.class);
|
List<RoleCodeModel> authorityList = redisHelper.getList(key, RoleCodeModel.class);
|
||||||
if (CollUtil.isEmpty(authorityList)) {
|
if (CollUtil.isEmpty(authorityList)) {
|
||||||
Set<String> permissions = new HashSet<>();
|
Set<String> permissions = new HashSet<>();
|
||||||
// 如果是管理员直接返回
|
// 如果是管理员直接返回
|
||||||
if (user.getIsAdmin()) {
|
if (user.getIsAdmin()) {
|
||||||
permissions.add("admin");
|
permissions.add("admin");
|
||||||
return permissions.stream().map(RoleCodeDto::new)
|
return permissions.stream().map(RoleCodeModel::new)
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
}
|
}
|
||||||
List<Role> roles = roleMapper.selectRoleByUserId(user.getId());
|
List<Role> roles = roleMapper.selectRoleByUserId(user.getId());
|
||||||
permissions = roles.stream().flatMap(role -> role.getMenus().stream())
|
permissions = roles.stream().flatMap(role -> role.getMenus().stream())
|
||||||
.map(Menu::getPermission)
|
.map(Menu::getPermission)
|
||||||
.filter(StringUtil::isNotBlank).collect(Collectors.toSet());
|
.filter(StringUtil::isNotBlank).collect(Collectors.toSet());
|
||||||
authorityList = permissions.stream().map(RoleCodeDto::new)
|
authorityList = permissions.stream().map(RoleCodeModel::new)
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
redisHelper.set(key, authorityList, 1, TimeUnit.HOURS);
|
redisHelper.set(key, authorityList, 1, TimeUnit.HOURS);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user