diff --git a/src/main/java/ru/ulstu/activity/api/ActivityController.java b/src/main/java/ru/ulstu/activity/api/ActivityController.java
new file mode 100644
index 0000000..0fd5d1e
--- /dev/null
+++ b/src/main/java/ru/ulstu/activity/api/ActivityController.java
@@ -0,0 +1,31 @@
+package ru.ulstu.activity.api;
+
+import ru.ulstu.activity.api.model.ActivityDashboardDto;
+import ru.ulstu.activity.api.model.ActivityDto;
+import ru.ulstu.activity.api.model.ActivityListDto;
+import ru.ulstu.core.model.response.PageableItems;
+import ru.ulstu.core.model.response.Response;
+
+/**
+ * Базовый API для контролеров активностей
+ *
+ * @param
+ * @param
+ * @param
+ */
+public interface ActivityController {
+
+ Response> getList(int offset, int count);
+
+ Response> getDashboard(int offset, int count);
+
+ Response get(Integer entityId);
+
+ Response create(ENTITYDTO entity);
+
+ Response update(ENTITYDTO entity);
+
+ Response delete(Integer entityId);
+
+ void ping(int entityId);
+}
diff --git a/src/main/java/ru/ulstu/name/BaseRepository.java b/src/main/java/ru/ulstu/activity/api/ActivityRepository.java
similarity index 67%
rename from src/main/java/ru/ulstu/name/BaseRepository.java
rename to src/main/java/ru/ulstu/activity/api/ActivityRepository.java
index b691ea2..7353958 100644
--- a/src/main/java/ru/ulstu/name/BaseRepository.java
+++ b/src/main/java/ru/ulstu/activity/api/ActivityRepository.java
@@ -1,7 +1,7 @@
-package ru.ulstu.name;
+package ru.ulstu.activity.api;
import org.springframework.data.repository.query.Param;
-public interface BaseRepository {
+public interface ActivityRepository {
String findByNameAndNotId(@Param("name") String name, @Param("id") Integer id);
}
diff --git a/src/main/java/ru/ulstu/activity/api/model/ActivityDashboardDto.java b/src/main/java/ru/ulstu/activity/api/model/ActivityDashboardDto.java
new file mode 100644
index 0000000..71695e6
--- /dev/null
+++ b/src/main/java/ru/ulstu/activity/api/model/ActivityDashboardDto.java
@@ -0,0 +1,4 @@
+package ru.ulstu.activity.api.model;
+
+public interface ActivityDashboardDto {
+}
\ No newline at end of file
diff --git a/src/main/java/ru/ulstu/activity/api/model/ActivityDto.java b/src/main/java/ru/ulstu/activity/api/model/ActivityDto.java
new file mode 100644
index 0000000..5675e18
--- /dev/null
+++ b/src/main/java/ru/ulstu/activity/api/model/ActivityDto.java
@@ -0,0 +1,4 @@
+package ru.ulstu.activity.api.model;
+
+public interface ActivityDto {
+}
diff --git a/src/main/java/ru/ulstu/activity/api/model/ActivityListDto.java b/src/main/java/ru/ulstu/activity/api/model/ActivityListDto.java
new file mode 100644
index 0000000..52237eb
--- /dev/null
+++ b/src/main/java/ru/ulstu/activity/api/model/ActivityListDto.java
@@ -0,0 +1,19 @@
+package ru.ulstu.activity.api.model;
+
+public abstract class ActivityListDto {
+ private final Integer id;
+ private final String title;
+
+ protected ActivityListDto(Integer id, String title) {
+ this.id = id;
+ this.title = title;
+ }
+
+ public Integer getId() {
+ return id;
+ }
+
+ public String getTitle() {
+ return title;
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/ru/ulstu/utils/timetable/TimetableService.java b/src/main/java/ru/ulstu/activity/boundary/timetable/TimetableService.java
similarity index 92%
rename from src/main/java/ru/ulstu/utils/timetable/TimetableService.java
rename to src/main/java/ru/ulstu/activity/boundary/timetable/TimetableService.java
index b2a7874..56b82d2 100644
--- a/src/main/java/ru/ulstu/utils/timetable/TimetableService.java
+++ b/src/main/java/ru/ulstu/activity/boundary/timetable/TimetableService.java
@@ -1,12 +1,12 @@
-package ru.ulstu.utils.timetable;
+package ru.ulstu.activity.boundary.timetable;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.web.client.RestClientException;
import org.springframework.web.client.RestTemplate;
+import ru.ulstu.activity.boundary.timetable.errors.TimetableClientException;
+import ru.ulstu.activity.boundary.timetable.model.Lesson;
+import ru.ulstu.activity.boundary.timetable.model.TimetableResponse;
import ru.ulstu.core.util.DateUtils;
-import ru.ulstu.utils.timetable.errors.TimetableClientException;
-import ru.ulstu.utils.timetable.model.Lesson;
-import ru.ulstu.utils.timetable.model.TimetableResponse;
import java.text.ParseException;
import java.text.SimpleDateFormat;
diff --git a/src/main/java/ru/ulstu/utils/timetable/errors/TimetableClientException.java b/src/main/java/ru/ulstu/activity/boundary/timetable/errors/TimetableClientException.java
similarity index 74%
rename from src/main/java/ru/ulstu/utils/timetable/errors/TimetableClientException.java
rename to src/main/java/ru/ulstu/activity/boundary/timetable/errors/TimetableClientException.java
index 4723bda..bb0aaf5 100644
--- a/src/main/java/ru/ulstu/utils/timetable/errors/TimetableClientException.java
+++ b/src/main/java/ru/ulstu/activity/boundary/timetable/errors/TimetableClientException.java
@@ -1,4 +1,4 @@
-package ru.ulstu.utils.timetable.errors;
+package ru.ulstu.activity.boundary.timetable.errors;
public class TimetableClientException extends RuntimeException {
public TimetableClientException(String message) {
diff --git a/src/main/java/ru/ulstu/utils/timetable/model/Day.java b/src/main/java/ru/ulstu/activity/boundary/timetable/model/Day.java
similarity index 89%
rename from src/main/java/ru/ulstu/utils/timetable/model/Day.java
rename to src/main/java/ru/ulstu/activity/boundary/timetable/model/Day.java
index 211165d..4448a8c 100644
--- a/src/main/java/ru/ulstu/utils/timetable/model/Day.java
+++ b/src/main/java/ru/ulstu/activity/boundary/timetable/model/Day.java
@@ -1,4 +1,4 @@
-package ru.ulstu.utils.timetable.model;
+package ru.ulstu.activity.boundary.timetable.model;
import java.util.ArrayList;
import java.util.List;
diff --git a/src/main/java/ru/ulstu/utils/timetable/model/Lesson.java b/src/main/java/ru/ulstu/activity/boundary/timetable/model/Lesson.java
similarity index 88%
rename from src/main/java/ru/ulstu/utils/timetable/model/Lesson.java
rename to src/main/java/ru/ulstu/activity/boundary/timetable/model/Lesson.java
index 9c855bd..0df534b 100644
--- a/src/main/java/ru/ulstu/utils/timetable/model/Lesson.java
+++ b/src/main/java/ru/ulstu/activity/boundary/timetable/model/Lesson.java
@@ -1,4 +1,4 @@
-package ru.ulstu.utils.timetable.model;
+package ru.ulstu.activity.boundary.timetable.model;
public class Lesson {
private String group;
diff --git a/src/main/java/ru/ulstu/utils/timetable/model/Response.java b/src/main/java/ru/ulstu/activity/boundary/timetable/model/Response.java
similarity index 84%
rename from src/main/java/ru/ulstu/utils/timetable/model/Response.java
rename to src/main/java/ru/ulstu/activity/boundary/timetable/model/Response.java
index dfd3a84..0089433 100644
--- a/src/main/java/ru/ulstu/utils/timetable/model/Response.java
+++ b/src/main/java/ru/ulstu/activity/boundary/timetable/model/Response.java
@@ -1,4 +1,4 @@
-package ru.ulstu.utils.timetable.model;
+package ru.ulstu.activity.boundary.timetable.model;
import java.util.ArrayList;
import java.util.List;
diff --git a/src/main/java/ru/ulstu/utils/timetable/model/TimetableResponse.java b/src/main/java/ru/ulstu/activity/boundary/timetable/model/TimetableResponse.java
similarity index 88%
rename from src/main/java/ru/ulstu/utils/timetable/model/TimetableResponse.java
rename to src/main/java/ru/ulstu/activity/boundary/timetable/model/TimetableResponse.java
index 118c979..06fbed6 100644
--- a/src/main/java/ru/ulstu/utils/timetable/model/TimetableResponse.java
+++ b/src/main/java/ru/ulstu/activity/boundary/timetable/model/TimetableResponse.java
@@ -1,4 +1,4 @@
-package ru.ulstu.utils.timetable.model;
+package ru.ulstu.activity.boundary.timetable.model;
public class TimetableResponse {
private Response response;
diff --git a/src/main/java/ru/ulstu/utils/timetable/model/Week.java b/src/main/java/ru/ulstu/activity/boundary/timetable/model/Week.java
similarity index 85%
rename from src/main/java/ru/ulstu/utils/timetable/model/Week.java
rename to src/main/java/ru/ulstu/activity/boundary/timetable/model/Week.java
index 8ea76ea..242d783 100644
--- a/src/main/java/ru/ulstu/utils/timetable/model/Week.java
+++ b/src/main/java/ru/ulstu/activity/boundary/timetable/model/Week.java
@@ -1,4 +1,4 @@
-package ru.ulstu.utils.timetable.model;
+package ru.ulstu.activity.boundary.timetable.model;
import java.io.Serializable;
import java.util.ArrayList;
diff --git a/src/main/java/ru/ulstu/boundary/model/AbstractActivity.java b/src/main/java/ru/ulstu/activity/common/model/AbstractActivity.java
similarity index 64%
rename from src/main/java/ru/ulstu/boundary/model/AbstractActivity.java
rename to src/main/java/ru/ulstu/activity/common/model/AbstractActivity.java
index 20039de..f4271dc 100644
--- a/src/main/java/ru/ulstu/boundary/model/AbstractActivity.java
+++ b/src/main/java/ru/ulstu/activity/common/model/AbstractActivity.java
@@ -1,6 +1,9 @@
-package ru.ulstu.boundary.model;
+package ru.ulstu.activity.common.model;
import ru.ulstu.core.model.BaseEntity;
+import ru.ulstu.user.model.User;
+
+import java.util.Set;
public abstract class AbstractActivity extends BaseEntity {
private String title;
@@ -12,4 +15,6 @@ public abstract class AbstractActivity extends BaseEntity {
public void setTitle(String title) {
this.title = title;
}
+
+ public abstract Set getActivityMembers();
}
diff --git a/src/main/java/ru/ulstu/core/model/EventSource.java b/src/main/java/ru/ulstu/activity/common/model/EventSource.java
similarity index 62%
rename from src/main/java/ru/ulstu/core/model/EventSource.java
rename to src/main/java/ru/ulstu/activity/common/model/EventSource.java
index 32ffcf2..ffe8f4d 100644
--- a/src/main/java/ru/ulstu/core/model/EventSource.java
+++ b/src/main/java/ru/ulstu/activity/common/model/EventSource.java
@@ -1,7 +1,7 @@
-package ru.ulstu.core.model;
+package ru.ulstu.activity.common.model;
-import ru.ulstu.deadline.model.Deadline;
-import ru.ulstu.timeline.model.Event;
+import ru.ulstu.activity.deadline.model.Deadline;
+import ru.ulstu.activity.timeline.model.Event;
import ru.ulstu.user.model.User;
import java.util.List;
diff --git a/src/main/java/ru/ulstu/boundary/model/ScienceGroupMemberDto.java b/src/main/java/ru/ulstu/activity/common/model/ScienceGroupMemberDto.java
similarity index 82%
rename from src/main/java/ru/ulstu/boundary/model/ScienceGroupMemberDto.java
rename to src/main/java/ru/ulstu/activity/common/model/ScienceGroupMemberDto.java
index 25ccdae..694b837 100644
--- a/src/main/java/ru/ulstu/boundary/model/ScienceGroupMemberDto.java
+++ b/src/main/java/ru/ulstu/activity/common/model/ScienceGroupMemberDto.java
@@ -1,7 +1,8 @@
-package ru.ulstu.boundary.model;
+package ru.ulstu.activity.common.model;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
+import ru.ulstu.activity.conference.model.ConferenceUser;
import ru.ulstu.user.model.User;
import javax.validation.constraints.NotBlank;
@@ -34,6 +35,13 @@ public class ScienceGroupMemberDto {
this.lastName = user.getLastName();
}
+ public ScienceGroupMemberDto(ConferenceUser conferenceUser) {
+ User user = conferenceUser.getUser();
+ this.id = user.getId();
+ this.firstName = user.getFirstName();
+ this.lastName = user.getLastName();
+ }
+
public String getFirstName() {
return firstName;
}
diff --git a/src/main/java/ru/ulstu/boundary/service/AbstractActivityService.java b/src/main/java/ru/ulstu/activity/common/service/AbstractActivityService.java
similarity index 51%
rename from src/main/java/ru/ulstu/boundary/service/AbstractActivityService.java
rename to src/main/java/ru/ulstu/activity/common/service/AbstractActivityService.java
index 9c4af80..d964822 100644
--- a/src/main/java/ru/ulstu/boundary/service/AbstractActivityService.java
+++ b/src/main/java/ru/ulstu/activity/common/service/AbstractActivityService.java
@@ -1,13 +1,16 @@
-package ru.ulstu.boundary.service;
+package ru.ulstu.activity.common.service;
-import ru.ulstu.boundary.model.AbstractActivity;
-import ru.ulstu.boundary.model.ActivityDto;
-import ru.ulstu.boundary.model.ActivityListDto;
+import ru.ulstu.activity.api.ActivityRepository;
+import ru.ulstu.activity.api.model.ActivityDto;
+import ru.ulstu.activity.api.model.ActivityListDto;
+import ru.ulstu.activity.common.model.AbstractActivity;
import ru.ulstu.core.model.response.PageableItems;
import static ru.ulstu.core.util.StreamApiUtils.convertPageable;
-public abstract class AbstractActivityService {
+public abstract class AbstractActivityService {
+
+ protected ActivityRepository activityRepository;
public abstract T create(T entity);
@@ -26,4 +29,8 @@ public abstract class AbstractActivityService {
+public abstract class EntityCreateStrategy {
protected abstract List getActiveEntities();
protected abstract void createEntity(User user);
- private void createDefaultEntityIfNeed(List allUsers, List extends UserActivity> entities) {
+ private void createDefaultEntityIfNeed(List allUsers, List extends AbstractActivity> entities) {
allUsers.forEach(user -> {
if (entities
.stream()
- .filter(entity -> entity.getActivityUsers().contains(user))
+ .filter(entity -> entity.getActivityMembers().contains(user))
.collect(Collectors.toSet()).isEmpty()) {
createEntity(user);
}
diff --git a/src/main/java/ru/ulstu/strategy/api/StrategyEntityCreateExecutor.java b/src/main/java/ru/ulstu/activity/common/strategy/api/StrategyEntityCreateExecutor.java
similarity index 94%
rename from src/main/java/ru/ulstu/strategy/api/StrategyEntityCreateExecutor.java
rename to src/main/java/ru/ulstu/activity/common/strategy/api/StrategyEntityCreateExecutor.java
index c3d4d95..0ca34d5 100644
--- a/src/main/java/ru/ulstu/strategy/api/StrategyEntityCreateExecutor.java
+++ b/src/main/java/ru/ulstu/activity/common/strategy/api/StrategyEntityCreateExecutor.java
@@ -1,4 +1,4 @@
-package ru.ulstu.strategy.api;
+package ru.ulstu.activity.common.strategy.api;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Service;
diff --git a/src/main/java/ru/ulstu/conference/model/Conference.java b/src/main/java/ru/ulstu/activity/conference/model/Conference.java
similarity index 88%
rename from src/main/java/ru/ulstu/conference/model/Conference.java
rename to src/main/java/ru/ulstu/activity/conference/model/Conference.java
index d11901f..a0e61ef 100644
--- a/src/main/java/ru/ulstu/conference/model/Conference.java
+++ b/src/main/java/ru/ulstu/activity/conference/model/Conference.java
@@ -1,14 +1,13 @@
-package ru.ulstu.conference.model;
+package ru.ulstu.activity.conference.model;
import org.hibernate.annotations.Fetch;
import org.hibernate.annotations.FetchMode;
import org.springframework.format.annotation.DateTimeFormat;
-import ru.ulstu.core.model.BaseEntity;
-import ru.ulstu.core.model.EventSource;
-import ru.ulstu.core.model.UserActivity;
-import ru.ulstu.deadline.model.Deadline;
-import ru.ulstu.paper.model.Paper;
-import ru.ulstu.timeline.model.Event;
+import ru.ulstu.activity.common.model.AbstractActivity;
+import ru.ulstu.activity.common.model.EventSource;
+import ru.ulstu.activity.deadline.model.Deadline;
+import ru.ulstu.activity.paper.model.Paper;
+import ru.ulstu.activity.timeline.model.Event;
import ru.ulstu.user.model.User;
import javax.persistence.CascadeType;
@@ -36,7 +35,7 @@ import java.util.stream.Collectors;
@Entity
@Table(name = "conference")
@DiscriminatorValue("CONFERENCE")
-public class Conference extends BaseEntity implements UserActivity, EventSource {
+public class Conference extends AbstractActivity implements EventSource {
@NotBlank
private String title;
@@ -79,6 +78,10 @@ public class Conference extends BaseEntity implements UserActivity, EventSource
return title;
}
+ public void setTitle(String title) {
+ this.title = title;
+ }
+
@Override
public List getRecipients() {
List list = new ArrayList<>();
@@ -92,10 +95,6 @@ public class Conference extends BaseEntity implements UserActivity, EventSource
event.setConference(this);
}
- public void setTitle(String title) {
- this.title = title;
- }
-
public String getDescription() {
return description;
}
@@ -170,7 +169,7 @@ public class Conference extends BaseEntity implements UserActivity, EventSource
}
@Override
- public Set getActivityUsers() {
- return getUsers().stream().map(ConferenceUser::getUser).collect(Collectors.toSet());
+ public Set getActivityMembers() {
+ return users.stream().map(conferenceUser -> conferenceUser.getUser()).collect(Collectors.toSet());
}
}
diff --git a/src/main/java/ru/ulstu/conference/model/ConferenceDto.java b/src/main/java/ru/ulstu/activity/conference/model/ConferenceDto.java
similarity index 96%
rename from src/main/java/ru/ulstu/conference/model/ConferenceDto.java
rename to src/main/java/ru/ulstu/activity/conference/model/ConferenceDto.java
index 7246854..f4952e7 100644
--- a/src/main/java/ru/ulstu/conference/model/ConferenceDto.java
+++ b/src/main/java/ru/ulstu/activity/conference/model/ConferenceDto.java
@@ -1,12 +1,12 @@
-package ru.ulstu.conference.model;
+package ru.ulstu.activity.conference.model;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
import org.springframework.format.annotation.DateTimeFormat;
+import ru.ulstu.activity.api.model.ActivityDto;
+import ru.ulstu.activity.deadline.model.Deadline;
+import ru.ulstu.activity.paper.model.Paper;
import ru.ulstu.core.model.BaseEntity;
-import ru.ulstu.deadline.model.Deadline;
-import ru.ulstu.name.NameContainer;
-import ru.ulstu.paper.model.Paper;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
@@ -19,7 +19,7 @@ import java.util.Objects;
import static ru.ulstu.core.util.StreamApiUtils.convert;
-public class ConferenceDto extends NameContainer {
+public class ConferenceDto implements ActivityDto {
private final static String BEGIN_DATE = "Начало: ";
private final static String END_DATE = "Конец: ";
diff --git a/src/main/java/ru/ulstu/conference/model/ConferenceFilterDto.java b/src/main/java/ru/ulstu/activity/conference/model/ConferenceFilterDto.java
similarity index 95%
rename from src/main/java/ru/ulstu/conference/model/ConferenceFilterDto.java
rename to src/main/java/ru/ulstu/activity/conference/model/ConferenceFilterDto.java
index 0649901..c1b07b5 100644
--- a/src/main/java/ru/ulstu/conference/model/ConferenceFilterDto.java
+++ b/src/main/java/ru/ulstu/activity/conference/model/ConferenceFilterDto.java
@@ -1,4 +1,4 @@
-package ru.ulstu.conference.model;
+package ru.ulstu.activity.conference.model;
import java.util.List;
diff --git a/src/main/java/ru/ulstu/activity/conference/model/ConferenceListDto.java b/src/main/java/ru/ulstu/activity/conference/model/ConferenceListDto.java
new file mode 100644
index 0000000..d1a6f0a
--- /dev/null
+++ b/src/main/java/ru/ulstu/activity/conference/model/ConferenceListDto.java
@@ -0,0 +1,21 @@
+package ru.ulstu.activity.conference.model;
+
+import ru.ulstu.activity.api.model.ActivityListDto;
+import ru.ulstu.activity.common.model.ScienceGroupMemberDto;
+
+import java.util.Set;
+
+import static ru.ulstu.core.util.StreamApiUtils.convert;
+
+public class ConferenceListDto extends ActivityListDto {
+ private final Set members;
+
+ public ConferenceListDto(Conference conference) {
+ super(conference.getId(), conference.getTitle());
+ this.members = convert(conference.getActivityMembers(), ScienceGroupMemberDto::new);
+ }
+
+ public Set getAuthors() {
+ return members;
+ }
+}
diff --git a/src/main/java/ru/ulstu/conference/model/ConferenceUser.java b/src/main/java/ru/ulstu/activity/conference/model/ConferenceUser.java
similarity index 98%
rename from src/main/java/ru/ulstu/conference/model/ConferenceUser.java
rename to src/main/java/ru/ulstu/activity/conference/model/ConferenceUser.java
index f00b9fa..057ff9e 100644
--- a/src/main/java/ru/ulstu/conference/model/ConferenceUser.java
+++ b/src/main/java/ru/ulstu/activity/conference/model/ConferenceUser.java
@@ -1,4 +1,4 @@
-package ru.ulstu.conference.model;
+package ru.ulstu.activity.conference.model;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
diff --git a/src/main/java/ru/ulstu/conference/repository/ConferenceRepository.java b/src/main/java/ru/ulstu/activity/conference/repository/ConferenceRepository.java
similarity index 89%
rename from src/main/java/ru/ulstu/conference/repository/ConferenceRepository.java
rename to src/main/java/ru/ulstu/activity/conference/repository/ConferenceRepository.java
index 8f9e05f..2fd5243 100644
--- a/src/main/java/ru/ulstu/conference/repository/ConferenceRepository.java
+++ b/src/main/java/ru/ulstu/activity/conference/repository/ConferenceRepository.java
@@ -1,17 +1,17 @@
-package ru.ulstu.conference.repository;
+package ru.ulstu.activity.conference.repository;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
-import ru.ulstu.conference.model.Conference;
-import ru.ulstu.name.BaseRepository;
+import ru.ulstu.activity.api.ActivityRepository;
+import ru.ulstu.activity.conference.model.Conference;
import ru.ulstu.user.model.User;
import java.util.Date;
import java.util.List;
-public interface ConferenceRepository extends JpaRepository, BaseRepository {
+public interface ConferenceRepository extends JpaRepository, ActivityRepository {
@Query("SELECT c FROM Conference c LEFT JOIN c.users u WHERE (:user IS NULL OR u.user = :user) " +
"AND (YEAR(c.beginDate) = :year OR :year IS NULL) ORDER BY begin_date DESC")
List findByUserAndYear(@Param("user") User user, @Param("year") Integer year);
diff --git a/src/main/java/ru/ulstu/conference/repository/ConferenceUserRepository.java b/src/main/java/ru/ulstu/activity/conference/repository/ConferenceUserRepository.java
similarity index 59%
rename from src/main/java/ru/ulstu/conference/repository/ConferenceUserRepository.java
rename to src/main/java/ru/ulstu/activity/conference/repository/ConferenceUserRepository.java
index 5e654d5..252f52c 100644
--- a/src/main/java/ru/ulstu/conference/repository/ConferenceUserRepository.java
+++ b/src/main/java/ru/ulstu/activity/conference/repository/ConferenceUserRepository.java
@@ -1,7 +1,7 @@
-package ru.ulstu.conference.repository;
+package ru.ulstu.activity.conference.repository;
import org.springframework.data.jpa.repository.JpaRepository;
-import ru.ulstu.conference.model.ConferenceUser;
+import ru.ulstu.activity.conference.model.ConferenceUser;
public interface ConferenceUserRepository extends JpaRepository {
}
diff --git a/src/main/java/ru/ulstu/conference/service/ConferenceNotificationService.java b/src/main/java/ru/ulstu/activity/conference/service/ConferenceNotificationService.java
similarity index 97%
rename from src/main/java/ru/ulstu/conference/service/ConferenceNotificationService.java
rename to src/main/java/ru/ulstu/activity/conference/service/ConferenceNotificationService.java
index 961d369..db3a056 100644
--- a/src/main/java/ru/ulstu/conference/service/ConferenceNotificationService.java
+++ b/src/main/java/ru/ulstu/activity/conference/service/ConferenceNotificationService.java
@@ -1,10 +1,10 @@
-package ru.ulstu.conference.service;
+package ru.ulstu.activity.conference.service;
import com.google.common.collect.ImmutableMap;
import org.springframework.stereotype.Service;
-import ru.ulstu.conference.model.Conference;
+import ru.ulstu.activity.conference.model.Conference;
+import ru.ulstu.activity.ping.service.PingService;
import ru.ulstu.core.util.DateUtils;
-import ru.ulstu.ping.service.PingService;
import ru.ulstu.user.service.MailService;
import ru.ulstu.user.service.UserService;
diff --git a/src/main/java/ru/ulstu/conference/service/ConferenceScheduler.java b/src/main/java/ru/ulstu/activity/conference/service/ConferenceScheduler.java
similarity index 83%
rename from src/main/java/ru/ulstu/conference/service/ConferenceScheduler.java
rename to src/main/java/ru/ulstu/activity/conference/service/ConferenceScheduler.java
index 6f8fe90..2d8df65 100644
--- a/src/main/java/ru/ulstu/conference/service/ConferenceScheduler.java
+++ b/src/main/java/ru/ulstu/activity/conference/service/ConferenceScheduler.java
@@ -1,10 +1,12 @@
-package ru.ulstu.conference.service;
+package ru.ulstu.activity.conference.service;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Service;
+import java.util.stream.Collectors;
+
@Service
public class ConferenceScheduler {
private final static boolean IS_DEADLINE_NOTIFICATION_BEFORE_WEEK = true;
@@ -24,14 +26,16 @@ public class ConferenceScheduler {
@Scheduled(cron = "0 0 8 * * MON", zone = "Europe/Samara")
public void checkDeadlineBeforeWeek() {
log.debug("ConferenceScheduler.checkDeadlineBeforeWeek started");
- conferenceNotificationService.sendDeadlineNotifications(conferenceService.findAll());
+ conferenceNotificationService.sendDeadlineNotifications(conferenceService.findAll(0, 100)
+ .getItems().stream().collect(Collectors.toList()));
log.debug("ConferenceScheduler.checkDeadlineBeforeWeek finished");
}
@Scheduled(cron = "0 0 8 * * *", zone = "Europe/Samara")
public void checkNewPing() {
log.debug("ConferenceScheduler.checkPing started");
- conferenceNotificationService.sendPingNotifications(conferenceService.findAll());
+ conferenceNotificationService.sendPingNotifications(conferenceService.findAll(0, 100)
+ .getItems().stream().collect(Collectors.toList()));
log.debug("ConferenceScheduler.checkPing finished");
}
}
diff --git a/src/main/java/ru/ulstu/conference/service/ConferenceService.java b/src/main/java/ru/ulstu/activity/conference/service/ConferenceService.java
similarity index 80%
rename from src/main/java/ru/ulstu/conference/service/ConferenceService.java
rename to src/main/java/ru/ulstu/activity/conference/service/ConferenceService.java
index 470e712..11c98f5 100644
--- a/src/main/java/ru/ulstu/conference/service/ConferenceService.java
+++ b/src/main/java/ru/ulstu/activity/conference/service/ConferenceService.java
@@ -1,23 +1,25 @@
-package ru.ulstu.conference.service;
+package ru.ulstu.activity.conference.service;
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.data.domain.Sort;
+import org.springframework.data.domain.Page;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.ui.ModelMap;
import org.springframework.validation.Errors;
-import ru.ulstu.conference.model.Conference;
-import ru.ulstu.conference.model.ConferenceDto;
-import ru.ulstu.conference.model.ConferenceFilterDto;
-import ru.ulstu.conference.model.ConferenceUser;
-import ru.ulstu.conference.repository.ConferenceRepository;
-import ru.ulstu.deadline.model.Deadline;
-import ru.ulstu.deadline.service.DeadlineService;
-import ru.ulstu.name.BaseService;
-import ru.ulstu.paper.model.Paper;
-import ru.ulstu.paper.service.PaperService;
-import ru.ulstu.ping.service.PingService;
-import ru.ulstu.timeline.service.EventService;
+import ru.ulstu.activity.common.service.AbstractActivityService;
+import ru.ulstu.activity.conference.model.Conference;
+import ru.ulstu.activity.conference.model.ConferenceDto;
+import ru.ulstu.activity.conference.model.ConferenceFilterDto;
+import ru.ulstu.activity.conference.model.ConferenceListDto;
+import ru.ulstu.activity.conference.model.ConferenceUser;
+import ru.ulstu.activity.conference.repository.ConferenceRepository;
+import ru.ulstu.activity.deadline.model.Deadline;
+import ru.ulstu.activity.deadline.service.DeadlineService;
+import ru.ulstu.activity.paper.model.Paper;
+import ru.ulstu.activity.paper.service.PaperService;
+import ru.ulstu.activity.ping.service.PingService;
+import ru.ulstu.activity.timeline.service.EventService;
+import ru.ulstu.core.jpa.OffsetablePageRequest;
+import ru.ulstu.core.model.response.PageableItems;
import ru.ulstu.user.model.User;
import ru.ulstu.user.service.UserService;
@@ -33,8 +35,7 @@ import static org.springframework.util.ObjectUtils.isEmpty;
import static ru.ulstu.core.util.StreamApiUtils.convert;
@Service
-public class ConferenceService extends BaseService {
- private final static int MAX_DISPLAY_SIZE = 40;
+public class ConferenceService extends AbstractActivityService {
private final ConferenceRepository conferenceRepository;
private final ConferenceUserService conferenceUserService;
@@ -53,7 +54,7 @@ public class ConferenceService extends BaseService {
PingService pingService,
ConferenceNotificationService conferenceNotificationService,
EventService eventService) {
- this.baseRepository = conferenceRepository;
+ this.activityRepository = conferenceRepository;
this.conferenceRepository = conferenceRepository;
this.conferenceUserService = conferenceUserService;
this.deadlineService = deadlineService;
@@ -77,28 +78,18 @@ public class ConferenceService extends BaseService {
return conferenceDto;
}
-
- public List findAll() {
- return conferenceRepository.findAll(new Sort(Sort.Direction.DESC, "beginDate"));
- }
-
- public List findAllDto() {
- List conferences = convert(findAll(), ConferenceDto::new);
- conferences.forEach(conferenceDto -> conferenceDto.setTitle(StringUtils.abbreviate(conferenceDto.getTitle(), MAX_DISPLAY_SIZE)));
- return conferences;
+ public PageableItems findAll(int offset, int count) {
+ final Page page = conferenceRepository.findAll(new OffsetablePageRequest(offset, count));
+ return new PageableItems<>(page.getTotalElements(), page.getContent());
}
public boolean save(ConferenceDto conferenceDto, Errors errors) throws IOException {
- conferenceDto.setName(conferenceDto.getTitle());
+ conferenceDto.setTitle(conferenceDto.getTitle());
filterEmptyDeadlines(conferenceDto);
checkEmptyFieldsOfDeadline(conferenceDto, errors);
checkEmptyFieldsOfDates(conferenceDto, errors);
- checkUniqueName(conferenceDto,
- errors,
- conferenceDto.getId(),
- "Конференция с таким именем уже существует");
- if (errors.hasErrors()) {
- return false;
+ if (!checkUniqueName(conferenceDto.getTitle(), conferenceDto.getId())) {
+ throw new RuntimeException("Название не уникально");
}
if (isEmpty(conferenceDto.getId())) {
@@ -111,29 +102,51 @@ public class ConferenceService extends BaseService {
}
@Transactional
- public Conference create(ConferenceDto conferenceDto) throws IOException {
- Conference newConference = copyFromDto(new Conference(), conferenceDto);
- newConference = conferenceRepository.save(newConference);
- conferenceNotificationService.sendCreateNotification(newConference);
- eventService.createFromObject(newConference, Collections.emptyList(), false, "конференции");
- return newConference;
+ @Override
+ public ConferenceDto create(ConferenceDto conferenceDto) {
+ Conference newConference;
+ try {
+ newConference = copyFromDto(new Conference(), conferenceDto);
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
+ return new ConferenceDto(create(newConference));
}
@Transactional
- private Conference update(ConferenceDto conferenceDto) throws IOException {
+ @Override
+ public Conference create(Conference conference) {
+ conference = conferenceRepository.save(conference);
+ conferenceNotificationService.sendCreateNotification(conference);
+ eventService.createFromObject(conference, Collections.emptyList(), false, "конференции");
+ return conference;
+ }
+
+ @Transactional
+ @Override
+ public ConferenceDto update(ConferenceDto conferenceDto) {
Conference conference = conferenceRepository.getOne(conferenceDto.getId());
+ try {
+ conferenceRepository.save(copyFromDto(conference, conferenceDto));
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
+ return new ConferenceDto(update(conference));
+ }
+
+ @Transactional
+ @Override
+ public Conference update(Conference conference) {
List oldDeadlines = conference.getDeadlines().stream()
.map(this::copyDeadline)
.collect(Collectors.toList());
Date oldBeginDate = conference.getBeginDate();
Date oldEndDate = conference.getEndDate();
- conferenceRepository.save(copyFromDto(conference, conferenceDto));
eventService.updateConferenceDeadlines(conference);
sendNotificationAfterUpdateDeadlines(conference, oldDeadlines);
if (!conference.getBeginDate().equals(oldBeginDate) || !conference.getEndDate().equals(oldEndDate)) {
conferenceNotificationService.updateConferencesDatesNotification(conference, oldBeginDate, oldEndDate);
}
- conferenceDto.getRemovedDeadlineIds().forEach(deadlineService::remove);
return conference;
}
@@ -147,6 +160,11 @@ public class ConferenceService extends BaseService {
return false;
}
+ @Override
+ protected ConferenceListDto getActivityListDto(Conference entity) {
+ return new ConferenceListDto(entity);
+ }
+
public ConferenceDto addDeadline(ConferenceDto conferenceDto) {
conferenceDto.getDeadlines().add(new Deadline());
return conferenceDto;
diff --git a/src/main/java/ru/ulstu/conference/service/ConferenceUserService.java b/src/main/java/ru/ulstu/activity/conference/service/ConferenceUserService.java
similarity index 89%
rename from src/main/java/ru/ulstu/conference/service/ConferenceUserService.java
rename to src/main/java/ru/ulstu/activity/conference/service/ConferenceUserService.java
index 01d02d6..c9b5742 100644
--- a/src/main/java/ru/ulstu/conference/service/ConferenceUserService.java
+++ b/src/main/java/ru/ulstu/activity/conference/service/ConferenceUserService.java
@@ -1,9 +1,9 @@
-package ru.ulstu.conference.service;
+package ru.ulstu.activity.conference.service;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
-import ru.ulstu.conference.model.ConferenceUser;
-import ru.ulstu.conference.repository.ConferenceUserRepository;
+import ru.ulstu.activity.conference.model.ConferenceUser;
+import ru.ulstu.activity.conference.repository.ConferenceUserRepository;
import java.util.List;
import java.util.stream.Collectors;
diff --git a/src/main/java/ru/ulstu/deadline/model/Deadline.java b/src/main/java/ru/ulstu/activity/deadline/model/Deadline.java
similarity index 98%
rename from src/main/java/ru/ulstu/deadline/model/Deadline.java
rename to src/main/java/ru/ulstu/activity/deadline/model/Deadline.java
index 30ff96c..d68ed5a 100644
--- a/src/main/java/ru/ulstu/deadline/model/Deadline.java
+++ b/src/main/java/ru/ulstu/activity/deadline/model/Deadline.java
@@ -1,4 +1,4 @@
-package ru.ulstu.deadline.model;
+package ru.ulstu.activity.deadline.model;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
diff --git a/src/main/java/ru/ulstu/deadline/repository/DeadlineRepository.java b/src/main/java/ru/ulstu/activity/deadline/repository/DeadlineRepository.java
similarity index 82%
rename from src/main/java/ru/ulstu/deadline/repository/DeadlineRepository.java
rename to src/main/java/ru/ulstu/activity/deadline/repository/DeadlineRepository.java
index 652f01d..87829f6 100644
--- a/src/main/java/ru/ulstu/deadline/repository/DeadlineRepository.java
+++ b/src/main/java/ru/ulstu/activity/deadline/repository/DeadlineRepository.java
@@ -1,10 +1,10 @@
-package ru.ulstu.deadline.repository;
+package ru.ulstu.activity.deadline.repository;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
-import ru.ulstu.deadline.model.Deadline;
+import ru.ulstu.activity.deadline.model.Deadline;
import java.util.Date;
diff --git a/src/main/java/ru/ulstu/deadline/service/DeadlineService.java b/src/main/java/ru/ulstu/activity/deadline/service/DeadlineService.java
similarity index 90%
rename from src/main/java/ru/ulstu/deadline/service/DeadlineService.java
rename to src/main/java/ru/ulstu/activity/deadline/service/DeadlineService.java
index 28415e2..a3488e8 100644
--- a/src/main/java/ru/ulstu/deadline/service/DeadlineService.java
+++ b/src/main/java/ru/ulstu/activity/deadline/service/DeadlineService.java
@@ -1,9 +1,9 @@
-package ru.ulstu.deadline.service;
+package ru.ulstu.activity.deadline.service;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
-import ru.ulstu.deadline.model.Deadline;
-import ru.ulstu.deadline.repository.DeadlineRepository;
+import ru.ulstu.activity.deadline.model.Deadline;
+import ru.ulstu.activity.deadline.repository.DeadlineRepository;
import java.util.Date;
import java.util.List;
diff --git a/src/main/java/ru/ulstu/file/FileController.java b/src/main/java/ru/ulstu/activity/file/FileController.java
similarity index 92%
rename from src/main/java/ru/ulstu/file/FileController.java
rename to src/main/java/ru/ulstu/activity/file/FileController.java
index 02421aa..82ffb82 100644
--- a/src/main/java/ru/ulstu/file/FileController.java
+++ b/src/main/java/ru/ulstu/activity/file/FileController.java
@@ -1,4 +1,4 @@
-package ru.ulstu.file;
+package ru.ulstu.activity.file;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
@@ -10,11 +10,11 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
+import ru.ulstu.activity.file.model.FileData;
+import ru.ulstu.activity.file.model.FileDataDto;
+import ru.ulstu.activity.file.service.FileService;
import ru.ulstu.configuration.Constants;
import ru.ulstu.core.model.response.Response;
-import ru.ulstu.file.model.FileData;
-import ru.ulstu.file.model.FileDataDto;
-import ru.ulstu.file.service.FileService;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
diff --git a/src/main/java/ru/ulstu/file/model/FileData.java b/src/main/java/ru/ulstu/activity/file/model/FileData.java
similarity index 96%
rename from src/main/java/ru/ulstu/file/model/FileData.java
rename to src/main/java/ru/ulstu/activity/file/model/FileData.java
index 3f97130..2177f58 100644
--- a/src/main/java/ru/ulstu/file/model/FileData.java
+++ b/src/main/java/ru/ulstu/activity/file/model/FileData.java
@@ -1,4 +1,4 @@
-package ru.ulstu.file.model;
+package ru.ulstu.activity.file.model;
import ru.ulstu.core.model.BaseEntity;
diff --git a/src/main/java/ru/ulstu/file/model/FileDataDto.java b/src/main/java/ru/ulstu/activity/file/model/FileDataDto.java
similarity index 98%
rename from src/main/java/ru/ulstu/file/model/FileDataDto.java
rename to src/main/java/ru/ulstu/activity/file/model/FileDataDto.java
index e83bf12..853e536 100644
--- a/src/main/java/ru/ulstu/file/model/FileDataDto.java
+++ b/src/main/java/ru/ulstu/activity/file/model/FileDataDto.java
@@ -1,4 +1,4 @@
-package ru.ulstu.file.model;
+package ru.ulstu.activity.file.model;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
diff --git a/src/main/java/ru/ulstu/file/repostory/FileRepository.java b/src/main/java/ru/ulstu/activity/file/repostory/FileRepository.java
similarity index 61%
rename from src/main/java/ru/ulstu/file/repostory/FileRepository.java
rename to src/main/java/ru/ulstu/activity/file/repostory/FileRepository.java
index 7399239..9738a6d 100644
--- a/src/main/java/ru/ulstu/file/repostory/FileRepository.java
+++ b/src/main/java/ru/ulstu/activity/file/repostory/FileRepository.java
@@ -1,7 +1,7 @@
-package ru.ulstu.file.repostory;
+package ru.ulstu.activity.file.repostory;
import org.springframework.data.jpa.repository.JpaRepository;
-import ru.ulstu.file.model.FileData;
+import ru.ulstu.activity.file.model.FileData;
public interface FileRepository extends JpaRepository {
}
diff --git a/src/main/java/ru/ulstu/file/service/FileService.java b/src/main/java/ru/ulstu/activity/file/service/FileService.java
similarity index 95%
rename from src/main/java/ru/ulstu/file/service/FileService.java
rename to src/main/java/ru/ulstu/activity/file/service/FileService.java
index c7d7dc2..d071ddf 100644
--- a/src/main/java/ru/ulstu/file/service/FileService.java
+++ b/src/main/java/ru/ulstu/activity/file/service/FileService.java
@@ -1,12 +1,12 @@
-package ru.ulstu.file.service;
+package ru.ulstu.activity.file.service;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
-import ru.ulstu.file.model.FileData;
-import ru.ulstu.file.model.FileDataDto;
-import ru.ulstu.file.repostory.FileRepository;
-import ru.ulstu.paper.model.PaperDto;
+import ru.ulstu.activity.file.model.FileData;
+import ru.ulstu.activity.file.model.FileDataDto;
+import ru.ulstu.activity.file.repostory.FileRepository;
+import ru.ulstu.activity.paper.model.PaperDto;
import java.io.BufferedWriter;
import java.io.File;
diff --git a/src/main/java/ru/ulstu/grant/controller/GrantRestController.java b/src/main/java/ru/ulstu/activity/grant/controller/GrantRestController.java
similarity index 87%
rename from src/main/java/ru/ulstu/grant/controller/GrantRestController.java
rename to src/main/java/ru/ulstu/activity/grant/controller/GrantRestController.java
index c965471..b5faf66 100644
--- a/src/main/java/ru/ulstu/grant/controller/GrantRestController.java
+++ b/src/main/java/ru/ulstu/activity/grant/controller/GrantRestController.java
@@ -1,10 +1,10 @@
-package ru.ulstu.grant.controller;
+package ru.ulstu.activity.grant.controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
+import ru.ulstu.activity.grant.service.GrantService;
import ru.ulstu.configuration.Constants;
-import ru.ulstu.grant.service.GrantService;
import java.io.IOException;
import java.text.ParseException;
diff --git a/src/main/java/ru/ulstu/grant/model/Grant.java b/src/main/java/ru/ulstu/activity/grant/model/Grant.java
similarity index 90%
rename from src/main/java/ru/ulstu/grant/model/Grant.java
rename to src/main/java/ru/ulstu/activity/grant/model/Grant.java
index 0d16f77..1471eee 100644
--- a/src/main/java/ru/ulstu/grant/model/Grant.java
+++ b/src/main/java/ru/ulstu/activity/grant/model/Grant.java
@@ -1,15 +1,14 @@
-package ru.ulstu.grant.model;
+package ru.ulstu.activity.grant.model;
import org.hibernate.annotations.Fetch;
import org.hibernate.annotations.FetchMode;
-import ru.ulstu.core.model.BaseEntity;
-import ru.ulstu.core.model.EventSource;
-import ru.ulstu.core.model.UserActivity;
-import ru.ulstu.deadline.model.Deadline;
-import ru.ulstu.file.model.FileData;
-import ru.ulstu.paper.model.Paper;
-import ru.ulstu.project.model.Project;
-import ru.ulstu.timeline.model.Event;
+import ru.ulstu.activity.common.model.AbstractActivity;
+import ru.ulstu.activity.common.model.EventSource;
+import ru.ulstu.activity.deadline.model.Deadline;
+import ru.ulstu.activity.file.model.FileData;
+import ru.ulstu.activity.paper.model.Paper;
+import ru.ulstu.activity.project.model.Project;
+import ru.ulstu.activity.timeline.model.Event;
import ru.ulstu.user.model.User;
import javax.persistence.CascadeType;
@@ -39,7 +38,7 @@ import java.util.Set;
@Entity
@Table(name = "grants")
@DiscriminatorValue("GRANT")
-public class Grant extends BaseEntity implements UserActivity, EventSource {
+public class Grant extends AbstractActivity implements EventSource {
public enum GrantStatus {
APPLICATION("Заявка"),
ON_COMPETITION("Отправлен на конкурс"),
@@ -138,6 +137,10 @@ public class Grant extends BaseEntity implements UserActivity, EventSource {
return title;
}
+ public void setTitle(String title) {
+ this.title = title;
+ }
+
@Override
public List getRecipients() {
return authors != null ? new ArrayList<>(authors) : Collections.emptyList();
@@ -148,10 +151,6 @@ public class Grant extends BaseEntity implements UserActivity, EventSource {
event.setGrant(this);
}
- public void setTitle(String title) {
- this.title = title;
- }
-
public Project getProject() {
return project;
}
@@ -169,8 +168,8 @@ public class Grant extends BaseEntity implements UserActivity, EventSource {
}
@Override
- public Set getActivityUsers() {
- return getAuthors();
+ public Set getActivityMembers() {
+ return authors;
}
public User getLeader() {
diff --git a/src/main/java/ru/ulstu/grant/model/GrantDto.java b/src/main/java/ru/ulstu/activity/grant/model/GrantDto.java
similarity index 88%
rename from src/main/java/ru/ulstu/grant/model/GrantDto.java
rename to src/main/java/ru/ulstu/activity/grant/model/GrantDto.java
index 541dae8..a541a3f 100644
--- a/src/main/java/ru/ulstu/grant/model/GrantDto.java
+++ b/src/main/java/ru/ulstu/activity/grant/model/GrantDto.java
@@ -1,14 +1,14 @@
-package ru.ulstu.grant.model;
+package ru.ulstu.activity.grant.model;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
import org.apache.commons.lang3.StringUtils;
-import ru.ulstu.deadline.model.Deadline;
-import ru.ulstu.file.model.FileDataDto;
-import ru.ulstu.name.NameContainer;
-import ru.ulstu.paper.model.PaperDto;
-import ru.ulstu.project.model.ProjectDto;
-import ru.ulstu.user.model.UserDto;
+import ru.ulstu.activity.api.model.ActivityDto;
+import ru.ulstu.activity.common.model.ScienceGroupMemberDto;
+import ru.ulstu.activity.deadline.model.Deadline;
+import ru.ulstu.activity.file.model.FileDataDto;
+import ru.ulstu.activity.paper.model.PaperDto;
+import ru.ulstu.activity.project.model.ProjectDto;
import javax.validation.constraints.NotEmpty;
import java.util.ArrayList;
@@ -19,7 +19,7 @@ import java.util.stream.Collectors;
import static ru.ulstu.core.util.StreamApiUtils.convert;
-public class GrantDto extends NameContainer {
+public class GrantDto implements ActivityDto {
private final static int MAX_AUTHORS_LENGTH = 60;
private Integer id;
@@ -31,7 +31,7 @@ public class GrantDto extends NameContainer {
private List files = new ArrayList<>();
private ProjectDto project;
private Set authorIds;
- private Set authors;
+ private Set members;
private Integer leaderId;
private boolean wasLeader;
private boolean hasAge;
@@ -55,7 +55,7 @@ public class GrantDto extends NameContainer {
@JsonProperty("files") List files,
@JsonProperty("project") ProjectDto project,
@JsonProperty("authorIds") Set authorIds,
- @JsonProperty("authors") Set authors,
+ @JsonProperty("members") Set members,
@JsonProperty("leaderId") Integer leaderId,
@JsonProperty("wasLeader") boolean wasLeader,
@JsonProperty("hasAge") boolean hasAge,
@@ -70,7 +70,7 @@ public class GrantDto extends NameContainer {
this.files = files;
this.project = project;
this.authorIds = authorIds;
- this.authors = authors;
+ this.members = members;
this.leaderId = leaderId;
this.wasLeader = wasLeader;
this.hasAge = hasAge;
@@ -88,7 +88,7 @@ public class GrantDto extends NameContainer {
this.files = convert(grant.getFiles(), FileDataDto::new);
this.project = grant.getProject() == null ? null : new ProjectDto(grant.getProject());
this.authorIds = convert(grant.getAuthors(), user -> user.getId());
- this.authors = convert(grant.getAuthors(), UserDto::new);
+ this.members = convert(grant.getAuthors(), ScienceGroupMemberDto::new);
this.leaderId = grant.getLeader().getId();
this.wasLeader = false;
this.hasAge = false;
@@ -167,16 +167,16 @@ public class GrantDto extends NameContainer {
this.authorIds = authorIds;
}
- public Set getAuthors() {
- return authors;
+ public Set getMembers() {
+ return members;
}
- public void setAuthors(Set authors) {
- this.authors = authors;
+ public void setMembers(Set members) {
+ this.members = members;
}
public String getAuthorsString() {
- return StringUtils.abbreviate(authors
+ return StringUtils.abbreviate(members
.stream()
.map(author -> author.getLastName())
.collect(Collectors.joining(", ")), MAX_AUTHORS_LENGTH);
diff --git a/src/main/java/ru/ulstu/activity/grant/model/GrantListDto.java b/src/main/java/ru/ulstu/activity/grant/model/GrantListDto.java
new file mode 100644
index 0000000..237b572
--- /dev/null
+++ b/src/main/java/ru/ulstu/activity/grant/model/GrantListDto.java
@@ -0,0 +1,28 @@
+package ru.ulstu.activity.grant.model;
+
+import ru.ulstu.activity.api.model.ActivityListDto;
+import ru.ulstu.activity.common.model.ScienceGroupMemberDto;
+
+import java.util.Set;
+
+import static ru.ulstu.core.util.StreamApiUtils.convert;
+
+public class GrantListDto extends ActivityListDto {
+
+ private final Grant.GrantStatus status;
+ private final Set members;
+
+ public GrantListDto(Grant grant) {
+ super(grant.getId(), grant.getTitle());
+ this.status = grant.getStatus();
+ this.members = convert(grant.getActivityMembers(), ScienceGroupMemberDto::new);
+ }
+
+ public Grant.GrantStatus getStatus() {
+ return status;
+ }
+
+ public Set getAuthors() {
+ return members;
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/ru/ulstu/grant/page/KiasPage.java b/src/main/java/ru/ulstu/activity/grant/page/KiasPage.java
similarity index 97%
rename from src/main/java/ru/ulstu/grant/page/KiasPage.java
rename to src/main/java/ru/ulstu/activity/grant/page/KiasPage.java
index 49d54a0..ef152d6 100644
--- a/src/main/java/ru/ulstu/grant/page/KiasPage.java
+++ b/src/main/java/ru/ulstu/activity/grant/page/KiasPage.java
@@ -1,4 +1,4 @@
-package ru.ulstu.grant.page;
+package ru.ulstu.activity.grant.page;
import com.gargoylesoftware.htmlunit.html.DomNode;
import com.gargoylesoftware.htmlunit.html.HtmlElement;
diff --git a/src/main/java/ru/ulstu/grant/repository/GrantRepository.java b/src/main/java/ru/ulstu/activity/grant/repository/GrantRepository.java
similarity index 81%
rename from src/main/java/ru/ulstu/grant/repository/GrantRepository.java
rename to src/main/java/ru/ulstu/activity/grant/repository/GrantRepository.java
index 50fad13..b7add49 100644
--- a/src/main/java/ru/ulstu/grant/repository/GrantRepository.java
+++ b/src/main/java/ru/ulstu/activity/grant/repository/GrantRepository.java
@@ -1,14 +1,14 @@
-package ru.ulstu.grant.repository;
+package ru.ulstu.activity.grant.repository;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
-import ru.ulstu.grant.model.Grant;
-import ru.ulstu.name.BaseRepository;
+import ru.ulstu.activity.api.ActivityRepository;
+import ru.ulstu.activity.grant.model.Grant;
import java.util.List;
-public interface GrantRepository extends JpaRepository, BaseRepository {
+public interface GrantRepository extends JpaRepository, ActivityRepository {
List findByStatus(Grant.GrantStatus status);
diff --git a/src/main/java/ru/ulstu/grant/service/GrantNotificationService.java b/src/main/java/ru/ulstu/activity/grant/service/GrantNotificationService.java
similarity index 97%
rename from src/main/java/ru/ulstu/grant/service/GrantNotificationService.java
rename to src/main/java/ru/ulstu/activity/grant/service/GrantNotificationService.java
index 677b38f..affe2a7 100644
--- a/src/main/java/ru/ulstu/grant/service/GrantNotificationService.java
+++ b/src/main/java/ru/ulstu/activity/grant/service/GrantNotificationService.java
@@ -1,9 +1,9 @@
-package ru.ulstu.grant.service;
+package ru.ulstu.activity.grant.service;
import com.google.common.collect.ImmutableMap;
import org.springframework.stereotype.Service;
+import ru.ulstu.activity.grant.model.Grant;
import ru.ulstu.core.util.DateUtils;
-import ru.ulstu.grant.model.Grant;
import ru.ulstu.user.model.User;
import ru.ulstu.user.service.MailService;
diff --git a/src/main/java/ru/ulstu/grant/service/GrantScheduler.java b/src/main/java/ru/ulstu/activity/grant/service/GrantScheduler.java
similarity index 97%
rename from src/main/java/ru/ulstu/grant/service/GrantScheduler.java
rename to src/main/java/ru/ulstu/activity/grant/service/GrantScheduler.java
index d026911..9c93706 100644
--- a/src/main/java/ru/ulstu/grant/service/GrantScheduler.java
+++ b/src/main/java/ru/ulstu/activity/grant/service/GrantScheduler.java
@@ -1,4 +1,4 @@
-package ru.ulstu.grant.service;
+package ru.ulstu.activity.grant.service;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/src/main/java/ru/ulstu/grant/service/GrantService.java b/src/main/java/ru/ulstu/activity/grant/service/GrantService.java
similarity index 80%
rename from src/main/java/ru/ulstu/grant/service/GrantService.java
rename to src/main/java/ru/ulstu/activity/grant/service/GrantService.java
index 28d3f8c..19ca532 100644
--- a/src/main/java/ru/ulstu/grant/service/GrantService.java
+++ b/src/main/java/ru/ulstu/activity/grant/service/GrantService.java
@@ -1,27 +1,30 @@
-package ru.ulstu.grant.service;
+package ru.ulstu.activity.grant.service;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import org.springframework.data.domain.Page;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.Errors;
+import ru.ulstu.activity.common.service.AbstractActivityService;
+import ru.ulstu.activity.deadline.model.Deadline;
+import ru.ulstu.activity.deadline.service.DeadlineService;
+import ru.ulstu.activity.file.service.FileService;
+import ru.ulstu.activity.grant.model.Grant;
+import ru.ulstu.activity.grant.model.GrantDto;
+import ru.ulstu.activity.grant.model.GrantListDto;
+import ru.ulstu.activity.grant.repository.GrantRepository;
+import ru.ulstu.activity.paper.model.Paper;
+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.model.ProjectDto;
+import ru.ulstu.activity.project.service.ProjectService;
+import ru.ulstu.activity.timeline.service.EventService;
+import ru.ulstu.core.jpa.OffsetablePageRequest;
+import ru.ulstu.core.model.response.PageableItems;
import ru.ulstu.core.util.DateUtils;
-import ru.ulstu.deadline.model.Deadline;
-import ru.ulstu.deadline.service.DeadlineService;
-import ru.ulstu.file.model.FileDataDto;
-import ru.ulstu.file.service.FileService;
-import ru.ulstu.grant.model.Grant;
-import ru.ulstu.grant.model.GrantDto;
-import ru.ulstu.grant.repository.GrantRepository;
-import ru.ulstu.name.BaseService;
-import ru.ulstu.paper.model.Paper;
-import ru.ulstu.paper.model.PaperDto;
-import ru.ulstu.paper.service.PaperService;
-import ru.ulstu.ping.service.PingService;
-import ru.ulstu.project.model.ProjectDto;
-import ru.ulstu.project.service.ProjectService;
-import ru.ulstu.timeline.service.EventService;
import ru.ulstu.user.model.User;
import ru.ulstu.user.service.UserService;
@@ -37,11 +40,11 @@ import java.util.stream.Collectors;
import static java.util.stream.Collectors.toList;
import static org.springframework.util.ObjectUtils.isEmpty;
+import static ru.ulstu.activity.grant.model.Grant.GrantStatus.APPLICATION;
import static ru.ulstu.core.util.StreamApiUtils.convert;
-import static ru.ulstu.grant.model.Grant.GrantStatus.APPLICATION;
@Service
-public class GrantService extends BaseService {
+public class GrantService extends AbstractActivityService {
private final Logger log = LoggerFactory.getLogger(GrantService.class);
private final GrantRepository grantRepository;
@@ -67,7 +70,7 @@ public class GrantService extends BaseService {
PingService pingService) {
this.grantRepository = grantRepository;
this.kiasService = kiasService;
- this.baseRepository = grantRepository;
+ this.activityRepository = grantRepository;
this.fileService = fileService;
this.deadlineService = deadlineService;
this.projectService = projectService;
@@ -82,21 +85,65 @@ public class GrantService extends BaseService {
return new GrantDto(findById(id));
}
- public List findAll() {
- return grantRepository.findAll();
+ @Override
+ public PageableItems findAll(int offset, int count) {
+ final Page page = grantRepository.findAll(new OffsetablePageRequest(offset, count));
+ return new PageableItems<>(page.getTotalElements(), page.getContent());
}
- public List findAllDto() {
- return convert(findAll(), GrantDto::new);
+ @Override
+ protected GrantListDto getActivityListDto(Grant entity) {
+ return new GrantListDto(entity);
}
@Transactional
- public Grant create(GrantDto grantDto) throws IOException {
- Grant newGrant = copyFromDto(new Grant(), grantDto);
- newGrant = grantRepository.save(newGrant);
- eventService.createFromObject(newGrant, Collections.emptyList(), false, "гранта");
- grantNotificationService.sendCreateNotification(newGrant);
- return newGrant;
+ @Override
+ public GrantDto create(GrantDto grantDto) {
+ Grant newGrant;
+ try {
+ newGrant = copyFromDto(new Grant(), grantDto);
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
+ return new GrantDto(create(newGrant));
+ }
+
+ @Transactional
+ @Override
+ public Grant create(Grant grant) {
+ grant = grantRepository.save(grant);
+ eventService.createFromObject(grant, Collections.emptyList(), false, "гранта");
+ grantNotificationService.sendCreateNotification(grant);
+ return grant;
+ }
+
+ @Transactional
+ @Override
+ public GrantDto update(GrantDto grantDto) {
+ Grant grant = findById(grantDto.getId());
+ return new GrantDto(update(grant));
+ }
+
+ @Transactional
+ @Override
+ public Grant update(Grant grant) {
+ Set oldAuthors = new HashSet<>(grant.getAuthors());
+ User oldLeader = grant.getLeader();
+ grant.getAuthors().forEach(author -> {
+ if (!oldAuthors.contains(author)) {
+ grantNotificationService.sendAuthorsChangeNotification(grant, oldAuthors);
+ }
+ });
+ oldAuthors.forEach(oldAuthor -> {
+ if (!grant.getAuthors().contains(oldAuthor)) {
+ grantNotificationService.sendAuthorsChangeNotification(grant, oldAuthors);
+ }
+ });
+ if (grant.getLeader() != oldLeader) {
+ grantNotificationService.sendLeaderChangeNotification(grant, oldLeader);
+ }
+ eventService.updateGrantDeadlines(grant);
+ return grant;
}
private Grant copyFromDto(Grant grant, GrantDto grantDto) throws IOException {
@@ -133,37 +180,7 @@ public class GrantService extends BaseService {
}
@Transactional
- private Integer update(GrantDto grantDto) throws IOException {
- Grant grant = findById(grantDto.getId());
- Set oldAuthors = new HashSet<>(grant.getAuthors());
- User oldLeader = grant.getLeader();
- for (FileDataDto file : grantDto.getFiles().stream()
- .filter(f -> f.isDeleted() && f.getId() != null)
- .collect(toList())) {
- fileService.delete(file.getId());
- }
- grantDto.getRemovedDeadlineIds().forEach(deadlineService::remove);
- grantRepository.save(copyFromDto(grant, grantDto));
-
- grant.getAuthors().forEach(author -> {
- if (!oldAuthors.contains(author)) {
- grantNotificationService.sendAuthorsChangeNotification(grant, oldAuthors);
- }
- });
- oldAuthors.forEach(oldAuthor -> {
- if (!grant.getAuthors().contains(oldAuthor)) {
- grantNotificationService.sendAuthorsChangeNotification(grant, oldAuthors);
- }
- });
- if (grant.getLeader() != oldLeader) {
- grantNotificationService.sendLeaderChangeNotification(grant, oldLeader);
- }
- eventService.updateGrantDeadlines(grant);
- return grant.getId();
- }
-
- @Transactional
- public boolean delete(Integer grantId) throws IOException {
+ public boolean delete(Integer grantId) {
Grant grant = findById(grantId);
if (grant != null) {
grantRepository.delete(grant);
@@ -177,11 +194,11 @@ public class GrantService extends BaseService {
}
public boolean save(GrantDto grantDto, Errors errors) throws IOException {
- grantDto.setName(grantDto.getTitle());
+ grantDto.setTitle(grantDto.getTitle());
filterEmptyDeadlines(grantDto);
checkEmptyDeadlines(grantDto, errors);
checkEmptyLeader(grantDto, errors);
- checkUniqueName(grantDto, errors, grantDto.getId(), "Грант с таким именем уже существует");
+ checkUniqueName(grantDto.getTitle(), grantDto.getId());
if (errors.hasErrors()) {
return false;
}
@@ -194,10 +211,9 @@ public class GrantService extends BaseService {
}
private boolean saveFromKias(GrantDto grantDto) throws IOException {
- grantDto.setName(grantDto.getTitle());
- String title = checkUniqueName(grantDto, grantDto.getId()); //проверка уникальности имени
- if (title != null) {
- Grant grantFromDB = grantRepository.findByTitle(title); //грант с таким же названием из бд
+ grantDto.setTitle(grantDto.getTitle());
+ if (checkUniqueName(grantDto.getTitle(), grantDto.getId())) {
+ Grant grantFromDB = grantRepository.findByTitle(grantDto.getTitle()); //грант с таким же названием из бд
if (checkSameDeadline(grantDto, grantFromDB.getId())) { //если дедайны тоже совпадают
return false;
} else { //иначе грант уже был в системе, но в другом году, поэтому надо создать
diff --git a/src/main/java/ru/ulstu/grant/service/KiasService.java b/src/main/java/ru/ulstu/activity/grant/service/KiasService.java
similarity index 95%
rename from src/main/java/ru/ulstu/grant/service/KiasService.java
rename to src/main/java/ru/ulstu/activity/grant/service/KiasService.java
index dea6f55..66fc6a0 100644
--- a/src/main/java/ru/ulstu/grant/service/KiasService.java
+++ b/src/main/java/ru/ulstu/activity/grant/service/KiasService.java
@@ -1,12 +1,12 @@
-package ru.ulstu.grant.service;
+package ru.ulstu.activity.grant.service;
import com.gargoylesoftware.htmlunit.WebClient;
import com.gargoylesoftware.htmlunit.html.DomNode;
import com.gargoylesoftware.htmlunit.html.HtmlPage;
import org.springframework.stereotype.Service;
+import ru.ulstu.activity.grant.model.GrantDto;
+import ru.ulstu.activity.grant.page.KiasPage;
import ru.ulstu.configuration.ApplicationProperties;
-import ru.ulstu.grant.model.GrantDto;
-import ru.ulstu.grant.page.KiasPage;
import ru.ulstu.user.service.UserService;
import java.io.IOException;
diff --git a/src/main/java/ru/ulstu/paper/controller/PaperController.java b/src/main/java/ru/ulstu/activity/paper/controller/PaperController.java
similarity index 70%
rename from src/main/java/ru/ulstu/paper/controller/PaperController.java
rename to src/main/java/ru/ulstu/activity/paper/controller/PaperController.java
index 4cea225..0c1816c 100644
--- a/src/main/java/ru/ulstu/paper/controller/PaperController.java
+++ b/src/main/java/ru/ulstu/activity/paper/controller/PaperController.java
@@ -1,4 +1,4 @@
-package ru.ulstu.paper.controller;
+package ru.ulstu.activity.paper.controller;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
@@ -9,24 +9,24 @@ import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
+import ru.ulstu.activity.api.ActivityController;
+import ru.ulstu.activity.paper.model.PaperDashboardDto;
+import ru.ulstu.activity.paper.model.PaperDto;
+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.paper.service.PaperService;
import ru.ulstu.configuration.Constants;
import ru.ulstu.core.model.response.PageableItems;
import ru.ulstu.core.model.response.Response;
-import ru.ulstu.paper.model.PaperDashboardDto;
-import ru.ulstu.paper.model.PaperDto;
-import ru.ulstu.paper.model.PaperListDto;
-import ru.ulstu.paper.model.PaperStatusDto;
-import ru.ulstu.paper.model.PaperTypeDto;
-import ru.ulstu.paper.service.PaperService;
import ru.ulstu.user.model.User;
import javax.validation.Valid;
-import java.io.IOException;
import java.util.List;
@RestController
@RequestMapping(Constants.API_1_0 + "papers")
-public class PaperController {
+public class PaperController implements ActivityController {
private final PaperService paperService;
public PaperController(PaperService paperService) {
@@ -34,8 +34,8 @@ public class PaperController {
}
@GetMapping("list")
- public Response> getPapers(@RequestParam(value = "offset", defaultValue = "0") int offset,
- @RequestParam(value = "count", defaultValue = "10") int count) {
+ public Response> getList(@RequestParam(value = "offset", defaultValue = "0") int offset,
+ @RequestParam(value = "count", defaultValue = "10") int count) {
return new Response<>(paperService.findAllDto(offset, count));
}
@@ -46,17 +46,17 @@ public class PaperController {
}
@GetMapping("{paper-id}")
- public Response getPaper(@PathVariable("paper-id") Integer paperId) {
+ public Response get(@PathVariable("paper-id") Integer paperId) {
return new Response<>(paperService.findById(paperId));
}
@PostMapping
- public Response createPaper(@RequestBody @Valid PaperDto paperDto) {
+ public Response create(@RequestBody @Valid PaperDto paperDto) {
return new Response<>(paperService.create(paperDto));
}
@PutMapping
- public Response updatePaper(@RequestBody @Valid PaperDto paperDto) {
+ public Response update(@RequestBody @Valid PaperDto paperDto) {
return new Response<>(paperService.update(paperDto));
}
@@ -66,7 +66,7 @@ public class PaperController {
}
@PostMapping("ping/{paper-id}")
- public void ping(@PathVariable("paper-id") int paperId) throws IOException {
+ public void ping(@PathVariable("paper-id") int paperId) {
paperService.ping(paperId);
}
diff --git a/src/main/java/ru/ulstu/paper/model/AutoCompleteData.java b/src/main/java/ru/ulstu/activity/paper/model/AutoCompleteData.java
similarity index 96%
rename from src/main/java/ru/ulstu/paper/model/AutoCompleteData.java
rename to src/main/java/ru/ulstu/activity/paper/model/AutoCompleteData.java
index 91c3bf4..859b265 100644
--- a/src/main/java/ru/ulstu/paper/model/AutoCompleteData.java
+++ b/src/main/java/ru/ulstu/activity/paper/model/AutoCompleteData.java
@@ -1,4 +1,4 @@
-package ru.ulstu.paper.model;
+package ru.ulstu.activity.paper.model;
import java.util.ArrayList;
import java.util.List;
diff --git a/src/main/java/ru/ulstu/paper/model/Paper.java b/src/main/java/ru/ulstu/activity/paper/model/Paper.java
similarity index 93%
rename from src/main/java/ru/ulstu/paper/model/Paper.java
rename to src/main/java/ru/ulstu/activity/paper/model/Paper.java
index d083f3e..e7a8a65 100644
--- a/src/main/java/ru/ulstu/paper/model/Paper.java
+++ b/src/main/java/ru/ulstu/activity/paper/model/Paper.java
@@ -1,15 +1,14 @@
-package ru.ulstu.paper.model;
+package ru.ulstu.activity.paper.model;
import org.hibernate.annotations.Fetch;
import org.hibernate.annotations.FetchMode;
-import ru.ulstu.boundary.model.AbstractActivity;
-import ru.ulstu.conference.model.Conference;
-import ru.ulstu.core.model.EventSource;
-import ru.ulstu.core.model.UserActivity;
-import ru.ulstu.deadline.model.Deadline;
-import ru.ulstu.file.model.FileData;
-import ru.ulstu.grant.model.Grant;
-import ru.ulstu.timeline.model.Event;
+import ru.ulstu.activity.common.model.AbstractActivity;
+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.file.model.FileData;
+import ru.ulstu.activity.grant.model.Grant;
+import ru.ulstu.activity.timeline.model.Event;
import ru.ulstu.user.model.User;
import javax.persistence.CascadeType;
@@ -37,7 +36,7 @@ import java.util.Set;
@Entity
@DiscriminatorValue("PAPER")
-public class Paper extends AbstractActivity implements UserActivity, EventSource {
+public class Paper extends AbstractActivity implements EventSource {
public enum PaperStatus {
ATTENTION("Обратить внимание"),
ON_PREPARATION("На подготовке"),
@@ -199,6 +198,10 @@ public class Paper extends AbstractActivity implements UserActivity, EventSource
return title;
}
+ public void setTitle(String title) {
+ this.title = title;
+ }
+
@Override
public List getRecipients() {
return new ArrayList<>(authors);
@@ -209,10 +212,6 @@ public class Paper extends AbstractActivity implements UserActivity, EventSource
event.setPaper(this);
}
- public void setTitle(String title) {
- this.title = title;
- }
-
public Set getAuthors() {
return authors;
}
@@ -262,8 +261,8 @@ public class Paper extends AbstractActivity implements UserActivity, EventSource
}
@Override
- public Set getActivityUsers() {
- return getAuthors();
+ public Set getActivityMembers() {
+ return authors;
}
public List getReferences() {
diff --git a/src/main/java/ru/ulstu/paper/model/PaperDashboardDto.java b/src/main/java/ru/ulstu/activity/paper/model/PaperDashboardDto.java
similarity index 84%
rename from src/main/java/ru/ulstu/paper/model/PaperDashboardDto.java
rename to src/main/java/ru/ulstu/activity/paper/model/PaperDashboardDto.java
index 643112c..37f26fe 100644
--- a/src/main/java/ru/ulstu/paper/model/PaperDashboardDto.java
+++ b/src/main/java/ru/ulstu/activity/paper/model/PaperDashboardDto.java
@@ -1,12 +1,13 @@
-package ru.ulstu.paper.model;
+package ru.ulstu.activity.paper.model;
-import ru.ulstu.boundary.model.ScienceGroupMemberDto;
+import ru.ulstu.activity.api.model.ActivityDashboardDto;
+import ru.ulstu.activity.common.model.ScienceGroupMemberDto;
import java.util.Set;
import static ru.ulstu.core.util.StreamApiUtils.convert;
-public class PaperDashboardDto {
+public class PaperDashboardDto implements ActivityDashboardDto {
private Integer id;
private String title;
diff --git a/src/main/java/ru/ulstu/paper/model/PaperDto.java b/src/main/java/ru/ulstu/activity/paper/model/PaperDto.java
similarity index 94%
rename from src/main/java/ru/ulstu/paper/model/PaperDto.java
rename to src/main/java/ru/ulstu/activity/paper/model/PaperDto.java
index 24d8127..71e46cf 100644
--- a/src/main/java/ru/ulstu/paper/model/PaperDto.java
+++ b/src/main/java/ru/ulstu/activity/paper/model/PaperDto.java
@@ -1,11 +1,11 @@
-package ru.ulstu.paper.model;
+package ru.ulstu.activity.paper.model;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
-import ru.ulstu.boundary.model.ActivityDto;
-import ru.ulstu.boundary.model.ScienceGroupMemberDto;
-import ru.ulstu.deadline.model.Deadline;
-import ru.ulstu.file.model.FileDataDto;
+import ru.ulstu.activity.api.model.ActivityDto;
+import ru.ulstu.activity.common.model.ScienceGroupMemberDto;
+import ru.ulstu.activity.deadline.model.Deadline;
+import ru.ulstu.activity.file.model.FileDataDto;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.Size;
diff --git a/src/main/java/ru/ulstu/paper/model/PaperFilterListDto.java b/src/main/java/ru/ulstu/activity/paper/model/PaperFilterListDto.java
similarity index 96%
rename from src/main/java/ru/ulstu/paper/model/PaperFilterListDto.java
rename to src/main/java/ru/ulstu/activity/paper/model/PaperFilterListDto.java
index 85aec09..d7cf82c 100644
--- a/src/main/java/ru/ulstu/paper/model/PaperFilterListDto.java
+++ b/src/main/java/ru/ulstu/activity/paper/model/PaperFilterListDto.java
@@ -1,4 +1,4 @@
-package ru.ulstu.paper.model;
+package ru.ulstu.activity.paper.model;
import java.util.List;
diff --git a/src/main/java/ru/ulstu/activity/paper/model/PaperListDto.java b/src/main/java/ru/ulstu/activity/paper/model/PaperListDto.java
new file mode 100644
index 0000000..605c523
--- /dev/null
+++ b/src/main/java/ru/ulstu/activity/paper/model/PaperListDto.java
@@ -0,0 +1,27 @@
+package ru.ulstu.activity.paper.model;
+
+import ru.ulstu.activity.api.model.ActivityListDto;
+import ru.ulstu.activity.common.model.ScienceGroupMemberDto;
+
+import java.util.Set;
+
+import static ru.ulstu.core.util.StreamApiUtils.convert;
+
+public class PaperListDto extends ActivityListDto {
+ private final Paper.PaperStatus status;
+ private final Set authors;
+
+ public PaperListDto(Paper paper) {
+ super(paper.getId(), paper.getTitle());
+ this.status = paper.getStatus();
+ this.authors = convert(paper.getAuthors(), ScienceGroupMemberDto::new);
+ }
+
+ public Paper.PaperStatus getStatus() {
+ return status;
+ }
+
+ public Set getAuthors() {
+ return authors;
+ }
+}
diff --git a/src/main/java/ru/ulstu/paper/model/PaperStatusDto.java b/src/main/java/ru/ulstu/activity/paper/model/PaperStatusDto.java
similarity index 89%
rename from src/main/java/ru/ulstu/paper/model/PaperStatusDto.java
rename to src/main/java/ru/ulstu/activity/paper/model/PaperStatusDto.java
index 76efd5e..a2cbf52 100644
--- a/src/main/java/ru/ulstu/paper/model/PaperStatusDto.java
+++ b/src/main/java/ru/ulstu/activity/paper/model/PaperStatusDto.java
@@ -1,4 +1,4 @@
-package ru.ulstu.paper.model;
+package ru.ulstu.activity.paper.model;
public class PaperStatusDto {
private final String id;
diff --git a/src/main/java/ru/ulstu/paper/model/PaperTypeDto.java b/src/main/java/ru/ulstu/activity/paper/model/PaperTypeDto.java
similarity index 89%
rename from src/main/java/ru/ulstu/paper/model/PaperTypeDto.java
rename to src/main/java/ru/ulstu/activity/paper/model/PaperTypeDto.java
index de2b4d9..1f48f60 100644
--- a/src/main/java/ru/ulstu/paper/model/PaperTypeDto.java
+++ b/src/main/java/ru/ulstu/activity/paper/model/PaperTypeDto.java
@@ -1,4 +1,4 @@
-package ru.ulstu.paper.model;
+package ru.ulstu.activity.paper.model;
public class PaperTypeDto {
private final String id;
diff --git a/src/main/java/ru/ulstu/paper/model/Reference.java b/src/main/java/ru/ulstu/activity/paper/model/Reference.java
similarity index 98%
rename from src/main/java/ru/ulstu/paper/model/Reference.java
rename to src/main/java/ru/ulstu/activity/paper/model/Reference.java
index 289cdc1..f64c013 100644
--- a/src/main/java/ru/ulstu/paper/model/Reference.java
+++ b/src/main/java/ru/ulstu/activity/paper/model/Reference.java
@@ -1,4 +1,4 @@
-package ru.ulstu.paper.model;
+package ru.ulstu.activity.paper.model;
import ru.ulstu.core.model.BaseEntity;
diff --git a/src/main/java/ru/ulstu/paper/model/ReferenceDto.java b/src/main/java/ru/ulstu/activity/paper/model/ReferenceDto.java
similarity index 99%
rename from src/main/java/ru/ulstu/paper/model/ReferenceDto.java
rename to src/main/java/ru/ulstu/activity/paper/model/ReferenceDto.java
index bf7fed2..737465e 100644
--- a/src/main/java/ru/ulstu/paper/model/ReferenceDto.java
+++ b/src/main/java/ru/ulstu/activity/paper/model/ReferenceDto.java
@@ -1,4 +1,4 @@
-package ru.ulstu.paper.model;
+package ru.ulstu.activity.paper.model;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
diff --git a/src/main/java/ru/ulstu/paper/repository/PaperRepository.java b/src/main/java/ru/ulstu/activity/paper/repository/PaperRepository.java
similarity index 93%
rename from src/main/java/ru/ulstu/paper/repository/PaperRepository.java
rename to src/main/java/ru/ulstu/activity/paper/repository/PaperRepository.java
index fff4399..bd75a12 100644
--- a/src/main/java/ru/ulstu/paper/repository/PaperRepository.java
+++ b/src/main/java/ru/ulstu/activity/paper/repository/PaperRepository.java
@@ -1,11 +1,11 @@
-package ru.ulstu.paper.repository;
+package ru.ulstu.activity.paper.repository;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
+import ru.ulstu.activity.paper.model.Paper;
import ru.ulstu.core.repository.JpaDetachableRepository;
-import ru.ulstu.paper.model.Paper;
import ru.ulstu.user.model.User;
import java.util.List;
diff --git a/src/main/java/ru/ulstu/paper/repository/ReferenceRepository.java b/src/main/java/ru/ulstu/activity/paper/repository/ReferenceRepository.java
similarity index 89%
rename from src/main/java/ru/ulstu/paper/repository/ReferenceRepository.java
rename to src/main/java/ru/ulstu/activity/paper/repository/ReferenceRepository.java
index 942a5b8..9b24f1c 100644
--- a/src/main/java/ru/ulstu/paper/repository/ReferenceRepository.java
+++ b/src/main/java/ru/ulstu/activity/paper/repository/ReferenceRepository.java
@@ -1,8 +1,8 @@
-package ru.ulstu.paper.repository;
+package ru.ulstu.activity.paper.repository;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
-import ru.ulstu.paper.model.Reference;
+import ru.ulstu.activity.paper.model.Reference;
import java.util.List;
diff --git a/src/main/java/ru/ulstu/paper/service/LatexService.java b/src/main/java/ru/ulstu/activity/paper/service/LatexService.java
similarity index 95%
rename from src/main/java/ru/ulstu/paper/service/LatexService.java
rename to src/main/java/ru/ulstu/activity/paper/service/LatexService.java
index ea1bcfc..3b63150 100644
--- a/src/main/java/ru/ulstu/paper/service/LatexService.java
+++ b/src/main/java/ru/ulstu/activity/paper/service/LatexService.java
@@ -1,8 +1,8 @@
-package ru.ulstu.paper.service;
+package ru.ulstu.activity.paper.service;
import org.springframework.stereotype.Service;
-import ru.ulstu.file.service.FileService;
-import ru.ulstu.paper.model.PaperDto;
+import ru.ulstu.activity.file.service.FileService;
+import ru.ulstu.activity.paper.model.PaperDto;
import java.io.BufferedReader;
import java.io.File;
diff --git a/src/main/java/ru/ulstu/paper/service/PaperCreateStrategy.java b/src/main/java/ru/ulstu/activity/paper/service/PaperCreateStrategy.java
similarity index 85%
rename from src/main/java/ru/ulstu/paper/service/PaperCreateStrategy.java
rename to src/main/java/ru/ulstu/activity/paper/service/PaperCreateStrategy.java
index e31b04e..18dc8a6 100644
--- a/src/main/java/ru/ulstu/paper/service/PaperCreateStrategy.java
+++ b/src/main/java/ru/ulstu/activity/paper/service/PaperCreateStrategy.java
@@ -1,9 +1,9 @@
-package ru.ulstu.paper.service;
+package ru.ulstu.activity.paper.service;
import org.springframework.stereotype.Service;
+import ru.ulstu.activity.common.strategy.api.EntityCreateStrategy;
+import ru.ulstu.activity.paper.model.Paper;
import ru.ulstu.core.util.DateUtils;
-import ru.ulstu.paper.model.Paper;
-import ru.ulstu.strategy.api.EntityCreateStrategy;
import ru.ulstu.user.model.User;
import java.util.Date;
diff --git a/src/main/java/ru/ulstu/paper/service/PaperNotificationService.java b/src/main/java/ru/ulstu/activity/paper/service/PaperNotificationService.java
similarity index 97%
rename from src/main/java/ru/ulstu/paper/service/PaperNotificationService.java
rename to src/main/java/ru/ulstu/activity/paper/service/PaperNotificationService.java
index a4e4452..1e529ac 100644
--- a/src/main/java/ru/ulstu/paper/service/PaperNotificationService.java
+++ b/src/main/java/ru/ulstu/activity/paper/service/PaperNotificationService.java
@@ -1,10 +1,10 @@
-package ru.ulstu.paper.service;
+package ru.ulstu.activity.paper.service;
import com.google.common.collect.ImmutableMap;
import org.springframework.stereotype.Service;
+import ru.ulstu.activity.paper.model.Paper;
import ru.ulstu.core.model.response.PageableItems;
import ru.ulstu.core.util.DateUtils;
-import ru.ulstu.paper.model.Paper;
import ru.ulstu.user.model.User;
import ru.ulstu.user.service.MailService;
diff --git a/src/main/java/ru/ulstu/paper/service/PaperScheduler.java b/src/main/java/ru/ulstu/activity/paper/service/PaperScheduler.java
similarity index 97%
rename from src/main/java/ru/ulstu/paper/service/PaperScheduler.java
rename to src/main/java/ru/ulstu/activity/paper/service/PaperScheduler.java
index 64feb6c..936ed57 100644
--- a/src/main/java/ru/ulstu/paper/service/PaperScheduler.java
+++ b/src/main/java/ru/ulstu/activity/paper/service/PaperScheduler.java
@@ -1,4 +1,4 @@
-package ru.ulstu.paper.service;
+package ru.ulstu.activity.paper.service;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/src/main/java/ru/ulstu/paper/service/PaperService.java b/src/main/java/ru/ulstu/activity/paper/service/PaperService.java
similarity index 87%
rename from src/main/java/ru/ulstu/paper/service/PaperService.java
rename to src/main/java/ru/ulstu/activity/paper/service/PaperService.java
index fa8c978..f2c095f 100644
--- a/src/main/java/ru/ulstu/paper/service/PaperService.java
+++ b/src/main/java/ru/ulstu/activity/paper/service/PaperService.java
@@ -1,25 +1,25 @@
-package ru.ulstu.paper.service;
+package ru.ulstu.activity.paper.service;
import org.springframework.data.domain.Page;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
-import ru.ulstu.boundary.service.AbstractActivityService;
+import ru.ulstu.activity.common.service.AbstractActivityService;
+import ru.ulstu.activity.deadline.model.Deadline;
+import ru.ulstu.activity.deadline.service.DeadlineService;
+import ru.ulstu.activity.file.model.FileDataDto;
+import ru.ulstu.activity.file.service.FileService;
+import ru.ulstu.activity.paper.model.Paper;
+import ru.ulstu.activity.paper.model.PaperDashboardDto;
+import ru.ulstu.activity.paper.model.PaperDto;
+import ru.ulstu.activity.paper.model.PaperFilterListDto;
+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.paper.repository.PaperRepository;
+import ru.ulstu.activity.ping.service.PingService;
+import ru.ulstu.activity.timeline.service.EventService;
import ru.ulstu.core.jpa.OffsetablePageRequest;
import ru.ulstu.core.model.response.PageableItems;
-import ru.ulstu.deadline.model.Deadline;
-import ru.ulstu.deadline.service.DeadlineService;
-import ru.ulstu.file.model.FileDataDto;
-import ru.ulstu.file.service.FileService;
-import ru.ulstu.paper.model.Paper;
-import ru.ulstu.paper.model.PaperDashboardDto;
-import ru.ulstu.paper.model.PaperDto;
-import ru.ulstu.paper.model.PaperFilterListDto;
-import ru.ulstu.paper.model.PaperListDto;
-import ru.ulstu.paper.model.PaperStatusDto;
-import ru.ulstu.paper.model.PaperTypeDto;
-import ru.ulstu.paper.repository.PaperRepository;
-import ru.ulstu.ping.service.PingService;
-import ru.ulstu.timeline.service.EventService;
import ru.ulstu.user.model.User;
import ru.ulstu.user.service.UserService;
@@ -34,17 +34,17 @@ import java.util.Set;
import static java.util.stream.Collectors.toList;
import static org.hibernate.internal.util.collections.CollectionHelper.isNotEmpty;
import static org.springframework.util.ObjectUtils.isEmpty;
+import static ru.ulstu.activity.paper.model.Paper.PaperStatus.ATTENTION;
+import static ru.ulstu.activity.paper.model.Paper.PaperStatus.COMPLETED;
+import static ru.ulstu.activity.paper.model.Paper.PaperStatus.DRAFT;
+import static ru.ulstu.activity.paper.model.Paper.PaperStatus.FAILED;
+import static ru.ulstu.activity.paper.model.Paper.PaperStatus.ON_PREPARATION;
+import static ru.ulstu.activity.paper.model.Paper.PaperType.OTHER;
import static ru.ulstu.core.util.StreamApiUtils.convert;
import static ru.ulstu.core.util.StreamApiUtils.convertPageable;
-import static ru.ulstu.paper.model.Paper.PaperStatus.ATTENTION;
-import static ru.ulstu.paper.model.Paper.PaperStatus.COMPLETED;
-import static ru.ulstu.paper.model.Paper.PaperStatus.DRAFT;
-import static ru.ulstu.paper.model.Paper.PaperStatus.FAILED;
-import static ru.ulstu.paper.model.Paper.PaperStatus.ON_PREPARATION;
-import static ru.ulstu.paper.model.Paper.PaperType.OTHER;
@Service
-public class PaperService extends AbstractActivityService {
+public class PaperService extends AbstractActivityService {
private final PaperNotificationService paperNotificationService;
private final PaperRepository paperRepository;
private final UserService userService;
@@ -264,7 +264,7 @@ public class PaperService extends AbstractActivityService pingInfos = new ArrayList<>();
for (Ping ping : pingRepository.findByDate(java.sql.Date.valueOf(LocalDate.now().minusWeeks(1)))) {
- UserActivity pingActivity = ping.getActivity();
- Set users = pingActivity.getActivityUsers();
+ AbstractActivity pingActivity = ping.getActivity();
+ Set users = pingActivity.getActivityMembers();
for (User user : users) {
PingInfo userPing = pingInfos.stream().filter(u -> u.getUser() == user).findFirst().orElse(null);
diff --git a/src/main/java/ru/ulstu/ping/service/PingService.java b/src/main/java/ru/ulstu/activity/ping/service/PingService.java
similarity index 79%
rename from src/main/java/ru/ulstu/ping/service/PingService.java
rename to src/main/java/ru/ulstu/activity/ping/service/PingService.java
index 99ca26f..343fc80 100644
--- a/src/main/java/ru/ulstu/ping/service/PingService.java
+++ b/src/main/java/ru/ulstu/activity/ping/service/PingService.java
@@ -1,14 +1,13 @@
-package ru.ulstu.ping.service;
+package ru.ulstu.activity.ping.service;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
-import ru.ulstu.conference.model.Conference;
-import ru.ulstu.core.model.UserActivity;
-import ru.ulstu.ping.model.Ping;
-import ru.ulstu.ping.repository.PingRepository;
+import ru.ulstu.activity.common.model.AbstractActivity;
+import ru.ulstu.activity.conference.model.Conference;
+import ru.ulstu.activity.ping.model.Ping;
+import ru.ulstu.activity.ping.repository.PingRepository;
import ru.ulstu.user.service.UserService;
-import java.io.IOException;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
@@ -26,7 +25,7 @@ public class PingService {
}
@Transactional
- public Ping addPing(UserActivity activity) throws IOException {
+ public Ping addPing(AbstractActivity activity) {
Ping newPing = new Ping(new Date(), userService.getCurrentUser());
newPing.setActivity(activity);
return pingRepository.save(newPing);
diff --git a/src/main/java/ru/ulstu/project/controller/ProjectController.java b/src/main/java/ru/ulstu/activity/project/controller/ProjectController.java
similarity index 93%
rename from src/main/java/ru/ulstu/project/controller/ProjectController.java
rename to src/main/java/ru/ulstu/activity/project/controller/ProjectController.java
index 09438fd..8bc38e9 100644
--- a/src/main/java/ru/ulstu/project/controller/ProjectController.java
+++ b/src/main/java/ru/ulstu/activity/project/controller/ProjectController.java
@@ -1,4 +1,4 @@
-package ru.ulstu.project.controller;
+package ru.ulstu.activity.project.controller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
@@ -10,11 +10,11 @@ import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
-import ru.ulstu.deadline.model.Deadline;
-import ru.ulstu.grant.model.GrantDto;
-import ru.ulstu.project.model.Project;
-import ru.ulstu.project.model.ProjectDto;
-import ru.ulstu.project.service.ProjectService;
+import ru.ulstu.activity.deadline.model.Deadline;
+import ru.ulstu.activity.grant.model.GrantDto;
+import ru.ulstu.activity.project.model.Project;
+import ru.ulstu.activity.project.model.ProjectDto;
+import ru.ulstu.activity.project.service.ProjectService;
import ru.ulstu.user.model.User;
import springfox.documentation.annotations.ApiIgnore;
diff --git a/src/main/java/ru/ulstu/project/model/Project.java b/src/main/java/ru/ulstu/activity/project/model/Project.java
similarity index 90%
rename from src/main/java/ru/ulstu/project/model/Project.java
rename to src/main/java/ru/ulstu/activity/project/model/Project.java
index 0ddb982..fb26267 100644
--- a/src/main/java/ru/ulstu/project/model/Project.java
+++ b/src/main/java/ru/ulstu/activity/project/model/Project.java
@@ -1,14 +1,13 @@
-package ru.ulstu.project.model;
+package ru.ulstu.activity.project.model;
import org.hibernate.annotations.Fetch;
import org.hibernate.annotations.FetchMode;
-import ru.ulstu.core.model.BaseEntity;
-import ru.ulstu.core.model.EventSource;
-import ru.ulstu.core.model.UserActivity;
-import ru.ulstu.deadline.model.Deadline;
-import ru.ulstu.file.model.FileData;
-import ru.ulstu.grant.model.Grant;
-import ru.ulstu.timeline.model.Event;
+import ru.ulstu.activity.common.model.AbstractActivity;
+import ru.ulstu.activity.common.model.EventSource;
+import ru.ulstu.activity.deadline.model.Deadline;
+import ru.ulstu.activity.file.model.FileData;
+import ru.ulstu.activity.grant.model.Grant;
+import ru.ulstu.activity.timeline.model.Event;
import ru.ulstu.user.model.User;
import javax.persistence.CascadeType;
@@ -32,7 +31,7 @@ import java.util.Set;
@Entity
@DiscriminatorValue("PROJECT")
-public class Project extends BaseEntity implements UserActivity, EventSource {
+public class Project extends AbstractActivity implements EventSource {
public enum ProjectStatus {
TECHNICAL_TASK("Техническое задание"),
@@ -96,6 +95,10 @@ public class Project extends BaseEntity implements UserActivity, EventSource {
return title;
}
+ public void setTitle(String title) {
+ this.title = title;
+ }
+
@Override
public List getRecipients() {
return executors != null ? new ArrayList<>(executors) : Collections.emptyList();
@@ -106,10 +109,6 @@ public class Project extends BaseEntity implements UserActivity, EventSource {
event.setProject(this);
}
- public void setTitle(String title) {
- this.title = title;
- }
-
public ProjectStatus getStatus() {
return status;
}
@@ -179,7 +178,7 @@ public class Project extends BaseEntity implements UserActivity, EventSource {
}
@Override
- public Set getActivityUsers() {
+ public Set getActivityMembers() {
return new HashSet<>();
}
diff --git a/src/main/java/ru/ulstu/project/model/ProjectDto.java b/src/main/java/ru/ulstu/activity/project/model/ProjectDto.java
similarity index 96%
rename from src/main/java/ru/ulstu/project/model/ProjectDto.java
rename to src/main/java/ru/ulstu/activity/project/model/ProjectDto.java
index d5a8345..59af93d 100644
--- a/src/main/java/ru/ulstu/project/model/ProjectDto.java
+++ b/src/main/java/ru/ulstu/activity/project/model/ProjectDto.java
@@ -1,11 +1,11 @@
-package ru.ulstu.project.model;
+package ru.ulstu.activity.project.model;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
import org.thymeleaf.util.StringUtils;
-import ru.ulstu.deadline.model.Deadline;
-import ru.ulstu.file.model.FileDataDto;
-import ru.ulstu.grant.model.GrantDto;
+import ru.ulstu.activity.deadline.model.Deadline;
+import ru.ulstu.activity.file.model.FileDataDto;
+import ru.ulstu.activity.grant.model.GrantDto;
import ru.ulstu.user.model.User;
import ru.ulstu.user.model.UserDto;
diff --git a/src/main/java/ru/ulstu/project/repository/ProjectRepository.java b/src/main/java/ru/ulstu/activity/project/repository/ProjectRepository.java
similarity index 60%
rename from src/main/java/ru/ulstu/project/repository/ProjectRepository.java
rename to src/main/java/ru/ulstu/activity/project/repository/ProjectRepository.java
index 6a78075..059cd3c 100644
--- a/src/main/java/ru/ulstu/project/repository/ProjectRepository.java
+++ b/src/main/java/ru/ulstu/activity/project/repository/ProjectRepository.java
@@ -1,7 +1,7 @@
-package ru.ulstu.project.repository;
+package ru.ulstu.activity.project.repository;
import org.springframework.data.jpa.repository.JpaRepository;
-import ru.ulstu.project.model.Project;
+import ru.ulstu.activity.project.model.Project;
public interface ProjectRepository extends JpaRepository {
diff --git a/src/main/java/ru/ulstu/project/service/ProjectService.java b/src/main/java/ru/ulstu/activity/project/service/ProjectService.java
similarity index 89%
rename from src/main/java/ru/ulstu/project/service/ProjectService.java
rename to src/main/java/ru/ulstu/activity/project/service/ProjectService.java
index 07b07fa..e9d6316 100644
--- a/src/main/java/ru/ulstu/project/service/ProjectService.java
+++ b/src/main/java/ru/ulstu/activity/project/service/ProjectService.java
@@ -1,18 +1,18 @@
-package ru.ulstu.project.service;
+package ru.ulstu.activity.project.service;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.thymeleaf.util.StringUtils;
-import ru.ulstu.deadline.service.DeadlineService;
-import ru.ulstu.file.model.FileDataDto;
-import ru.ulstu.file.service.FileService;
-import ru.ulstu.grant.model.GrantDto;
-import ru.ulstu.grant.repository.GrantRepository;
-import ru.ulstu.ping.service.PingService;
-import ru.ulstu.project.model.Project;
-import ru.ulstu.project.model.ProjectDto;
-import ru.ulstu.project.repository.ProjectRepository;
-import ru.ulstu.timeline.service.EventService;
+import ru.ulstu.activity.deadline.service.DeadlineService;
+import ru.ulstu.activity.file.model.FileDataDto;
+import ru.ulstu.activity.file.service.FileService;
+import ru.ulstu.activity.grant.model.GrantDto;
+import ru.ulstu.activity.grant.repository.GrantRepository;
+import ru.ulstu.activity.ping.service.PingService;
+import ru.ulstu.activity.project.model.Project;
+import ru.ulstu.activity.project.model.ProjectDto;
+import ru.ulstu.activity.project.repository.ProjectRepository;
+import ru.ulstu.activity.timeline.service.EventService;
import ru.ulstu.user.model.User;
import ru.ulstu.user.service.UserService;
@@ -23,8 +23,8 @@ import java.util.List;
import static java.util.stream.Collectors.toList;
import static org.springframework.util.ObjectUtils.isEmpty;
+import static ru.ulstu.activity.project.model.Project.ProjectStatus.TECHNICAL_TASK;
import static ru.ulstu.core.util.StreamApiUtils.convert;
-import static ru.ulstu.project.model.Project.ProjectStatus.TECHNICAL_TASK;
@Service
public class ProjectService {
@@ -147,7 +147,7 @@ public class ProjectService {
}
@Transactional
- public void ping(int projectId) throws IOException {
+ public void ping(int projectId) {
pingService.addPing(findById(projectId));
}
diff --git a/src/main/java/ru/ulstu/students/controller/Navigation.java b/src/main/java/ru/ulstu/activity/students/controller/Navigation.java
similarity index 89%
rename from src/main/java/ru/ulstu/students/controller/Navigation.java
rename to src/main/java/ru/ulstu/activity/students/controller/Navigation.java
index 348f062..16b845b 100644
--- a/src/main/java/ru/ulstu/students/controller/Navigation.java
+++ b/src/main/java/ru/ulstu/activity/students/controller/Navigation.java
@@ -1,4 +1,4 @@
-package ru.ulstu.students.controller;
+package ru.ulstu.activity.students.controller;
import org.springframework.validation.Errors;
diff --git a/src/main/java/ru/ulstu/students/controller/TaskController.java b/src/main/java/ru/ulstu/activity/students/controller/TaskController.java
similarity index 86%
rename from src/main/java/ru/ulstu/students/controller/TaskController.java
rename to src/main/java/ru/ulstu/activity/students/controller/TaskController.java
index 5d0f4e8..2839371 100644
--- a/src/main/java/ru/ulstu/students/controller/TaskController.java
+++ b/src/main/java/ru/ulstu/activity/students/controller/TaskController.java
@@ -1,4 +1,4 @@
-package ru.ulstu.students.controller;
+package ru.ulstu.activity.students.controller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
@@ -9,12 +9,12 @@ import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
-import ru.ulstu.deadline.model.Deadline;
-import ru.ulstu.students.model.Task;
-import ru.ulstu.students.model.TaskDto;
-import ru.ulstu.students.model.TaskFilterDto;
-import ru.ulstu.students.service.TaskService;
-import ru.ulstu.tags.model.Tag;
+import ru.ulstu.activity.deadline.model.Deadline;
+import ru.ulstu.activity.students.model.Task;
+import ru.ulstu.activity.students.model.TaskDto;
+import ru.ulstu.activity.students.model.TaskFilterDto;
+import ru.ulstu.activity.students.service.TaskService;
+import ru.ulstu.activity.tags.model.Tag;
import springfox.documentation.annotations.ApiIgnore;
import javax.validation.Valid;
@@ -23,9 +23,9 @@ import java.util.List;
import java.util.stream.Collectors;
import static org.springframework.util.StringUtils.isEmpty;
-import static ru.ulstu.students.controller.Navigation.REDIRECT_TO;
-import static ru.ulstu.students.controller.Navigation.TASKS_PAGE;
-import static ru.ulstu.students.controller.Navigation.TASK_PAGE;
+import static ru.ulstu.activity.students.controller.Navigation.REDIRECT_TO;
+import static ru.ulstu.activity.students.controller.Navigation.TASKS_PAGE;
+import static ru.ulstu.activity.students.controller.Navigation.TASK_PAGE;
@Controller()
@RequestMapping(value = "/students")
diff --git a/src/main/java/ru/ulstu/students/model/Scheduler.java b/src/main/java/ru/ulstu/activity/students/model/Scheduler.java
similarity index 96%
rename from src/main/java/ru/ulstu/students/model/Scheduler.java
rename to src/main/java/ru/ulstu/activity/students/model/Scheduler.java
index 67005b1..e886f91 100644
--- a/src/main/java/ru/ulstu/students/model/Scheduler.java
+++ b/src/main/java/ru/ulstu/activity/students/model/Scheduler.java
@@ -1,4 +1,4 @@
-package ru.ulstu.students.model;
+package ru.ulstu.activity.students.model;
import org.springframework.format.annotation.DateTimeFormat;
import ru.ulstu.core.model.BaseEntity;
diff --git a/src/main/java/ru/ulstu/students/model/Task.java b/src/main/java/ru/ulstu/activity/students/model/Task.java
similarity index 93%
rename from src/main/java/ru/ulstu/students/model/Task.java
rename to src/main/java/ru/ulstu/activity/students/model/Task.java
index 4da0aa2..9ad5762 100644
--- a/src/main/java/ru/ulstu/students/model/Task.java
+++ b/src/main/java/ru/ulstu/activity/students/model/Task.java
@@ -1,12 +1,12 @@
-package ru.ulstu.students.model;
+package ru.ulstu.activity.students.model;
import org.hibernate.annotations.Fetch;
import org.hibernate.annotations.FetchMode;
+import ru.ulstu.activity.common.model.EventSource;
+import ru.ulstu.activity.deadline.model.Deadline;
+import ru.ulstu.activity.tags.model.Tag;
+import ru.ulstu.activity.timeline.model.Event;
import ru.ulstu.core.model.BaseEntity;
-import ru.ulstu.core.model.EventSource;
-import ru.ulstu.deadline.model.Deadline;
-import ru.ulstu.tags.model.Tag;
-import ru.ulstu.timeline.model.Event;
import ru.ulstu.user.model.User;
import javax.persistence.CascadeType;
diff --git a/src/main/java/ru/ulstu/students/model/TaskDto.java b/src/main/java/ru/ulstu/activity/students/model/TaskDto.java
similarity index 97%
rename from src/main/java/ru/ulstu/students/model/TaskDto.java
rename to src/main/java/ru/ulstu/activity/students/model/TaskDto.java
index 24ad204..f63e494 100644
--- a/src/main/java/ru/ulstu/students/model/TaskDto.java
+++ b/src/main/java/ru/ulstu/activity/students/model/TaskDto.java
@@ -1,10 +1,10 @@
-package ru.ulstu.students.model;
+package ru.ulstu.activity.students.model;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
import org.apache.commons.lang3.StringUtils;
-import ru.ulstu.deadline.model.Deadline;
-import ru.ulstu.tags.model.Tag;
+import ru.ulstu.activity.deadline.model.Deadline;
+import ru.ulstu.activity.tags.model.Tag;
import javax.validation.constraints.NotEmpty;
import java.util.ArrayList;
diff --git a/src/main/java/ru/ulstu/students/model/TaskFilterDto.java b/src/main/java/ru/ulstu/activity/students/model/TaskFilterDto.java
similarity index 96%
rename from src/main/java/ru/ulstu/students/model/TaskFilterDto.java
rename to src/main/java/ru/ulstu/activity/students/model/TaskFilterDto.java
index 21bd5ac..6b4cb42 100644
--- a/src/main/java/ru/ulstu/students/model/TaskFilterDto.java
+++ b/src/main/java/ru/ulstu/activity/students/model/TaskFilterDto.java
@@ -1,4 +1,4 @@
-package ru.ulstu.students.model;
+package ru.ulstu.activity.students.model;
import java.util.List;
diff --git a/src/main/java/ru/ulstu/students/repository/SchedulerRepository.java b/src/main/java/ru/ulstu/activity/students/repository/SchedulerRepository.java
similarity index 56%
rename from src/main/java/ru/ulstu/students/repository/SchedulerRepository.java
rename to src/main/java/ru/ulstu/activity/students/repository/SchedulerRepository.java
index 7481692..3cb346f 100644
--- a/src/main/java/ru/ulstu/students/repository/SchedulerRepository.java
+++ b/src/main/java/ru/ulstu/activity/students/repository/SchedulerRepository.java
@@ -1,8 +1,8 @@
-package ru.ulstu.students.repository;
+package ru.ulstu.activity.students.repository;
import org.springframework.data.jpa.repository.JpaRepository;
-import ru.ulstu.students.model.Scheduler;
-import ru.ulstu.students.model.Task;
+import ru.ulstu.activity.students.model.Scheduler;
+import ru.ulstu.activity.students.model.Task;
public interface SchedulerRepository extends JpaRepository {
diff --git a/src/main/java/ru/ulstu/students/repository/TaskRepository.java b/src/main/java/ru/ulstu/activity/students/repository/TaskRepository.java
similarity index 88%
rename from src/main/java/ru/ulstu/students/repository/TaskRepository.java
rename to src/main/java/ru/ulstu/activity/students/repository/TaskRepository.java
index af277d1..9e8d30d 100644
--- a/src/main/java/ru/ulstu/students/repository/TaskRepository.java
+++ b/src/main/java/ru/ulstu/activity/students/repository/TaskRepository.java
@@ -1,10 +1,10 @@
-package ru.ulstu.students.repository;
+package ru.ulstu.activity.students.repository;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
-import ru.ulstu.students.model.Task;
-import ru.ulstu.tags.model.Tag;
+import ru.ulstu.activity.students.model.Task;
+import ru.ulstu.activity.tags.model.Tag;
import java.util.Date;
import java.util.List;
diff --git a/src/main/java/ru/ulstu/students/service/SchedulerService.java b/src/main/java/ru/ulstu/activity/students/service/SchedulerService.java
similarity index 93%
rename from src/main/java/ru/ulstu/students/service/SchedulerService.java
rename to src/main/java/ru/ulstu/activity/students/service/SchedulerService.java
index b192130..150cb0f 100644
--- a/src/main/java/ru/ulstu/students/service/SchedulerService.java
+++ b/src/main/java/ru/ulstu/activity/students/service/SchedulerService.java
@@ -1,11 +1,11 @@
-package ru.ulstu.students.service;
+package ru.ulstu.activity.students.service;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
-import ru.ulstu.students.model.Scheduler;
-import ru.ulstu.students.model.Task;
-import ru.ulstu.students.repository.SchedulerRepository;
-import ru.ulstu.tags.model.Tag;
+import ru.ulstu.activity.students.model.Scheduler;
+import ru.ulstu.activity.students.model.Task;
+import ru.ulstu.activity.students.repository.SchedulerRepository;
+import ru.ulstu.activity.tags.model.Tag;
import java.util.Date;
import java.util.List;
diff --git a/src/main/java/ru/ulstu/students/service/TaskGenerationService.java b/src/main/java/ru/ulstu/activity/students/service/TaskGenerationService.java
similarity index 95%
rename from src/main/java/ru/ulstu/students/service/TaskGenerationService.java
rename to src/main/java/ru/ulstu/activity/students/service/TaskGenerationService.java
index 1c04c20..7119194 100644
--- a/src/main/java/ru/ulstu/students/service/TaskGenerationService.java
+++ b/src/main/java/ru/ulstu/activity/students/service/TaskGenerationService.java
@@ -1,4 +1,4 @@
-package ru.ulstu.students.service;
+package ru.ulstu.activity.students.service;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/src/main/java/ru/ulstu/students/service/TaskService.java b/src/main/java/ru/ulstu/activity/students/service/TaskService.java
similarity index 92%
rename from src/main/java/ru/ulstu/students/service/TaskService.java
rename to src/main/java/ru/ulstu/activity/students/service/TaskService.java
index c3b4f3a..9680f19 100644
--- a/src/main/java/ru/ulstu/students/service/TaskService.java
+++ b/src/main/java/ru/ulstu/activity/students/service/TaskService.java
@@ -1,21 +1,21 @@
-package ru.ulstu.students.service;
+package ru.ulstu.activity.students.service;
import org.apache.commons.lang3.StringUtils;
import org.springframework.data.domain.Sort;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
+import ru.ulstu.activity.deadline.model.Deadline;
+import ru.ulstu.activity.deadline.service.DeadlineService;
+import ru.ulstu.activity.students.model.Scheduler;
+import ru.ulstu.activity.students.model.Task;
+import ru.ulstu.activity.students.model.TaskDto;
+import ru.ulstu.activity.students.model.TaskFilterDto;
+import ru.ulstu.activity.students.repository.SchedulerRepository;
+import ru.ulstu.activity.students.repository.TaskRepository;
+import ru.ulstu.activity.tags.model.Tag;
+import ru.ulstu.activity.tags.service.TagService;
+import ru.ulstu.activity.timeline.service.EventService;
import ru.ulstu.core.util.DateUtils;
-import ru.ulstu.deadline.model.Deadline;
-import ru.ulstu.deadline.service.DeadlineService;
-import ru.ulstu.students.model.Scheduler;
-import ru.ulstu.students.model.Task;
-import ru.ulstu.students.model.TaskDto;
-import ru.ulstu.students.model.TaskFilterDto;
-import ru.ulstu.students.repository.SchedulerRepository;
-import ru.ulstu.students.repository.TaskRepository;
-import ru.ulstu.tags.model.Tag;
-import ru.ulstu.tags.service.TagService;
-import ru.ulstu.timeline.service.EventService;
import java.io.IOException;
import java.util.ArrayList;
@@ -30,8 +30,8 @@ import java.util.TreeMap;
import java.util.stream.Collectors;
import static org.springframework.util.ObjectUtils.isEmpty;
+import static ru.ulstu.activity.students.model.Task.TaskStatus.IN_WORK;
import static ru.ulstu.core.util.StreamApiUtils.convert;
-import static ru.ulstu.students.model.Task.TaskStatus.IN_WORK;
@Service
public class TaskService {
diff --git a/src/main/java/ru/ulstu/tags/model/Tag.java b/src/main/java/ru/ulstu/activity/tags/model/Tag.java
similarity index 97%
rename from src/main/java/ru/ulstu/tags/model/Tag.java
rename to src/main/java/ru/ulstu/activity/tags/model/Tag.java
index 023cfb4..b2081e6 100644
--- a/src/main/java/ru/ulstu/tags/model/Tag.java
+++ b/src/main/java/ru/ulstu/activity/tags/model/Tag.java
@@ -1,4 +1,4 @@
-package ru.ulstu.tags.model;
+package ru.ulstu.activity.tags.model;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
diff --git a/src/main/java/ru/ulstu/tags/repository/TagRepository.java b/src/main/java/ru/ulstu/activity/tags/repository/TagRepository.java
similarity index 81%
rename from src/main/java/ru/ulstu/tags/repository/TagRepository.java
rename to src/main/java/ru/ulstu/activity/tags/repository/TagRepository.java
index 213abae..882e476 100644
--- a/src/main/java/ru/ulstu/tags/repository/TagRepository.java
+++ b/src/main/java/ru/ulstu/activity/tags/repository/TagRepository.java
@@ -1,9 +1,9 @@
-package ru.ulstu.tags.repository;
+package ru.ulstu.activity.tags.repository;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
-import ru.ulstu.tags.model.Tag;
+import ru.ulstu.activity.tags.model.Tag;
public interface TagRepository extends JpaRepository {
diff --git a/src/main/java/ru/ulstu/tags/service/TagService.java b/src/main/java/ru/ulstu/activity/tags/service/TagService.java
similarity index 91%
rename from src/main/java/ru/ulstu/tags/service/TagService.java
rename to src/main/java/ru/ulstu/activity/tags/service/TagService.java
index f85889d..5615bea 100644
--- a/src/main/java/ru/ulstu/tags/service/TagService.java
+++ b/src/main/java/ru/ulstu/activity/tags/service/TagService.java
@@ -1,8 +1,8 @@
-package ru.ulstu.tags.service;
+package ru.ulstu.activity.tags.service;
import org.springframework.stereotype.Service;
-import ru.ulstu.tags.model.Tag;
-import ru.ulstu.tags.repository.TagRepository;
+import ru.ulstu.activity.tags.model.Tag;
+import ru.ulstu.activity.tags.repository.TagRepository;
import javax.transaction.Transactional;
import java.util.List;
diff --git a/src/main/java/ru/ulstu/timeline/controller/EventController.java b/src/main/java/ru/ulstu/activity/timeline/controller/EventController.java
similarity index 91%
rename from src/main/java/ru/ulstu/timeline/controller/EventController.java
rename to src/main/java/ru/ulstu/activity/timeline/controller/EventController.java
index 2a9245c..c75b406 100644
--- a/src/main/java/ru/ulstu/timeline/controller/EventController.java
+++ b/src/main/java/ru/ulstu/activity/timeline/controller/EventController.java
@@ -1,4 +1,4 @@
-package ru.ulstu.timeline.controller;
+package ru.ulstu.activity.timeline.controller;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
@@ -8,10 +8,10 @@ import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
+import ru.ulstu.activity.timeline.model.EventDto;
+import ru.ulstu.activity.timeline.service.EventService;
import ru.ulstu.configuration.Constants;
import ru.ulstu.core.model.response.Response;
-import ru.ulstu.timeline.model.EventDto;
-import ru.ulstu.timeline.service.EventService;
import javax.validation.Valid;
import java.util.List;
diff --git a/src/main/java/ru/ulstu/timeline/model/Event.java b/src/main/java/ru/ulstu/activity/timeline/model/Event.java
similarity index 94%
rename from src/main/java/ru/ulstu/timeline/model/Event.java
rename to src/main/java/ru/ulstu/activity/timeline/model/Event.java
index bf69a70..3a9e55e 100644
--- a/src/main/java/ru/ulstu/timeline/model/Event.java
+++ b/src/main/java/ru/ulstu/activity/timeline/model/Event.java
@@ -1,11 +1,11 @@
-package ru.ulstu.timeline.model;
+package ru.ulstu.activity.timeline.model;
-import ru.ulstu.conference.model.Conference;
+import ru.ulstu.activity.conference.model.Conference;
+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.core.model.BaseEntity;
-import ru.ulstu.grant.model.Grant;
-import ru.ulstu.paper.model.Paper;
-import ru.ulstu.project.model.Project;
-import ru.ulstu.students.model.Task;
import ru.ulstu.user.model.User;
import javax.persistence.CascadeType;
diff --git a/src/main/java/ru/ulstu/timeline/model/EventDto.java b/src/main/java/ru/ulstu/activity/timeline/model/EventDto.java
similarity index 94%
rename from src/main/java/ru/ulstu/timeline/model/EventDto.java
rename to src/main/java/ru/ulstu/activity/timeline/model/EventDto.java
index 7c3a836..5a1d014 100644
--- a/src/main/java/ru/ulstu/timeline/model/EventDto.java
+++ b/src/main/java/ru/ulstu/activity/timeline/model/EventDto.java
@@ -1,12 +1,12 @@
-package ru.ulstu.timeline.model;
+package ru.ulstu.activity.timeline.model;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
-import ru.ulstu.conference.model.ConferenceDto;
-import ru.ulstu.grant.model.GrantDto;
-import ru.ulstu.paper.model.PaperDto;
-import ru.ulstu.project.model.ProjectDto;
-import ru.ulstu.students.model.TaskDto;
+import ru.ulstu.activity.conference.model.ConferenceDto;
+import ru.ulstu.activity.grant.model.GrantDto;
+import ru.ulstu.activity.paper.model.PaperDto;
+import ru.ulstu.activity.project.model.ProjectDto;
+import ru.ulstu.activity.students.model.TaskDto;
import ru.ulstu.user.model.UserDto;
import javax.validation.constraints.NotBlank;
diff --git a/src/main/java/ru/ulstu/timeline/model/PeriodEvent.java b/src/main/java/ru/ulstu/activity/timeline/model/PeriodEvent.java
similarity index 93%
rename from src/main/java/ru/ulstu/timeline/model/PeriodEvent.java
rename to src/main/java/ru/ulstu/activity/timeline/model/PeriodEvent.java
index 39eaffb..c64ede8 100644
--- a/src/main/java/ru/ulstu/timeline/model/PeriodEvent.java
+++ b/src/main/java/ru/ulstu/activity/timeline/model/PeriodEvent.java
@@ -1,4 +1,4 @@
-package ru.ulstu.timeline.model;
+package ru.ulstu.activity.timeline.model;
import java.time.Period;
diff --git a/src/main/java/ru/ulstu/timeline/model/Timeline.java b/src/main/java/ru/ulstu/activity/timeline/model/Timeline.java
similarity index 93%
rename from src/main/java/ru/ulstu/timeline/model/Timeline.java
rename to src/main/java/ru/ulstu/activity/timeline/model/Timeline.java
index 06e04bc..421cba2 100644
--- a/src/main/java/ru/ulstu/timeline/model/Timeline.java
+++ b/src/main/java/ru/ulstu/activity/timeline/model/Timeline.java
@@ -1,4 +1,4 @@
-package ru.ulstu.timeline.model;
+package ru.ulstu.activity.timeline.model;
import ru.ulstu.core.model.BaseEntity;
diff --git a/src/main/java/ru/ulstu/timeline/model/TimelineDto.java b/src/main/java/ru/ulstu/activity/timeline/model/TimelineDto.java
similarity index 94%
rename from src/main/java/ru/ulstu/timeline/model/TimelineDto.java
rename to src/main/java/ru/ulstu/activity/timeline/model/TimelineDto.java
index 1c651a7..aa9c68b 100644
--- a/src/main/java/ru/ulstu/timeline/model/TimelineDto.java
+++ b/src/main/java/ru/ulstu/activity/timeline/model/TimelineDto.java
@@ -1,4 +1,4 @@
-package ru.ulstu.timeline.model;
+package ru.ulstu.activity.timeline.model;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
diff --git a/src/main/java/ru/ulstu/timeline/repository/EventRepository.java b/src/main/java/ru/ulstu/activity/timeline/repository/EventRepository.java
similarity index 67%
rename from src/main/java/ru/ulstu/timeline/repository/EventRepository.java
rename to src/main/java/ru/ulstu/activity/timeline/repository/EventRepository.java
index 15e1355..c921639 100644
--- a/src/main/java/ru/ulstu/timeline/repository/EventRepository.java
+++ b/src/main/java/ru/ulstu/activity/timeline/repository/EventRepository.java
@@ -1,13 +1,13 @@
-package ru.ulstu.timeline.repository;
+package ru.ulstu.activity.timeline.repository;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
-import ru.ulstu.conference.model.Conference;
-import ru.ulstu.grant.model.Grant;
-import ru.ulstu.paper.model.Paper;
-import ru.ulstu.project.model.Project;
-import ru.ulstu.students.model.Task;
-import ru.ulstu.timeline.model.Event;
+import ru.ulstu.activity.conference.model.Conference;
+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 java.util.List;
diff --git a/src/main/java/ru/ulstu/timeline/repository/TimelineRepository.java b/src/main/java/ru/ulstu/activity/timeline/repository/TimelineRepository.java
similarity index 59%
rename from src/main/java/ru/ulstu/timeline/repository/TimelineRepository.java
rename to src/main/java/ru/ulstu/activity/timeline/repository/TimelineRepository.java
index 6b1be39..c455c8a 100644
--- a/src/main/java/ru/ulstu/timeline/repository/TimelineRepository.java
+++ b/src/main/java/ru/ulstu/activity/timeline/repository/TimelineRepository.java
@@ -1,7 +1,7 @@
-package ru.ulstu.timeline.repository;
+package ru.ulstu.activity.timeline.repository;
import org.springframework.data.jpa.repository.JpaRepository;
-import ru.ulstu.timeline.model.Timeline;
+import ru.ulstu.activity.timeline.model.Timeline;
public interface TimelineRepository extends JpaRepository {
}
diff --git a/src/main/java/ru/ulstu/timeline/service/EventScheduler.java b/src/main/java/ru/ulstu/activity/timeline/service/EventScheduler.java
similarity index 95%
rename from src/main/java/ru/ulstu/timeline/service/EventScheduler.java
rename to src/main/java/ru/ulstu/activity/timeline/service/EventScheduler.java
index 7899aca..7854cea 100644
--- a/src/main/java/ru/ulstu/timeline/service/EventScheduler.java
+++ b/src/main/java/ru/ulstu/activity/timeline/service/EventScheduler.java
@@ -1,13 +1,13 @@
-package ru.ulstu.timeline.service;
+package ru.ulstu.activity.timeline.service;
import com.google.common.collect.ImmutableMap;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Service;
+import ru.ulstu.activity.timeline.model.Event;
+import ru.ulstu.activity.timeline.model.PeriodEvent;
import ru.ulstu.core.util.DateUtils;
-import ru.ulstu.timeline.model.Event;
-import ru.ulstu.timeline.model.PeriodEvent;
import ru.ulstu.user.service.MailService;
import java.util.Date;
diff --git a/src/main/java/ru/ulstu/timeline/service/EventService.java b/src/main/java/ru/ulstu/activity/timeline/service/EventService.java
similarity index 91%
rename from src/main/java/ru/ulstu/timeline/service/EventService.java
rename to src/main/java/ru/ulstu/activity/timeline/service/EventService.java
index c7639c2..9c75696 100644
--- a/src/main/java/ru/ulstu/timeline/service/EventService.java
+++ b/src/main/java/ru/ulstu/activity/timeline/service/EventService.java
@@ -1,20 +1,20 @@
-package ru.ulstu.timeline.service;
+package ru.ulstu.activity.timeline.service;
import org.apache.commons.lang3.time.DateUtils;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
-import ru.ulstu.conference.model.Conference;
-import ru.ulstu.core.model.EventSource;
-import ru.ulstu.deadline.model.Deadline;
-import ru.ulstu.grant.model.Grant;
-import ru.ulstu.paper.model.Paper;
-import ru.ulstu.project.model.Project;
-import ru.ulstu.students.model.Task;
-import ru.ulstu.timeline.model.Event;
-import ru.ulstu.timeline.model.EventDto;
-import ru.ulstu.timeline.model.Timeline;
-import ru.ulstu.timeline.repository.EventRepository;
+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.activity.timeline.model.Timeline;
+import ru.ulstu.activity.timeline.repository.EventRepository;
import ru.ulstu.user.model.UserDto;
import ru.ulstu.user.service.UserService;
diff --git a/src/main/java/ru/ulstu/timeline/service/TimelineService.java b/src/main/java/ru/ulstu/activity/timeline/service/TimelineService.java
similarity index 86%
rename from src/main/java/ru/ulstu/timeline/service/TimelineService.java
rename to src/main/java/ru/ulstu/activity/timeline/service/TimelineService.java
index dd5c384..e84f314 100644
--- a/src/main/java/ru/ulstu/timeline/service/TimelineService.java
+++ b/src/main/java/ru/ulstu/activity/timeline/service/TimelineService.java
@@ -1,11 +1,11 @@
-package ru.ulstu.timeline.service;
+package ru.ulstu.activity.timeline.service;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
-import ru.ulstu.timeline.model.EventDto;
-import ru.ulstu.timeline.model.Timeline;
-import ru.ulstu.timeline.model.TimelineDto;
-import ru.ulstu.timeline.repository.TimelineRepository;
+import ru.ulstu.activity.timeline.model.EventDto;
+import ru.ulstu.activity.timeline.model.Timeline;
+import ru.ulstu.activity.timeline.model.TimelineDto;
+import ru.ulstu.activity.timeline.repository.TimelineRepository;
import java.util.List;
diff --git a/src/main/java/ru/ulstu/boundary/model/ActivityDto.java b/src/main/java/ru/ulstu/boundary/model/ActivityDto.java
deleted file mode 100644
index 6570563..0000000
--- a/src/main/java/ru/ulstu/boundary/model/ActivityDto.java
+++ /dev/null
@@ -1,4 +0,0 @@
-package ru.ulstu.boundary.model;
-
-public interface ActivityDto {
-}
diff --git a/src/main/java/ru/ulstu/boundary/model/ActivityListDto.java b/src/main/java/ru/ulstu/boundary/model/ActivityListDto.java
deleted file mode 100644
index f6b7213..0000000
--- a/src/main/java/ru/ulstu/boundary/model/ActivityListDto.java
+++ /dev/null
@@ -1,4 +0,0 @@
-package ru.ulstu.boundary.model;
-
-public interface ActivityListDto {
-}
\ No newline at end of file
diff --git a/src/main/java/ru/ulstu/conference/controller/ConferenceController.java b/src/main/java/ru/ulstu/conference/controller/ConferenceController.java
deleted file mode 100644
index f9a4bac..0000000
--- a/src/main/java/ru/ulstu/conference/controller/ConferenceController.java
+++ /dev/null
@@ -1,165 +0,0 @@
-package ru.ulstu.conference.controller;
-
-
-import org.springframework.stereotype.Controller;
-import org.springframework.ui.ModelMap;
-import org.springframework.validation.Errors;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.ModelAttribute;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
-import ru.ulstu.conference.model.ConferenceDto;
-import ru.ulstu.conference.model.ConferenceFilterDto;
-import ru.ulstu.conference.model.ConferenceUser;
-import ru.ulstu.conference.service.ConferenceService;
-import ru.ulstu.user.model.User;
-import springfox.documentation.annotations.ApiIgnore;
-
-import javax.validation.Valid;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Calendar;
-import java.util.List;
-
-import static ru.ulstu.core.controller.Navigation.CONFERENCES_PAGE;
-import static ru.ulstu.core.controller.Navigation.CONFERENCE_PAGE;
-import static ru.ulstu.core.controller.Navigation.REDIRECT_TO;
-
-
-@Controller()
-@RequestMapping(value = "/conferences")
-@ApiIgnore
-public class ConferenceController {
-
- private final ConferenceService conferenceService;
-
- public ConferenceController(ConferenceService conferenceService) {
- this.conferenceService = conferenceService;
- }
-
- @GetMapping("/conferences")
- public void getConferences(ModelMap modelMap) {
- modelMap.put("filteredConferences", new ConferenceFilterDto(conferenceService.findAllDto()));
- }
-
- @PostMapping("/conferences")
- public void filterConferences(@Valid ConferenceFilterDto conferenceFilterDto, ModelMap modelMap) {
- modelMap.put("filteredConferences", new ConferenceFilterDto(conferenceService.filter(conferenceFilterDto),
- conferenceFilterDto.getFilterUserId(),
- conferenceFilterDto.getYear()));
- }
-
- @GetMapping("/dashboard")
- public void getDashboard(ModelMap modelMap) {
- modelMap.put("conferences", conferenceService.findAllActiveDto());
-
- conferenceService.setChartData(modelMap); // example
- }
-
- @GetMapping("/conference")
- public void getConference(ModelMap modelMap, @RequestParam(value = "id") Integer id) {
- if (id != null && id > 0) {
- modelMap.put("conferenceDto", conferenceService.getExistConferenceById(id));
- } else {
- modelMap.put("conferenceDto", conferenceService.getNewConference());
- }
- }
-
- @PostMapping(value = "/conferences", params = "deleteConference")
- public String delete(@RequestParam("deleteConference") Integer conferenceId) throws IOException {
- conferenceService.delete(conferenceId);
- return String.format(REDIRECT_TO, CONFERENCES_PAGE);
- }
-
- @PostMapping(value = "/conference", params = "save")
- public String save(@Valid ConferenceDto conferenceDto, Errors errors) throws IOException {
- if (!conferenceService.save(conferenceDto, errors)) {
- return CONFERENCE_PAGE;
- }
- return String.format(REDIRECT_TO, CONFERENCES_PAGE);
- }
-
- @PostMapping(value = "/conference", params = "addDeadline")
- public String addDeadline(@Valid ConferenceDto conferenceDto, Errors errors) throws IOException {
- conferenceService.filterEmptyDeadlines(conferenceDto);
- if (errors.hasErrors()) {
- return CONFERENCE_PAGE;
- }
- conferenceService.addDeadline(conferenceDto);
- return CONFERENCE_PAGE;
- }
-
- @PostMapping(value = "/conference", params = "removeDeadline")
- public String removeDeadline(@Valid ConferenceDto conferenceDto, Errors errors,
- @RequestParam(value = "removeDeadline") Integer deadlineIndex) throws IOException {
- if (errors.hasErrors()) {
- return CONFERENCE_PAGE;
- }
- conferenceService.removeDeadline(conferenceDto, deadlineIndex);
- return CONFERENCE_PAGE;
- }
-
- @PostMapping(value = "/conference", params = "addPaper")
- public String addPaper(@Valid ConferenceDto conferenceDto, Errors errors) throws IOException {
- if (errors.hasErrors()) {
- return CONFERENCE_PAGE;
- }
- conferenceService.addPaper(conferenceDto);
-
- return CONFERENCE_PAGE;
- }
-
- @PostMapping(value = "/conference", params = "removePaper")
- public String removePaper(@Valid ConferenceDto conferenceDto, Errors errors,
- @RequestParam(value = "removePaper") Integer paperIndex) throws IOException {
- if (errors.hasErrors()) {
- return CONFERENCE_PAGE;
- }
- conferenceService.removePaper(conferenceDto, paperIndex);
- return CONFERENCE_PAGE;
- }
-
- @PostMapping(value = "/conference", params = "takePart")
- public String takePart(@Valid ConferenceDto conferenceDto, Errors errors) throws IOException {
- if (errors.hasErrors()) {
- return CONFERENCE_PAGE;
- }
- conferenceService.takePart(conferenceDto);
- return CONFERENCE_PAGE;
- }
-
- @PostMapping(value = "/conference", params = "pingConference")
- public String ping(@Valid ConferenceDto conferenceDto, Errors errors) throws IOException {
- if (errors.hasErrors()) {
- return CONFERENCE_PAGE;
- }
- conferenceService.ping(conferenceDto);
- return CONFERENCE_PAGE;
- }
-
- @ModelAttribute("allParticipation")
- public List getAllParticipation() {
- return conferenceService.getAllParticipations();
- }
-
- @ModelAttribute("allDeposit")
- public List getAllDeposit() {
- return conferenceService.getAllDeposit();
- }
-
- @ModelAttribute("allUsers")
- public List getAllUsers() {
- return conferenceService.getAllUsers();
- }
-
- @ModelAttribute("allYears")
- public List getAllYears() {
- List years = new ArrayList<>();
- for (int i = Calendar.getInstance().get(Calendar.YEAR); i > 2010; i--) {
- years.add(i);
- }
- return years;
- }
-
-}
diff --git a/src/main/java/ru/ulstu/core/controller/Navigation.java b/src/main/java/ru/ulstu/core/controller/Navigation.java
deleted file mode 100644
index caea429..0000000
--- a/src/main/java/ru/ulstu/core/controller/Navigation.java
+++ /dev/null
@@ -1,19 +0,0 @@
-package ru.ulstu.core.controller;
-
-import org.springframework.validation.Errors;
-
-public class Navigation {
- public static final String REDIRECT_TO = "redirect:%s";
- public static final String GRANTS_PAGE = "/grants/grants";
- public static final String GRANT_PAGE = "/grants/grant";
-
- public static final String CONFERENCES_PAGE = "/conferences/conferences";
- public static final String CONFERENCE_PAGE = "/conferences/conference";
-
- public static String hasErrors(Errors errors, String page) {
- if (errors.hasErrors()) {
- return page;
- }
- return null;
- }
-}
diff --git a/src/main/java/ru/ulstu/core/model/UserActivity.java b/src/main/java/ru/ulstu/core/model/UserActivity.java
deleted file mode 100644
index f45819d..0000000
--- a/src/main/java/ru/ulstu/core/model/UserActivity.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package ru.ulstu.core.model;
-
-import ru.ulstu.user.model.User;
-
-import java.util.Set;
-
-public interface UserActivity {
- String getTitle();
-
- Set getActivityUsers();
-}
diff --git a/src/main/java/ru/ulstu/grant/controller/GrantController.java b/src/main/java/ru/ulstu/grant/controller/GrantController.java
deleted file mode 100644
index 48dee8e..0000000
--- a/src/main/java/ru/ulstu/grant/controller/GrantController.java
+++ /dev/null
@@ -1,133 +0,0 @@
-package ru.ulstu.grant.controller;
-
-import org.springframework.stereotype.Controller;
-import org.springframework.ui.ModelMap;
-import org.springframework.validation.Errors;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.ModelAttribute;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.ResponseBody;
-import ru.ulstu.deadline.model.Deadline;
-import ru.ulstu.grant.model.Grant;
-import ru.ulstu.grant.model.GrantDto;
-import ru.ulstu.grant.service.GrantService;
-import ru.ulstu.paper.model.PaperDto;
-import ru.ulstu.user.model.User;
-import springfox.documentation.annotations.ApiIgnore;
-
-import javax.validation.Valid;
-import java.io.IOException;
-import java.util.List;
-
-import static ru.ulstu.core.controller.Navigation.GRANTS_PAGE;
-import static ru.ulstu.core.controller.Navigation.GRANT_PAGE;
-import static ru.ulstu.core.controller.Navigation.REDIRECT_TO;
-
-
-@Controller()
-@RequestMapping(value = "/grants")
-@ApiIgnore
-public class GrantController {
- private final GrantService grantService;
-
- public GrantController(GrantService grantService) {
- this.grantService = grantService;
- }
-
- @GetMapping("/grants")
- public void getGrants(ModelMap modelMap) {
- modelMap.put("grants", grantService.findAllDto());
- }
-
- @GetMapping("/dashboard")
- public void getDashboard(ModelMap modelMap) {
- modelMap.put("grants", grantService.findAllActiveDto());
- }
-
- @GetMapping("/grant")
- public void getGrant(ModelMap modelMap, @RequestParam(value = "id") Integer id) {
- if (id != null && id > 0) {
- GrantDto grantDto = grantService.getExistGrantById(id);
- attachPaper(grantDto);
- modelMap.put("grantDto", grantDto);
- } else {
- modelMap.put("grantDto", new GrantDto());
- }
- }
-
- @PostMapping(value = "/grant", params = "save")
- public String save(@Valid GrantDto grantDto, Errors errors)
- throws IOException {
- if (!grantService.save(grantDto, errors)) {
- return GRANT_PAGE;
- }
- return String.format(REDIRECT_TO, GRANTS_PAGE);
- }
-
- @PostMapping(value = "/grant", params = "filterUsers")
- public String filterUsers() {
- return GRANT_PAGE;
- }
-
- @PostMapping(value = "/grant", params = "attachPaper")
- public String attachPaper(GrantDto grantDto) {
- grantService.attachPaper(grantDto);
- return GRANT_PAGE;
- }
-
- @PostMapping(value = "/grant", params = "addDeadline")
- public String addDeadline(@Valid GrantDto grantDto, Errors errors) {
- grantService.filterEmptyDeadlines(grantDto);
- if (errors.hasErrors()) {
- return GRANT_PAGE;
- }
- grantDto.getDeadlines().add(new Deadline());
- return GRANT_PAGE;
- }
-
- @PostMapping(value = "/grant", params = "removeDeadline")
- public String removeDeadline(GrantDto grantDto,
- @RequestParam(value = "removeDeadline") Integer deadlineId) {
- grantService.removeDeadline(grantDto, deadlineId);
- return GRANT_PAGE;
- }
-
- @PostMapping(value = "/grant", params = "createProject")
- public String createProject(@Valid GrantDto grantDto, Errors errors) throws IOException {
- if (errors.hasErrors()) {
- return GRANT_PAGE;
- }
- grantService.createProject(grantDto);
- return GRANT_PAGE;
- }
-
- @GetMapping("/delete/{grant-id}")
- public String delete(@PathVariable("grant-id") Integer grantId) throws IOException {
- grantService.delete(grantId);
- return String.format(REDIRECT_TO, GRANTS_PAGE);
- }
-
- @ModelAttribute("allStatuses")
- public List getGrantStatuses() {
- return grantService.getGrantStatuses();
- }
-
- @ModelAttribute("allAuthors")
- public List getAllAuthors(GrantDto grantDto) {
- return grantService.getGrantAuthors(grantDto);
- }
-
- @ModelAttribute("allPapers")
- public List getAllPapers() {
- return grantService.getAllUncompletedPapers();
- }
-
- @ResponseBody
- @PostMapping(value = "/ping")
- public void ping(@RequestParam("grantId") int grantId) throws IOException {
- grantService.ping(grantId);
- }
-}
diff --git a/src/main/java/ru/ulstu/name/BaseService.java b/src/main/java/ru/ulstu/name/BaseService.java
deleted file mode 100644
index adcdc74..0000000
--- a/src/main/java/ru/ulstu/name/BaseService.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package ru.ulstu.name;
-
-import org.springframework.stereotype.Service;
-import org.springframework.validation.Errors;
-
-@Service
-public abstract class BaseService {
-
- public BaseRepository baseRepository;
-
- protected void checkUniqueName(NameContainer nameContainer, Errors errors, Integer id, String errorMessage) {
- if (nameContainer.getName().equals(baseRepository.findByNameAndNotId(nameContainer.getName(), id))) {
- errors.rejectValue("title", "errorCode", errorMessage);
- }
- }
-
- protected String checkUniqueName(NameContainer nameContainer, Integer id) {
- if (nameContainer.getName().equals(baseRepository.findByNameAndNotId(nameContainer.getName(), id))) {
- return baseRepository.findByNameAndNotId(nameContainer.getName(), id);
- }
- return null;
- }
-}
diff --git a/src/main/java/ru/ulstu/name/NameContainer.java b/src/main/java/ru/ulstu/name/NameContainer.java
deleted file mode 100644
index 4339fb2..0000000
--- a/src/main/java/ru/ulstu/name/NameContainer.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package ru.ulstu.name;
-
-public abstract class NameContainer {
-
- private String name = "";
-
- public String getName() {
- return name;
- }
-
- public void setName(String name) {
- this.name = name;
- }
-}
diff --git a/src/main/java/ru/ulstu/paper/model/PaperListDto.java b/src/main/java/ru/ulstu/paper/model/PaperListDto.java
deleted file mode 100644
index 8bbf95b..0000000
--- a/src/main/java/ru/ulstu/paper/model/PaperListDto.java
+++ /dev/null
@@ -1,55 +0,0 @@
-package ru.ulstu.paper.model;
-
-import ru.ulstu.boundary.model.ActivityListDto;
-import ru.ulstu.boundary.model.ScienceGroupMemberDto;
-
-import java.util.Set;
-
-import static ru.ulstu.core.util.StreamApiUtils.convert;
-
-public class PaperListDto implements ActivityListDto {
-
- private Integer id;
- private String title;
- private Paper.PaperStatus status;
- private Set authors;
-
- public PaperListDto(Paper paper) {
- this.id = paper.getId();
- this.title = paper.getTitle();
- this.status = paper.getStatus();
- this.authors = convert(paper.getAuthors(), ScienceGroupMemberDto::new);
- }
-
- public Integer getId() {
- return id;
- }
-
- public void setId(Integer id) {
- this.id = id;
- }
-
- public String getTitle() {
- return title;
- }
-
- public void setTitle(String title) {
- this.title = title;
- }
-
- public Paper.PaperStatus getStatus() {
- return status;
- }
-
- public void setStatus(Paper.PaperStatus status) {
- this.status = status;
- }
-
- public Set getAuthors() {
- return authors;
- }
-
- public void setAuthors(Set authors) {
- this.authors = authors;
- }
-}
diff --git a/src/main/java/ru/ulstu/user/model/UserInfoNow.java b/src/main/java/ru/ulstu/user/model/UserInfoNow.java
index 7d69c56..9f55f0f 100644
--- a/src/main/java/ru/ulstu/user/model/UserInfoNow.java
+++ b/src/main/java/ru/ulstu/user/model/UserInfoNow.java
@@ -1,7 +1,7 @@
package ru.ulstu.user.model;
-import ru.ulstu.conference.model.Conference;
-import ru.ulstu.utils.timetable.model.Lesson;
+import ru.ulstu.activity.boundary.timetable.model.Lesson;
+import ru.ulstu.activity.conference.model.Conference;
public class UserInfoNow {
private Lesson lesson;
diff --git a/src/main/java/ru/ulstu/user/service/UserService.java b/src/main/java/ru/ulstu/user/service/UserService.java
index 0f69c8e..941c4ea 100644
--- a/src/main/java/ru/ulstu/user/service/UserService.java
+++ b/src/main/java/ru/ulstu/user/service/UserService.java
@@ -15,15 +15,18 @@ import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.StringUtils;
-import ru.ulstu.conference.service.ConferenceService;
+import ru.ulstu.activity.boundary.timetable.TimetableService;
+import ru.ulstu.activity.boundary.timetable.errors.TimetableClientException;
+import ru.ulstu.activity.boundary.timetable.model.Lesson;
+import ru.ulstu.activity.common.model.AbstractActivity;
+import ru.ulstu.activity.conference.service.ConferenceService;
+import ru.ulstu.activity.ping.model.Ping;
+import ru.ulstu.activity.ping.service.PingService;
import ru.ulstu.configuration.ApplicationProperties;
import ru.ulstu.core.error.EntityIdIsNullException;
import ru.ulstu.core.jpa.OffsetablePageRequest;
import ru.ulstu.core.model.BaseEntity;
-import ru.ulstu.core.model.UserActivity;
import ru.ulstu.core.model.response.PageableItems;
-import ru.ulstu.ping.model.Ping;
-import ru.ulstu.ping.service.PingService;
import ru.ulstu.user.error.UserActivationError;
import ru.ulstu.user.error.UserBlockedException;
import ru.ulstu.user.error.UserEmailExistsException;
@@ -46,9 +49,6 @@ import ru.ulstu.user.model.UserRoleDto;
import ru.ulstu.user.repository.UserRepository;
import ru.ulstu.user.repository.UserRoleRepository;
import ru.ulstu.user.util.UserUtils;
-import ru.ulstu.utils.timetable.TimetableService;
-import ru.ulstu.utils.timetable.errors.TimetableClientException;
-import ru.ulstu.utils.timetable.model.Lesson;
import javax.mail.MessagingException;
import java.text.ParseException;
@@ -411,9 +411,9 @@ public class UserService implements UserDetailsService {
Map activitiesPings = new HashMap<>();
for (Ping ping : pingService.getPings(activityName)) {
- UserActivity activity = ping.getActivity();
+ AbstractActivity activity = ping.getActivity();
- if (user != null && !activity.getActivityUsers().contains(user)) {
+ if (user != null && !activity.getActivityMembers().contains(user)) {
continue;
}
diff --git a/src/main/resources/mail_templates/grantAuthorsChangeNotification.html b/src/main/resources/mail_templates/grantAuthorsChangeNotification.html
index 2bae4fe..15cdf59 100644
--- a/src/main/resources/mail_templates/grantAuthorsChangeNotification.html
+++ b/src/main/resources/mail_templates/grantAuthorsChangeNotification.html
@@ -13,7 +13,7 @@
Состав рабочей группы гранта "Title" сменился с
" oldAuthors"
- на " newAuthors".
+ на " newAuthors".
Regards,
diff --git a/src/main/resources/public/js/core.js b/src/main/resources/public/js/core.js
index 7f54023..d575d0a 100644
--- a/src/main/resources/public/js/core.js
+++ b/src/main/resources/public/js/core.js
@@ -191,7 +191,7 @@ function fillSelect(selectElement, values) {
$(selectElement).html("");
$.each(values, function (key, value) {
$(selectElement).append(
- ""
+ ""
);
});
}
diff --git a/src/main/resources/public/js/file-loader.js b/src/main/resources/public/js/file-loader.js
index 1ba467b..2e1ed9d 100644
--- a/src/main/resources/public/js/file-loader.js
+++ b/src/main/resources/public/js/file-loader.js
@@ -41,7 +41,7 @@ function FileLoader(args) {
.addClass("form-control");
div.append(fileLabel);
var fileInput = $("")
- .attr("type", "file")
+ .attr("type", "ru.ulstu.activity.file")
.attr("multiple", '')
.hide();
fileInput.change(function () {
@@ -49,7 +49,7 @@ function FileLoader(args) {
if (isEmpty(files)) {
return;
}
- fileLabel.val(files[0].name);
+ fileLabel.val(ru.ulstu.activity.name);
});
div.append(fileInput);
@@ -106,7 +106,7 @@ function FileLoader(args) {
progressDiv.append(progressBar);
function getFileExt(file) {
- return file.name.slice((Math.max(0, file.name.lastIndexOf(".")) || Infinity) + 1);
+ return ru.ulstu.activity.name.slice((Math.max(0, ru.ulstu.activity.name.lastIndexOf(".")) || Infinity) + 1);
}
function upload(file) {
@@ -128,7 +128,7 @@ function FileLoader(args) {
};
xhr.open("POST", url, true);
var formData = new FormData();
- formData.append("file", file);
+ formData.append("ru.ulstu.activity.file", file);
xhr.send(formData);
}
}
\ No newline at end of file
diff --git a/src/main/resources/public/js/tasks.js b/src/main/resources/public/js/tasks.js
index ebff7e2..282f462 100644
--- a/src/main/resources/public/js/tasks.js
+++ b/src/main/resources/public/js/tasks.js
@@ -24,7 +24,7 @@ $(document).ready(function () {
if (tagNumber > 0) {
tagNumber = $("#tags .tag").last()
.children('input')
- .attr("name")
+ .attr("ru.ulstu.activity.name")
.split(']')[0]
.split('[')[1];
tagNumber++;
@@ -48,7 +48,7 @@ $(document).ready(function () {
var idInput = $("")
.attr("type", "hidden")
.attr("id", "tags" + tagNumber + ".id")
- .attr("name", "tags[" + tagNumber + "].id")
+ .attr("ru.ulstu.activity.name", "tags[" + tagNumber + "].id")
.attr("value", '');
// контейнер текста
var conDiv = $("
")
@@ -57,7 +57,7 @@ $(document).ready(function () {
var nameInput = $("")
.attr("type", "text")
.attr("id", "tags" + tagNumber + ".tagName")
- .attr("name", "tags[" + tagNumber + "].tagName")
+ .attr("ru.ulstu.activity.name", "tags[" + tagNumber + "].tagName")
.attr("value", tagName)
.attr("readonly", "true")
.attr("size", tagName.length);
diff --git a/src/test/java/ru/ulstu/conference/service/ConferenceServiceTest.java b/src/test/java/ru/ulstu/activity/conference/service/ConferenceServiceTest.java
similarity index 93%
rename from src/test/java/ru/ulstu/conference/service/ConferenceServiceTest.java
rename to src/test/java/ru/ulstu/activity/conference/service/ConferenceServiceTest.java
index 56756a3..9fe5bc3 100644
--- a/src/test/java/ru/ulstu/conference/service/ConferenceServiceTest.java
+++ b/src/test/java/ru/ulstu/activity/conference/service/ConferenceServiceTest.java
@@ -1,4 +1,4 @@
-package ru.ulstu.conference.service;
+package ru.ulstu.activity.conference.service;
import org.junit.Before;
import org.junit.Test;
@@ -7,17 +7,17 @@ import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.springframework.data.domain.Sort;
import org.springframework.test.context.junit4.SpringRunner;
-import ru.ulstu.conference.model.Conference;
-import ru.ulstu.conference.model.ConferenceDto;
-import ru.ulstu.conference.model.ConferenceFilterDto;
-import ru.ulstu.conference.model.ConferenceUser;
-import ru.ulstu.conference.repository.ConferenceRepository;
-import ru.ulstu.deadline.model.Deadline;
-import ru.ulstu.deadline.service.DeadlineService;
-import ru.ulstu.paper.model.Paper;
-import ru.ulstu.paper.service.PaperService;
-import ru.ulstu.ping.service.PingService;
-import ru.ulstu.timeline.service.EventService;
+import ru.ulstu.activity.conference.model.Conference;
+import ru.ulstu.activity.conference.model.ConferenceDto;
+import ru.ulstu.activity.conference.model.ConferenceFilterDto;
+import ru.ulstu.activity.conference.model.ConferenceUser;
+import ru.ulstu.activity.conference.repository.ConferenceRepository;
+import ru.ulstu.activity.deadline.model.Deadline;
+import ru.ulstu.activity.deadline.service.DeadlineService;
+import ru.ulstu.activity.paper.model.Paper;
+import ru.ulstu.activity.paper.service.PaperService;
+import ru.ulstu.activity.ping.service.PingService;
+import ru.ulstu.activity.timeline.service.EventService;
import ru.ulstu.user.model.User;
import ru.ulstu.user.service.UserService;
diff --git a/src/test/java/ru/ulstu/grant/service/GrantServiceTest.java b/src/test/java/ru/ulstu/activity/grant/service/GrantServiceTest.java
similarity index 92%
rename from src/test/java/ru/ulstu/grant/service/GrantServiceTest.java
rename to src/test/java/ru/ulstu/activity/grant/service/GrantServiceTest.java
index c8df288..dc1a9a0 100644
--- a/src/test/java/ru/ulstu/grant/service/GrantServiceTest.java
+++ b/src/test/java/ru/ulstu/activity/grant/service/GrantServiceTest.java
@@ -1,4 +1,4 @@
-package ru.ulstu.grant.service;
+package ru.ulstu.activity.grant.service;
import org.apache.commons.lang3.StringUtils;
import org.junit.Before;
@@ -8,15 +8,15 @@ import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.Mockito;
import org.springframework.test.context.junit4.SpringRunner;
-import ru.ulstu.deadline.model.Deadline;
-import ru.ulstu.deadline.service.DeadlineService;
-import ru.ulstu.grant.model.Grant;
-import ru.ulstu.grant.model.GrantDto;
-import ru.ulstu.grant.repository.GrantRepository;
-import ru.ulstu.paper.model.Paper;
-import ru.ulstu.paper.model.PaperDto;
-import ru.ulstu.paper.service.PaperService;
-import ru.ulstu.timeline.service.EventService;
+import ru.ulstu.activity.deadline.model.Deadline;
+import ru.ulstu.activity.deadline.service.DeadlineService;
+import ru.ulstu.activity.grant.model.Grant;
+import ru.ulstu.activity.grant.model.GrantDto;
+import ru.ulstu.activity.grant.repository.GrantRepository;
+import ru.ulstu.activity.paper.model.Paper;
+import ru.ulstu.activity.paper.model.PaperDto;
+import ru.ulstu.activity.paper.service.PaperService;
+import ru.ulstu.activity.timeline.service.EventService;
import ru.ulstu.user.model.User;
import ru.ulstu.user.service.UserService;
diff --git a/src/test/java/ru/ulstu/project/service/ProjectServiceTest.java b/src/test/java/ru/ulstu/activity/project/service/ProjectServiceTest.java
similarity index 87%
rename from src/test/java/ru/ulstu/project/service/ProjectServiceTest.java
rename to src/test/java/ru/ulstu/activity/project/service/ProjectServiceTest.java
index f46971c..04b1282 100644
--- a/src/test/java/ru/ulstu/project/service/ProjectServiceTest.java
+++ b/src/test/java/ru/ulstu/activity/project/service/ProjectServiceTest.java
@@ -1,4 +1,4 @@
-package ru.ulstu.project.service;
+package ru.ulstu.activity.project.service;
import org.junit.Before;
import org.junit.Test;
@@ -6,16 +6,16 @@ import org.junit.runner.RunWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.springframework.test.context.junit4.SpringRunner;
-import ru.ulstu.deadline.model.Deadline;
-import ru.ulstu.deadline.service.DeadlineService;
-import ru.ulstu.file.model.FileData;
-import ru.ulstu.file.service.FileService;
-import ru.ulstu.grant.model.GrantDto;
-import ru.ulstu.grant.service.GrantService;
-import ru.ulstu.project.model.Project;
-import ru.ulstu.project.model.ProjectDto;
-import ru.ulstu.project.repository.ProjectRepository;
-import ru.ulstu.timeline.service.EventService;
+import ru.ulstu.activity.deadline.model.Deadline;
+import ru.ulstu.activity.deadline.service.DeadlineService;
+import ru.ulstu.activity.file.model.FileData;
+import ru.ulstu.activity.file.service.FileService;
+import ru.ulstu.activity.grant.model.GrantDto;
+import ru.ulstu.activity.grant.service.GrantService;
+import ru.ulstu.activity.project.model.Project;
+import ru.ulstu.activity.project.model.ProjectDto;
+import ru.ulstu.activity.project.repository.ProjectRepository;
+import ru.ulstu.activity.timeline.service.EventService;
import ru.ulstu.user.model.User;
import ru.ulstu.user.service.UserService;
diff --git a/src/test/java/ru/ulstu/students/service/TaskServiceTest.java b/src/test/java/ru/ulstu/activity/students/service/TaskServiceTest.java
similarity index 91%
rename from src/test/java/ru/ulstu/students/service/TaskServiceTest.java
rename to src/test/java/ru/ulstu/activity/students/service/TaskServiceTest.java
index 97b9990..10a2cb5 100644
--- a/src/test/java/ru/ulstu/students/service/TaskServiceTest.java
+++ b/src/test/java/ru/ulstu/activity/students/service/TaskServiceTest.java
@@ -1,4 +1,4 @@
-package ru.ulstu.students.service;
+package ru.ulstu.activity.students.service;
import org.junit.Before;
import org.junit.Test;
@@ -7,18 +7,18 @@ import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.springframework.data.domain.Sort;
import org.springframework.test.context.junit4.SpringRunner;
+import ru.ulstu.activity.deadline.model.Deadline;
+import ru.ulstu.activity.deadline.service.DeadlineService;
+import ru.ulstu.activity.students.model.Scheduler;
+import ru.ulstu.activity.students.model.Task;
+import ru.ulstu.activity.students.model.TaskDto;
+import ru.ulstu.activity.students.model.TaskFilterDto;
+import ru.ulstu.activity.students.repository.SchedulerRepository;
+import ru.ulstu.activity.students.repository.TaskRepository;
+import ru.ulstu.activity.tags.model.Tag;
+import ru.ulstu.activity.tags.service.TagService;
+import ru.ulstu.activity.timeline.service.EventService;
import ru.ulstu.core.util.DateUtils;
-import ru.ulstu.deadline.model.Deadline;
-import ru.ulstu.deadline.service.DeadlineService;
-import ru.ulstu.students.model.Scheduler;
-import ru.ulstu.students.model.Task;
-import ru.ulstu.students.model.TaskDto;
-import ru.ulstu.students.model.TaskFilterDto;
-import ru.ulstu.students.repository.SchedulerRepository;
-import ru.ulstu.students.repository.TaskRepository;
-import ru.ulstu.tags.model.Tag;
-import ru.ulstu.tags.service.TagService;
-import ru.ulstu.timeline.service.EventService;
import java.io.IOException;
import java.util.ArrayList;