问题描述
public ResponseEntity<List<InboxDTO>> getAllInboxes(InboxCriteria criteria, Pageable pageable) {
log.debug("REST request to get Inboxes by criteria: {}", criteria);
Optional<User> user = userService.getUserWithAuthoritiesByLogin(SecurityUtils.getCurrentUserLogin().get());
if (
SecurityUtils.hasCurrentUserThisAuthority(AuthoritiesConstants.ADMIN) &&
!SecurityUtils.hasCurrentUserThisAuthority(AuthoritiesConstants.RADIO)
) {
Page<InboxDTO> page = inboxQueryService.findByCriteria(criteria, pageable);
HttpHeaders headers = PaginationUtil.generatePaginationHttpHeaders(ServletUriComponentsBuilder.fromCurrentRequest(), page);
return ResponseEntity.ok().headers(headers).body(page.getContent());
}
EmployeeCriteria employeeCriteria = new EmployeeCriteria();
LongFilter userFilter = new LongFilter();
userFilter.equals(user.get().getId());
employeeCriteria.setUserId(userFilter);
List<EmployeeDTO> employeeDTOS = employeeQueryService.findByCriteria(employeeCriteria);
ChannelCriteria channelCriteria = new ChannelCriteria();
LongFilter idFilter = new LongFilter();
idFilter.setEquals(employeeDTOS.get(0).getChannel().getId());
channelCriteria.setId(idFilter);
List<ChannelDTO> channelDTOS = channelQueryService.findByCriteria(channelCriteria);
ProgramCriteria programCriteria = new ProgramCriteria();
LongFilter longFilter = new LongFilter();
longFilter.setEquals(channelDTOS.get(0).getId());
ProgramCriteria.ProgramStateFilter programStateFilter = new ProgramCriteria.ProgramStateFilter();
programStateFilter.setEquals(ProgramState.LIVE);
programCriteria.setChannelId(longFilter);
programCriteria.setState(programStateFilter);
List<ProgramDTO> programDTOS = programQueryService.findByCriteria(programCriteria);
LongFilter inboxFilter = new LongFilter();
inboxFilter.setEquals(programDTOS.get(0).getId());
InboxCriteria.MessageStateFilter MessageStateFilter = new InboxCriteria.MessageStateFilter();
MessageStateFilter.setEquals(MessageState.DELIVERED);
criteria.setChannelId(inboxFilter);
criteria.setState(MessageStateFilter);
Page<InboxDTO> page = inboxQueryService.findByCriteria(criteria, pageable);
HttpHeaders headers = PaginationUtil.generatePaginationHttpHeaders(ServletUriComponentsBuilder.fromCurrentRequest(), page);
return ResponseEntity.ok().headers(headers).body(page.getContent());
}
标签: javabackendjhipster
解决方案
推荐阅读