Skip to content

Commit 7b771d2

Browse files
committed
fix40
1 parent 8dd69ed commit 7b771d2

4 files changed

Lines changed: 1 addition & 143 deletions

File tree

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

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -88,9 +88,6 @@ public List<CompilationDto> getCompilations(Boolean pinned, int from, int size)
8888
}
8989
return compilations.stream()
9090
.map(comp -> {
91-
// Set<EventShortDto> eventDtos = comp.getEvents().stream()
92-
// .map(event -> EventMapper.toEventShortDto(event, 0L, 0L))
93-
// .collect(Collectors.toSet());
9491
Set<EventShortDto> eventDtos = comp.getEvents().stream()
9592
.filter(event -> event.getState() == EventState.PUBLISHED)
9693
.map(event -> EventMapper.toEventShortDto(event, 0L, 0L))
@@ -100,17 +97,6 @@ public List<CompilationDto> getCompilations(Boolean pinned, int from, int size)
10097
.collect(Collectors.toList());
10198
}
10299

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-
114100
@Override
115101
@Transactional(readOnly = true)
116102
public CompilationDto getCompilation(Long compId) {

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

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -16,20 +16,6 @@ public interface EventRepository extends JpaRepository<Event, Long> {
1616

1717
boolean existsByCategoryId(Long categoryId);
1818

19-
// @Query("SELECT DISTINCT e FROM Event e " +
20-
// "LEFT JOIN FETCH e.category " +
21-
// "LEFT JOIN FETCH e.initiator " +
22-
// "WHERE (:users IS NULL OR e.initiator.id IN :users) " +
23-
// "AND (:states IS NULL OR e.state IN :states) " +
24-
// "AND (:categories IS NULL OR e.category.id IN :categories) " +
25-
// "AND (CAST(:rangeStart AS timestamp) IS NULL OR CAST(:rangeEnd AS timestamp) IS NULL OR e.eventDate BETWEEN :rangeStart AND :rangeEnd)")
26-
// Page<Event> searchEventsAdmin(@Param("users") List<Long> users,
27-
// @Param("states") List<EventState> states,
28-
// @Param("categories") List<Long> categories,
29-
// @Param("rangeStart") LocalDateTime rangeStart,
30-
// @Param("rangeEnd") LocalDateTime rangeEnd,
31-
// Pageable pageable);
32-
3319
@Query("SELECT e FROM Event e " +
3420
"WHERE (:users IS NULL OR e.initiator.id IN :users) " +
3521
"AND (:states IS NULL OR e.state IN :states) " +

ewm-service/src/main/java/ru/practicum/ewm/event/service/EventServiceImpl.java

Lines changed: 1 addition & 72 deletions
Original file line numberDiff line numberDiff line change
@@ -76,32 +76,6 @@ public EventFullDto getUserEvent(Long userId, Long eventId) {
7676
return EventMapper.toEventFullDto(event, 0L, 0L);
7777
}
7878

79-
// @Override
80-
// @Transactional
81-
// public EventFullDto updateUserEvent(Long userId, Long eventId, UpdateEventUserRequest request) {
82-
// Event event = eventRepository.findById(eventId)
83-
// .orElseThrow(() -> new NotFoundException("Событие с id=" + eventId + " не найдено"));
84-
// if (!event.getInitiator().getId().equals(userId)) {
85-
// throw new NotFoundException("Событие не принадлежит пользователю");
86-
// }
87-
// if (event.getState() != EventState.PENDING && event.getState() != EventState.CANCELED) {
88-
// throw new ConflictException("Можно изменять только события в статусе PENDING или CANCELED");
89-
// }
90-
// if (request.getEventDate() != null && request.getEventDate().isBefore(LocalDateTime.now().plusHours(2))) {
91-
// throw new ConflictException("Дата события должна быть не ранее чем через 2 часа от текущего момента");
92-
// }
93-
// EventMapper.updateEventFromUserRequest(request, event);
94-
// if (request.getStateAction() != null) {
95-
// if (request.getStateAction().equals("SEND_TO_REVIEW")) {
96-
// event.setState(EventState.PENDING);
97-
// } else if (request.getStateAction().equals("CANCEL_REVIEW")) {
98-
// event.setState(EventState.CANCELED);
99-
// }
100-
// }
101-
// event = eventRepository.save(event);
102-
// return EventMapper.toEventFullDto(event, 0L, 0L);
103-
// }
104-
10579
@Override
10680
@Transactional
10781
public EventFullDto updateUserEvent(Long userId, Long eventId, UpdateEventUserRequest request) {
@@ -141,47 +115,12 @@ public EventFullDto updateUserEvent(Long userId, Long eventId, UpdateEventUserRe
141115
return EventMapper.toEventFullDto(event, 0L, 0L);
142116
}
143117

144-
// @Override
145-
// @Transactional(readOnly = true)
146-
// public List<EventFullDto> getEventsForAdmin(AdminEventSearchParams params) {
147-
// int from = params.getFrom();
148-
// int size = params.getSize();
149-
// if (size <= 0 || from < 0) {
150-
// throw new IllegalArgumentException("Параметры from и size должны быть > 0");
151-
// }
152-
// List<EventState> stateEnums = null;
153-
// if (params.getStates() != null && !params.getStates().isEmpty()) {
154-
// stateEnums = params.getStates().stream()
155-
// .map(EventState::valueOf)
156-
// .collect(Collectors.toList());
157-
// }
158-
//
159-
// Pageable pageable = PageRequest.of(from / size, size, Sort.by("id"));
160-
// Page<Event> page = eventRepository.searchEventsAdmin(
161-
// params.getUsers(),
162-
// stateEnums,
163-
// params.getCategories(),
164-
// params.getRangeStart(),
165-
// params.getRangeEnd(),
166-
// pageable);
167-
//
168-
// List<Event> events = page.getContent();
169-
// List<Long> eventIds = events.stream().map(Event::getId).collect(Collectors.toList());
170-
// Map<Long, Long> confirmedRequestsMap = eventRepository.countConfirmedRequestsBatch(eventIds);
171-
//
172-
// return events.stream()
173-
// .map(event -> EventMapper.toEventFullDto(event, 0L, confirmedRequestsMap.getOrDefault(event.getId(), 0L)))
174-
// .collect(Collectors.toList());
175-
// }
176-
177118
@Override
178119
@Transactional(readOnly = true)
179120
public List<EventFullDto> getEventsForAdmin(AdminEventSearchParams params) {
180121
int from = params.getFrom();
181122
int size = params.getSize();
182-
if (size <= 0 || from < 0) {
183-
throw new IllegalArgumentException("Параметры from и size должны быть > 0");
184-
}
123+
185124
List<EventState> stateEnums = null;
186125
if (params.getStates() != null && !params.getStates().isEmpty()) {
187126
stateEnums = params.getStates().stream()
@@ -225,13 +164,11 @@ public EventFullDto updateEventByAdmin(Long eventId, UpdateEventAdminRequest req
225164
Event event = eventRepository.findById(eventId)
226165
.orElseThrow(() -> new NotFoundException("Событие с id=" + eventId + " не найдено"));
227166

228-
// 1. Обработка изменения статуса (публикация/отклонение)
229167
if (request.getStateAction() != null) {
230168
if (request.getStateAction().equals("PUBLISH_EVENT")) {
231169
if (event.getState() != EventState.PENDING) {
232170
throw new ConflictException("Событие можно публиковать только в статусе PENDING");
233171
}
234-
// Проверка: дата события должна быть не ранее чем за 1 час от текущего момента
235172
if (event.getEventDate().isBefore(LocalDateTime.now().plusHours(1))) {
236173
throw new ConflictException("Дата начала события должна быть не ранее чем за час от даты публикации");
237174
}
@@ -245,31 +182,26 @@ public EventFullDto updateEventByAdmin(Long eventId, UpdateEventAdminRequest req
245182
}
246183
}
247184

248-
// 2. Обновление остальных полей (если переданы)
249185
if (request.getAnnotation() != null) event.setAnnotation(request.getAnnotation());
250186
if (request.getDescription() != null) event.setDescription(request.getDescription());
251187
if (request.getTitle() != null) event.setTitle(request.getTitle());
252188
if (request.getParticipantLimit() != null) event.setParticipantLimit(request.getParticipantLimit());
253189
if (request.getPaid() != null) event.setPaid(request.getPaid());
254190
if (request.getRequestModeration() != null) event.setRequestModeration(request.getRequestModeration());
255191

256-
// 3. Обновление даты события (с проверкой, специфичной для администратора)
257192
if (request.getEventDate() != null) {
258-
// Для администратора ограничение на изменение даты – не ранее чем за 1 час от текущего момента
259193
if (request.getEventDate().isBefore(LocalDateTime.now().plusHours(1))) {
260194
throw new ConflictException("Дата события не может быть раньше чем за 1 час от текущего момента");
261195
}
262196
event.setEventDate(request.getEventDate());
263197
}
264198

265-
// 4. Обновление категории
266199
if (request.getCategory() != null) {
267200
Category newCategory = categoryRepository.findById(request.getCategory())
268201
.orElseThrow(() -> new NotFoundException("Категория с id=" + request.getCategory() + " не найдена"));
269202
event.setCategory(newCategory);
270203
}
271204

272-
// 5. Обновление локации
273205
if (request.getLocation() != null) event.setLocation(request.getLocation());
274206

275207
event = eventRepository.save(event);
@@ -283,9 +215,6 @@ public EventFullDto updateEventByAdmin(Long eventId, UpdateEventAdminRequest req
283215
public List<EventShortDto> getEventsForPublic(PublicEventSearchParams params, HttpServletRequest request) {
284216
int from = params.getFrom();
285217
int size = params.getSize();
286-
if (size <= 0 || from < 0) {
287-
throw new IllegalArgumentException("Параметры from и size должны быть > 0");
288-
}
289218

290219
try {
291220
statsClient.sendHit(request);

ewm-service/src/main/java/ru/practicum/ewm/request/service/RequestServiceImpl.java

Lines changed: 0 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -95,44 +95,6 @@ public List<ParticipationRequestDto> getEventRequestsByOwner(Long userId, Long e
9595
.collect(Collectors.toList());
9696
}
9797

98-
// @Override
99-
// @Transactional
100-
// public EventRequestStatusUpdateResult updateRequestStatus(Long userId, Long eventId,
101-
// EventRequestStatusUpdateRequest update) {
102-
// Event event = eventRepository.findById(eventId)
103-
// .orElseThrow(() -> new NotFoundException("Событие не найдено"));
104-
// if (!event.getInitiator().getId().equals(userId)) {
105-
// throw new ConflictException("Только владелец может изменять статус заявок");
106-
// }
107-
// if (event.getParticipantLimit() == 0 && !event.getRequestModeration()) {
108-
// throw new ConflictException("Для этого события не требуется подтверждение заявок");
109-
// }
110-
//
111-
// List<Request> requests = requestRepository.findAllById(update.getRequestIds());
112-
// long confirmedNow = requestRepository.countByEventIdAndStatus(eventId, RequestStatus.CONFIRMED);
113-
// int limit = event.getParticipantLimit();
114-
// List<ParticipationRequestDto> confirmed = new ArrayList<>();
115-
// List<ParticipationRequestDto> rejected = new ArrayList<>();
116-
//
117-
// for (Request req : requests) {
118-
// if (req.getStatus() != RequestStatus.PENDING) {
119-
// throw new ConflictException("Статус можно изменить только у заявок в состоянии PENDING");
120-
// }
121-
// if (update.getStatus().equals("CONFIRMED")) {
122-
// if (limit > 0 && confirmedNow >= limit) {
123-
// throw new ConflictException("Достигнут лимит участников");
124-
// }
125-
// req.setStatus(RequestStatus.CONFIRMED);
126-
// confirmed.add(RequestMapper.toDto(req));
127-
// confirmedNow++;
128-
// } else if (update.getStatus().equals("REJECTED")) {
129-
// req.setStatus(RequestStatus.REJECTED);
130-
// rejected.add(RequestMapper.toDto(req));
131-
// } else {
132-
// throw new IllegalArgumentException("Некорректный статус");
133-
// }
134-
// }
135-
13698
@Override
13799
@Transactional
138100
public EventRequestStatusUpdateResult updateRequestStatus(Long userId, Long eventId,
@@ -152,7 +114,6 @@ public EventRequestStatusUpdateResult updateRequestStatus(Long userId, Long even
152114
List<ParticipationRequestDto> confirmed = new ArrayList<>();
153115
List<ParticipationRequestDto> rejected = new ArrayList<>();
154116

155-
// 1. Обрабатываем переданные заявки
156117
for (Request req : requests) {
157118
if (req.getStatus() != RequestStatus.PENDING) {
158119
throw new ConflictException("Статус можно изменить только у заявок в состоянии PENDING");
@@ -172,21 +133,17 @@ public EventRequestStatusUpdateResult updateRequestStatus(Long userId, Long even
172133
}
173134
}
174135

175-
// 2. Если после подтверждения лимит исчерпан, автоматически отклоняем все оставшиеся PENDING заявки
176136
if (limit > 0 && confirmedNow >= limit) {
177137
List<Request> pendingRequests = requestRepository.findAllByEventIdAndStatus(eventId, RequestStatus.PENDING);
178138
for (Request pending : pendingRequests) {
179-
// Исключаем те, что уже обработаны в текущем запросе (чтобы не дублировать)
180139
if (!requests.contains(pending)) {
181140
pending.setStatus(RequestStatus.REJECTED);
182141
rejected.add(RequestMapper.toDto(pending));
183142
}
184143
}
185-
// Сохраняем автоматически отклонённые заявки (обработанные уже сохранены в контексте транзакции)
186144
requestRepository.saveAll(pendingRequests);
187145
}
188146

189-
// 3. Сохраняем изменения для переданных заявок (если они не были сохранены ранее — они в managed состоянии, но явно сохраним для надёжности
190147
requestRepository.saveAll(requests);
191148
return new EventRequestStatusUpdateResult(confirmed, rejected);
192149
}

0 commit comments

Comments
 (0)