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; } }