@RequestMapping(value = "/events", method = GET, headers = "Authorization") public List<EventListItem> getAllEventsForExternal( Principal principal, HttpServletRequest request) { List<Integer> userOrganizations = userManager .findUserOrganizations(principal.getName()) .stream() .map(Organization::getId) .collect(Collectors.toList()); return eventManager .getActiveEvents() .stream() .filter(e -> userOrganizations.contains(e.getOrganizationId())) .sorted( (e1, e2) -> e1.getBegin() .withZoneSameInstant(ZoneId.systemDefault()) .compareTo(e2.getBegin().withZoneSameInstant(ZoneId.systemDefault()))) .map( s -> new EventListItem( s, request.getContextPath(), descriptionsLoader.eventDescriptions())) .collect(Collectors.toList()); }
/** * * Obetener la información de una notificación y cargarla en pantalla para su edición * * @param idNotificacion a cargar * @param request con datos de autenticación * @return ModelAndView * @throws Exception */ @RequestMapping("edit/{idNotificacion}") public ModelAndView editIrag( @PathVariable("idNotificacion") String idNotificacion, HttpServletRequest request) throws Exception { String urlValidacion = ""; boolean autorizado = true; try { urlValidacion = seguridadService.validarLogin(request); // si la url esta vacia significa que la validaci�n del login fue exitosa if (urlValidacion.isEmpty()) urlValidacion = seguridadService.validarAutorizacionUsuario( request, ConstantsSecurity.SYSTEM_CODE, true); } catch (Exception e) { e.printStackTrace(); urlValidacion = "404"; } ModelAndView mav = new ModelAndView(); if (urlValidacion.isEmpty()) { if (idNotificacion != null) { FichaRotavirus fichaRotavirus = rotaVirusService.getFichaById(idNotificacion); if (fichaRotavirus != null) { Initialize(); long idUsuario = seguridadService.obtenerIdUsuario(request); // irag.setUsuario(usuarioService.getUsuarioById((int) idUsuario)); if (idUsuario != 0) { autorizado = seguridadService.esUsuarioNivelCentral(idUsuario, ConstantsSecurity.SYSTEM_CODE) || ((fichaRotavirus.getDaNotificacion().getCodSilaisAtencion() != null && fichaRotavirus.getDaNotificacion().getCodUnidadAtencion() != null) && seguridadService.esUsuarioAutorizadoEntidad( (int) idUsuario, ConstantsSecurity.SYSTEM_CODE, fichaRotavirus.getDaNotificacion().getCodSilaisAtencion().getCodigo()) && seguridadService.esUsuarioAutorizadoUnidad( (int) idUsuario, ConstantsSecurity.SYSTEM_CODE, fichaRotavirus.getDaNotificacion().getCodUnidadAtencion().getCodigo())); } entidades = seguridadService.obtenerEntidadesPorUsuario( (int) idUsuario, ConstantsSecurity.SYSTEM_CODE); if (entidades.size() <= 0) { entidades.add(fichaRotavirus.getDaNotificacion().getCodSilaisAtencion()); } Divisionpolitica municipio = divisionPoliticaService.getMunicipiosByUnidadSalud( fichaRotavirus .getDaNotificacion() .getCodUnidadAtencion() .getMunicipio() .getCodigoNacional()); List<Divisionpolitica> munic = divisionPoliticaService.getMunicipiosBySilais( fichaRotavirus.getDaNotificacion().getCodSilaisAtencion().getCodigo()); List<Unidades> uni = null; if (seguridadService.esUsuarioNivelCentral(idUsuario, ConstantsSecurity.SYSTEM_CODE)) { if (fichaRotavirus.getDaNotificacion().getCodSilaisAtencion() != null && fichaRotavirus.getDaNotificacion().getCodUnidadAtencion() != null) { uni = seguridadService.obtenerUnidadesPorUsuarioEntidadMunicipio( (int) idUsuario, fichaRotavirus.getDaNotificacion().getCodSilaisAtencion().getCodigo(), fichaRotavirus .getDaNotificacion() .getCodUnidadAtencion() .getMunicipio() .getCodigoNacional(), ConstantsSecurity.SYSTEM_CODE, HealthUnitType.UnidadesPrimHosp.getDiscriminator()); } } else { if (fichaRotavirus.getDaNotificacion().getCodSilaisAtencion() != null && fichaRotavirus.getDaNotificacion().getCodUnidadAtencion() != null) { uni = seguridadService.obtenerUnidadesPorUsuarioEntidadMunicipio( (int) idUsuario, fichaRotavirus.getDaNotificacion().getCodSilaisAtencion().getCodigo(), fichaRotavirus .getDaNotificacion() .getCodUnidadAtencion() .getMunicipio() .getCodigoNacional(), ConstantsSecurity.SYSTEM_CODE, HealthUnitType.UnidadesPrimHosp.getDiscriminator()); if (!uni.contains(fichaRotavirus.getDaNotificacion().getCodUnidadAtencion())) { uni.add(fichaRotavirus.getDaNotificacion().getCodUnidadAtencion()); } } } // datos persona Divisionpolitica departamentoProce; List<Divisionpolitica> municipiosResi = null; List<Comunidades> comunidades = null; if (fichaRotavirus.getDaNotificacion().getPersona().getMunicipioResidencia() != null) { String municipioResidencia = fichaRotavirus .getDaNotificacion() .getPersona() .getMunicipioResidencia() .getCodigoNacional(); departamentoProce = divisionPoliticaService.getDepartamentoByMunicipi(municipioResidencia); municipiosResi = divisionPoliticaService.getMunicipiosFromDepartamento( departamentoProce.getCodigoNacional()); String comu = fichaRotavirus .getDaNotificacion() .getPersona() .getMunicipioResidencia() .getCodigoNacional(); comunidades = comunidadesService.getComunidades(comu); } mav.addObject("fichaRotavirus", fichaRotavirus); mav.addObject("autorizado", autorizado); mav.addObject("entidades", entidades); mav.addObject("munic", munic); mav.addObject("municipiosResi", municipiosResi); mav.addObject("comunidades", comunidades); mav.addObject("uni", uni); mav.addObject("municipio", municipio); mav.addAllObjects(mapModel); mav.setViewName("rotavirus/create"); } else { mav.setViewName("404"); } } else { mav.setViewName("404"); } } else { mav.setViewName(urlValidacion); } return mav; }
@RequestMapping("/events/{eventName}/export.csv") public void downloadAllTicketsCSV( @PathVariable("eventName") String eventName, HttpServletRequest request, HttpServletResponse response, Principal principal) throws IOException { List<String> fields = Arrays.asList( Optional.ofNullable(request.getParameterValues("fields")).orElse(new String[] {})); Event event = loadEvent(eventName, principal); Map<Integer, TicketCategory> categoriesMap = eventManager .loadTicketCategories(event) .stream() .collect(Collectors.toMap(TicketCategory::getId, Function.identity())); ZoneId eventZoneId = event.getZoneId(); Predicate<String> contains = FIXED_FIELDS::contains; response.setContentType("text/csv;charset=UTF-8"); response.setHeader("Content-Disposition", "attachment; filename=" + eventName + "-export.csv"); try (ServletOutputStream out = response.getOutputStream(); CSVWriter writer = new CSVWriter(new OutputStreamWriter(out))) { for (int marker : BOM_MARKERS) { // UGLY-MODE_ON: specify that the file is written in UTF-8 with BOM, thanks // to alexr http://stackoverflow.com/a/4192897 out.write(marker); } writer.writeNext(fields.toArray(new String[fields.size()])); eventManager .findAllConfirmedTickets(eventName, principal.getName()) .stream() .map( t -> { List<String> line = new ArrayList<>(); if (fields.contains("ID")) { line.add(t.getUuid()); } if (fields.contains("creation")) { line.add(t.getCreation().withZoneSameInstant(eventZoneId).toString()); } if (fields.contains("category")) { line.add(categoriesMap.get(t.getCategoryId()).getName()); } if (fields.contains("event")) { line.add(eventName); } if (fields.contains("status")) { line.add(t.getStatus().toString()); } if (fields.contains("originalPrice")) { line.add(MonetaryUtil.centsToUnit(t.getSrcPriceCts()).toString()); } if (fields.contains("paidPrice")) { line.add(MonetaryUtil.centsToUnit(t.getFinalPriceCts()).toString()); } if (fields.contains("discount")) { line.add(MonetaryUtil.centsToUnit(t.getDiscountCts()).toString()); } if (fields.contains("vat")) { line.add(MonetaryUtil.centsToUnit(t.getVatCts()).toString()); } if (fields.contains("reservationID")) { line.add(t.getTicketsReservationId()); } if (fields.contains("Full Name")) { line.add(t.getFullName()); } if (fields.contains("First Name")) { line.add(t.getFirstName()); } if (fields.contains("Last Name")) { line.add(t.getLastName()); } if (fields.contains("E-Mail")) { line.add(t.getEmail()); } if (fields.contains("locked")) { line.add(String.valueOf(t.getLockedAssignment())); } if (fields.contains("Language")) { line.add(String.valueOf(t.getUserLanguage())); } // obviously not optimized Map<String, String> additionalValues = ticketFieldRepository.findAllValuesForTicketId(t.getId()); fields .stream() .filter(contains.negate()) .forEachOrdered( field -> { line.add(additionalValues.getOrDefault(field, "").replaceAll("\"", "")); }); return line.toArray(new String[line.size()]); }) .forEachOrdered(writer::writeNext); writer.flush(); out.flush(); } }