Skip to content

Commit d52bf14

Browse files
committed
fix34
1 parent 2e7a1b0 commit d52bf14

3 files changed

Lines changed: 45 additions & 3 deletions

File tree

ewm-service/src/main/java/ru/practicum/ewm/compilation/controller/AdminCompilationController.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package ru.practicum.ewm.compilation.controller;
22

33
import jakarta.validation.Valid;
4+
import jakarta.validation.constraints.Positive;
5+
import jakarta.validation.constraints.PositiveOrZero;
46
import lombok.RequiredArgsConstructor;
57
import org.springframework.http.HttpStatus;
68
import org.springframework.validation.annotation.Validated;
@@ -10,6 +12,8 @@
1012
import ru.practicum.ewm.compilation.dto.UpdateCompilationRequest;
1113
import ru.practicum.ewm.compilation.service.CompilationService;
1214

15+
import java.util.List;
16+
1317
@RestController
1418
@RequestMapping("/admin/compilations")
1519
@RequiredArgsConstructor
@@ -23,6 +27,13 @@ public CompilationDto createCompilation(@Valid @RequestBody NewCompilationDto dt
2327
return compilationService.createCompilation(dto);
2428
}
2529

30+
@GetMapping
31+
public List<CompilationDto> getCompilations(@RequestParam(required = false) Boolean pinned,
32+
@RequestParam(defaultValue = "0") @PositiveOrZero int from,
33+
@RequestParam(defaultValue = "10") @Positive int size) {
34+
return compilationService.getCompilations(pinned, from, size);
35+
}
36+
2637
@PatchMapping("/{compId}")
2738
public CompilationDto updateCompilation(@PathVariable Long compId,
2839
@Valid @RequestBody UpdateCompilationRequest req) {

ewm-service/src/main/java/ru/practicum/ewm/compilation/service/CompilationServiceImpl.java

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
import ru.practicum.ewm.event.dto.EventShortDto;
1616
import ru.practicum.ewm.event.mapper.EventMapper;
1717
import ru.practicum.ewm.event.model.Event;
18+
import ru.practicum.ewm.event.model.EventState;
1819
import ru.practicum.ewm.event.repository.EventRepository;
1920
import ru.practicum.ewm.exception.NotFoundException;
2021

@@ -87,20 +88,36 @@ public List<CompilationDto> getCompilations(Boolean pinned, int from, int size)
8788
}
8889
return compilations.stream()
8990
.map(comp -> {
91+
// Set<EventShortDto> eventDtos = comp.getEvents().stream()
92+
// .map(event -> EventMapper.toEventShortDto(event, 0L, 0L))
93+
// .collect(Collectors.toSet());
9094
Set<EventShortDto> eventDtos = comp.getEvents().stream()
95+
.filter(event -> event.getState() == EventState.PUBLISHED)
9196
.map(event -> EventMapper.toEventShortDto(event, 0L, 0L))
9297
.collect(Collectors.toSet());
9398
return CompilationMapper.toCompilationDto(comp, eventDtos);
9499
})
95100
.collect(Collectors.toList());
96101
}
97102

103+
// @Override
104+
// @Transactional(readOnly = true)
105+
// public CompilationDto getCompilation(Long compId) {
106+
// Compilation compilation = compilationRepository.findById(compId)
107+
// .orElseThrow(() -> new NotFoundException("Подборка с id=" + compId + " не найдена"));
108+
// Set<EventShortDto> eventDtos = compilation.getEvents().stream()
109+
// .map(event -> EventMapper.toEventShortDto(event, 0L, 0L))
110+
// .collect(Collectors.toSet());
111+
// return CompilationMapper.toCompilationDto(compilation, eventDtos);
112+
// }
113+
98114
@Override
99115
@Transactional(readOnly = true)
100116
public CompilationDto getCompilation(Long compId) {
101117
Compilation compilation = compilationRepository.findById(compId)
102118
.orElseThrow(() -> new NotFoundException("Подборка с id=" + compId + " не найдена"));
103119
Set<EventShortDto> eventDtos = compilation.getEvents().stream()
120+
.filter(event -> event.getState() == EventState.PUBLISHED)
104121
.map(event -> EventMapper.toEventShortDto(event, 0L, 0L))
105122
.collect(Collectors.toSet());
106123
return CompilationMapper.toCompilationDto(compilation, eventDtos);

ewm-service/src/main/java/ru/practicum/ewm/event/repository/EventRepository.java

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import org.springframework.data.domain.Page;
44
import org.springframework.data.domain.Pageable;
5+
import org.springframework.data.jpa.repository.EntityGraph;
56
import org.springframework.data.jpa.repository.JpaRepository;
67
import org.springframework.data.jpa.repository.Query;
78
import org.springframework.data.repository.query.Param;
@@ -16,13 +17,26 @@ public interface EventRepository extends JpaRepository<Event, Long> {
1617

1718
boolean existsByCategoryId(Long categoryId);
1819

19-
@Query("SELECT DISTINCT e FROM Event e " +
20-
"LEFT JOIN FETCH e.category " +
21-
"LEFT JOIN FETCH e.initiator " +
20+
// @Query("SELECT DISTINCT e FROM Event e " +
21+
// "LEFT JOIN FETCH e.category " +
22+
// "LEFT JOIN FETCH e.initiator " +
23+
// "WHERE (:users IS NULL OR e.initiator.id IN :users) " +
24+
// "AND (:states IS NULL OR e.state IN :states) " +
25+
// "AND (:categories IS NULL OR e.category.id IN :categories) " +
26+
// "AND (CAST(:rangeStart AS timestamp) IS NULL OR CAST(:rangeEnd AS timestamp) IS NULL OR e.eventDate BETWEEN :rangeStart AND :rangeEnd)")
27+
// Page<Event> searchEventsAdmin(@Param("users") List<Long> users,
28+
// @Param("states") List<EventState> states,
29+
// @Param("categories") List<Long> categories,
30+
// @Param("rangeStart") LocalDateTime rangeStart,
31+
// @Param("rangeEnd") LocalDateTime rangeEnd,
32+
// Pageable pageable);
33+
34+
@Query("SELECT e FROM Event e " +
2235
"WHERE (:users IS NULL OR e.initiator.id IN :users) " +
2336
"AND (:states IS NULL OR e.state IN :states) " +
2437
"AND (:categories IS NULL OR e.category.id IN :categories) " +
2538
"AND (CAST(:rangeStart AS timestamp) IS NULL OR CAST(:rangeEnd AS timestamp) IS NULL OR e.eventDate BETWEEN :rangeStart AND :rangeEnd)")
39+
@EntityGraph(attributePaths = {"category", "initiator"})
2640
Page<Event> searchEventsAdmin(@Param("users") List<Long> users,
2741
@Param("states") List<EventState> states,
2842
@Param("categories") List<Long> categories,

0 commit comments

Comments
 (0)