Untitled

 avatar
unknown
java
a year ago
2.0 kB
5
Indexable
public ResponseEntity<byte[]> generatePaymentReport(
            @RequestParam("startDate") String startDate,
            @RequestParam("endDate") String endDate,
            @RequestParam("brandName") String brandName
    ) throws IOException {
        Account account = orderService.getAccountFromToken();
        Long shopId;
        if (account.getRole().contains(Role.SELLER.name())) {
            shopId = account.getShopId();
        } else if (account.getRole().contains(Role.ADMIN.name())) {
            shopId = null;
        } else {
            ErrorResponse errorResponse = new ErrorResponse();
            errorResponse.setErrorType(String.valueOf(HttpStatus.NOT_FOUND));
            errorResponse.setErrorDescription("ShopId not found for given seller");
            return ResponseEntity.status(HttpStatus.NOT_FOUND).build();
        }
        PaymentReportResponse paymentReportResponse = orderService.getPaymentReport(startDate, endDate, brandName);
        List<PaymentReportDto> paymentReportList = paymentReportResponse.getPaymentReportDto();

        byte[] excelData;
        if (!paymentReportList.isEmpty()) {
            excelData = ExcelUtils.generatePaymentReportDownloadExcel(paymentReportList);
            HttpHeaders headers = new HttpHeaders();
            headers.setContentDispositionFormData("attachment", "payments_report.xlsx");
            headers.setContentType(MediaType.parseMediaType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"));
            headers.setContentLength(excelData.length);
            return new ResponseEntity<>(excelData, headers, HttpStatus.OK);
        } else {
            ErrorResponse errorResponse = new ErrorResponse();
            errorResponse.setErrorType(String.valueOf(HttpStatus.BAD_REQUEST));
            errorResponse.setErrorDescription("Data not found for the seller - " + shopId);
            return ResponseEntity.status(HttpStatus.BAD_REQUEST).build();
        }
    }
Editor is loading...
Leave a Comment