fix event removing

pull/244/head
Anton Romanov 5 years ago
parent 93cf1fa2a8
commit 17723237d1

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

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

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

@ -16,6 +16,7 @@ import ru.ulstu.activity.paper.model.PaperListDto;
import ru.ulstu.activity.paper.model.PaperStatusDto;
import ru.ulstu.activity.paper.model.PaperTypeDto;
import ru.ulstu.activity.ping.service.PingService;
import ru.ulstu.activity.timeline.model.Event;
import ru.ulstu.activity.timeline.service.EventService;
import ru.ulstu.core.jpa.OffsetablePageRequest;
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()));
}
@Override
protected List<Event> getEvents(Paper entity) {
return eventService.findByPaper(entity);
}
@Transactional
public PaperDto update(PaperDto paperDto) {
Paper paper = findById(paperDto.getId());

@ -11,6 +11,7 @@ import ru.ulstu.activity.project.model.Project;
import ru.ulstu.activity.project.model.ProjectDashboardDto;
import ru.ulstu.activity.project.model.ProjectDto;
import ru.ulstu.activity.project.model.ProjectListDto;
import ru.ulstu.activity.timeline.model.Event;
import ru.ulstu.activity.timeline.service.EventService;
import ru.ulstu.core.jpa.OffsetablePageRequest;
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());
}
@Override
protected List<Event> getEvents(Project entity) {
return eventService.findByProject(entity);
}
@Transactional
public boolean delete(Integer projectId) {
if (projectRepository.existsById(projectId)) {

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

@ -4,7 +4,12 @@ import org.apache.commons.lang3.time.DateUtils;
import org.springframework.data.domain.Page;
import org.springframework.stereotype.Service;
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.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.EventDto;
import ru.ulstu.core.jpa.OffsetablePageRequest;
@ -61,20 +66,38 @@ public class EventService {
+ deadline.getDescription()
+ "' " + eventSource.getSuffix() + " '"
+ eventSource.getTitle() + "'");
newEvent.getRecipients().addAll(eventSource.getRecipients());
eventSource.addObjectToEvent(newEvent);
newEvent.setRecipients(eventSource.getRecipients());
newEvents.add(eventRepository.save(newEvent));
}
eventRepository.saveAll(newEvents);
}
private PageableItems<EventDto> createPageable(Page<Event> page) {
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);
}
}
Loading…
Cancel
Save