diff --git a/src/main/java/ru/ulstu/activity/api/ActivityRepository.java b/src/main/java/ru/ulstu/activity/api/ActivityRepository.java index 7353958..a4d6eca 100644 --- a/src/main/java/ru/ulstu/activity/api/ActivityRepository.java +++ b/src/main/java/ru/ulstu/activity/api/ActivityRepository.java @@ -2,6 +2,8 @@ package ru.ulstu.activity.api; import org.springframework.data.repository.query.Param; -public interface ActivityRepository { +public interface ActivityRepository { String findByNameAndNotId(@Param("name") String name, @Param("id") Integer id); + + T save(T t); } diff --git a/src/main/java/ru/ulstu/activity/common/service/AbstractActivityService.java b/src/main/java/ru/ulstu/activity/common/service/AbstractActivityService.java deleted file mode 100644 index d964822..0000000 --- a/src/main/java/ru/ulstu/activity/common/service/AbstractActivityService.java +++ /dev/null @@ -1,36 +0,0 @@ -package ru.ulstu.activity.common.service; - -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 { - - protected ActivityRepository activityRepository; - - public abstract T create(T entity); - - public abstract D create(D entity); - - public abstract T update(T entity); - - public abstract D update(D entity); - - public abstract boolean delete(Integer id); - - public abstract PageableItems findAll(int offset, int count); - - public PageableItems findAllDto(int offset, int count) { - return convertPageable(findAll(offset, count), entity -> getActivityListDto(entity)); - } - - protected abstract L getActivityListDto(T entity); - - protected boolean checkUniqueName(String title, Integer id) { - return title.equals(activityRepository.findByNameAndNotId(title, id)); - } -} diff --git a/src/main/java/ru/ulstu/activity/common/service/ActivityNotificationService.java b/src/main/java/ru/ulstu/activity/common/service/ActivityNotificationService.java new file mode 100644 index 0000000..745ccaf --- /dev/null +++ b/src/main/java/ru/ulstu/activity/common/service/ActivityNotificationService.java @@ -0,0 +1,8 @@ +package ru.ulstu.activity.common.service; + +import ru.ulstu.activity.common.model.AbstractActivity; + +public abstract class ActivityNotificationService { + + public abstract void sendCreateNotification(T entity); +} diff --git a/src/main/java/ru/ulstu/activity/common/service/ActivityService.java b/src/main/java/ru/ulstu/activity/common/service/ActivityService.java new file mode 100644 index 0000000..0ff7844 --- /dev/null +++ b/src/main/java/ru/ulstu/activity/common/service/ActivityService.java @@ -0,0 +1,77 @@ +package ru.ulstu.activity.common.service; + +import org.springframework.transaction.annotation.Transactional; +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.activity.ping.service.PingService; +import ru.ulstu.core.model.response.PageableItems; + +import java.io.IOException; + +import static ru.ulstu.core.util.StreamApiUtils.convertPageable; + +public abstract class ActivityService { + + protected final ActivityRepository activityRepository; + protected final ActivityNotificationService activityNotificationService; + protected final PingService pingService; + + protected ActivityService(ActivityRepository activityRepository, + ActivityNotificationService activityNotificationService, + PingService pingService) { + this.activityRepository = activityRepository; + this.activityNotificationService = activityNotificationService; + this.pingService = pingService; + } + + @Transactional + public D create(D entityDto) { + T newEntity; + try { + newEntity = copyFromDto(getNewActivity(), entityDto); + } catch (IOException e) { + throw new RuntimeException(e); + } + return getNewActivityDto(create(newEntity)); + } + + @Transactional + public T create(T entity) { + T newEntity = activityRepository.save(entity); + activityNotificationService.sendCreateNotification(newEntity); + return newEntity; + } + + public abstract T update(T entity); + + public abstract D update(D entity); + + public abstract boolean delete(Integer id); + + public abstract T findById(Integer id); + + public abstract PageableItems findAll(int offset, int count); + + public PageableItems findAllDto(int offset, int count) { + return convertPageable(findAll(offset, count), entity -> getActivityListDto(entity)); + } + + protected abstract T copyFromDto(T t, D d) throws IOException; + + protected abstract L getActivityListDto(T entity); + + protected abstract T getNewActivity(); + + protected abstract D getNewActivityDto(T entity); + + protected boolean checkUniqueName(String title, Integer id) { + return title.equals(activityRepository.findByNameAndNotId(title, id)); + } + + @Transactional + public void ping(int entityId) { + pingService.addPing(findById(entityId)); + } +} diff --git a/src/main/java/ru/ulstu/activity/conference/ConferenceController.java b/src/main/java/ru/ulstu/activity/conference/controller/ConferenceController.java similarity index 55% rename from src/main/java/ru/ulstu/activity/conference/ConferenceController.java rename to src/main/java/ru/ulstu/activity/conference/controller/ConferenceController.java index cfa9ed6..63af6c6 100644 --- a/src/main/java/ru/ulstu/activity/conference/ConferenceController.java +++ b/src/main/java/ru/ulstu/activity/conference/controller/ConferenceController.java @@ -1,7 +1,11 @@ -package ru.ulstu.activity.conference; +package ru.ulstu.activity.conference.controller; +import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestParam; import ru.ulstu.activity.api.ActivityController; import ru.ulstu.activity.conference.model.ConferenceDashboardDto; @@ -11,7 +15,9 @@ import ru.ulstu.activity.conference.service.ConferenceService; import ru.ulstu.core.model.response.PageableItems; import ru.ulstu.core.model.response.Response; -public class ConferenceController extends ActivityController { +import javax.validation.Valid; + +public class ConferenceController implements ActivityController { private final ConferenceService conferenceService; @@ -34,27 +40,31 @@ public class ConferenceController extends ActivityController get(@PathVariable("grant-id") Integer entityId) { - return new Response<>(conferenceService.findById(entityId)); + @GetMapping("{conference-id}") + public Response get(@PathVariable("conference-id") Integer entityId) { + return new Response<>(conferenceService.findConferenceById(entityId)); } @Override - public Response create(ConferenceDto entity) { - return null; + @PostMapping + public Response create(@RequestBody @Valid ConferenceDto entity) { + return new Response<>(conferenceService.create(entity)); } @Override - public Response update(ConferenceDto entity) { - return null; + @PutMapping + public Response update(@RequestBody @Valid ConferenceDto entity) { + return new Response<>(conferenceService.update(entity)); } @Override - public Response delete(Integer entityId) { - return null; + @DeleteMapping("{conference-id}") + public Response delete(@PathVariable("conference-id") Integer entityId) { + return new Response<>(conferenceService.delete(entityId)); } - @Override - public void ping(int entityId) { - + @PostMapping("ping/{conference-id}") + public void ping(@PathVariable("conference-id") int conferenceId) { + conferenceService.ping(conferenceId); } } diff --git a/src/main/java/ru/ulstu/activity/conference/repository/ConferenceRepository.java b/src/main/java/ru/ulstu/activity/conference/repository/ConferenceRepository.java index 4efe9bc..488240d 100644 --- a/src/main/java/ru/ulstu/activity/conference/repository/ConferenceRepository.java +++ b/src/main/java/ru/ulstu/activity/conference/repository/ConferenceRepository.java @@ -13,7 +13,7 @@ import ru.ulstu.user.model.User; import java.util.Date; import java.util.List; -public interface ConferenceRepository extends JpaRepository, ActivityRepository { +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/activity/conference/service/ConferenceNotificationService.java b/src/main/java/ru/ulstu/activity/conference/service/ConferenceNotificationService.java index db3a056..7d94694 100644 --- a/src/main/java/ru/ulstu/activity/conference/service/ConferenceNotificationService.java +++ b/src/main/java/ru/ulstu/activity/conference/service/ConferenceNotificationService.java @@ -2,6 +2,7 @@ package ru.ulstu.activity.conference.service; import com.google.common.collect.ImmutableMap; import org.springframework.stereotype.Service; +import ru.ulstu.activity.common.service.ActivityNotificationService; import ru.ulstu.activity.conference.model.Conference; import ru.ulstu.activity.ping.service.PingService; import ru.ulstu.core.util.DateUtils; @@ -14,7 +15,7 @@ import java.util.List; import java.util.Map; @Service -public class ConferenceNotificationService { +public class ConferenceNotificationService extends ActivityNotificationService { private final static int YESTERDAY = -1; private final static int DAYS_TO_DEADLINE_NOTIFICATION = 7; diff --git a/src/main/java/ru/ulstu/activity/conference/service/ConferenceService.java b/src/main/java/ru/ulstu/activity/conference/service/ConferenceService.java index 6db366f..e596d88 100644 --- a/src/main/java/ru/ulstu/activity/conference/service/ConferenceService.java +++ b/src/main/java/ru/ulstu/activity/conference/service/ConferenceService.java @@ -4,8 +4,13 @@ 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.conference.model.*; +import ru.ulstu.activity.common.service.ActivityService; +import ru.ulstu.activity.conference.model.Conference; +import ru.ulstu.activity.conference.model.ConferenceDashboardDto; +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; @@ -20,7 +25,6 @@ import ru.ulstu.user.service.UserService; import java.io.IOException; import java.util.Arrays; -import java.util.Collections; import java.util.Date; import java.util.List; import java.util.stream.Collectors; @@ -30,7 +34,7 @@ import static ru.ulstu.core.util.StreamApiUtils.convert; import static ru.ulstu.core.util.StreamApiUtils.convertPageable; @Service -public class ConferenceService extends AbstractActivityService { +public class ConferenceService extends ActivityService { private final ConferenceRepository conferenceRepository; private final ConferenceUserService conferenceUserService; @@ -49,7 +53,7 @@ public class ConferenceService extends AbstractActivityService conference.getPapers().add(paper.getId() != null ? paperService.findPaperById(paper.getId()) : paperService.create(paper))); + conferenceDto.getPapers().forEach(paper -> conference.getPapers().add(paper.getId() != null ? paperService.findById(paper.getId()) : paperService.create(paper))); conference.setDeadlines(deadlineService.saveOrCreate(conferenceDto.getDeadlines())); conference.setUsers(conferenceUserService.saveOrCreate(conferenceDto.getUsers())); if (conferenceDto.getPaperIds() != null && !conferenceDto.getPaperIds().isEmpty()) { conferenceDto.getPaperIds().forEach(paperId -> - conference.getPapers().add(paperService.findPaperById(paperId))); + conference.getPapers().add(paperService.findById(paperId))); } return conference; } @@ -249,17 +242,11 @@ public class ConferenceService extends AbstractActivityService get(@PathVariable("grant-id") Integer entityId) { - return new Response<>(grantService.findById(entityId)); + return new Response<>(grantService.findGrantById(entityId)); } @Override @@ -69,14 +69,14 @@ public class GrantController implements ActivityController delete(@PathVariable("grant-id") Integer entityId) { return new Response<>(grantService.delete(entityId)); } @Override - @PostMapping("ping/{paper-id}") - public void ping(@PathVariable("paper-id") int entityId) { + @PostMapping("ping/{grant-id}") + public void ping(@PathVariable("grant-id") int entityId) { grantService.ping(entityId); } } diff --git a/src/main/java/ru/ulstu/activity/grant/repository/GrantRepository.java b/src/main/java/ru/ulstu/activity/grant/repository/GrantRepository.java index a9d71f4..3b7edfe 100644 --- a/src/main/java/ru/ulstu/activity/grant/repository/GrantRepository.java +++ b/src/main/java/ru/ulstu/activity/grant/repository/GrantRepository.java @@ -10,7 +10,7 @@ import ru.ulstu.activity.grant.model.Grant; import java.util.List; -public interface GrantRepository extends JpaRepository, ActivityRepository { +public interface GrantRepository extends JpaRepository, ActivityRepository { List findByStatus(Grant.GrantStatus status); diff --git a/src/main/java/ru/ulstu/activity/grant/service/GrantNotificationService.java b/src/main/java/ru/ulstu/activity/grant/service/GrantNotificationService.java index affe2a7..2ffed77 100644 --- a/src/main/java/ru/ulstu/activity/grant/service/GrantNotificationService.java +++ b/src/main/java/ru/ulstu/activity/grant/service/GrantNotificationService.java @@ -2,6 +2,7 @@ package ru.ulstu.activity.grant.service; import com.google.common.collect.ImmutableMap; import org.springframework.stereotype.Service; +import ru.ulstu.activity.common.service.ActivityNotificationService; import ru.ulstu.activity.grant.model.Grant; import ru.ulstu.core.util.DateUtils; import ru.ulstu.user.model.User; @@ -13,7 +14,7 @@ import java.util.Map; import java.util.Set; @Service -public class GrantNotificationService { +public class GrantNotificationService extends ActivityNotificationService { private final static int DAYS_TO_DEADLINE_NOTIFICATION = 7; private final static String TEMPLATE_DEADLINE = "grantDeadlineNotification"; private final static String TEMPLATE_CREATE = "grantCreateNotification"; diff --git a/src/main/java/ru/ulstu/activity/grant/service/GrantService.java b/src/main/java/ru/ulstu/activity/grant/service/GrantService.java index 45891f1..4318a3f 100644 --- a/src/main/java/ru/ulstu/activity/grant/service/GrantService.java +++ b/src/main/java/ru/ulstu/activity/grant/service/GrantService.java @@ -7,7 +7,7 @@ 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.common.service.ActivityService; import ru.ulstu.activity.deadline.model.Deadline; import ru.ulstu.activity.deadline.service.DeadlineService; import ru.ulstu.activity.file.service.FileService; @@ -45,7 +45,7 @@ import static ru.ulstu.activity.grant.model.Grant.GrantStatus.APPLICATION; import static ru.ulstu.core.util.StreamApiUtils.convertPageable; @Service -public class GrantService extends AbstractActivityService { +public class GrantService extends ActivityService { private final Logger log = LoggerFactory.getLogger(GrantService.class); private final GrantRepository grantRepository; @@ -69,9 +69,9 @@ public class GrantService extends AbstractActivityService grant.getPapers().add(paperService.findPaperById(paperIds))); + grantDto.getPaperIds().forEach(paperIds -> grant.getPapers().add(paperService.findById(paperIds))); } return grant; } @@ -182,7 +180,7 @@ public class GrantService extends AbstractActivityService get(@PathVariable("paper-id") Integer paperId) { - return new Response<>(paperService.findById(paperId)); + return new Response<>(paperService.findPaperById(paperId)); } @PostMapping diff --git a/src/main/java/ru/ulstu/activity/paper/repository/PaperRepository.java b/src/main/java/ru/ulstu/activity/paper/repository/PaperRepository.java index bd75a12..fee202a 100644 --- a/src/main/java/ru/ulstu/activity/paper/repository/PaperRepository.java +++ b/src/main/java/ru/ulstu/activity/paper/repository/PaperRepository.java @@ -4,13 +4,14 @@ 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.api.ActivityRepository; import ru.ulstu.activity.paper.model.Paper; import ru.ulstu.core.repository.JpaDetachableRepository; import ru.ulstu.user.model.User; import java.util.List; -public interface PaperRepository extends JpaDetachableRepository { +public interface PaperRepository extends JpaDetachableRepository, ActivityRepository { @Query("SELECT p FROM Paper p WHERE (:author IS NULL OR :author MEMBER OF p.authors) AND (YEAR(p.createDate) = :year OR :year IS NULL)") List filter(@Param("author") User author, @Param("year") Integer year); @@ -32,4 +33,7 @@ public interface PaperRepository extends JpaDetachableRepository @Query("SELECT p FROM Paper p ") Page findAll(Pageable pageable); + + @Query("SELECT title FROM Paper p WHERE (p.title = :name) AND (:id IS NULL OR p.id != :id) ") + String findByNameAndNotId(@Param("name") String name, @Param("id") Integer id); } diff --git a/src/main/java/ru/ulstu/activity/paper/service/PaperNotificationService.java b/src/main/java/ru/ulstu/activity/paper/service/PaperNotificationService.java index 1e529ac..5da1937 100644 --- a/src/main/java/ru/ulstu/activity/paper/service/PaperNotificationService.java +++ b/src/main/java/ru/ulstu/activity/paper/service/PaperNotificationService.java @@ -2,6 +2,7 @@ package ru.ulstu.activity.paper.service; import com.google.common.collect.ImmutableMap; import org.springframework.stereotype.Service; +import ru.ulstu.activity.common.service.ActivityNotificationService; import ru.ulstu.activity.paper.model.Paper; import ru.ulstu.core.model.response.PageableItems; import ru.ulstu.core.util.DateUtils; @@ -13,7 +14,7 @@ import java.util.Map; import java.util.Set; @Service -public class PaperNotificationService { +public class PaperNotificationService extends ActivityNotificationService { private final static int DAYS_TO_DEADLINE_NOTIFICATION = 7; private final static String TEMPLATE_DEADLINE = "paperDeadlineNotification"; private final static String TEMPLATE_CREATE = "paperCreateNotification"; diff --git a/src/main/java/ru/ulstu/activity/paper/service/PaperService.java b/src/main/java/ru/ulstu/activity/paper/service/PaperService.java index f2c095f..fb41587 100644 --- a/src/main/java/ru/ulstu/activity/paper/service/PaperService.java +++ b/src/main/java/ru/ulstu/activity/paper/service/PaperService.java @@ -3,7 +3,7 @@ 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.activity.common.service.AbstractActivityService; +import ru.ulstu.activity.common.service.ActivityService; import ru.ulstu.activity.deadline.model.Deadline; import ru.ulstu.activity.deadline.service.DeadlineService; import ru.ulstu.activity.file.model.FileDataDto; @@ -44,7 +44,7 @@ import static ru.ulstu.core.util.StreamApiUtils.convert; import static ru.ulstu.core.util.StreamApiUtils.convertPageable; @Service -public class PaperService extends AbstractActivityService { +public class PaperService extends ActivityService { private final PaperNotificationService paperNotificationService; private final PaperRepository paperRepository; private final UserService userService; @@ -63,6 +63,7 @@ public class PaperService extends AbstractActivityService findAllActive(int offset, int count) { Page activePapersPage = paperRepository.findAllWithoutStatuses(new OffsetablePageRequest(offset, count), COMPLETED, FAILED); return new PageableItems<>(activePapersPage.getTotalElements(), sortPapers(activePapersPage.getContent())); } - @Transactional - public Paper create(Paper paper) { - Paper newPaper = paperRepository.save(paper); - paperNotificationService.sendCreateNotification(newPaper); - eventService.createFromPaper(newPaper); - return newPaper; - } - public Paper update(Paper paper) { paperRepository.save(paper); paperNotificationService.sendCreateNotification(paper, oldAuthors); @@ -106,14 +109,9 @@ public class PaperService extends AbstractActivityService(paper.getAuthors()); @@ -128,7 +126,7 @@ public class PaperService extends AbstractActivityService new EntityNotFoundException("Paper with id=" + paperId + " not found")); } @@ -262,9 +260,4 @@ public class PaperService extends AbstractActivityService findAllCompletedByType(Paper.PaperType type) { return paperRepository.findByTypeAndStatus(type, Paper.PaperStatus.COMPLETED); } - - @Transactional - public void ping(int paperId) { - pingService.addPing(findPaperById(paperId)); - } } diff --git a/src/main/java/ru/ulstu/activity/ping/service/PingService.java b/src/main/java/ru/ulstu/activity/ping/service/PingService.java index 343fc80..8a52afa 100644 --- a/src/main/java/ru/ulstu/activity/ping/service/PingService.java +++ b/src/main/java/ru/ulstu/activity/ping/service/PingService.java @@ -18,8 +18,7 @@ public class PingService { private final UserService userService; public PingService(PingRepository pingRepository, - UserService userService, - PingScheduler pingScheduler) { + UserService userService) { this.pingRepository = pingRepository; this.userService = userService; } diff --git a/src/main/java/ru/ulstu/activity/students/controller/TaskController.java b/src/main/java/ru/ulstu/activity/students/controller/TaskController.java index 1e3041b..8be575f 100644 --- a/src/main/java/ru/ulstu/activity/students/controller/TaskController.java +++ b/src/main/java/ru/ulstu/activity/students/controller/TaskController.java @@ -44,7 +44,7 @@ public class TaskController implements ActivityController get(@PathVariable("task-id") Integer taskId) { - return new Response<>(taskService.findById(taskId)); + return new Response<>(taskService.findTaskById(taskId)); } @PostMapping @@ -57,7 +57,7 @@ public class TaskController implements ActivityController(taskService.update(paperDto)); } - @DeleteMapping("/{task-id}") + @DeleteMapping("{task-id}") public Response delete(@PathVariable("task-id") Integer taskId) { return new Response<>(taskService.delete(taskId)); } diff --git a/src/main/java/ru/ulstu/activity/students/repository/TaskRepository.java b/src/main/java/ru/ulstu/activity/students/repository/TaskRepository.java index 9e8d30d..1439385 100644 --- a/src/main/java/ru/ulstu/activity/students/repository/TaskRepository.java +++ b/src/main/java/ru/ulstu/activity/students/repository/TaskRepository.java @@ -3,13 +3,14 @@ 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.activity.api.ActivityRepository; import ru.ulstu.activity.students.model.Task; import ru.ulstu.activity.tags.model.Tag; import java.util.Date; import java.util.List; -public interface TaskRepository extends JpaRepository { +public interface TaskRepository extends JpaRepository, ActivityRepository { @Query("SELECT t FROM Task t WHERE (t.status = :status OR :status IS NULL) AND (:tag IS NULL OR :tag MEMBER OF t.tags) ORDER BY create_date DESC") List filterNew(@Param("status") Task.TaskStatus status, @Param("tag") Tag tag); @@ -23,5 +24,7 @@ public interface TaskRepository extends JpaRepository { @Query("SELECT t FROM Task t WHERE (t.createDate >= :date) ORDER BY create_date DESC") List findAllYear(@Param("date") Date date); - + @Override + @Query("SELECT title FROM Task t WHERE (t.title = :name) AND (:id IS NULL OR t.id != :id) ") + String findByNameAndNotId(@Param("name") String name, @Param("id") Integer id); } diff --git a/src/main/java/ru/ulstu/activity/students/service/TaskNotificationService.java b/src/main/java/ru/ulstu/activity/students/service/TaskNotificationService.java new file mode 100644 index 0000000..bd9046e --- /dev/null +++ b/src/main/java/ru/ulstu/activity/students/service/TaskNotificationService.java @@ -0,0 +1,20 @@ +package ru.ulstu.activity.students.service; + +import org.springframework.stereotype.Service; +import ru.ulstu.activity.common.service.ActivityNotificationService; +import ru.ulstu.activity.students.model.Task; +import ru.ulstu.user.service.MailService; + +@Service +public class TaskNotificationService extends ActivityNotificationService { + + private final MailService mailService; + + public TaskNotificationService(MailService mailService) { + this.mailService = mailService; + } + + public void sendCreateNotification(Task task) { + throw new RuntimeException("not implemented yet"); + } +} diff --git a/src/main/java/ru/ulstu/activity/students/service/TaskService.java b/src/main/java/ru/ulstu/activity/students/service/TaskService.java index 0492e0b..244cb33 100644 --- a/src/main/java/ru/ulstu/activity/students/service/TaskService.java +++ b/src/main/java/ru/ulstu/activity/students/service/TaskService.java @@ -4,7 +4,7 @@ import org.springframework.data.domain.Page; import org.springframework.data.domain.Sort; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import ru.ulstu.activity.common.service.AbstractActivityService; +import ru.ulstu.activity.common.service.ActivityService; import ru.ulstu.activity.deadline.model.Deadline; import ru.ulstu.activity.deadline.service.DeadlineService; import ru.ulstu.activity.ping.service.PingService; @@ -41,11 +41,9 @@ import static ru.ulstu.core.util.StreamApiUtils.convert; import static ru.ulstu.core.util.StreamApiUtils.convertPageable; @Service -public class TaskService extends AbstractActivityService { - - private final static int MAX_DISPLAY_SIZE = 40; - +public class TaskService extends ActivityService { private final TaskRepository taskRepository; + private final TaskNotificationService taskNotificationService; private final SchedulerRepository schedulerRepository; private final DeadlineService deadlineService; private final TagService tagService; @@ -54,12 +52,15 @@ public class TaskService extends AbstractActivityService filter(TaskFilterDto filterDto) { if (filterDto.getOrder().compareTo("new") == 0) { return convert(taskRepository.filterNew( @@ -111,7 +122,7 @@ public class TaskService extends AbstractActivityService new EntityNotFoundException("Paper with id=" + taskId + " not found")); } @@ -295,6 +306,6 @@ public class TaskService extends AbstractActivityService