107 lines
3.4 KiB
Java
107 lines
3.4 KiB
Java
package com.example.nto.service.impl;
|
||
|
||
import com.example.nto.entity.Code;
|
||
import com.example.nto.entity.Employee;
|
||
import com.example.nto.repository.CodeRepository;
|
||
import com.example.nto.repository.EmployeeRepository;
|
||
import com.example.nto.service.EmployeeService;
|
||
import org.hibernate.sql.Update;
|
||
import org.springframework.beans.factory.annotation.Autowired;
|
||
import org.springframework.stereotype.Service;
|
||
|
||
import java.time.LocalDateTime;
|
||
import java.util.Optional;
|
||
|
||
@Service
|
||
public class EmployeeServiceImpl implements EmployeeService {
|
||
|
||
private final EmployeeRepository employeeRepository;
|
||
private final CodeRepository codeRepository;
|
||
|
||
@Autowired
|
||
public EmployeeServiceImpl(EmployeeRepository employeeRepository, CodeRepository codeRepository){
|
||
this.employeeRepository = employeeRepository;
|
||
this.codeRepository = codeRepository;
|
||
}
|
||
|
||
/**
|
||
* Проверить существование логина в базе данных
|
||
* @param login логин убзера
|
||
* @return Существует ли запись в бд
|
||
*/
|
||
@Override
|
||
public boolean checkEmployeeExists(String login) {
|
||
return employeeRepository.existsByLogin(login);
|
||
}
|
||
|
||
/**
|
||
* Получить информацию о юбзере по логину
|
||
* @param login логин юбзера
|
||
* @return всю инфу по юзеру
|
||
*/
|
||
@Override
|
||
public Optional<Employee> getEmployeeInfo(String login) {
|
||
return employeeRepository.getByLogin(login);
|
||
}
|
||
|
||
/**
|
||
* Попытка открыть дверь
|
||
* @param login Логин юзера
|
||
* @return true если дверь открыта, иначе false
|
||
*/
|
||
@Override
|
||
public boolean doorIsOpen(String login, long code) {
|
||
if (employeeRepository.existsByLogin(login)) {
|
||
Code codeObject = new Code();
|
||
codeObject.setValue(code);
|
||
codeRepository.save(codeObject);
|
||
return true;
|
||
}
|
||
|
||
return false;
|
||
}
|
||
|
||
/**
|
||
* Эта темка обновит время последнего визита до текущего момента
|
||
* @param login логин пользователя
|
||
*/
|
||
@Override
|
||
public void updateLastVisit(String login) {
|
||
Employee employee = employeeRepository.getByLogin(login).get();
|
||
employee.setLastVisit(LocalDateTime.now());
|
||
}
|
||
|
||
@Override
|
||
public Employee getEmployeeInfoById(Long id) {
|
||
return employeeRepository.findById(id).get();
|
||
}
|
||
|
||
@Override
|
||
public void deleteEmployee(Long id) {
|
||
employeeRepository.deleteById(id);
|
||
}
|
||
|
||
@Override
|
||
public Employee updateEmployeeLogin(Long id, String newLogin) {
|
||
Employee employee = employeeRepository.getById(id);
|
||
employee.setLogin(newLogin);
|
||
employeeRepository.save(employee);
|
||
return employee;
|
||
}
|
||
|
||
@Override
|
||
public Employee updateEmployeeAvatar(Long id, String newAvatar) {
|
||
Employee employee = employeeRepository.getById(id);
|
||
employee.setPhoto(newAvatar);
|
||
employeeRepository.save(employee);
|
||
return employee;
|
||
}
|
||
|
||
@Override
|
||
public Employee updateEmployeePosition(Long id, String newPosition) {
|
||
Employee employee = employeeRepository.getById(id);
|
||
employee.setPosition(newPosition);
|
||
employeeRepository.save(employee);
|
||
return employee; }
|
||
}
|