use of com.albedo.java.modules.sys.domain.vo.UserVo in project albedo by somowhere.
the class UserDetailsServiceImpl method loadUserByUsername.
/**
* 用户密码登录
*
* @param username 用户名
* @return
*/
@Override
@SneakyThrows
public UserDetails loadUserByUsername(String username) {
UserVo userVo = userService.findVoByUsername(username);
ArgumentAssert.notNull(userVo, () -> new UsernameNotFoundException("用户不存在"));
ArgumentAssert.isTrue(userVo.isAvailable(), "用户【" + username + "】已被锁定,无法登录");
UserDetails userDetails = getUserDetails(userService.getInfo(userVo));
return userDetails;
}
use of com.albedo.java.modules.sys.domain.vo.UserVo in project albedo by somowhere.
the class LogLoginServiceImpl method save.
@Override
public boolean save(LogLoginDo logLoginDo) {
UserVo user;
Long userId = logLoginDo.getUserId();
String username = logLoginDo.getUsername();
if (userId != null) {
user = this.userService.findUserVoById(userId);
} else {
user = this.userService.findVoByUsername(username);
}
if (user != null) {
logLoginDo.setUsername(user.getUsername()).setUserId(user.getId()).setNickname(user.getNickname()).setCreatedBy(user.getId());
}
super.save(logLoginDo);
LocalDate now = LocalDate.now();
String tenDaysAgo = LocalDateTimeUtil.formatNormal(now.plusDays(-9));
CacheKey totalLoginPvKey = TotalLoginPvCacheKeyBuilder.build();
CacheKey todayLoginPvKey = TodayLoginPvCacheKeyBuilder.build(now);
// 登录IV
CacheKey totalLoginIvKey = TotalLoginIvCacheKeyBuilder.build();
CacheKey todayLoginIvKey = TodayLoginIvCacheKeyBuilder.build(now);
CacheKey logLoginTenDayKey = new LogLoginTenDayCacheKeyBuilder().key(tenDaysAgo);
CacheKey logLoginBrowserKey = new LogLoginBrowserCacheKeyBuilder().key();
CacheKey logLoginSystemKey = new LogLoginSystemCacheKeyBuilder().key();
cacheOps.del(totalLoginPvKey);
cacheOps.del(todayLoginPvKey);
cacheOps.del(todayLoginIvKey);
cacheOps.del(totalLoginIvKey);
cacheOps.del(logLoginTenDayKey);
cacheOps.del(logLoginBrowserKey);
cacheOps.del(logLoginSystemKey);
if (user != null) {
CacheKey logLoginTenDayUserKey = new LogLoginTenDayCacheKeyBuilder().key(tenDaysAgo, user.getUsername());
cacheOps.del(logLoginTenDayUserKey);
}
return true;
}
use of com.albedo.java.modules.sys.domain.vo.UserVo in project albedo by somowhere.
the class UserServiceImpl method findPage.
/**
* 分页查询用户信息(含有角色信息)
*
* @param pageModel 分页对象
* @return
*/
@Override
@Transactional(readOnly = true, rollbackFor = Exception.class)
public IPage<UserVo> findPage(PageModel pageModel, UserQueryCriteria userQueryCriteria, DataScope dataScope) {
QueryWrapper wrapper = QueryWrapperUtil.getWrapper(pageModel, userQueryCriteria);
IPage<UserVo> userVosPage = repository.findUserVoPage(pageModel, wrapper, dataScope);
return userVosPage;
}
use of com.albedo.java.modules.sys.domain.vo.UserVo in project albedo by somowhere.
the class UserDetailsServiceImpl method getUserDetails.
/**
* 构建userdetails
*
* @param userInfo 用户信息
* @return
*/
private UserDetails getUserDetails(UserInfo userInfo) {
ArgumentAssert.notNull(userInfo, () -> new UsernameNotFoundException("用户不存在"));
Set<String> dbAuthsSet = new HashSet<>();
if (ArrayUtil.isNotEmpty(userInfo.getRoles())) {
// 获取角色
Arrays.stream(userInfo.getRoles()).forEach(role -> dbAuthsSet.add(SecurityConstants.ROLE + role));
// 获取资源
dbAuthsSet.addAll(Arrays.asList(userInfo.getPermissions()));
}
List<GrantedAuthority> authorities = AuthUtil.createAuthorityList(dbAuthsSet.toArray(new String[0]));
UserVo userVo = userInfo.getUser();
DataScope dataScope = new DataScope();
if (CollUtil.isNotEmpty(userVo.getRoleDoList())) {
for (RoleDo roleDo : userVo.getRoleDoList()) {
if (DataScopeType.ALL.eq(roleDo.getDataScope())) {
dataScope.setAll(true);
break;
} else if (DataScopeType.THIS_LEVEL_CHILDREN.eq(roleDo.getDataScope())) {
dataScope.getDeptIds().addAll(deptService.findDescendantIdList(userVo.getDeptId()));
} else if (DataScopeType.THIS_LEVEL.eq(roleDo.getDataScope())) {
dataScope.getDeptIds().add(userVo.getDeptId());
} else if (DataScopeType.SELF.eq(roleDo.getDataScope())) {
dataScope.setSelf(true);
dataScope.setUserId(userVo.getId());
} else if (DataScopeType.CUSTOMIZE.eq(roleDo.getDataScope())) {
dataScope.getDeptIds().addAll(roleService.findDeptIdsByRoleId(roleDo.getId()));
}
}
}
// 构造security用户
return new UserDetail(userVo.getId(), userVo.getDeptId(), userVo.getDeptName(), userVo.getUsername(), SecurityConstants.BCRYPT + userVo.getPassword(), userVo.isAvailable(), true, true, true, authorities, dataScope);
}
use of com.albedo.java.modules.sys.domain.vo.UserVo in project albedo by somowhere.
the class UserResource method info.
/**
* 获取当前用户全部信息
*
* @return 用户信息
*/
@GetMapping(value = { "/info" })
public Result<UserInfo> info() {
String username = SecurityUtil.getUser().getUsername();
UserVo userVo = userService.findVoByUsername(username);
if (userVo == null) {
return Result.buildFail("获取当前用户信息失败");
}
return Result.buildOkData(userService.getInfo(userVo));
}
Aggregations