#70 added event method, don't work, because trying to find null entity

This commit is contained in:
Nightblade73 2019-04-26 15:12:34 +04:00
parent 51877023d1
commit dbcdb96dbf
6 changed files with 41 additions and 5 deletions

View File

@ -59,6 +59,7 @@ public class Conference extends BaseEntity {
@JoinTable(name = "paper_conference", @JoinTable(name = "paper_conference",
joinColumns = {@JoinColumn(name = "conference_id")}, joinColumns = {@JoinColumn(name = "conference_id")},
inverseJoinColumns = {@JoinColumn(name = "paper_id")}) inverseJoinColumns = {@JoinColumn(name = "paper_id")})
@Fetch(FetchMode.SUBSELECT)
private List<Paper> papers = new ArrayList<>(); private List<Paper> papers = new ArrayList<>();
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER) @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER)

View File

@ -114,6 +114,7 @@ public class ConferenceService {
Date oldBeginDate = conference.getBeginDate(); Date oldBeginDate = conference.getBeginDate();
Date oldEndDate = conference.getEndDate(); Date oldEndDate = conference.getEndDate();
conferenceRepository.save(copyFromDto(conference, conferenceDto)); conferenceRepository.save(copyFromDto(conference, conferenceDto));
eventService.updateConferenceDeadlines(conference);
sendNotificationAfterUpdate(conference, oldDeadlines, oldBeginDate, oldEndDate); sendNotificationAfterUpdate(conference, oldDeadlines, oldBeginDate, oldEndDate);
conferenceDto.getRemovedDeadlineIds().forEach(deadlineService::remove); conferenceDto.getRemovedDeadlineIds().forEach(deadlineService::remove);
return conference.getId(); return conference.getId();

View File

@ -1,6 +1,7 @@
package ru.ulstu.timeline.model; package ru.ulstu.timeline.model;
import org.hibernate.validator.constraints.NotBlank; import org.hibernate.validator.constraints.NotBlank;
import ru.ulstu.conference.model.Conference;
import ru.ulstu.core.model.BaseEntity; import ru.ulstu.core.model.BaseEntity;
import ru.ulstu.paper.model.Paper; import ru.ulstu.paper.model.Paper;
import ru.ulstu.user.model.User; import ru.ulstu.user.model.User;
@ -76,6 +77,10 @@ public class Event extends BaseEntity {
@JoinColumn(name = "paper_id") @JoinColumn(name = "paper_id")
private Paper paper; private Paper paper;
@ManyToOne
@JoinColumn(name = "conference_id")
private Conference conference;
public String getTitle() { public String getTitle() {
return title; return title;
} }
@ -163,4 +168,12 @@ public class Event extends BaseEntity {
public void setPaper(Paper paper) { public void setPaper(Paper paper) {
this.paper = paper; this.paper = paper;
} }
public Conference getConference() {
return conference;
}
public void setConference(Conference conference) {
this.conference = conference;
}
} }

View File

@ -3,6 +3,7 @@ package ru.ulstu.timeline.model;
import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import org.hibernate.validator.constraints.NotBlank; import org.hibernate.validator.constraints.NotBlank;
import ru.ulstu.conference.model.ConferenceDto;
import ru.ulstu.paper.model.PaperDto; import ru.ulstu.paper.model.PaperDto;
import ru.ulstu.user.model.UserDto; import ru.ulstu.user.model.UserDto;
@ -25,6 +26,7 @@ public class EventDto {
private final String description; private final String description;
private final List<UserDto> recipients; private final List<UserDto> recipients;
private PaperDto paperDto; private PaperDto paperDto;
private ConferenceDto conferenceDto;
@JsonCreator @JsonCreator
public EventDto(@JsonProperty("id") Integer id, public EventDto(@JsonProperty("id") Integer id,
@ -36,7 +38,8 @@ public class EventDto {
@JsonProperty("updateDate") Date updateDate, @JsonProperty("updateDate") Date updateDate,
@JsonProperty("description") String description, @JsonProperty("description") String description,
@JsonProperty("paperDto") PaperDto paperDto, @JsonProperty("paperDto") PaperDto paperDto,
@JsonProperty("recipients") List<UserDto> recipients) { @JsonProperty("recipients") List<UserDto> recipients,
@JsonProperty("paperDto") ConferenceDto conferenceDto) {
this.id = id; this.id = id;
this.title = title; this.title = title;
this.period = period; this.period = period;
@ -47,6 +50,7 @@ public class EventDto {
this.description = description; this.description = description;
this.recipients = recipients; this.recipients = recipients;
this.paperDto = paperDto; this.paperDto = paperDto;
this.conferenceDto = conferenceDto;
} }
public EventDto(Event event) { public EventDto(Event event) {
@ -60,6 +64,7 @@ public class EventDto {
this.description = event.getDescription(); this.description = event.getDescription();
this.paperDto = new PaperDto(event.getPaper()); this.paperDto = new PaperDto(event.getPaper());
this.recipients = convert(event.getRecipients(), UserDto::new); this.recipients = convert(event.getRecipients(), UserDto::new);
this.conferenceDto = new ConferenceDto(event.getConference());
} }
public Integer getId() { public Integer getId() {
@ -105,4 +110,12 @@ public class EventDto {
public void setPaperDto(PaperDto paperDto) { public void setPaperDto(PaperDto paperDto) {
this.paperDto = paperDto; this.paperDto = paperDto;
} }
public ConferenceDto getConferenceDto() {
return conferenceDto;
}
public void setConferenceDto(ConferenceDto conferenceDto) {
this.conferenceDto = conferenceDto;
}
} }

View File

@ -2,6 +2,7 @@ package ru.ulstu.timeline.repository;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query; import org.springframework.data.jpa.repository.Query;
import ru.ulstu.conference.model.Conference;
import ru.ulstu.paper.model.Paper; import ru.ulstu.paper.model.Paper;
import ru.ulstu.timeline.model.Event; import ru.ulstu.timeline.model.Event;
@ -15,4 +16,6 @@ public interface EventRepository extends JpaRepository<Event, Integer> {
List<Event> findAllFuture(); List<Event> findAllFuture();
List<Event> findAllByPaper(Paper paper); List<Event> findAllByPaper(Paper paper);
List<Event> findAllByConference(Conference conference);
} }

View File

@ -151,18 +151,23 @@ public class EventService {
.filter(d -> d.getDate().after(new Date()) || DateUtils.isSameDay(d.getDate(), new Date())) .filter(d -> d.getDate().after(new Date()) || DateUtils.isSameDay(d.getDate(), new Date()))
.collect(Collectors.toList())) { .collect(Collectors.toList())) {
Event newEvent = new Event(); Event newEvent = new Event();
newEvent.setTitle("Дедлайн статьи"); newEvent.setTitle("Дедлайн конференции");
newEvent.setStatus(Event.EventStatus.NEW); newEvent.setStatus(Event.EventStatus.NEW);
newEvent.setExecuteDate(deadline.getDate()); newEvent.setExecuteDate(deadline.getDate());
newEvent.setCreateDate(new Date()); newEvent.setCreateDate(new Date());
newEvent.setUpdateDate(new Date()); newEvent.setUpdateDate(new Date());
// newEvent.setDescription("Дедлайн '" + deadline.getDescription() + "' атьи '" + newPaper.getTitle() + "'"); newEvent.setDescription("Дедлайн '" + deadline.getDescription() + "' конференции '" + newConference.getTitle() + "'");
// newEvent.setRecipients(new ArrayList(newPaper.getAuthors())); newConference.getUsers().forEach(conferenceUser -> newEvent.getRecipients().add(conferenceUser.getUser()));
// newEvent.setConference(newConference); newEvent.setConference(newConference);
eventRepository.save(newEvent); eventRepository.save(newEvent);
timeline.getEvents().add(newEvent); timeline.getEvents().add(newEvent);
timelineService.save(timeline); timelineService.save(timeline);
} }
} }
public void updateConferenceDeadlines(Conference conference) {
eventRepository.delete(eventRepository.findAllByConference(conference));
createFromConference(conference);
}
} }