SettlementController.java 2.62 KB
package com.infoloop.tianting.streamController;

import cn.dev33.satoken.annotation.SaIgnore;
import com.github.xiaoymin.knife4j.annotations.ApiSupport;
import com.infoloop.tianting.model.dto.SettlementDTO.SettlementRequestDto;
import com.infoloop.tianting.service.SettlementService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.ResponseStatus;
import org.springframework.web.bind.annotation.RestController;

import javax.validation.Valid;
import java.io.ByteArrayOutputStream;

@Api(tags = "结算")
@ApiSupport(order = 0)
@Slf4j
@Validated
@RestController
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
public class SettlementController {
  private final SettlementService settlementService;

  @SaIgnore
  @ApiOperation(value = "企业端结算账单生成excel")
  @PostMapping("/enterprise/settlement/generate-excel")
  @ResponseStatus(HttpStatus.OK)
  public ResponseEntity<byte[]> enterpriseSettlementGenerateExcel(@Valid @RequestBody SettlementRequestDto settlementRequestDto) {
    ByteArrayOutputStream outputStream = settlementService.generateOrderSettlementExcel(settlementRequestDto);
    HttpHeaders headers = new HttpHeaders();
    headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
    headers.setContentDispositionFormData("attachment", "订单数据.xlsx");
    return ResponseEntity.ok()
            .headers(headers)
            .body(outputStream.toByteArray());
  }

    @ApiOperation(value = "结算账单生成excel")
    @PostMapping("/settlement/generate-excel")
    @ResponseStatus(HttpStatus.OK)
    public ResponseEntity<byte[]> settlementGenerateExcel(
        @Valid @RequestBody SettlementRequestDto settlementRequestDto) {
      ByteArrayOutputStream outputStream = settlementService.generateOrderSettlementExcel(
          settlementRequestDto);
      HttpHeaders headers = new HttpHeaders();
      headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
      headers.setContentDispositionFormData("attachment", "订单数据.xlsx");

      return ResponseEntity.ok()
          .headers(headers)
          .body(outputStream.toByteArray());
    }
}