Добавлен метод для получения списка посещений для конкретного пользователя
This commit is contained in:
parent
e7aea29ec8
commit
70f627a694
@ -3,9 +3,12 @@ package com.example.onomatopoeiaback;
|
||||
import org.springframework.boot.SpringApplication;
|
||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||
import org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration;
|
||||
import org.springframework.data.web.config.EnableSpringDataWebSupport;
|
||||
|
||||
// отключаем стандартную шизанастройку в spring security
|
||||
@SpringBootApplication(exclude = {SecurityAutoConfiguration.class })
|
||||
// указывает Spring Data использовать PagedModel для сериализации объектов Page в JSON
|
||||
@EnableSpringDataWebSupport(pageSerializationMode = EnableSpringDataWebSupport.PageSerializationMode.VIA_DTO)
|
||||
public class OnomatopoeiaBackApplication {
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
@ -3,6 +3,7 @@ package com.example.onomatopoeiaback.controller;
|
||||
import com.example.onomatopoeiaback.domain.visit.Visit;
|
||||
import com.example.onomatopoeiaback.domain.visit.VisitDTO;
|
||||
import com.example.onomatopoeiaback.service.VisitService;
|
||||
import org.springframework.data.domain.Page;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
@ -17,12 +18,13 @@ public class VisitController {
|
||||
this.visitService = visitService;
|
||||
}
|
||||
|
||||
@GetMapping("/{username}/visits")
|
||||
public ResponseEntity<List<Visit>> visits(
|
||||
@PathVariable String username,
|
||||
@RequestParam Integer offset,
|
||||
@RequestParam Integer limit
|
||||
) {
|
||||
return ResponseEntity.ok(visitService.getVisits(username, offset, limit));
|
||||
@GetMapping("/{login}/visits")
|
||||
public ResponseEntity<Page<Visit>> getVisits(
|
||||
@PathVariable String login,
|
||||
@RequestParam(defaultValue = "0") int page,
|
||||
@RequestParam(defaultValue = "10") int size) {
|
||||
|
||||
Page<Visit> visits = visitService.getVisits(login, page, size);
|
||||
return ResponseEntity.ok(visits);
|
||||
}
|
||||
}
|
||||
|
@ -2,6 +2,8 @@ package com.example.onomatopoeiaback.domain.visit;
|
||||
|
||||
import com.example.onomatopoeiaback.domain.employee.Employee;
|
||||
import com.example.onomatopoeiaback.domain.qrcode.QrCode;
|
||||
import com.fasterxml.jackson.annotation.JsonBackReference;
|
||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||
import jakarta.persistence.*;
|
||||
import lombok.Getter;
|
||||
import lombok.NonNull;
|
||||
@ -25,5 +27,6 @@ public class Visit {
|
||||
@NonNull
|
||||
private LocalDateTime visitTime;
|
||||
@ManyToOne
|
||||
@JsonIgnore
|
||||
private Employee employee;
|
||||
}
|
||||
|
@ -1,9 +1,20 @@
|
||||
package com.example.onomatopoeiaback.repository;
|
||||
|
||||
import com.example.onomatopoeiaback.domain.visit.Visit;
|
||||
import org.springframework.data.domain.Page;
|
||||
import org.springframework.data.domain.PageRequest;
|
||||
import org.springframework.data.domain.Pageable;
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
@Repository
|
||||
public interface VisitRepository extends JpaRepository<Visit, Long> {
|
||||
/**
|
||||
* Возвращает страницу посещений для указанного сотрудника.
|
||||
*
|
||||
* @param employeeId ID сотрудника, для которого нужно получить посещения.
|
||||
* @param pageable Объект Pageable, содержащий информацию о пагинации (limit и offset).
|
||||
* @return Страница с посещениями, соответствующими критериям.
|
||||
*/
|
||||
Page<Visit> findByEmployeeId(Long employeeId, Pageable pageable);
|
||||
}
|
||||
|
@ -10,6 +10,8 @@ import com.example.onomatopoeiaback.exceptions.UnauthorizedException;
|
||||
import com.example.onomatopoeiaback.repository.EmployeeRepository;
|
||||
import com.example.onomatopoeiaback.repository.QrCodeRepository;
|
||||
import com.example.onomatopoeiaback.repository.VisitRepository;
|
||||
import org.springframework.data.domain.Page;
|
||||
import org.springframework.data.domain.PageRequest;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
@ -56,8 +58,9 @@ public class VisitService {
|
||||
employeeRepository.saveAndFlush(employee);
|
||||
}
|
||||
|
||||
public List<Visit> getVisits(String login, Integer offset, Integer limit) {
|
||||
public Page<Visit> getVisits(String login, Integer page, Integer size) {
|
||||
Employee employee = employeeRepository.getEmployeesByLogin(login);
|
||||
return new ArrayList<>();
|
||||
PageRequest pageable = PageRequest.of(page, size);
|
||||
return visitRepository.findByEmployeeId(employee.getId(), pageable);
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user