|
|
@ -35,9 +35,10 @@ public class UserServiceImpl implements UserService { |
|
|
|
|
|
|
|
private final UserSessionRepository userSessionRepository; |
|
|
|
|
|
|
|
public UserServiceImpl(@Autowired UserRepository userRepository, @Autowired UserRoleRepository userRoleRepository, |
|
|
|
@Autowired PasswordEncoder passwordEncoder, @Autowired RoleRepository roleRepository, |
|
|
|
@Autowired UserSessionRepository userSessionRepository) { |
|
|
|
public UserServiceImpl(@Autowired final UserRepository userRepository, |
|
|
|
@Autowired final UserRoleRepository userRoleRepository, @Autowired final PasswordEncoder passwordEncoder, |
|
|
|
@Autowired final RoleRepository roleRepository, |
|
|
|
@Autowired final UserSessionRepository userSessionRepository) { |
|
|
|
this.userRepository = userRepository; |
|
|
|
this.userRoleRepository = userRoleRepository; |
|
|
|
this.passwordEncoder = passwordEncoder; |
|
|
@ -46,13 +47,13 @@ public class UserServiceImpl implements UserService { |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public UserRole registerUser(UserRegistrationDTO userRegistrationDTO) { |
|
|
|
ChatUser user = new ChatUser(); |
|
|
|
public UserRole registerUser(final UserRegistrationDTO userRegistrationDTO) { |
|
|
|
final ChatUser user = new ChatUser(); |
|
|
|
user.setUserName(userRegistrationDTO.getUserName()); |
|
|
|
user.setPassword(passwordEncoder.encode(userRegistrationDTO.getPassword())); |
|
|
|
ChatUser changedUser = userRepository.save(user); |
|
|
|
UserRole userRole = new UserRole(); |
|
|
|
Role role = roleRepository.findByName("USER"); |
|
|
|
final ChatUser changedUser = userRepository.save(user); |
|
|
|
final UserRole userRole = new UserRole(); |
|
|
|
final Role role = roleRepository.findByName("USER"); |
|
|
|
userRole.setRole(role); |
|
|
|
userRole.setUser(changedUser); |
|
|
|
userRoleRepository.save(userRole); |
|
|
@ -61,7 +62,7 @@ public class UserServiceImpl implements UserService { |
|
|
|
|
|
|
|
@Override |
|
|
|
@Transactional(readOnly = true) |
|
|
|
public List<String> findAllOtherUsers(String userName) { |
|
|
|
public List<String> findAllOtherUsers(final String userName) { |
|
|
|
return userRepository.findAllOtherUserNames(userName); |
|
|
|
} |
|
|
|
|
|
|
@ -72,16 +73,16 @@ public class UserServiceImpl implements UserService { |
|
|
|
} |
|
|
|
|
|
|
|
@Transactional(readOnly = true) |
|
|
|
public List<ActiveUserDTO> getOtherActiveUsers(String userName) { |
|
|
|
List<String> userList = findAllOtherUsers(userName); |
|
|
|
public List<ActiveUserDTO> getOtherActiveUsers(final String userName) { |
|
|
|
final List<String> userList = findAllOtherUsers(userName); |
|
|
|
|
|
|
|
List<UserSession> userSessionsList = userSessionRepository.findAllUserSessions(); |
|
|
|
Map<String, UserSession> lastActiveMap = convertToMap(userSessionsList); |
|
|
|
final List<UserSession> userSessionsList = userSessionRepository.findAllUserSessions(); |
|
|
|
final Map<String, UserSession> lastActiveMap = convertToMap(userSessionsList); |
|
|
|
|
|
|
|
List<ActiveUserDTO> activeUserDTOs = new ArrayList<ActiveUserDTO>(); |
|
|
|
final List<ActiveUserDTO> activeUserDTOs = new ArrayList<ActiveUserDTO>(); |
|
|
|
userList.forEach(u -> { |
|
|
|
ActiveUserDTO activeUserDTO = new ActiveUserDTO(); |
|
|
|
UserSession us = lastActiveMap.get(u); |
|
|
|
final ActiveUserDTO activeUserDTO = new ActiveUserDTO(); |
|
|
|
final UserSession us = lastActiveMap.get(u); |
|
|
|
|
|
|
|
activeUserDTO.setUserName(u); |
|
|
|
activeUserDTO.setOnline(false); |
|
|
@ -99,25 +100,25 @@ public class UserServiceImpl implements UserService { |
|
|
|
|
|
|
|
@Transactional(readOnly = true) |
|
|
|
@Override |
|
|
|
public ChatUser findByUserName(String userName) { |
|
|
|
public ChatUser findByUserName(final String userName) { |
|
|
|
return userRepository.findByUserName(userName); |
|
|
|
} |
|
|
|
|
|
|
|
private Map<String, UserSession> convertToMap(List<UserSession> userSessionList) { |
|
|
|
Map<String, UserSession> userMap = new HashMap<>(); |
|
|
|
private Map<String, UserSession> convertToMap(final List<UserSession> userSessionList) { |
|
|
|
final Map<String, UserSession> userMap = new HashMap<>(); |
|
|
|
userSessionList.forEach(us -> { |
|
|
|
userMap.put(us.getUser().getUserName(), us); |
|
|
|
}); |
|
|
|
return userMap; |
|
|
|
} |
|
|
|
|
|
|
|
private String toLastActiveString(Instant lastActive) { |
|
|
|
private String toLastActiveString(final Instant lastActive) { |
|
|
|
if (lastActive == null) |
|
|
|
return null; |
|
|
|
Duration duration = Duration.between(lastActive, Instant.now()); |
|
|
|
long hours = duration.toHours(); |
|
|
|
long minutes = duration.toMinutes(); |
|
|
|
long days = duration.toDays(); |
|
|
|
final Duration duration = Duration.between(lastActive, Instant.now()); |
|
|
|
final long hours = duration.toHours(); |
|
|
|
final long minutes = duration.toMinutes(); |
|
|
|
final long days = duration.toDays(); |
|
|
|
// @formatter:off |
|
|
|
if(minutes < 60) |
|
|
|
{ |
|
|
@ -150,7 +151,7 @@ public class UserServiceImpl implements UserService { |
|
|
|
|
|
|
|
@Override |
|
|
|
@Transactional(readOnly = true) |
|
|
|
public List<UserRole> getUserWithRole(String userName) { |
|
|
|
public List<UserRole> getUserWithRole(final String userName) { |
|
|
|
return userRoleRepository.findByUser(userName); |
|
|
|
} |
|
|
|
} |