fix event removing
This commit is contained in:
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…
Reference in New Issue
Block a user