fix event removing

This commit is contained in:
Anton Romanov 2019-07-20 13:03:14 +04:00
parent 93cf1fa2a8
commit 17723237d1
7 changed files with 62 additions and 12 deletions

View File

@ -8,11 +8,13 @@ import ru.ulstu.activity.api.model.ActivityListDto;
import ru.ulstu.activity.common.model.AbstractActivity; import ru.ulstu.activity.common.model.AbstractActivity;
import ru.ulstu.activity.common.model.EventSource; import ru.ulstu.activity.common.model.EventSource;
import ru.ulstu.activity.ping.service.PingService; import ru.ulstu.activity.ping.service.PingService;
import ru.ulstu.activity.timeline.model.Event;
import ru.ulstu.activity.timeline.service.EventService; import ru.ulstu.activity.timeline.service.EventService;
import ru.ulstu.core.jpa.OffsetablePageRequest; import ru.ulstu.core.jpa.OffsetablePageRequest;
import ru.ulstu.core.model.response.PageableItems; import ru.ulstu.core.model.response.PageableItems;
import java.io.IOException; import java.io.IOException;
import java.util.List;
import static ru.ulstu.core.util.StreamApiUtils.convertPageable; import static ru.ulstu.core.util.StreamApiUtils.convertPageable;
@ -46,11 +48,13 @@ public abstract class ActivityService<L extends ActivityListDto, T extends Abstr
@Transactional @Transactional
public T update(T entity) { public T update(T entity) {
eventService.deleteByObject((EventSource) eventService); eventService.deleteAll(getEvents(entity));
eventService.createFromObject((EventSource) eventService); eventService.createFromObject((EventSource) entity);
return activityRepository.save(entity); return activityRepository.save(entity);
} }
protected abstract List<Event> getEvents(T entity);
@Transactional @Transactional
public D update(D entityDto) { public D update(D entityDto) {
T newEntity; T newEntity;

View File

@ -12,6 +12,7 @@ import ru.ulstu.activity.conference.model.ConferenceListDto;
import ru.ulstu.activity.deadline.service.DeadlineService; import ru.ulstu.activity.deadline.service.DeadlineService;
import ru.ulstu.activity.paper.service.PaperService; import ru.ulstu.activity.paper.service.PaperService;
import ru.ulstu.activity.ping.service.PingService; import ru.ulstu.activity.ping.service.PingService;
import ru.ulstu.activity.timeline.model.Event;
import ru.ulstu.activity.timeline.service.EventService; import ru.ulstu.activity.timeline.service.EventService;
import ru.ulstu.core.jpa.OffsetablePageRequest; import ru.ulstu.core.jpa.OffsetablePageRequest;
import ru.ulstu.core.model.response.PageableItems; import ru.ulstu.core.model.response.PageableItems;
@ -137,4 +138,9 @@ public class ConferenceService extends ActivityService<ConferenceListDto, Confer
public Conference getActiveConferenceByUser(User user) { public Conference getActiveConferenceByUser(User user) {
return conferenceRepository.findActiveByUser(user); return conferenceRepository.findActiveByUser(user);
} }
@Override
protected List<Event> getEvents(Conference entity) {
return eventService.findByConference(entity);
}
} }

View File

@ -18,6 +18,7 @@ import ru.ulstu.activity.paper.model.PaperDto;
import ru.ulstu.activity.paper.service.PaperService; import ru.ulstu.activity.paper.service.PaperService;
import ru.ulstu.activity.ping.service.PingService; import ru.ulstu.activity.ping.service.PingService;
import ru.ulstu.activity.project.service.ProjectService; import ru.ulstu.activity.project.service.ProjectService;
import ru.ulstu.activity.timeline.model.Event;
import ru.ulstu.activity.timeline.service.EventService; import ru.ulstu.activity.timeline.service.EventService;
import ru.ulstu.core.jpa.OffsetablePageRequest; import ru.ulstu.core.jpa.OffsetablePageRequest;
import ru.ulstu.core.model.response.PageableItems; import ru.ulstu.core.model.response.PageableItems;
@ -98,13 +99,6 @@ public class GrantService extends ActivityService<GrantListDto, Grant, GrantDto>
return new GrantDto(entity); return new GrantDto(entity);
} }
@Transactional
@Override
public GrantDto update(GrantDto grantDto) {
Grant grant = findById(grantDto.getId());
return new GrantDto(update(grant));
}
protected Grant copyFromDto(Grant grant, GrantDto grantDto) throws IOException { protected Grant copyFromDto(Grant grant, GrantDto grantDto) throws IOException {
grant.setComment(grantDto.getComment()); grant.setComment(grantDto.getComment());
grant.setStatus(grantDto.getStatus() == null ? APPLICATION : grantDto.getStatus()); grant.setStatus(grantDto.getStatus() == null ? APPLICATION : grantDto.getStatus());
@ -129,6 +123,11 @@ public class GrantService extends ActivityService<GrantListDto, Grant, GrantDto>
return grant; return grant;
} }
@Override
protected List<Event> getEvents(Grant entity) {
return eventService.findByGrant(entity);
}
@Transactional @Transactional
public boolean delete(Integer grantId) { public boolean delete(Integer grantId) {
Grant grant = findById(grantId); Grant grant = findById(grantId);

View File

@ -16,6 +16,7 @@ import ru.ulstu.activity.paper.model.PaperListDto;
import ru.ulstu.activity.paper.model.PaperStatusDto; import ru.ulstu.activity.paper.model.PaperStatusDto;
import ru.ulstu.activity.paper.model.PaperTypeDto; import ru.ulstu.activity.paper.model.PaperTypeDto;
import ru.ulstu.activity.ping.service.PingService; import ru.ulstu.activity.ping.service.PingService;
import ru.ulstu.activity.timeline.model.Event;
import ru.ulstu.activity.timeline.service.EventService; import ru.ulstu.activity.timeline.service.EventService;
import ru.ulstu.core.jpa.OffsetablePageRequest; import ru.ulstu.core.jpa.OffsetablePageRequest;
import ru.ulstu.core.model.response.PageableItems; import ru.ulstu.core.model.response.PageableItems;
@ -101,6 +102,11 @@ public class PaperService extends ActivityService<PaperListDto, Paper, PaperDto>
return new PageableItems<>(activePapersPage.getTotalElements(), sortPapers(activePapersPage.getContent())); return new PageableItems<>(activePapersPage.getTotalElements(), sortPapers(activePapersPage.getContent()));
} }
@Override
protected List<Event> getEvents(Paper entity) {
return eventService.findByPaper(entity);
}
@Transactional @Transactional
public PaperDto update(PaperDto paperDto) { public PaperDto update(PaperDto paperDto) {
Paper paper = findById(paperDto.getId()); Paper paper = findById(paperDto.getId());

View File

@ -11,6 +11,7 @@ import ru.ulstu.activity.project.model.Project;
import ru.ulstu.activity.project.model.ProjectDashboardDto; import ru.ulstu.activity.project.model.ProjectDashboardDto;
import ru.ulstu.activity.project.model.ProjectDto; import ru.ulstu.activity.project.model.ProjectDto;
import ru.ulstu.activity.project.model.ProjectListDto; import ru.ulstu.activity.project.model.ProjectListDto;
import ru.ulstu.activity.timeline.model.Event;
import ru.ulstu.activity.timeline.service.EventService; import ru.ulstu.activity.timeline.service.EventService;
import ru.ulstu.core.jpa.OffsetablePageRequest; import ru.ulstu.core.jpa.OffsetablePageRequest;
import ru.ulstu.core.model.response.PageableItems; import ru.ulstu.core.model.response.PageableItems;
@ -59,6 +60,11 @@ public class ProjectService extends ActivityService<ProjectListDto, Project, Pro
return new PageableItems<>(activeProjectPage.getTotalElements(), activeProjectPage.getContent()); return new PageableItems<>(activeProjectPage.getTotalElements(), activeProjectPage.getContent());
} }
@Override
protected List<Event> getEvents(Project entity) {
return eventService.findByProject(entity);
}
@Transactional @Transactional
public boolean delete(Integer projectId) { public boolean delete(Integer projectId) {
if (projectRepository.existsById(projectId)) { if (projectRepository.existsById(projectId)) {

View File

@ -16,6 +16,7 @@ import ru.ulstu.activity.students.model.TaskFilterDto;
import ru.ulstu.activity.students.model.TaskListDto; import ru.ulstu.activity.students.model.TaskListDto;
import ru.ulstu.activity.tags.model.Tag; import ru.ulstu.activity.tags.model.Tag;
import ru.ulstu.activity.tags.service.TagService; import ru.ulstu.activity.tags.service.TagService;
import ru.ulstu.activity.timeline.model.Event;
import ru.ulstu.activity.timeline.service.EventService; import ru.ulstu.activity.timeline.service.EventService;
import ru.ulstu.core.jpa.OffsetablePageRequest; import ru.ulstu.core.jpa.OffsetablePageRequest;
import ru.ulstu.core.model.response.PageableItems; import ru.ulstu.core.model.response.PageableItems;
@ -112,6 +113,11 @@ public class TaskService extends ActivityService<TaskListDto, Task, TaskDto> {
return task; return task;
} }
@Override
protected List<Event> getEvents(Task entity) {
return eventService.findByTask(entity);
}
@Transactional @Transactional
public boolean delete(Integer taskId) { public boolean delete(Integer taskId) {
if (taskRepository.existsById(taskId)) { if (taskRepository.existsById(taskId)) {

View File

@ -4,7 +4,12 @@ import org.apache.commons.lang3.time.DateUtils;
import org.springframework.data.domain.Page; import org.springframework.data.domain.Page;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import ru.ulstu.activity.common.model.EventSource; import ru.ulstu.activity.common.model.EventSource;
import ru.ulstu.activity.conference.model.Conference;
import ru.ulstu.activity.deadline.model.Deadline; import ru.ulstu.activity.deadline.model.Deadline;
import ru.ulstu.activity.grant.model.Grant;
import ru.ulstu.activity.paper.model.Paper;
import ru.ulstu.activity.project.model.Project;
import ru.ulstu.activity.students.model.Task;
import ru.ulstu.activity.timeline.model.Event; import ru.ulstu.activity.timeline.model.Event;
import ru.ulstu.activity.timeline.model.EventDto; import ru.ulstu.activity.timeline.model.EventDto;
import ru.ulstu.core.jpa.OffsetablePageRequest; import ru.ulstu.core.jpa.OffsetablePageRequest;
@ -61,20 +66,38 @@ public class EventService {
+ deadline.getDescription() + deadline.getDescription()
+ "' " + eventSource.getSuffix() + " '" + "' " + eventSource.getSuffix() + " '"
+ eventSource.getTitle() + "'"); + eventSource.getTitle() + "'");
newEvent.getRecipients().addAll(eventSource.getRecipients()); eventSource.addObjectToEvent(newEvent);
newEvent.setRecipients(eventSource.getRecipients()); newEvent.setRecipients(eventSource.getRecipients());
newEvents.add(eventRepository.save(newEvent)); newEvents.add(eventRepository.save(newEvent));
} }
eventRepository.saveAll(newEvents); eventRepository.saveAll(newEvents);
} }
private PageableItems<EventDto> createPageable(Page<Event> page) { private PageableItems<EventDto> createPageable(Page<Event> page) {
return convertPageable(new PageableItems<>(page.getTotalElements(), page.getContent()), EventDto::new); return convertPageable(new PageableItems<>(page.getTotalElements(), page.getContent()), EventDto::new);
} }
public void deleteByObject(EventSource eventSource) { public void deleteAll(List<Event> events) {
eventRepository.deleteAll(events);
}
public List<Event> findByConference(Conference conference) {
return eventRepository.findAllByConference(conference);
}
public List<Event> findByGrant(Grant entity) {
return eventRepository.findAllByGrant(entity);
}
public List<Event> findByProject(Project entity) {
return eventRepository.findAllByProject(entity);
}
public List<Event> findByPaper(Paper entity) {
return eventRepository.findAllByPaper(entity);
}
public List<Event> findByTask(Task entity) {
return eventRepository.findAllByTask(entity);
} }
} }