diff --git a/src/main/java/com/example/nto/controller/AdminController.java b/src/main/java/com/example/nto/controller/AdminController.java index 2775d64..387ead0 100644 --- a/src/main/java/com/example/nto/controller/AdminController.java +++ b/src/main/java/com/example/nto/controller/AdminController.java @@ -1,5 +1,7 @@ package com.example.nto.controller; +import com.example.nto.dto.EmployeeDataDto; +import com.example.nto.dto.EntryDto; import com.example.nto.entity.EmployeeData; import com.example.nto.entity.Entry; import com.example.nto.service.AdminService; @@ -23,7 +25,7 @@ public class AdminController { private void amIAdmin() {} @PostMapping("/panel/get-employee-info") - private EmployeeData getEmployeeInfo(@RequestParam("employee-login") String employeeLogin) { + private EmployeeDataDto getEmployeeInfo(@RequestParam("employee-login") String employeeLogin) { Authentication authentication = SecurityContextHolder.getContext().getAuthentication(); String login = authentication.getName(); return adminService.getEmployeeInfo(employeeLogin, login); @@ -38,7 +40,7 @@ public class AdminController { } @PostMapping("/panel/get-employee-entry-list") - private List getEmployeeEntryList(@RequestParam("employee-login") String employeeLogin) { + private List getEmployeeEntryList(@RequestParam("employee-login") String employeeLogin) { Authentication authentication = SecurityContextHolder.getContext().getAuthentication(); String login = authentication.getName(); return adminService.getEmployeeEntryList(employeeLogin, login); diff --git a/src/main/java/com/example/nto/controller/EmployeeController.java b/src/main/java/com/example/nto/controller/EmployeeController.java index 8bdea7c..b924161 100644 --- a/src/main/java/com/example/nto/controller/EmployeeController.java +++ b/src/main/java/com/example/nto/controller/EmployeeController.java @@ -1,5 +1,7 @@ package com.example.nto.controller; +import com.example.nto.dto.EmployeeDataDto; +import com.example.nto.dto.EntryDto; import com.example.nto.entity.Code; import com.example.nto.entity.Employee; import com.example.nto.entity.EmployeeData; @@ -25,7 +27,7 @@ public class EmployeeController { private void auth() {} @PostMapping("/info") - private EmployeeData info() { + private EmployeeDataDto info() { Authentication authentication = SecurityContextHolder.getContext().getAuthentication(); String login = authentication.getName(); return employeeService.info(login); @@ -39,7 +41,7 @@ public class EmployeeController { } @PostMapping("/get-entry-list") - private List getEntryList() { + private List getEntryList() { Authentication authentication = SecurityContextHolder.getContext().getAuthentication(); String login = authentication.getName(); return employeeService.getEntryList(login); diff --git a/src/main/java/com/example/nto/dto/EmployeeDataDto.java b/src/main/java/com/example/nto/dto/EmployeeDataDto.java new file mode 100644 index 0000000..de0c146 --- /dev/null +++ b/src/main/java/com/example/nto/dto/EmployeeDataDto.java @@ -0,0 +1,19 @@ +package com.example.nto.dto; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.time.LocalDateTime; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class EmployeeDataDto { + private String name; + private String photo; + private String employeePosition; + private LocalDateTime lastVisit; +} diff --git a/src/main/java/com/example/nto/dto/EntryDto.java b/src/main/java/com/example/nto/dto/EntryDto.java new file mode 100644 index 0000000..0ca87a8 --- /dev/null +++ b/src/main/java/com/example/nto/dto/EntryDto.java @@ -0,0 +1,18 @@ +package com.example.nto.dto; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.time.LocalDateTime; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class EntryDto { + private long codeId; + private LocalDateTime entryTime; + private boolean isCard; +} diff --git a/src/main/java/com/example/nto/dto/mapper/EmployeeDataMapper.java b/src/main/java/com/example/nto/dto/mapper/EmployeeDataMapper.java new file mode 100644 index 0000000..4cb5738 --- /dev/null +++ b/src/main/java/com/example/nto/dto/mapper/EmployeeDataMapper.java @@ -0,0 +1,17 @@ +package com.example.nto.dto.mapper; + +import com.example.nto.dto.EmployeeDataDto; +import com.example.nto.entity.EmployeeData; +import lombok.experimental.UtilityClass; + +@UtilityClass +public class EmployeeDataMapper { + public static EmployeeDataDto toEmployeeDataDto(EmployeeData employeeData) { + return EmployeeDataDto.builder() + .name(employeeData.getName()) + .photo(employeeData.getPhoto()) + .employeePosition(employeeData.getEmployeePosition()) + .lastVisit(employeeData.getLastVisit()) + .build(); + } +} diff --git a/src/main/java/com/example/nto/dto/mapper/EntryMapper.java b/src/main/java/com/example/nto/dto/mapper/EntryMapper.java new file mode 100644 index 0000000..ec59b10 --- /dev/null +++ b/src/main/java/com/example/nto/dto/mapper/EntryMapper.java @@ -0,0 +1,16 @@ +package com.example.nto.dto.mapper; + +import com.example.nto.dto.EntryDto; +import com.example.nto.entity.Entry; +import lombok.experimental.UtilityClass; + +@UtilityClass +public class EntryMapper { + public static EntryDto toEntryDto(Entry entry) { + return EntryDto.builder() + .codeId(entry.getId()) + .entryTime(entry.getEntryTime()) + .isCard(entry.isCard()) + .build(); + } +} diff --git a/src/main/java/com/example/nto/repository/EmployeeDataRepository.java b/src/main/java/com/example/nto/repository/EmployeeDataRepository.java index e4263b6..505b5c3 100644 --- a/src/main/java/com/example/nto/repository/EmployeeDataRepository.java +++ b/src/main/java/com/example/nto/repository/EmployeeDataRepository.java @@ -15,7 +15,7 @@ import java.util.Optional; @Repository public interface EmployeeDataRepository extends JpaRepository { Optional findByOwnerId(long ownerId); - @Query(value = "select e.id from employee_data e where owner_id = :owner_id", nativeQuery = true) + @Query("select e.id from EmployeeData e where e.ownerId = :owner_id") Optional findIdByOwnerId(@Param("owner_id") long ownerId); @Modifying diff --git a/src/main/java/com/example/nto/repository/EmployeeRepository.java b/src/main/java/com/example/nto/repository/EmployeeRepository.java index 0c2a55b..2f88000 100644 --- a/src/main/java/com/example/nto/repository/EmployeeRepository.java +++ b/src/main/java/com/example/nto/repository/EmployeeRepository.java @@ -13,12 +13,12 @@ import java.util.Optional; @Repository public interface EmployeeRepository extends JpaRepository { - @Query(value = "select e.id from Employee e where e.login = :login") + @Query("select e.id from Employee e where e.login = :login") Optional findIdByLogin(@Param("login") String login); Optional findByLogin(String login); @Modifying - @Query(value = "update Employee e set e.is_block = :value where e.id = :id", nativeQuery = true) + @Query("update Employee set isBlock = :value where id = :id") void updateBlockCondition(@Param("id") long id, @Param("value") boolean value); } diff --git a/src/main/java/com/example/nto/repository/EntryRepository.java b/src/main/java/com/example/nto/repository/EntryRepository.java index c140b3d..2c0c6b2 100644 --- a/src/main/java/com/example/nto/repository/EntryRepository.java +++ b/src/main/java/com/example/nto/repository/EntryRepository.java @@ -13,7 +13,7 @@ import java.util.List; public interface EntryRepository extends JpaRepository { @Modifying - @Query(value = "insert into Entry(employee_id, code_id, entry_time, is_card) values (:employeeId, :codeId, :entryTime, false)", nativeQuery = true) + @Query(value = "insert into entry(employee_id, code_id, entry_time, is_card) values (:employeeId, :codeId, :entryTime, false)", nativeQuery = true) void insert(@Param("employeeId") long employeeId, @Param("codeId") long codeId, @Param("entryTime") LocalDateTime entryTime); List findAllByEmployeeId(Long employeeId); diff --git a/src/main/java/com/example/nto/service/AdminService.java b/src/main/java/com/example/nto/service/AdminService.java index 14e34ef..60457a7 100644 --- a/src/main/java/com/example/nto/service/AdminService.java +++ b/src/main/java/com/example/nto/service/AdminService.java @@ -1,12 +1,14 @@ package com.example.nto.service; +import com.example.nto.dto.EmployeeDataDto; +import com.example.nto.dto.EntryDto; import com.example.nto.entity.EmployeeData; import com.example.nto.entity.Entry; import java.util.List; public interface AdminService { - EmployeeData getEmployeeInfo(String employeeLogin, String selfLogin); + EmployeeDataDto getEmployeeInfo(String employeeLogin, String selfLogin); void setBlockCondition(String employeeLogin, boolean blockCondition, String selfLogin); - List getEmployeeEntryList(String employeeLogin, String selfLogin); + List getEmployeeEntryList(String employeeLogin, String selfLogin); } diff --git a/src/main/java/com/example/nto/service/EmployeeService.java b/src/main/java/com/example/nto/service/EmployeeService.java index 8eee447..fada988 100644 --- a/src/main/java/com/example/nto/service/EmployeeService.java +++ b/src/main/java/com/example/nto/service/EmployeeService.java @@ -1,5 +1,7 @@ package com.example.nto.service; +import com.example.nto.dto.EmployeeDataDto; +import com.example.nto.dto.EntryDto; import com.example.nto.entity.Code; import com.example.nto.entity.Employee; import com.example.nto.entity.EmployeeData; @@ -11,11 +13,11 @@ import java.time.LocalDateTime; import java.util.List; public interface EmployeeService { - EmployeeData info(String login); + EmployeeDataDto info(String login); void open(String login, long value); - List getEntryList(String login); + List getEntryList(String login); boolean amIBlocked(String login); } diff --git a/src/main/java/com/example/nto/service/impl/AdminServiceImpl.java b/src/main/java/com/example/nto/service/impl/AdminServiceImpl.java index 10aeb90..1cab557 100644 --- a/src/main/java/com/example/nto/service/impl/AdminServiceImpl.java +++ b/src/main/java/com/example/nto/service/impl/AdminServiceImpl.java @@ -1,7 +1,10 @@ package com.example.nto.service.impl; +import com.example.nto.dto.EmployeeDataDto; +import com.example.nto.dto.EntryDto; +import com.example.nto.dto.mapper.EmployeeDataMapper; +import com.example.nto.dto.mapper.EntryMapper; import com.example.nto.entity.EmployeeData; -import com.example.nto.entity.Entry; import com.example.nto.exception.EmployeeDataNotFoundException; import com.example.nto.exception.EmployeeNotFoundException; import com.example.nto.exception.SelfChangeException; @@ -15,6 +18,7 @@ import org.springframework.transaction.annotation.Transactional; import java.util.List; import java.util.Optional; +import java.util.stream.Collectors; @Service @RequiredArgsConstructor @@ -24,7 +28,7 @@ public class AdminServiceImpl implements AdminService { private final EntryRepository entryRepository; @Override - public EmployeeData getEmployeeInfo(String employeeLogin, String selfLogin) { + public EmployeeDataDto getEmployeeInfo(String employeeLogin, String selfLogin) { if (employeeLogin.equals(selfLogin)) { throw new SelfChangeException("Self View"); } @@ -39,7 +43,7 @@ public class AdminServiceImpl implements AdminService { throw new EmployeeDataNotFoundException("Employee Data Not Found"); } - return employeeData.get(); + return EmployeeDataMapper.toEmployeeDataDto(employeeData.get()); } @Transactional @@ -58,7 +62,7 @@ public class AdminServiceImpl implements AdminService { } @Override - public List getEmployeeEntryList(String employeeLogin, String selfLogin) { + public List getEmployeeEntryList(String employeeLogin, String selfLogin) { if (employeeLogin.equals(selfLogin)) { throw new SelfChangeException("Self View"); } @@ -68,6 +72,8 @@ public class AdminServiceImpl implements AdminService { throw new EmployeeNotFoundException("Employee Not Found"); } - return entryRepository.findAllByEmployeeId(employee.get()); + return entryRepository.findAllByEmployeeId(employee.get()).stream() + .map(EntryMapper::toEntryDto) + .collect(Collectors.toList()); } } diff --git a/src/main/java/com/example/nto/service/impl/EmployeeServiceImpl.java b/src/main/java/com/example/nto/service/impl/EmployeeServiceImpl.java index 97682b8..3d75e0f 100644 --- a/src/main/java/com/example/nto/service/impl/EmployeeServiceImpl.java +++ b/src/main/java/com/example/nto/service/impl/EmployeeServiceImpl.java @@ -1,5 +1,9 @@ package com.example.nto.service.impl; +import com.example.nto.dto.EmployeeDataDto; +import com.example.nto.dto.EntryDto; +import com.example.nto.dto.mapper.EmployeeDataMapper; +import com.example.nto.dto.mapper.EntryMapper; import com.example.nto.entity.Code; import com.example.nto.entity.Employee; import com.example.nto.entity.EmployeeData; @@ -20,6 +24,7 @@ import org.springframework.transaction.annotation.Transactional; import java.time.LocalDateTime; import java.util.List; import java.util.Optional; +import java.util.stream.Collectors; @Service @RequiredArgsConstructor @@ -30,7 +35,7 @@ public class EmployeeServiceImpl implements EmployeeService { private final EntryRepository entryRepository; @Override - public EmployeeData info(String login) { + public EmployeeDataDto info(String login) { Optional employee = employeeRepository.findIdByLogin(login); if (employee.isEmpty()) { throw new EmployeeNotFoundException("Employee Not Found"); @@ -41,7 +46,7 @@ public class EmployeeServiceImpl implements EmployeeService { throw new EmployeeDataNotFoundException("Employee Data Not Found"); } - return employeeData.get(); + return EmployeeDataMapper.toEmployeeDataDto(employeeData.get()); } @Transactional @@ -72,13 +77,15 @@ public class EmployeeServiceImpl implements EmployeeService { } @Override - public List getEntryList(String login) { + public List getEntryList(String login) { Optional employee = employeeRepository.findIdByLogin(login); if (employee.isEmpty()) { throw new EmployeeNotFoundException("Employee Not Found"); } - return entryRepository.findAllByEmployeeId(employee.get()); + return entryRepository.findAllByEmployeeId(employee.get()).stream() + .map(EntryMapper::toEntryDto) + .collect(Collectors.toList()); } @Override