start conference controller

pull/244/head
Anton Romanov 5 years ago
parent 6cf627bf02
commit 8e89ec08a7

@ -0,0 +1,60 @@
package ru.ulstu.activity.conference;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestParam;
import ru.ulstu.activity.api.ActivityController;
import ru.ulstu.activity.conference.model.ConferenceDashboardDto;
import ru.ulstu.activity.conference.model.ConferenceDto;
import ru.ulstu.activity.conference.model.ConferenceListDto;
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<ConferenceListDto, ConferenceDashboardDto, ConferenceDto> {
private final ConferenceService conferenceService;
public ConferenceController(ConferenceService conferenceService) {
this.conferenceService = conferenceService;
}
@Override
@GetMapping("list")
public Response<PageableItems<ConferenceListDto>> getList(@RequestParam(value = "offset", defaultValue = "0") int offset,
@RequestParam(value = "count", defaultValue = "0") int count) {
return new Response<>(conferenceService.findAllDto(offset, count));
}
@Override
@GetMapping("dashboard")
public Response<PageableItems<ConferenceDashboardDto>> getDashboard(@RequestParam(value = "offset", defaultValue = "0") int offset,
@RequestParam(value = "count", defaultValue = "0") int count) {
return new Response<>(conferenceService.findAllActiveDto(offset, count));
}
@Override
public Response<ConferenceDto> get(@PathVariable("grant-id") Integer entityId) {
return new Response<>(conferenceService.findById(entityId));
}
@Override
public Response<ConferenceDto> create(ConferenceDto entity) {
return null;
}
@Override
public Response<ConferenceDto> update(ConferenceDto entity) {
return null;
}
@Override
public Response<Boolean> delete(Integer entityId) {
return null;
}
@Override
public void ping(int entityId) {
}
}

@ -0,0 +1,21 @@
package ru.ulstu.activity.conference.model;
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 ConferenceDashboardDto extends ActivityDashboardDto {
private final Set<ScienceGroupMemberDto> members;
public ConferenceDashboardDto(Conference conference) {
super(conference.getId(), conference.getTitle());
this.members = convert(conference.getActivityMembers(), ScienceGroupMemberDto::new);
}
public Set<ScienceGroupMemberDto> getAuthors() {
return members;
}
}

@ -1,5 +1,7 @@
package ru.ulstu.activity.conference.repository;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
@ -17,7 +19,7 @@ public interface ConferenceRepository extends JpaRepository<Conference, Integer>
List<Conference> findByUserAndYear(@Param("user") User user, @Param("year") Integer year);
@Query("SELECT c FROM Conference c WHERE c.beginDate > :date")
List<Conference> findAllActive(@Param("date") Date date);
Page<Conference> findAllActive(Pageable pageable, @Param("date") Date date);
@Query("SELECT case when count(c) > 0 then true else false end FROM Conference c JOIN c.papers p WHERE p.id = :paperId")
boolean isPaperAttached(@Param("paperId") Integer paperId);

@ -3,14 +3,9 @@ package ru.ulstu.activity.conference.service;
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.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.model.*;
import ru.ulstu.activity.conference.repository.ConferenceRepository;
import ru.ulstu.activity.deadline.model.Deadline;
import ru.ulstu.activity.deadline.service.DeadlineService;
@ -32,6 +27,7 @@ import java.util.stream.Collectors;
import static org.springframework.util.ObjectUtils.isEmpty;
import static ru.ulstu.core.util.StreamApiUtils.convert;
import static ru.ulstu.core.util.StreamApiUtils.convertPageable;
@Service
public class ConferenceService extends AbstractActivityService<ConferenceListDto, Conference, ConferenceDto> {
@ -239,12 +235,14 @@ public class ConferenceService extends AbstractActivityService<ConferenceListDto
}
public List<ConferenceDto> findAllActiveDto() {
return convert(findAllActive(), ConferenceDto::new);
public PageableItems<ConferenceDashboardDto> findAllActiveDto(int offset, int count) {
return convertPageable(findAllActive(offset, count), ConferenceDashboardDto::new);
}
private List<Conference> findAllActive() {
return conferenceRepository.findAllActive(new Date());
private PageableItems<Conference> findAllActive(int offset, int count) {
Page<Conference> activeConferencePage = conferenceRepository
.findAllActive(new OffsetablePageRequest(offset, count), new Date());
return new PageableItems<>(activeConferencePage.getTotalElements(), activeConferencePage.getContent());
}
public boolean isAttachedToConference(Integer paperId) {
@ -253,34 +251,16 @@ public class ConferenceService extends AbstractActivityService<ConferenceListDto
@Transactional
public void ping(ConferenceDto conferenceDto) throws IOException {
pingService.addPing(findOne(conferenceDto.getId()));
pingService.addPing(findConferenceById(conferenceDto.getId()));
conferenceRepository.updatePingConference(conferenceDto.getId());
}
private Conference findOne(Integer conferenceId) {
return conferenceRepository.getOne(conferenceId);
public ConferenceDto findById(Integer id) {
return new ConferenceDto(findConferenceById(id));
}
public void setChartData(ModelMap modelMap) {
//first, add the regional sales
Integer northeastSales = 17089;
Integer westSales = 10603;
Integer midwestSales = 5223;
Integer southSales = 10111;
modelMap.addAttribute("northeastSales", northeastSales);
modelMap.addAttribute("southSales", southSales);
modelMap.addAttribute("midwestSales", midwestSales);
modelMap.addAttribute("westSales", westSales);
//now add sales by lure type
List<Integer> inshoreSales = Arrays.asList(4074, 3455, 4112);
List<Integer> nearshoreSales = Arrays.asList(3222, 3011, 3788);
List<Integer> offshoreSales = Arrays.asList(7811, 7098, 6455);
modelMap.addAttribute("inshoreSales", inshoreSales);
modelMap.addAttribute("nearshoreSales", nearshoreSales);
modelMap.addAttribute("offshoreSales", offshoreSales);
public Conference findConferenceById(Integer id) {
return conferenceRepository.getOne(id);
}
private void sendNotificationAfterUpdateDeadlines(Conference conference, List<Deadline> oldDeadlines) {

Loading…
Cancel
Save